假如我的DBGrid的现实的数据如下  v1    v2    v3    v4
-----------------------
233    43     232    4
43     34     45     432
34     23     5      34
-----------------------
如何让这个DBGrid的cell如果是偶数,底色是红色,如果是奇数,底色是绿色?

解决方案 »

  1.   

    在下面的事件里判断
    procedure TFormPETTemper.DBGrid1DrawDataCell(Sender: TObject;
      const Rect: TRect; Field: TField; State: TGridDrawState);
    begin
      if Field.FieldByName('ddd').AsInteger mod 2 = 0 then
        end;
      

  2.   


    procedure TfrmMain.grdMasterDrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumnEh;
      State: TGridDrawState);
    begin
      if grdMaster.DataSource = Nil then Exit;
      case grdMaster.DataSource.DataSet.FieldByName('v1').AsInteger Mod 2 of
        0: grdMaster.Canvas.Brush.Color := clRed;
        1: grdMaster.Canvas.Brush.Color := clGreen
      end;
      grdMaster.DefaultDrawDataCell(Rect, Column.Field, State);
    end;
      

  3.   


    如果想改变字体的颜色,请将上述代码中的Canvas.Brush.COlor改为Canvas.Font.Color即可。
      

  4.   


    你这里的Column.Field是什么,为什么我打上去会编译不过去?
      

  5.   

    你只需把if Field.FieldByName('ddd').AsInteger mod 2 = 0 then 
    放入DBGrid1DrawDataCell事件中即可~~