突出显示Delphi TwwDBGrid单元格

突出显示Delphi TwwDBGrid单元格,delphi,grid,Delphi,Grid,我有一个呼叫中心用来通过脚本引导电话代理并收集信息的程序。第1列(“问题”)是一个文本块,用于标识要收集的数据(“姓名”、“电话”、“地址”等),第2列(“回复”)是一个自由格式的文本字段,用于输入信息 此网格中的每一行都与一个脚本相关联,代理将阅读“谢谢您的来电,我可以知道您的姓名吗?”,对此的响应将进入“响应”列。根据呼叫人的不同,有10-25行,有时代理必须根据呼叫进行的方式从一行跳到另一行(即,在知道服务价格之前,呼叫方可能不想提供所有信息) 我想做的是突出显示“Response”列中的

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

此网格中的每一行都与一个脚本相关联,代理将阅读“谢谢您的来电,我可以知道您的姓名吗?”,对此的响应将进入“响应”列。根据呼叫人的不同,有10-25行,有时代理必须根据呼叫进行的方式从一行跳到另一行(即,在知道服务价格之前,呼叫方可能不想提供所有信息)

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

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

编辑:

我使用的是Delphi2005,但我在网格中使用的是错误的。事实上,我正在使用Infopower的TwwDBGrid,并且没有OnCellClick事件。

编辑:此答案是在问题说明TDBGrid而不是现在说明的TwwDBGrid时编写的,显然该类的答案是错误的


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

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


然后,依靠OnDrawColumnCell根据相关的VisitedFlag绘制响应列中每个单元格的背景,突出显示未访问的单元格。

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

您使用的是什么版本的Delphi?因为除非我的眼睛开始产生幻觉,否则我可以在TDBGrid的对象检查器中看到OnCellClick事件。至少从D5开始就在那里…现在很高兴澄清!,我正在编辑我的答案,因为现在你改变了你正在使用的网格的类别,这显然很糟糕!最简单的解决方案是改回
TDBGrid
,就像你最初问这个问题时一样!!!!