Delphi-PRAXiS
Seite 2 von 2     12   

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 Schriftfarbe in Listbox (https://www.delphipraxis.net/28437-schriftfarbe-listbox.html)

paelesoft 7. Nov 2004 19:11

Re: Schriftfarbe in Listbox
 
@Thornberry^^
1. Die Farbe soll aus der Registry kommen.
2. Rot auf rotem Grund???

------------------------------------------------------------------------------------

Natürlich muss ein Textout erfolgen. Also

Delphi-Quellcode:
procedure TForm1.Listbox1DrawItem(Control: TWinControl;
  Index: Integer; Rect: TRect; State: TOwnerDrawState);
// "regist" ist in TForm1.FormCreate initialisiert worden?!
var Farbe : TColor;
begin
  { ... wenn Hintergrundfarbe verändert werden soll, dann siehe ^^^ }
  Listbox1.Canvas.FillRect(Rect);
  Farbe:=regist.ReadInteger('Name_'+IntToStr(Index)+'_color');
  Listbox1.Font.Color:=Farbe;
  { ... eventuelle Formatierungen ... oder sonstige Manipulationen an Texten oder Stilen....}
  Listbox1.Canvas.TextOut(Rect.Left, Rect.Top, Listbox1.Items[Index]);
end;

Nicodius 7. Nov 2004 19:35

Re: Schriftfarbe in Listbox
 
Zitat:

Zitat von paelesoft
@Thornberry^^
2. Rot auf rotem Grund???


den code ändern kannst du hoffentlich aber schon :roll: :zwinker:

Aike 7. Nov 2004 19:49

Re: Schriftfarbe in Listbox
 
Vielen Dank für eure Hilfe! Nach zwei Stunden hat 's funktioniert ;-)

Delphi-Quellcode:
  regist:=TRegistry.Create;
  regist.RootKey:=HKEY_CURRENT_USER;
  regist.OpenKey(...,true);
  regist.GetValueNames(temp);

  Listbox1.Canvas.Brush.Color := clWhite;

  for i:=0 to temp.Count - 1 do
  begin
    if regist.ReadString('Name'+IntToStr(i))=Listbox1.Items[Index] then
    begin
      Farbe:=regist.ReadInteger('Name'+IntToStr(i)+'color');
      lstbxChannelsCPC.Canvas.Pen.Color := Farbe;
      lstbxChannelsCPC.Canvas.FillRect(Rect);
      lstbxChannelsCPC.Canvas.Font.Color := Farbe;
      lstbxChannelsCPC.Canvas.TextOut(Rect.Left, Rect.Top, Listbox1.Items[Index]);
    end;
  end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:49 Uhr.
Seite 2 von 2     12   

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