Правильно это будет выглядеть так:
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;