Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Цветные строки в TListBox

Delphi , Компоненты и Классы , Списки

Цветные строки в TListBox

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

procedure TForm1.FormCreate(Sender: TObject);
 begin
   //Or set this property in the object inspector 
  //Oder im Objekt Inspektor einstellen 
  ListBox1.Style := lbOwnerDrawFixed;
 end;

 procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
   Rect: TRect; State: TOwnerDrawState);
 begin
   with Control as TListBox do
   begin
     Canvas.FillRect(Rect);
     Canvas.Font.Color := TColor(Items.Objects[Index]);
     Canvas.TextOut(Rect.Left + 2, Rect.Top, Items[Index]);
   end;
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 begin
   ListBox1.Items.AddObject('Red Item', Pointer(clRed));
 end;

 procedure TForm1.Button2Click(Sender: TObject);
 begin
   ListBox1.Items.AddObject('Green Item', Pointer(clGreen));
 end;

Программа на Delphi!

Код, который я предоставил, - это простой пример использования техники владельческого рисования для окрашивания элементов в контроле TListBox.

Вот что каждый процедура делает:

  1. FormCreate: Это обработчик события создания формы. Он устанавливает стиль компонента TListBox (ListBox1) в lbOwnerDrawFixed, что позволяет нам настроить рисование его элементов.
  2. ListBox1DrawItem: Это обработчик события владельческого рисования элемента. Он вызывается каждый раз, когда элемент нужно нарисовать в списке.

Вот что происходит внутри этой процедуры:

  • with Control as TListBox do - Мы используем оператор with для доступа к свойствам и методам компонента TListBox.
  • Canvas.FillRect(Rect); - Заливаем прямоугольник фоном (обычно белым).
  • Canvas.Font.Color := TColor(Items.Objects[Index]); - Устанавливаем цвет текста шрифта в цвет, связанный с элементом на указанном индексе. Мы используем свойство Objects для доступа к коллекции объектов и затем кастуем его в тип TColor.
  • Canvas.TextOut(Rect.Left + 2, Rect.Top, Items[Index]); - Нарисовываем текст элемента на указанной позиции (с отступом в 2 пикселя от левого края).

Теперь давайте посмотрим на обработчики событий клика кнопок:

  1. Button1Click: Это добавляет новый элемент в список с текстом "Red Item" и связанным цветом clRed.
  2. Button2Click: Это добавляет новый элемент в список с текстом "Green Item" и связанным цветом clGreen.

Обратите внимание, что в Delphi невозможно напрямую связать цвет с элементом в списке. Вместо этого нужно хранить цвет как объект (в этом случае, типа Pointer) вместе с текстом элемента. Техника владельческого рисования позволяет нам получить этот объект и использовать его значение для установки цвета шрифта.

В целом, это код демонстрирует, как создать colorful TListBox control, используя технику владельческого рисования и настраивая внешний вид каждого элемента.

В статье описывается, как создать в Delphi цветные строки в TListBox с помощью обработки события DrawItem и использования объектов для хранения цвета каждой строки.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Списки ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-10-08 18:18:44/0.0036430358886719/0