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
    

Anmelden zum Antworten