У листбокса ставиш style в lbOwnerDrawFixed.
по onDrawItem вызываеш процедуру PaintImage(ListBoxSite, Control, Index, Rect);
и описываеш процедуру
Код:
Procedure TForm1.PaintImage(List1 :TListBox; Control: TWinControl; Index: Integer; Rect: TRect);
const W = 24;
H = 24;
var BMPRect: TRect;
begin
with (Control as TListBox).Canvas do
begin
FillRect(Rect);
List1.Canvas.Draw(0, Rect.Top, Image1.Picture.Graphic);
BMPRect := Bounds(Rect.Left, Rect.Top, W, H);
TextOut(Rect.Left+W+10, Rect.Top+10, List1.Items[index]);
end;
end;
Примерно так. Но это с image рисует. Переделаеш под свои нужды
Либо
вот статейка