Einzelnen Beitrag anzeigen

hebeyer

Registriert seit: 15. Jun 2014
2 Beiträge
 
Delphi 6 Personal
 
#1

In RichEdit ganze Zeile einfärben

  Alt 15. Jun 2014, 10:25
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
  Mit Zitat antworten Zitat