![]() |
TListBox: Unabhängig vom Inhalt einfärben
Also ich möchte die Zeilen einer ListBox verschieden einfärben, jedoch unabhängig davon, ob bzw. wieviele Items es gibt.
Wenn neue Items dazukommen, sollen diese natürlich dann drübergezeichnet werden, so dass die Hintergrundfarbe ganz normal bleibt. Dies hier ist ein Ansatz, färbt jedoch nur die Zeilen ein, wo sich auch wirklich Items befinden ( ![]() |
Re: TListBox: Unabhängig vom Inhalt einfärben
Wenn ich mich Recht erinnere gibts auch bei TListBox die Eigenschaft Color mit der du die Hintergrundfarbe festlegen kannst ...
|
Re: TListBox: Unabhängig vom Inhalt einfärben
Zitat:
Die Zeilen sollen abwechselnd eine andere Farbe bekommen (1. Grau, 2. Schwarz, 3. Grau, etc.) -> so wie in dem Beispiel was ich oben dazugehängt habe |
Re: TListBox: Unabhängig vom Inhalt einfärben
moechtest du, dass auch Zeilen gefaerbt werden, welche keinen Text haben?
|
Re: TListBox: Unabhängig vom Inhalt einfärben
Zitat:
|
Re: TListBox: Unabhängig vom Inhalt einfärben
Hallo,
Zitat:
überprüf mal ob Du den richtig eingebaut hast. |
Re: TListBox: Unabhängig vom Inhalt einfärben
Wahrscheinlich geht der Code vom SwissDelphiCenter. Aber der kommt mir doch reichlich kompliziert vor. Das hier müßte doch reichen :
Delphi-Quellcode:
Bei mir sind die Zeilen jetzt abwechseln weiß oder blau. Egal, ob sie neu hinzukommen, oder bereits da sind. Was macht denn da der Swiss-Code wichtiges ? :gruebel:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState); var i : Integer; begin for i := 1 to Listbox1.Items.Count do begin if Index mod 2 = 0 then begin Listbox1.Canvas.Brush.Color := clBlue; Listbox1.Canvas.FillRect(Rect); Listbox1.Canvas.TextOut(Rect.Left, Rect.Top, Listbox1.Items[Index]); end else Listbox1.Canvas.TextOut(Rect.Left, Rect.Top, Listbox1.Items[Index]); end; end; |
Re: TListBox: Unabhängig vom Inhalt einfärben
Hallo,
der Code färbt auch Zeilen die noch nicht belegt sind. |
Re: TListBox: Unabhängig vom Inhalt einfärben
Zitat:
edit: hier war kein roter Kasten :angel2: Mfg Frank |
Re: TListBox: Unabhängig vom Inhalt einfärben
Und wozu soll das gut sein ? :shock: Man braucht doch selbst dann nur dafür sorgen, daß genügend Zeilen für den sichtbaren Bereich vorhanden sind. Z.B. so in der Richtung :
Delphi-Quellcode:
Kommen dann noch welche dazu, werden die auch wie vorher abwechselnd gefärbt. Aber ich sehe gerade, daß der Tip von Peter Below ist. Das erklärt einiges. :mrgreen: Wahrscheinlich ist der Code auch uralt.
procedure TForm1.FormCreate(Sender: TObject);
var i : Integer; begin for i := 1 to (ListBox1.Height DIV Listbox1.ItemHeight) do ListBox1.Items.Add(''); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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