Подписаться на RSS рассылку
Главная » Статьи по Delphi » Компоненты » Картинки в ListBox

Картинки в ListBox

Автор:

Tweet


Установим у 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

Обсудить на форуме


Имя *:
Email:


Код *:

Copyright © 2008 - 2018 Программирование на Delphi для начинающих и не только.

Полнота авторских прав на все материалы, опубликованные на сервере DelphiDevelop.ru принадлежит их авторам.

Перепечатка материалов разрешается с указанием авторства и гиперссылки на первоисточник информации.