突出显示Delphi TwwDBGrid Cell

时间:2011-03-04 16:04:14

标签: delphi grid

我有一个程序,呼叫中心使用该程序通过脚本指导电话代理并收集信息。第1列(“问题”)是一个文本块,用于标识要收集的数据(“名称”,“电话”,“地址”等),第2列(“响应”)是一个自由格式文本字段。输入信息。

此网格中的每一行都与代理要读取的脚本相关联,“感谢您致电,我可以请您的名字吗?”,对此的响应将进入“响应”列。有10-25行之间的任何位置,具体取决于谁在呼叫,偶尔代理将根据呼叫的进行情况从一行到另一行跳转(即,呼叫者可能不想在他们知道价格之前提供所有信息服务)。

我想要做的是突出显示“响应”列中的每个单元格,以指示代理尚未访问该字段(并且不读取与该行关联的脚本)。一旦代理点击“响应”单元格,我希望突出显示消失,并且只有标准背景颜色。

有谁知道我会如何做到这一点?我没有看到可以调用的OnCellClick事件来更改单元格的颜色。

修改
我正在使用Delphi 2005,我误解了我用于网格的内容。我实际上使用的是Infopower的TwwDBGrid,并且没有OnCellClick事件。

2 个答案:

答案 0 :(得分:0)

编辑:这个答案是在问题陈述TDBGrid时写的,而不是现在说的TwwDBGrid,显然答案是错误的。


您可以使用一组布尔标志来跟踪是否访问了特定行。在呼叫开始时,初始化标志集。

要跟踪“已访问”字段,您可以依赖OnC​​olEnter事件并为脚本的特定部分设置标记。

然后,依赖OnDrawColumnCell根据关联的 VisitedFlag 绘制响应列中每个单元格的背景,突出显示但访问过的人。

答案 1 :(得分:0)

TwwDBGrid支持OnColEnter和OnCelExit事件。它还有一个OnRowChanged事件来检测滚动到另一个记录。所以jachguate的答案仍然有效。