ListBox
-
Ich versteh nicht so ganz, wie/wo man angeben kann, welches Item, welche Farbe haben soll usw.
Ich meine man kann ja in der Funktion, die auf der einen Seite geschrieben wurde einzelnen Items eine Farbe zuordnen, doch wie genau soll das Funktionieren?!
-
Hallo,
Das ist vielleicht etwas einleuchtender

Die Einträge werden beim Schreiben gezeichnet / eingefärbt...
mfg, Micha!
-
TheCaleb schrieb:
Ich meine man kann ja in der Funktion, die auf der einen Seite geschrieben wurde einzelnen Items eine Farbe zuordnen, doch wie genau soll das Funktionieren?!
Na das steht doch da.
Aus dem weiter oben deklarierten Array von drei Farben wird in Abhängigkeit von der "Zeilennummer" (Index) jeweils eine Farbe für den Hintergrund und eine für die Schrift ausgesucht und dem Item zugewiesen.
Das könnte man natürlich auch direkt machen:if (Index == 1) //zweite Zeile { ListBox1->Canvas->Brush->Color = clGreen; usw.Das Auswahlkriterium bleibt dir überlassen, folgender Pseudocode wäre genauso möglich:
if (Uhrzeit > 18:00 && Uhrzeit < 19:00) { ListBox1->Canvas->Brush->Color = clRed; // zwischen 18 und 19 Uhr werden alle Einträge rot hinterlegt ...
-
Und wo trage ich diese Kriterien ein??
Ich verstehe nicht so ganz in welche Funktion das muss oder womit ich die dann aufrufen soll...
Soll das die Funktion von dem Link sein?!
-
Braunstein schrieb:
siehe FAQ
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39191.htmlDa steht das doch.
-
Ja und ich versteh im Mom nciht so ganz wie ich diese Funktion anwende oder wie auch immer!
-
Das ist das Ereignis OnDrawItem einer TListBox.
Edit: Also Listbox auswählen und im Objekt-Inspektor Ereignisse auswählen. Doppelklick in die noch leere Zuweisung bei OnDrawItem. Damit wird Dir die entsprechende Funktion erstellt...
-
Achso und dann ruft er bei jedem erstellen eines Itemes diese Funktion auf und würde dieses dann verändern, wenn ich es in dieser Funktion so definiert hätte??
-
Nein, diese Funktion wird jedesmal aufgerufen wenn ein Eintrag in der ListBox neu gezeichnet werden muss, nicht nur beim Erstellen. Dieses Ereignis wird für jeden sichtbaren Eintrag in der ListBox jeweils einzeln aufgerufen.
Halte die Funktion so simpel wie möglich, da sie sehr oft augerufen wird.
-
Hm, welchen Grund könnte es geben, dass die Funktion nicht aufgerufen wird?
Ich adde Items zu einer ListBox und würde dann gerne die Items mit einer Farbe bestücken!
-
Hallo
Wenn die Methode mit dem Event der Listbox verbunden ist und die Eigenscht Style auf OwnerDraw... umgestellt ist wird die Methode auch aufgeufen.
bis bald
akari
-
Vielen Dank aber ich habe nur folgende zur Auswahl:
lbOwnerDrawFixed
lbOwnerDrawVariable
lbOwnerDrawVariable
lbStandard
lbVirtual
lbVirtualOwnerDrawBei keinen von Denen wird die Funktion aufgerufen!
Oder irre ich mich da?
-
Hallo
Wir haben dir alles gesagt was nötig ist.
Benutzt also den Debugger und schau mit einem Breakpoint nach ob die Methode aufgerufen wird.bis bald
akari
-
Oh danke, du hast Recht!
