Farbige ListBox

MaPa2701

Grünschnabel
Hallo Leute,

wie kann ich in einer ListBox farbige Einträge erzeugen?

Möchte bestimmte Einträge in einer anderen Farbe machen, aber wie?

Habe schon gegoogelt aber nichts gefunden.

Bitte um Eure Hilfe!!

Gruß
Marcus
 
Diese Lösung habe ich auch schon gefunden, nur ich weiss nicht wie ich den Quellcode anwenden soll, hab schon einiges ausprobiert, bekomm es aber einfach nicht hin, die Farbe ändert sich bei mir immer fest (also zu einer bestimmten Zeile) und nicht wenn ich es will.

kannst du mir den code erklären

will in die liste ein paar einträge erzeugen (schwarz)
bei bestimmten einträge (position ändert sich immer) sollen die Einträge rot sein

Danke im vorraus.

gruß marcus
 
also ich lese Daten aus einer Datei aus, wenn am im Text ein * ist, soll der Text ROT sein und wenn nicht dann SCHWARZ.

Der Code funktioniert, nur die blöde Farbänderung nicht

Code:
do
                       {			
			fp.getline(buffer,nCounts,(char)'\n');
			length = strlen(buffer);
			if (length >=1)
				{
				pch = strstr (buffer,suche);
				if (pch != NULL)
                                       {
                                       // Hier soll der TEXT ROT sein 
                                       Form1->ListBox1->Items->Add(buffer);
					}
                                else
                                        {
                                       // hier soll der Text schwarz sein
                                       ListBox1->Items->Add(buffer);
                                        }

				if (buffer[(length-1)] == '\r')
					{
					buffer[(length-1)]='\0';
					}
				}
			else
				{
				ENDE = 0;
				}
			}while (ENDE);
                        ComboBox2->Text = "Ereitertes anzeigen";
                        fp.close();


Gruß
Marcus
 
Zuletzt bearbeitet:
Hallo,

also du musst den Style von der ListBox auf "lbOwerDrawVariable" setzen sonst wird es nicht Farbig wenn du in dem OnDrawItem-Ereignis die Farbe der Schriftart änderst und da kannste dann auch die Überprüfung einbauen die nach dem * Zeichen sucht.
 
gibt es keine Möglichkeit die Farbe ausserhalb des OnDrawItem-Ereignis zu ändern, weil ich mit vielen bei meinen vielen anderen Funktionen die Farbe auch noch ändern möchte.

mir wäre es am liebsten wenn es syntax-mäßig so gehen würde:

ListBox1->Items->ColorText = clRed;
ListBox1->Items->Add("TEST");

wenn ich beim nächsten Eintrag wieder eine andere Farbe haben möchte, dann:

ListBox1->Items->ColorText = clBlue;
ListBox1->Items->Add("TEST");

oder irgend eine andere Möglichkeit, würde mich auch zufriedengeben, wenn man über das Add die Farben ändern könnte, also ListBox1->Items->Add("Test", clBlue);

Bin halt kein Profi HAst du irgendeine Idee?

Gruß
Marcus
 
Also ich habs jetzt auf jedenfall hinbekommen, Danke erstmal, aber würde die Farbe gerne anderst ändern und zwar so dass dies ausserhalb des OnDrawItem-Ereignis passiert.

Gruß
Marcus
 
Zurück