Сначала создайте 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; |
- << Назад
- Вперёд
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!