type
WasTun = (Einfuegen, Ersetzen);
procedure TForm1.FormCreate(Sender: TObject);
begin
with Richedit1 do begin
Font.Name := 'Times New Roman'; // UniCode-Zeichen vorhanden
Font.Size := 16; // z.B.
end;
end;
procedure Unicode(re: TCustomRichEdit; stelle: integer;
zchn: array of WideChar; wie: WasTun);
var
x, bis: integer;
s: string;
begin
bis := ord(wie = Ersetzen) * length(zchn) + stelle;
s := '{\rtf1\ansi{';
for x := 0 to high(zchn) do
s := s + Format('\u%d ?', [ord(zchn[x])]);
s := s + '}}';
re.perform(EM_SETSEL, stelle, bis);
re.perform(EM_REPLACESEL, 0, Integer(PChar(s)));
end;
// Beispielaufruf
procedure TForm1.Button2Click(Sender: TObject);
begin
Unicode(Richedit1, 22, [#$2663, #$2665, #$2666], Ersetzen);
Unicode(Richedit1, 40, [#$25BA, #$266A, #$266B, ' '], Einfuegen);
end;