Чи можна в listbox вставити картинку

Чи можна в Listbox вставити картинку?

Є записи і в залежності від умов хотілося б додати до кожної свою картинку. Чи можна зробити таке в Listbox? Дуже потрібен код.
Заздалегідь дякую!

в довідці по OnDrawItem є приклад

procedure TForm1.ListBox1DrawItem (Control: TWinControl; Index: Integer;
# XA0; Rect: TRect; State: TOwnerDrawState);
begin
# 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]);
end;

procedure TForm1.FormCreate (Sender: TObject);
begin
# XA0; ListBox1.Style: = lbOwnerDrawFixed;
end;


> Crazy monkey # XA0; (14.09.06 16:15)


> І в залежності від умов

Умов досить багато, але мені треба було знати головним чином як малювати в listbox.

Спасибі за відповідь!

А чи не підкажете як бути? Як заповнити всі записи однієї картинкою? Ось цей код:
procedure TForm1.ListBox1DrawItem (Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
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]);
end;

дозволяє намалювати картинку тільки в першому рядку, а як намалювати одну й ту ж саму картинку в усіх рядках, які я додав?

Він малює не одну, а багато, але в одному місці. Для завдання координат треба використовувати Rect, як робиш це в разі виведення тексту

> Дозволяє намалювати картинку тільки в першому рядку, а
> Як намалювати одну й ту ж саму картинку в усіх рядках, які
> Я додав?

OnDrawItem викликається для кожного рядка в списку. Номер поточного рядка передається в параметрі Index, поточна область малювання - в параметрі Rect. Почитав би, все-таки, Довідку.

П.С. У "горе програміста" код кілька некоректний.


> Crazy monkey # XA0; (14.09.06 21:24) [4]

procedure TForm1.ListBox1DrawItem (Control: TWinControl; Index: Integer;
# XA0; Rect: TRect; State: TOwnerDrawState);
begin
# XA0; ListBox1.Canvas.FillRect (Rect);
# XA0; ImageList1.Draw (ListBox1.Canvas, Rect.Left + 1, Rect.Top. 0, true);
# XA0; ListBox1.Canvas.TextOut (Rect.Left + 19, Rect.Top + 1, Text);
end;

Дякую шановні!
Особливо ГореПрограміст! Респект.

Кінцевий код я зробив таким:

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