![]() |
[Gelöst] Einzelne Zeile farbig im JvRichEdit
Hi,
wieder mal eine Frage zu meiner Lieblings-Komponente dem JvRichEdit :mrgreen: In der Demo kann man einen ausgewählten Teil farbig machen, allerdings raff ich nicht ganz wie. Bei mir würds schon reichen, wenn einfach eine bestimmte Zeile dann eingefärbt wird. Also sowas wie
Delphi-Quellcode:
oder so.
JvRichEdit1.lines[5].color := clred;
Kann mir jemand erklären wie das geht? |
Re: Einzelne Zeile farbig im JvRichEdit
Hallo Neuni,
der Bereich, der verändert werden soll, muß zuvor markiert werden. Dann funktioniert (getestet mit TRichEdit):
Delphi-Quellcode:
mfg
rtf.SelAttributes.Color := clRed;
eddy |
Re: Einzelne Zeile farbig im JvRichEdit
Danke, das geht ja schonmal wunderbar, aber wie kann ich eine Zeile markieren?
Hab schonmal sowas probiert:
Delphi-Quellcode:
Aber das geht nur dann wenn man das im onclick oder so des JvRichEdits benutzt. Bei mir muss das ganze beim klicken eines Buttons passieren.
Line := SendMessage(RichEdit.Handle, EM_LINEFROMCHAR, RichEdit.SelStart, 0);
RichEdit.SelStart := RichEdit.Perform(EM_LINEINDEX, Line, 0); RichEdit.SelLength := Length(RichEdit.Lines[Line]); |
Re: Einzelne Zeile farbig im JvRichEdit
Hallo Neuni,
ich habe es mal ausprobiert:
Delphi-Quellcode:
Mit dem obigen Code wird die 2. Zeile auf Farbe Blau gesetzt und komplett fett geschrieben.
procedure TFAuf.SpeedButton4Click(Sender: TObject);
const crlf = chr($0D) + chr($0A); // #13#10 begin s := rtfpp.Text; i := Pos(crlf, s); if i > 0 then begin rtfpp.SelStart := i +1; // <-- hier hatte ich +2 erwartet s := copy(s, i +1, length(s)); i := Pos(crlf, s); if i = 0 then rtfpp.SelLength := length(s) else rtfpp.SelLength := i; rtfpp.SelAttributes.Color := clBlue; end; end; Damit wäre Dein Problem wohl gelöst, Du mußt Dir nur überlegen, wie Du die Stelle findest, die Du vom Programm aus ändern willst. Soll eine ganze Zeile markiert (= geändert) werden, dann mußt Du das ganze bloß noch in eine entsprechende Schleife verpacken. mfg eddy |
Re: Einzelne Zeile farbig im JvRichEdit
Habs schon hinbekommen. Hier meine Lösung:
Delphi-Quellcode:
chat ist ein JvRichEdit.
i := chat.Lines.Count-1;
chat.SelStart := chat.Perform(EM_LINEINDEX, i, 0); chat.SelLength := Length(chat.Lines[i]); chat.SelAttributes.Color := edit1.Font.Color; i ist als integer festgelegt. Es wird also immer die letzte Zeile gefärbt, denn die Nachricht die man einträgt ist ja immer die letzte. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz