【TopGrid】怎样改变某一行的字体颜色?

BraveJerry 2011-12-12 09:29:40
有没有人用过 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方法,怎样实现这个效果呢?


...全文
67 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
BraveJerry 2011-12-16
  • 打赏
  • 举报
回复
1楼jayqiang

你说的方法我试过了,我用的是delphi5+ TopGrid v2.01,不行的,颜色变化是乱的,并且用鼠标点击某一行的时候,被点击的格子才会变颜色,并且颜色不是一整行同时变,并且会随机出现其他不该变化的某些行的颜色跟着变,Topgrid v2.01应该是有BUG

我用delphi7 + TopGrid v2.20 试了一下,这个方法 颜色变化没有问题,很符合要求

只可惜公司的程序是 delphi5 + TopGrid v2.01 开发的,没办法,太老了

TopGrid v2.01 能达到这个效果吗?
都先生 2011-12-12
  • 打赏
  • 举报
回复
如果需要花功夫去修改控件源码的话,建议换个能实现该功能的控件。修改控件源码还是需要花费一些时间的。
funxu 2011-12-12
  • 打赏
  • 举报
回复
1L真是强悍啊,经常看到修改代码上传demo,灰常值得偶们学习咧~
kaikai_kk 2011-12-12
  • 打赏
  • 举报
回复
OnDrawDataCell有吗,这个也行
也没有,就改它的源码
jayqiang 2011-12-12
  • 打赏
  • 举报
回复


这是我在TopGrid自身的Demo上修改的!

代码上传到网盘上了!下载地址

http://www.ctdisk.com/file/3486688

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧