Содержание материала

Сначала создайте bmp-файл, который вы будете помещать около каждого элемента списка, в примере это 'c:\file.bmp'. Для создания файла можете воспользоваться специальной графической утилитой ImageEditor, которая входит в пакет Delphi. Желательно, чтобы размер файлы был 16х16. После этого вынесите на форму компонент TListBox. Его свойство Style установите в lbOwnerDrawVariable - это позволит нам прорисовывать каждый элемент списка самостоятельно.

 

Далее объявляем переменную:

  

var

Bit: TBitmap;

 

После этого задаём обработчику события OnDrawItem следующий вид:

 

Code:

procedure TForm1.ListBox1DrawItem(Control: TWinControl; index: Integer;

Rect: TRect; State: TOwnerDrawState);

var

cc: TCanvas;

begin

cc:=(Control as TListBox).Canvas;

cc.FillRect(rect);

cc.Draw(Rect.Left+Rect.Right-16,Rect.Top,Bit);

cc.TextOut(Rect.Left,Rect.Top,ListBox1.Items[index]);

end;

 

а обработчику события OnMeasureItem такой:

  

Code:

procedure TForm1.ListBox1MeasureItem(Control: TWinControl;

index: Integer; var Height: Integer);

begin

Height := 16;

end;

  

По созданию окна создаёт Bitmap и загружаем в него данные из файла:

 

Code:

procedure TForm1.FormCreate(Sender: TObject);

begin

Bit := TBitmap.Create;

Bit.LoadFromFile('c:\file.bmp');

end;

  

По уничтожению окна - уничтожаем Bitmap

 

Code:

procedure TForm1.FormDestroy(Sender: TObject);

begin

Bit.Destroy;

end;

 

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить