Я думал, что это заслуживает комментариев - строка: 'S: = Item.SubItems [i];' должно быть 'S: = Item.SubItems [i-1];' В противном случае вы получите ошибки индекса списка.

у покрасить один ряд в серый, а другой в белый.
У меня есть следующий код, но в Windows 7 есть пустое пространство вертикальных линий столбцов.
Как мне покрасить все строки?

procedure TForm2.Update_ListBoxCustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
 if Item.Index mod 2=0
 then
  begin
   Sender.Canvas.Font.Color:=clBlack;
   Sender.Canvas.Brush.Color:=$F6F6F6;
  end
 else
  begin
   Sender.Canvas.Font.Color:=clBlack;
   Sender.Canvas.Brush.Color:=clWhite;
  end;
end;

Ответы на вопрос(1)

Ваш ответ на вопрос