我用listview.Canvas.Font.Color的方法对记录的颜色太难控制
我想找一种Listview对记录的颜色控制的属性 请高手帮忙

解决方案 »

  1.   

    procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
      Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
    begin
    if Item.Data <>nil then
      (sender as Tlistview).Canvas.Font.Color :=rgb(0,80,0)
    else if .... then
      (sender as Tlistview).Canvas.Font.Color :=rgb(90,0,0);end;
      

  2.   

    楼上的没有试成功。望指正。
    1、引用:commctrl单元:
    2、然后在listview selectitem事件添加代码
    procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem;
      Selected: Boolean);
    begin
    if Item<>nil then
      SendMessage(Listview1.Handle, LVM_SETTEXTCOLOR, 0, clred);
    end;
      

  3.   

    laihecongxi(兴哥) 可以解释以下SendMessage()中的意义和中间两个参数吗?
      

  4.   

    这个很简单,写TListView的OnAdvancedCustomDrawItem事件就可以了:procedure TForm1.ListView1AdvancedCustomDrawItem(Sender: TCustomListView;
      Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
      var DefaultDraw: Boolean);
    begin
      if Item.Caption<>'322' then
        Sender.Canvas.Font.Color:=clRed;
    end;
      

  5.   

    谢谢 (烈焰) ~指正 以前对这个操作的比较少。
    okwang1979(小笨) :
    sendmessage()函数
    你在www.google.com查一查比我要讲解的清楚多了。呵呵,找不到的话你再通知我
    我这里有些文章,给你发过去。