Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Richedit - In einer Zeile nur ein par Zeichen einfärben, möglich? (https://www.delphipraxis.net/155635-richedit-einer-zeile-nur-ein-par-zeichen-einfaerben-moeglich.html)

sun4623 1. Nov 2010 23:38

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?

himitsu 1. Nov 2010 23:41

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.

Luckie 2. Nov 2010 00:02

AW: Richedit - In einer Zeile nur ein par Zeichen einfärben, möglich?
 
Um himitsu zu ergänzen: SelStart und SelLength sind deine Freunde.

DeddyH 2. Nov 2010 08:52

AW: Richedit - In einer Zeile nur ein par Zeichen einfärben, möglich?
 
Du hast SelAttributes in Deiner Aufzählung vergessen :)

Micha88 15. Dez 2011 12:16

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;

Bummi 15. Dez 2011 12:40

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;

Micha88 15. Dez 2011 12:53

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:
http://www.delphipraxis.net/116296-v...ox-string.html


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz