TSynEdit/-Memo: beliebige Worte hervorheben (TRichEdit)

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
am2
Lazarusforum e. V.
Beiträge: 116
Registriert: Di 21. Dez 2010, 09:59
OS, Lazarus, FPC: Win (L 0.9.26 beta FPC 2.2.2)
CPU-Target: 32 Bit

TSynEdit/-Memo: beliebige Worte hervorheben (TRichEdit)

Beitrag von am2 »

Hi Leute,

der Betreff ist wahrscheinlich nicht sehr doll, aber ein besserer ist mir nicht eingefallen. Es geht um Folgendes: In Delphi habe ich meinen Programmen (nichts großes, eher kleine Tools) ein Meldungsfenster spendiert, in das ich dann Meldungen reingeschubst habe a la

Code: Alles auswählen

Meldung ('Das ist ein Test'#13#10'mit zwei Zeilen',Warnung);
->
11:03:15 Das ist ein Test
mit zwei Zeilen


Und je nachdem, ob Meldung mit dem Parameter Info, Warnung oder Fehler aufgerufen wurde, waren die Zeilen Rot, orange oder grün.

Mein Problem ist, dass ich keine Ahnung habe, wie ich das mit einem SynEdit realisieren soll. Naheliegend wäre ja folgendes (stark vereinfacht)

Code: Alles auswählen

procedure TFormXYZ.Meldung(const pcsText:string;const pcMeldungsart:TMeldungsArt);
var lvnColor:TColor;
begin 
  case pcMeldungsArt of 
    Info: lvnColor:=clGreen;
    Warnung: lvnColor:=clOrange; //keine Ahnung, Farbe müsste ich erst basteln
    Fehler: lvnColor:=clRed;
  end;
  with MySynEdit Do begin
    SelStart:=1;
    SelEnd:=1;
    SelText:=FormatDateTime('hh:nn:ss',Now)+#9+pcsText;
    SelectedColor.Foreground:=lvnColor;
    SelStart:=1;  
  end;
end;
Hinsichtlich des Textes funktioniert das auch ohne Probleme, aber alles, was mit den Farben zusammenhängt, wird schlicht ignoriert. An welcher Stelle ist der Knoten im Schlauch?

Anm: In der Realität ist das noch etwas komfortabler implementiert, aber das Kernproblem bleibt bestehen

Benutzeravatar
theo
Beiträge: 10934
Registriert: Mo 11. Sep 2006, 19:01

Re: TSynEdit/-Memo: beliebige Worte hervorheben (TRichEdit)

Beitrag von theo »

Zeilenweise kannst du mit
OnSpecialLineColors
was machen. Wortweise geht das eig. nicht mit Synedit.

am2
Lazarusforum e. V.
Beiträge: 116
Registriert: Di 21. Dez 2010, 09:59
OS, Lazarus, FPC: Win (L 0.9.26 beta FPC 2.2.2)
CPU-Target: 32 Bit

Re: TSynEdit/-Memo: beliebige Worte hervorheben (TRichEdit)

Beitrag von am2 »

Danke für die schnelle Antwort,
theo hat geschrieben:Zeilenweise kannst du mit
OnSpecialLineColors
was machen. Wortweise geht das eig. nicht mit Synedit.
Das heißt, ich müßte dann das Event des SynEdits verbiegen? Das wäre ja echt doof, weil ich diese Methoden idR so schreibe, dass ich ein Objekt befülle und nicht anfange, die Events zu verbiegen.

- Gibt es denn eine Alternative zu TSynEdit/Memo?
- Welchen Zweck hat eine Eigenschaft "SelectedColor.Foreground", wenn sie nichts visuelles bewirkt?
- Hätte ich evtl. eine Chance, wenn ich meine Spielerei in HTML ausdrücke?

Benutzeravatar
theo
Beiträge: 10934
Registriert: Mo 11. Sep 2006, 19:01

Re: TSynEdit/-Memo: beliebige Worte hervorheben (TRichEdit)

Beitrag von theo »

am2 hat geschrieben: - Hätte ich evtl. eine Chance, wenn ich meine Spielerei in HTML ausdrücke?
Mit der Ipro Komponente evtl. TIpHTMLPanel.

baba
Beiträge: 265
Registriert: Mi 4. Apr 2007, 17:47

Re: TSynEdit/-Memo: beliebige Worte hervorheben (TRichEdit)

Beitrag von baba »


am2
Lazarusforum e. V.
Beiträge: 116
Registriert: Di 21. Dez 2010, 09:59
OS, Lazarus, FPC: Win (L 0.9.26 beta FPC 2.2.2)
CPU-Target: 32 Bit

Re: TSynEdit/-Memo: beliebige Worte hervorheben (TRichEdit)

Beitrag von am2 »

Jau, das passt. Probier ich auf alle Fälle aus.
Danke

Antworten