![]() |
Richedit - In einer Zeile nur ein par Zeichen einfärben, möglich?
Ist es möglich anstelle gleich eine ganze zeile in richedit einzufärben ,nur bestimmte zeichen einzufärben? Ich habe bisher nur beispiele gefunden in denen gleiche eine ganze Textzeile eingefärbt wird. Ist das überhaupt möglich?
|
AW: Richedit - In einer Zeile nur ein par Zeichen einfärben, möglich?
Ja, es werden doch immer die Formatierungen des markierten Bereichs geändert,
also mußt du, anstatt eine ganze Zeile zu markieren, nur den gewünschten Bereich markieren und danach die Farbe ändern. |
AW: Richedit - In einer Zeile nur ein par Zeichen einfärben, möglich?
Um himitsu zu ergänzen: SelStart und SelLength sind deine Freunde.
|
AW: Richedit - In einer Zeile nur ein par Zeichen einfärben, möglich?
Du hast SelAttributes in Deiner Aufzählung vergessen :)
|
AW: Richedit - In einer Zeile nur ein par Zeichen einfärben, möglich?
Hallo,
mit SelStart, SelLength und SelAttributes habe ich versucht, ein paar bestimmte Zeichen in einer Zeile zu färben, doch das funktioniert nicht. Es wird zwar u.a. gefärbt, was gefärbt, werden soll. Der Großteil, deer gefärbt wird, soll es aber nicht:
Delphi-Quellcode:
for i := 0 to sl.Count - 1 do // in sl sind alle Zeilen des RichEdits gespeichert
begin linestr := Form1.RichEdit1.Lines[i]; tofindstr := Form1.Edit3.Text; RichEdit1.SelStart := Pos(tofindstr, linestr) - 1; RichEdit1.SelLength := Length(tofindstr); RichEdit1.SelAttributes.Color := clRed; RichEdit1.SelAttributes.Style := [fsBold, fsItalic]; end; |
AW: Richedit - In einer Zeile nur ein par Zeichen einfärben, möglich?
ich vermute Du suchst das
Delphi-Quellcode:
uses StrUtils;
///...... var i:INteger; Textstr,tofindstr:String; begin i := 1; tofindstr := Edit1.Text; Textstr := StringReplace(RichEdit1.Text,#13#10,#13,[rfReplaceAll]); i := PosEx(tofindstr,Textstr,i) - 1; while i > 0 do begin RichEdit1.SelStart := i ; RichEdit1.SelLength := Length(tofindstr); RichEdit1.SelAttributes.Color := clRed; RichEdit1.SelAttributes.Style := [fsBold, fsItalic]; i := PosEx(tofindstr,Textstr,i + Length(tofindstr) ) -1 ; end; end; |
AW: Richedit - In einer Zeile nur ein par Zeichen einfärben, möglich?
Ich weiß nun woran der Fehler lag. Ich habe das alles noch einmal umgestellt nach TListBox und folgenden gut funktionierenden Code verwendet:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 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-2025 by Thomas Breitkreuz