Listview有多列数据,每列数据是在一定的范围内,如果某行数据的某个字段值不在范围内则将该单元格的数据设置为红色字体,否则为黑色字体

解决方案 »

  1.   

      procedure   Form.ListView2CustomDrawItem(Sender:   TCustomListView;   
          Item:   TListItem;   State:   TCustomDrawState;   var   DefaultDraw:   Boolean);   
      begin   
     
          if  (Item.SubItems.Strings[1])>3   then   
          begin   
              Sender.Canvas.Brush.Color   :=   clRed;   
              Sender.Canvas.Font.Color   :=   clYellow;   
          end;   
      end;
      

  2.   


    procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
      Item: TListItem; SubItem: Integer; State: TCustomDrawState;
      var DefaultDraw: Boolean);
    begin
      if SubItem=1 then
        self.ListView1.Canvas.Font.Color:=clRed;
      else
        Self.ListView1.Canvas.Font.Color:=clBlue;
      end;
    end;以上是修改单元格字体的方法,你可以根据自己的要求再进行补充,记住这里的subitem是从1开始的,而不是从0开始