Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Как элемент списка нарисовать своим цветом

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

Как элемент списка нарисовать своим цветом

Hе забудь установить свойство Style у твоего ListBox в lbOwnerDrawFixed или в lbOwnerDrawVariable.


procedure TForm1.ListBox1DrawItem(Control: TWinControl; index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
  with ListBox1 do
  begin
    if odSelected in State then
      Canvas.Brush.Color:=clTeal { твой цвет }
    else
      Canvas.Brush.Color:=clWindow;
    Canvas.FillRect(Rect);
    Canvas.TextOut(Rect.Left+2,Rect.Top,Items[index]);
  end;
end;

Here is the translation of the provided content into Russian:

Код, который вы предоставили, - это процедура для рисования элементов в списке при установке свойства lbOwnerDrawFixed или lbOwnerDrawVariable списка на True. Это позволяет вам настроить, как каждый элемент в списке будет рисоваться.

В этом конкретном коде каждый элемент рисуется с использованием либо стандартного цвета окна (clWindow) если он не выбран, либо зеленого цвета (clTeal) если он выбран. Состояние выбора определяется проверкой наличия флага odSelected в параметре State, передаваемом процедуре.

Вот как можно модифицировать этот код для рисования каждого элемента с собственным цветом:

procedure TForm1.ListBox1DrawItem(Control: TWinControl; index: Integer; 
  Rect: TRect; State: TOwnerDrawState);
begin
  with ListBox1 do
  begin
    if odSelected in State then
      Canvas.Brush.Color:=clTeal { ваш собственный цвет }
    else
      Canvas.Brush.Color:=TColor(Items[index].ToString); // Используйте цвет из текста элемента
    Canvas.FillRect(Rect);
    Canvas.TextOut(Rect.Left+2, Rect.Top, Items[index]);
  end;
end;

В этом коде если элемент не выбран, его цвет будет установлен в цвет, соответствующий первой части текста элемента. Например, если у вас есть элемент с именем "Red", он будет рисоваться с цветом clRed.

Вы можете заменить TColor(Items[index].ToString) на свой собственный логик для определения цвета каждого элемента. Это могло бы включать в себя разбор текста элемента или использование словаря для маппинга элементов к цветам.

В статье описывается способ рисования элементов списка в ListBox с использованием свойств Style и OwnerDrawFixed или OwnerDrawVariable для настройки цвета фона элемента в зависимости от его состояния.


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


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



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


реклама



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

Время компиляции файла: 2024-05-10 07:13:18
2024-05-19 16:24:30/0.01042914390564/2