Delphi:绘制ListView的行

时间:2011-07-04 03:55:32

标签: delphi listview colors row paint

我有一个ListView(vsReport):最后一个SubItem有一个文本“wait”。然后我会将其更改为“ok”或“error”。如何绘制整行(如果在CustomDrawItem中使用Sender.Canvas.Brush.Color,它将是Windows 7中的列之间的间隙),此SubItem为绿色(ok)和红色(错误)?

谢谢!

1 个答案:

答案 0 :(得分:1)

你可以做到

procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  if Item.Index = Sender.Items.Count - 1 then
  begin
    Sender.Canvas.Brush.Color := clSkyBlue;
    Sender.Canvas.FillRect(Item.DisplayRect(drBounds));
  end;
end;

但是我建议反对它,因为它是错误的(我不知道如何解决它)。

Screenshot http://privat.rejbrand.se/listviewentirerowfill.png