背景项目列表视图 - Delphi

时间:2015-08-09 17:49:15

标签: delphi listview delphi-xe5

我想知道如何绘制Listview项目。

我的情况如下: 我有一个listview,每次你做检查,这个检查返回true,你必须改变listview线颜色。我通过改变颜色看到了例子,但我无法适应我的想法。

procedure TForm1.OncustomDrawItem(Sender: TCustomListView; Item: TListItem;
  State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  if corlistview then Begin
         LstbxDados.Canvas.Brush.Color:= RGB(0, 0, 0);
         corlistview := false;
       End;
end;

程序

var corlistview : boolean = false;

procedure carrega(t:String);
begin
           if beginNada then begin
                  corlistview :=  true;
            end;

                LstbxDados.Items.BeginUpdate;
                try
                  countX := countX +1;
                with LstbxDados.Items.Add do begin
                  Caption := IntToStr(i+1);
                  Subitems.add(title);
                  Subitems.add(url);
                end;
                finally
                  LstbxDados.Items.EndUpdate;
                end;
end;

如何根据我的情况调整代码?

1 个答案:

答案 0 :(得分:2)

试试这个。我使用TListItem字幕的随机奇数和偶数来模拟你的样本中带有布尔结果的函数。

procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
  var i:integer;
begin
  i:= strtoint(Item.Caption);
  if i mod 2 =0 then
  begin
    Sender.Canvas.Brush.Color:=clNavy;
    Sender.Canvas.FillRect(Item.DisplayRect(TDisplayCode.drBounds));
  end;
end;

enter image description here