Добавление иконки в ListBox

Тема в разделе "Delphi", создана пользователем WinHack, 24 ноя 2016.

  1. WinHack
    Чтобы добавить иконку в TListBox, выполните следующее:
    icon_listbox.jpg
    Код:
    procedure TForm1.Button1Click(Sender: TSender);
    var Icon: TIcon;
    begin
     Icon := TIcon.Create;
     Icon.LoadFromFile('DELPHI.ICO');
     ListBox1.Items.AddObject('Delphi', Icon);
    end;
    И далее:

    Код:
    procedure TForm1.ListBox1DrawItem(Control: TWinControl;
        Index: Integer;
        Rect: TRect; State: TOwnerDrawState);
    var
    
      Icon: TIcon;
      Offset: Integer; { Смещение текста }
    begin
    
      with (Control as TListBox).Canvas do
        { Рисуем на управлении }
      begin
        FillRect(Rect); { Очищаем прямоугольник }
        Offset := 20; { Смещение по умолчанию }
        Icon := TIcon((Control as TListBox).Items.Objects[Index]);
          { Получаем иконку для этого пункта }
        if Icon <> nil then
        begin
          Draw(Rect.Left + 1, Rect.Top + 2, TIcon((Control as
            TListBox).Items.Objects[Index]));
    
          Offset := Icon.width + 9;
            { Добавляем пробел между иконкой и текстом }
        end;
        TextOut(Rect.Left + Offset, Rect.Top + 7, (
            Control as TListBox).Items[Index])
          { Вывод текста }
      end;
    end;