ListBox mit Iconbilder
-
Hi zusammen,
habe schon einen anderen Thread offen gehabt, aber mache nun einen neuen auf, um übersichtlicher zu bleicben!!
Hätte gerne in meiner Listbox kleine Icons vor den Einträgen!
Am liebsten ein Bild!!!Habe bis jetzt folgendes und das läuft auch wunderbar:#
void __fastcall TForm1::UnbearbeiteteSongs_OnDrawItem(TWinControl *Control, int Index, TRect &Rect, TOwnerDrawState State) { //Aktiv if(State.Contains(odSelected)) { UnbearbeiteteSongs->Canvas->Brush->Color = clBlack; // Hintergrundfarbe UnbearbeiteteSongs->Canvas->Font->Color = clWhite; // Textfarbe UnbearbeiteteSongs->Canvas->Font->Size = 12; }else if(Index % 2 && !State.Contains(odFocused)) { UnbearbeiteteSongs->Canvas->Brush->Color = clSilver; UnbearbeiteteSongs->Canvas->Font->Color = clBlack; UnbearbeiteteSongs->Canvas->Font->Size = 10; }else{ UnbearbeiteteSongs->Canvas->Brush->Color = clWhite; UnbearbeiteteSongs->Canvas->Font->Color = clBlack; UnbearbeiteteSongs->Canvas->Font->Size = 10; } UnbearbeiteteSongs->Canvas->FillRect(Rect);// Hintergrund zeichnen UnbearbeiteteSongs->Canvas->TextRect(Rect, Rect.Left, Rect.Top,UnbearbeiteteSongs->Items->Strings[Index]); // Text zeichnen }Sollte ja normal mir der Draw-methode hinhauen, aber ich bekomms halt irgendwie nicht hin!!!!
Wäre um eure Hilfe sehr dankbar!!
danke Bench
-
Zers,
habs geschaft und es sieht geil aus!!!!!!!!!!!

Meine Lösung:
void __fastcall TForm1::UnbearbeiteteSongs_OnDrawItem(TWinControl *Control, int Index, TRect &Rect, TOwnerDrawState State) { //Zeigt kleines Bildchen an!!!! Graphics::TBitmap* bmp = new Graphics::TBitmap(); //Aktiv if(State.Contains(odSelected)) { UnbearbeiteteSongs->Canvas->Brush->Color = clBlack; // Hintergrundfarbe UnbearbeiteteSongs->Canvas->Font->Color = clWhite; // Textfarbe UnbearbeiteteSongs->Canvas->Font->Size = 12; bmp->LoadFromFile("Testbild2.bmp"); //UnbearbeiteteSongs->Canvas->DrawFocusRect(Rect); }else if(Index % 2 && !State.Contains(odFocused)) { UnbearbeiteteSongs->Canvas->Brush->Color = clSilver; UnbearbeiteteSongs->Canvas->Font->Color = clBlack; UnbearbeiteteSongs->Canvas->Font->Size = 10; bmp->LoadFromFile("Testbild1.bmp"); }else{ UnbearbeiteteSongs->Canvas->Brush->Color = clWhite; UnbearbeiteteSongs->Canvas->Font->Color = clBlack; UnbearbeiteteSongs->Canvas->Font->Size = 10; bmp->LoadFromFile("Testbild.bmp"); } UnbearbeiteteSongs->Canvas->FillRect(Rect); UnbearbeiteteSongs->Canvas->Draw(Rect.left + 2, Rect.top + ((Rect.Height() - bmp->Height) / 2), bmp); UnbearbeiteteSongs->Canvas->TextOutA(Rect.left + 4 + bmp->Width, Rect.top + ((Rect.Height() - UnbearbeiteteSongs->Canvas->TextHeight(UnbearbeiteteSongs->Items->Strings[Index])) / 2 ), UnbearbeiteteSongs->Items->Strings[Index]); delete bmp; } Danke euch! Bench