Дано:
Форма, на ней есть ListView с данными. ViewStyle: vsReport
Нужно в зависимости от условия изменить цвет некоторых SubItems. В Delphi это делается просто, вот таким кодом:
procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if (Item.SubItems[SubItem - 1] = '1') then
Sender.Canvas.Font.Color := clRed
else
Sender.Canvas.Font.Color := clBlack;
end;Но в Lazarus это работать не хочет, выдаёт кучу ошибок. Как заставить текст отображаться другим цветом?
Update 1. Под виндой в Lazarus этот код работает. Проверил.
Update 2. С причиной ошибки разобрался. Там столбцы созданы заранее, а чтобы не было впечатления, что программа зависла, добавил в цикл Application.ProcessMessages, вот при попытке отрисовать ещё не добавленные SubItems и появлялась ошибка. Это решаемо. Но с цветом текста всё равно не работает.
