各位老大,本人在使用DrawColumnCell事件时遇到奇怪的问题.
所用控件包括BDE的Database,table及datesourse和dbgrid
database连接到MSSQL,其它的各位老大应该知道吧,这里就不罗唆了.
代码如下:
    if table1.RecNo mod 2 = 0 then
      (Sender as TDBGrid).Canvas.Brush.Color := clinfobk //定义背景颜色
  else
    (Sender as TDBGrid).Canvas.Brush.Color := RGB(191, 255, 223);  //定义背景颜色
 //定义网格线的颜色:
  DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);而结果是颜色只用一种.
但如果不用database控件,table1直接连接到DBDEMOS,就可以隔行显示不同颜色?又或者把控件都改成ADO的也可以达到这样的效果.
我需要的是前者,请问各位老大,该如何解决这个问题?
谢谢!

解决方案 »

  1.   

    那是因為table1.RecNo = -1 呀.
      

  2.   

    用ADO試試吧.
      if ADOtable1.Recordset.AbsolutePositionmod 2 = 0 then
          (Sender as TDBGrid).Canvas.Brush.Color := clinfobk //定义背景颜色
      else
        (Sender as TDBGrid).Canvas.Brush.Color := RGB(191, 255, 223);  //定义背景颜色
     //定义网格线的颜色:
      DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
      

  3.   

    ADO可以,我知道.但我用的是BDE啊
      

  4.   

    我加了个clientdateset和provider就可以.