Ja ich weiß, das ist nicht sonderlich elegant. Aber an dem Programm programmiere ich seit mittlerweile über 10 Jahren und es ist über die Jahre ziemlich gewachsen und enthält aktuell über 16000 Zeilen Code. Das könnte man sicherlich an der ein oder anderen Stelle optimieren. Nur wann die Zeit dafür nehmen...
Ansonsten möchte ich allen, die hier geantwortet haben Danken: Nach dem Einsatz von Findtext funktioniert die Routine wieder, wie sie soll. Hätte ich ohne euch nicht so schnell hinbekommen! Vielen herzlichen Dank!!!
procedure Tform1.testkursiv(SearchToken :string);
(* das zu formatierende Wort *)
var StringPos: integer;
begin
(* Position des gesuchten Wortes ermitteln *)
StringPos := form2.RichEdit1.findtext(SearchToken, 0, length(form2.RichEdit1.Text), [stMatchCase]);
if StringPos > 0 then
begin
form2.RichEdit1.SelStart := StringPos;
form2.RichEdit1.SelLength := Length(SearchToken);
(* ...und formatieren *)
form2.RichEdit1.SelAttributes.Style := [fsItalic];
(* Cursor an Textanfang setzen und Markierung aufheben *)
form2.RichEdit1.SelLength := 0;
form2.RichEdit1.SelStart := 0;
end;
end;