怎么在DBGridEh1中判断奇偶行?目的是为了根据奇偶行来更换颜色,比如奇行是红色,偶行是蓝色
begin
  if DBGridEh1.DataSource.DataSet.RecNo mod 2 = 1 then//这就话可以判断奇偶行吗?
  begin
    DBGridEh1.Canvas.Brush.Color := $00FF0000;//这段话没有运行到,
  end
  else
  begin
    DBGridEh1.Canvas.Brush.Color := $00FFFFC2;
    DBGridEh1.Canvas.font.Color := $00FF0002;
  end;
  DBGridEh1.DefaultDrawColumnCell(rect, datacol, column, state);
end;

解决方案 »

  1.   

    你上面的代码不行吗?  
    DBGridEh1.DataSource.DataSet.RecNo mod 2 = 1 不对吗?
      

  2.   

    可的的
    换你代码测试了一下这段时运行到了的
    DBGridEh1.Canvas.Brush.Color := $00FF0000;//这段话没有运行到,
        DBGridEh1.Canvas.Brush.Color := $00FFFFC2;
        DBGridEh1.Canvas.font.Color := $00FF0002;
    也是运行到了的
      

  3.   

    用CXgrid不用编写代码就能实现上面的功能。
      

  4.   

    你关掉程序(Close All),重新打开一次试试好像也有你说的这种情况
      

  5.   

    为什么非得用GridEh那个控件,不试验一下cxgrid?
      

  6.   

    这样把我把我的MSN留下,谁可以帮我看看我的程序?狂加分哦[email protected]
      

  7.   

    procedure TForm2.DBGridEh1DrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumnEh;
      State: TGridDrawState);
    begin
      if DBGridEh1.DataSource.DataSet.RecNo mod 2 = 1 then
      begin
        DBGridEh1.Canvas.Brush.Color := clred;
      end
      else
      begin
        DBGridEh1.Canvas.Brush.Color := clblue;
        DBGridEh1.Canvas.font.Color := clwhite;
      end;
      DBGridEh1.DefaultDrawColumnCell(rect, datacol, column, state);
    end;你的問題完全可以解決啊?是不是你沒有數據所以看不到啊?
      

  8.   

    在DBGrid1DrawColumnCell事件中写入:case dm.adoquery1.RecNo mod 2 =0  of
    写颜色值else