有没有人用过 TopGrid ?TopGrid下的tsDBGrid控件连接Query后显示出数据,每一行数据有一个标志字段,根据这个标志使每一行显示不同的颜色,如何做到?Delphi自带的普通的DBGrid就可以实现这个效果,它有OnDrawColumnCell事件,可以在这个事件里面写代码轻松实现:if Query1.FieldByName('bz').AsString='1' then begin
    dbgrid1.Canvas.Font.color:=clblue;
    dbgrid1.defaultdrawcolumncell(rect,datacol,column,state);
end;
可是TopGrid没有OnDrawColumnCell事件,没有defaultdrawcolumncell方法,怎样实现这个效果呢?

解决方案 »

  1.   

    这是我在TopGrid自身的Demo上修改的!代码上传到网盘上了!下载地址http://www.ctdisk.com/file/3486688
      

  2.   

    OnDrawDataCell有吗,这个也行
    也没有,就改它的源码
      

  3.   

    1L真是强悍啊,经常看到修改代码上传demo,灰常值得偶们学习咧~
      

  4.   

    1楼jayqiang你说的方法我试过了,我用的是delphi5+ TopGrid v2.01,不行的,颜色变化是乱的,并且用鼠标点击某一行的时候,被点击的格子才会变颜色,并且颜色不是一整行同时变,并且会随机出现其他不该变化的某些行的颜色跟着变,Topgrid v2.01应该是有BUG我用delphi7 + TopGrid v2.20 试了一下,这个方法 颜色变化没有问题,很符合要求只可惜公司的程序是 delphi5 + TopGrid v2.01 开发的,没办法,太老了 TopGrid v2.01 能达到这个效果吗?