P
Hallo Patschi,
du must bei deinem ListBox Element die Style Eigenschaft auf OwnerDrawFixed setzen.
In der OnDrawItem Eigenschaft kannst du nun mit Canvas, also ListBox->Canvas deine Bilder zuweisen.
Wenn du ein Bild einfügst, musst du darauf achten, dass der Text danach wieder richtig angeordnet wird.
Hier nen kleines Beispiel. Ich gehe davon aus, dass die Bilder in einer Imagelist sind.
void __fastcall TForm1::ListBoxDrawItem(TWinControl *Control,
int Index, TRect &Rect, TOwnerDrawState State)
{
ListBox1->Canvas->FillRect(Rect);
if (State.Contains(odSelected))
{
ListBox->Canvas->Font->Color = clWhite;
ListBox->Canvas->Brush->Color = clNavy;
}
// Bild zeichnen. Der letzte Parameter enthält den Index des anzuzeigenden
// Bildes der ImageList. Ich habe das hier mal statisch auf 1 gesetzt.
ImageList->Draw(ListBox->Canvas, Rect.Left, Rect.Top, 1);
// Text anpassen
int startdraw = ImageList1->Width + 2;
ListBox->Canvas->TextOut(Rect.Left + startdraw, Rect.Top,
ListBox->Items->Strings[Index]);
}
Probiere einfach mal etwas rum und du wirst du schon zurechtfinden.
Gruß Philipp