Einzelnen Beitrag anzeigen

Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: Richedit Wörteraustauschen

  Alt 14. Jul 2004, 17:39
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

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat