Установим у ListBox свойство style=lbOwnerDrawFixed. Далее у того же самого ListBox создаем событие OnDrawItem. Пишем код:
procedure TForm1.ListBoxSiteDrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
PaintImage(ListBoxSite, Control, Index, Rect);
end;
Теперь нужно написать процедуру PaintImage:
Procedure TForm1.PaintImage(List1 :TListBox; Control: TWinControl;
Index: Integer; Rect: TRect);
const W = 16;
H = 16;
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, Rect.Top, List1.Items[index]);
end;
end;
Константы W и H это ширина и высота нашего изображения в LinstBox. Далее нужно добавить в секцию, например, public код:
Procedure PaintImage(List1 :TListBox; Control: TWinControl;
Index: Integer; Rect: TRect);
И остается выложить на форму TImage и загрузить в него BMP размером 16*16 px.
Просмотров: 9820
Copyright © 2008 - 2018 Программирование на Delphi для начинающих и не только.
Полнота авторских прав на все материалы, опубликованные на сервере DelphiDevelop.ru принадлежит их авторам.
Перепечатка материалов разрешается с указанием авторства и гиперссылки на первоисточник информации.