起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 378|回复: 12

【结】定时重绘DataGrid

[复制链接]
发表于 2009-12-29 15:16:36 | 显示全部楼层 |阅读模式
有这样一个需求,根据数据库中某时间字段与当前时间相比较判断是否快到期,在DataGrid上显示不同颜色
怎样操作日期?需要精确到秒。
在Timer控件中如何重绘DataGrid,或者说调用DataGrid的OnCustomDrawCell事件
回复

使用道具 举报

发表于 2009-12-29 15:27:36 | 显示全部楼层
会狂闪的吧。秒级有些不太现实。只要是显示控件,都有设置重绘的方法。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-29 15:34:25 | 显示全部楼层
不是秒级重绘,重绘时间可以待定,我是指判断日期与当前时间相差多少秒
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-29 16:20:22 | 显示全部楼层
还有人在么?怎么样调用DataGrid的冲毁事件啊
回复 支持 反对

使用道具 举报

发表于 2009-12-29 16:42:28 | 显示全部楼层
。。。
不需要用 Timer
只需要你自己在datagrid的onCustomDrawCell事件中 做逻辑就可以了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-29 16:49:38 | 显示全部楼层
不需要?不用Timer的话,打开时是什么样子就一直是什么样子了,就算到期了颜色设置也不会变啊
回复 支持 反对

使用道具 举报

发表于 2009-12-30 10:56:51 | 显示全部楼层
不会吧?
你可以做一个简单的例子 测试一下
比如,数据集中有一个字段,他的值是  0 或者1
那么你用datagrid表现它,在 重画事件中 写如下代码,看他是否有变化(如果没变化那把你例子发上来看)
  if TDataGridColumn(AColumn).ColumnDef.FieldName = 'XX字段' then
     if 它的值 = 0 then
       AFont.Color := Business.System.Graphics.clTeal;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-30 16:15:39 | 显示全部楼层
这个知道
不是重绘事件怎么写
是重绘事件怎么调用
我要在Timer事件中调用重绘事件
回复 支持 反对

使用道具 举报

发表于 2009-12-30 16:40:55 | 显示全部楼层
楼主,你试试,取消DocView连接的DataGrid,然后再加载进来看看。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-30 17:10:34 | 显示全部楼层
没用到DocView啊
只在窗体上用DataGrid连DataSource
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-13 02:47 , Processed in 0.044943 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表