Hallo
mit stringreplace wird das gleiche werden, da du hier zwangsläufig wieder den text zum richedit zuweist und damit gehen dir wieder die Formatierungen flöten.
Eine andere Variante wäre die Findtext methode des richedits zum suchen und seltext quasi zum ersetzen zu nutzen. In der Hilfe zu richedit.findtext ist auch ein Bsp, das man umbasteln kann: hier mal gaaaanz grob, nur zum probieren:
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
FoundAt: LongInt;
StartPos, ToEnd: Integer;
begin
with RichEdit1 do
begin
{ Suchbeginn nach der aktuellen Markierung (falls vorhanden), }
{ andernfalls am Textanfang starten }
if SelLength <> 0 then
StartPos := SelStart + SelLength
else
StartPos := 0;
{ ToEnd ist die Länge von StartPos bis zum Ende des Textes im RTF-Eingabefeld }
ToEnd := Length(Text) - StartPos;
FoundAt := FindText('&&name', StartPos, ToEnd, [stMatchCase]); //<<-
if FoundAt <> -1 then
begin
SetFocus;
SelStart := FoundAt;
SelLength := Length('&&name'); //<<-
seltext := 'Hans Müller'; //<<-
end;
end;
end;
du müßtest halt noch den suchbeginn anpasen und das ganze solange durchlaufen, bis keine Worte mehr gefunden werden. Da ist noch ein bissel Arbeit notwendig, die Formatiereungen bleiben aber erhalten.
Mfg Frank