某列的一些数据符合条件就用红色表示
在dbgrid中很容易实现,但cxgrid本人
不太熟,不知哪位高手知道。
在dbgrid中是这样的
 if query1.FieldByName('all').asstring>40 then
        begin
                dbgrid1.Canvas.Font.Color:=clred;
                dbgrid1.Canvas.Brush.color:=clyellow;
        end
        else
        begin
                dbgrid1.Canvas.Font.Color:=clblue;
                dbgrid1.Canvas.Brush.color:=clyellow;
                end;
 
        dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);

解决方案 »

  1.   

    但道理是一样的呀,设DefaultDrawing := true;
    在OnDrawColumnCell事件写以上代码就行了
      

  2.   

    同意1楼的
    注意cxgrid是可以分多级的
    对cxview级进行操作
      

  3.   

    在tcxGrid1DBTableView 的 CustomDrawCell 事件中写。
    假如性别字段为 ColumnSex.procedure TForm1.cxGrid1DBTableView1CustomDrawCell(
      Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
      AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
      var str:string;
    begin
      str:=trim(VarAsType(AViewInfo.GridRecord.DisplayTexts[ColumnSex.Index], varString));
      if str='男' then
      begin
         ACanvas.Canvas.Brush.Color :=clred;
         ACanvas.canvas.Font.Color := clblack;
      end
      else if str='女' then
      begin
       ACanvas.Canvas.Brush.Color :=clgreen;
       ACanvas.canvas.Font.Color := clblack;
      end;
      if AViewInfo.Selected then
      begin
        ACanvas.Canvas.Font.Color := clwhite;
        ACanvas.Canvas.Brush.Color :=clNavy ;
      end;
    end;