Hallo,
ich verwende folgende Prozedur in meinem aktuellen Projekt, welche grundsätzlich auch funktioniert:
Delphi-Quellcode:
procedure Tsignalwort.FormActivate(Sender: TObject);
var
i, CharPos, CharPos2, noChars: Integer;
begin
CharPos := 0;
noChars := 0;
for i := 0 to Pred(RichEdit1.Lines.Count) do
noChars := noChars + Length(RichEdit1.Lines[i]);
repeat
CharPos2 := RichEdit1.FindText('HALLO', CharPos, noChars, [stWholeWord]);
CharPos := CharPos2+1;
RichEdit1.SelStart := CharPos2;
RichEdit1.SelLength := Length('HALLO');
RichEdit1.SelAttributes.Color := $000099FD;
until charpos = 0;
end;
Zur Aufgabenstellung:
1. Eine schon mit Text gefüllte RichEdit-Komponente soll komplett nach dem Signalwort "HALLO" durchsucht werden.
2. An jeder Fundstelle soll die
gesamte Zeile eingefärbt werden.
Das Ergebnis:
Das RichEdit wird korrekt durchsucht. Es werden sämtliche Stellen mit dem Signalwort "HALLO" gefunden. Dieses wird jeweils farbig verändert.
Nun frage ich mich/euch, wie man statt der Einfärbung der einzelnen Worte immer die
gesamte Zeile, in der sich das jeweilige Signalwort befindet einfärben kann.
Wie müsste der oben stehende Code abgeändert werden, so dass immer die ganze Zeile eingefärbt wird?
Leider habe ich dazu im Netz nichts Passendes gefunden und so hoffe ich auf euch
Viele Grüße
Henning