Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Lazarus IDE. Как изменить цвет текста в Listbox?

ПрограммированиеWindows+3
Влад Лодыгин
  ·   · 6,5 K
Разработчик мобильных приложений, Dart/Flutter...  · 20 нояб 2021
Правильно это будет выглядеть так:

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);

begin
with (Control as TListBox).Canvas do
 begin

  //параметры шрифта и цвета
  Font.Color := clRed;
  [Font.Style](http://Font.Style):=Font.Style+[fsBold];

  //параметры фона
  Brush.Color:=clYellow;


  //применение этих параметров к фону и к тексту
  FillRect(Rect);
  TextOut(Rect.Left, [Rect.Top](http://Rect.Top), (Control as TListBox).Items[Index]);
 end;

end;   
Ну и не забывайте, что все это надо прицепить к событию вашего ListBox1 onDrawItem и выставить свойтво Style в lbOwnerDrawFixed
Если нужно менять цвет только у конкретных элементов, то можно работать со свойством Index, например
    case Index of
      1,2,5: Font.Color := clRed;
    else
      Font.Color := clBlue;
    end;
Увлекаюсь естественными науками и математикой...  · 20 нояб 2021
Для этого требуется назначить свойство Style равным lbOwnerDrawFixed, определить свою процедуру добавления элемента (где введём цвет как ассоциированный с элементом объект), и определить процедуру прорисовки элемента. Процедура... Читать далее