Einzelnen Beitrag anzeigen

Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: Listbox: Bilder dem Text voranstellen

  Alt 17. Jul 2005, 13:05
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

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat