Hallo
wenn du Objekte zu Luistbox als Object hinzufügst, darfst du sie nicht wieder freigeben. Die Bilder kannst du erst z.B. im ondestroy der Form freigeben.
Ansosnten ist auch ein Beispiel in der
OH (da du die 2005 hast, kopier ichs mal lieber)
Delphi-Quellcode:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect:TRect;State: TOwnerDrawState);
var
Bitmap: TBitmap; { Temporäre Variable für Bitmap }
Offset: Integer; { Text-Offset }
begin
with (Control as TListBox).Canvas do { Zeichnen in der Liste, nicht im Formular }
begin
FillRect(Rect); { Rechteck löschen }
Offset := 2; { Standard-Offset definieren }
Bitmap := TBitmap((Control as TListBox).Items.Objects[Index]); { Bitmap abrufen }
if Bitmap <> nilthen
begin
BrushCopy(Bounds(Rect.Left + Offset, Rect.Top, Bitmap.Width, Bitmap.Height),
Bitmap, Bounds(0, 0, Bitmap.Width, Bitmap.Height), clRed); { Bitmap darstellen }
Offset := Bitmap.width + 6; { Vier Pixel zwischen Bitmap und Text hinzufügen }
end;
TextOut(Rect.Left + Offset, Rect.Top, (Control as TListBox).Items[Index]) { Text anzeigen }
end;
end;
Ansonsten zeig mal deine Drawroutine
Mfg Frank