ich weiß, manchmal bin ich etwas brutal, aber wozu muß man unbedingt PosEx doppelt haben
und RichEdit1.Text vielleicht nicht ständig neu auslesen.
soll hier immer nur das aktuelle markiert werden, dann
Delphi-Quellcode:
S := RichEdit1.Text;
i := 0;
while true do
begin
i := PosEx('mit', S, i + 1);
if i = 0 then break;
RichEdit1.SelStart := i - 1;
RichEdit1.SelLength := Length('mit');
RichEdit1.SelAttributes.Color := clRed;
ShowMessage('gefunden');
RichEdit1.SelAttributes.Color := clBlack;
RichEdit1.SelLength := 0;
end;
ansonsten
Delphi-Quellcode:
S := RichEdit1.Text;
B := False;
i := 0;
while true do
begin
i := PosEx('mit', S, i + 1);
if i = 0 then break;
RichEdit1.SelStart := i - 1;
RichEdit1.SelLength := Length('mit');
RichEdit1.SelAttributes.Color := clRed;
B := True;
end;
if B then ShowMessage('gefunden');