Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ListBox => Zeile färben (https://www.delphipraxis.net/100768-listbox-%3D-zeile-faerben.html)

Tommy1988 3. Okt 2007 16:51


ListBox => Zeile färben
 
Hallo, wie kann ich ganz einfach bei einer ListBox eine Zeile einfärben?

quendolineDD 3. Okt 2007 17:03

Re: ListBox => Zeile färben
 
Soll es nur eine Bestimmte Zeile einfärben?

Delphi-Quellcode:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
  with (control as TListBox) do
  begin
    if Index = 4 then //bei best. Zeile soll folgendes gelten
    begin
      Canvas.Brush.Color := clRed;
      Canvas.Pen.Color := clWhite;
      Canvas.Rectangle(Rect);
    end;
    Canvas.TextOut(Rect.Left + 1, Rect.Top + 1, Items[Index]);
  end;
end;
Geb keine Garantie das es funktioniert, ist schnell geschrieben wurden.

Edit: Also Quelltext hab ich kurz getetstet, tut einwandfrei.
Vergiss aber nicht, die Eigenschaft Style deiner ListBox auf lbOwnerDrawVariable zu stellen.
Ansonsten wird die Routine nicht aufgerufen.

Zitat:

Beschreibung

Mit Style können Sie festlegen, ob es sich bei dem Listenfeld um ein Standardlistenfeld handelt, das Strings anzeigt, oder um ein Owner-Draw-Listenfeld, das auch Grafiken anzeigen kann. Owner-Draw-Listenfelder ermöglichen es dem Entwickler, Einträge auf eine Weise anzuzeigen, die nicht dem Standard entspricht. Der entsprechende Quelltext zum Zeichnen von Elementen im Listenfeld muss in diesem Fall vom Anwendungsentwickler bereitgestellt werden.

Style bestimmt, ob das Listenfeld virtuell ist, die Einträge als dynamisch über Ereignisbehandlungsroutinen bereitgestellt werden. Standardmäßig hat Style den Wert lbStandard, was bedeutet, daß das Listenfeld nicht virtuell ist und alle Einträge als Strings angezeigt werden.

Tommy1988 3. Okt 2007 17:19

Re: ListBox => Zeile färben
 
Ok, das klappt soweit aber ich habe noch ein Problem.

ich hatte das schonmal gelöst hab aber vergessen wie das geht. undzwar dass der eintrag der listbox oben eingefügt wird statt unten

Mackhack 3. Okt 2007 17:22

Re: ListBox => Zeile färben
 
Neue Frage, neues Thema! Was hat ein ListBox Item einfuegen mit Farbe zu tun? :?:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 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