Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#1

RichEdit: Problem mit Textfarbe und Markierungsfarbe

  Alt 18. Mai 2009, 17:05
Hallo,

ich bin seit gestern am verzweifeln (gibts eigentlich einen DP-Psychiater?)

Ich habe ein RichEdit in dem ein Text geladen wird.
Die RichEdit hat im OI voreingestellt bei Font.Color = clBlack.

Mittels folgender Procedure suche ich nach bestimmten Vorraussetzungen in den
einzelnen RichEdit-Zeilen und mache dann diese Teil des Textes farbig.

Soweit so gut - das funktioniert alles bestens.

Wenn ich nun einen neuen Text in das RichEdit lade, so hat der komplette Text
nicht mehr die Textfarbe schwarz sondern die die in der Procedure zuvor genutzt wurde.

Delphi-Quellcode:
procedure TMainForm.RunAndColor(RichEdit: TRichEdit; Farbe: TColor);
var
  i : Integer;
  Pos_Such : Integer;
  RichEdit_Zeile: Integer;
  S_RichEdit : String;
  S_Kommentar : String;

begin
  with RichEdit do
    begin
      for i := 0 to Pred(lines.Count) do
        begin
          //Line-Text auslesen
          S_RichEdit := lines.Strings[i];

          //Position des Semikolons rausfinden
          Pos_Such := Pos(const_Semikolon, S_RichEdit);

          //wenn kein Semikolon vorhanden ist, dann neuer Schleifendurchgang
          If Pos_Such = 0 then
            continue;

          //RichEdit-Zeile auslesen
          RichEdit_Zeile := Perform(EM_LINEINDEX , i, 0);

          //Kommentar-Text aus Zeile rauskopieren
          S_Kommentar := Copy(S_RichEdit, Pred(Pos_Such), length(S_RichEdit));

          //Zeile + Position = Markierungsstart
          SelStart := RichEdit_Zeile + Pred(Pos_Such);

          //Markierungslänge
          SelLength := Length(S_Kommentar);

          //Farbe setzen
          SelAttributes.Color := Farbe;

          SelLength := 0;
        end;
    end;
end;
Ich hab folgendes schon versucht, davor und danach zu definieren, aber ohne Erfolg.

Delphi-Quellcode:
RichEdit_SPL.Font.Color := clBlack;
RichEdit_SPL.SelAttributes.Color := clBlack;
Weiss jemand was mein Problem sein könnte?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat