Helyezhetek képet a listában

Helyezhetek képet a Listboxba?

Vannak nyilvántartások, és a körülményektől függően mindegyikhez hozzá szeretnék adni saját képemet. Meg tudom csinálni a Listboxban? A kód nagyon szükséges.






Köszönjük előre!

Az OnDrawItem segítségével egy példa található

eljárás TForm1.ListBox1DrawItem (Control: TWinControl; Index: Integer;
# xA0; Rect: TRect; Állam: TOwnerDrawState);
kezdődik
# xA0; ListBox1.Canvas.FillRect (Rect);
# xA0; ImageList1.Draw (ListBox1.Canvas, 1, 0, 0, true);
# XA0; ListBox1.Canvas.TextOut (Rect.Left + 19, Rect.Top + 1, ListBox1.Items.Strings [0]);
végén;

eljárás TForm1.FormCreate (Feladó: TObject);
kezdődik
# xA0; ListBox1.Style: = lbOwnerDrawFixed;
végén;


> Őrült majom # xA0; (2006.09.14. 16:15)


> és a körülményektől függően

Rengeteg körülmény van, de elsősorban arról kell tudnom, hogy hogyan kell felhívni a listázót.

Köszönöm a választ!

És ne mondd meg, hogy legyenek? Hogyan töltsük ki az összes rekordot egy képen? Itt van a kód:
eljárás TForm1.ListBox1DrawItem (Control: TWinControl; Index: Integer;






Rect: TRect; Állam: TOwnerDrawState);
kezdődik
ListBox1.Canvas.FillRect (Rect);
ImageList1.Draw (ListBox1.Canvas, 1, 0, 0, true);
ListBox1.Canvas.TextOut (Rect.Left + 19, Rect.Top + 1, ListBox1.Items.Strings [0]);
végén;

lehetővé teszi, hogy csak egy képet rajzoljon az első sorban, de hogyan készíthet egy és ugyanazt a képet az összes sorban, amit hozzáadtam?

Nem egyet, hanem sokat, de egy helyen. A koordináták megadásához a Rect-et kell használni, ahogyan a szöveges kimenet esetében is

> lehetővé teszi, hogy csak egy képet rajzoljon az első sorban, és
> hogyan kell egy és ugyanazon képet rajzolni minden sorban
> Hozzáadtam?

Az OnDrawItem a listán szereplő minden egyes sorra szól. Az aktuális vonal száma átkerül az Index paraméterbe, az aktuális rajzterület a Rect paraméterben van. Végül is elolvastam a Súgót.

PS A "programozó bánatában" a kód némileg helytelen.


> Őrült majom # xA0; (14.09.06 21:24) [4]

eljárás TForm1.ListBox1DrawItem (Control: TWinControl; Index: Integer;
# xA0; Rect: TRect; Állam: TOwnerDrawState);
kezdődik
# xA0; ListBox1.Canvas.FillRect (Rect);
# xA0; ImageList1.Draw (ListBox1.Canvas, Rect.Left + 1, Rect.Top 0, igaz);
# xA0; ListBox1.Canvas.TextOut (Rect.Left + 19, Rect.Top + 1, szöveg);
végén;

Köszönöm, drágám!
Különösen GoretProgramist! Tekintetben.

A végső kódot így csináltam:

ListBox1.Canvas.FillRect (Rect);
Form1.ImageList1.Draw (ListBox1.Canvas, Rect.Left + 1, Rect.Top, 0, igaz);
ListBox1.Canvas.TextOut (Rect.Left + 19, Rect.Top + 1, ListBox1.Items.Strings [index]);