1。查出记录时用sql多生成一个字段,比如
select a.fd1,a.fd2,...,0 as fdchange from tabxxx a where ....
2。在dbgrid中不要显示fdchange字段
3。在dbgrid的数据源中的onpost事件中将fdchange设置为1,即只要有修改,则将当前记录的fdchange设置为1。
4。在dbgrid的ondrawcolumncell事件中判断如果fdchange字段的值为1,则设置该行的颜色为红色:
{dbgrid1:tdbgrid;query1:tquery;}
if query1.fieldbyname('fdchange').asinteger=1 then
begin
dbgrid1.Canvas.Font.color:=clred;
dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);
end;
5。在提交事务后设置fdchange为0;
select a.fd1,a.fd2,...,0 as fdchange from tabxxx a where ....
2。在dbgrid中不要显示fdchange字段
3。在dbgrid的数据源中的onpost事件中将fdchange设置为1,即只要有修改,则将当前记录的fdchange设置为1。
4。在dbgrid的ondrawcolumncell事件中判断如果fdchange字段的值为1,则设置该行的颜色为红色:
{dbgrid1:tdbgrid;query1:tquery;}
if query1.fieldbyname('fdchange').asinteger=1 then
begin
dbgrid1.Canvas.Font.color:=clred;
dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);
end;
5。在提交事务后设置fdchange为0;
解决方案 »
- 请问怎么给一个事件添加代码啊?
- 大量数据修改和显示的问题
- 用corba,客户端调用服务器一个接口的方法,创建一个TADODataSet记录集,客户端怎样获取这个记录集?【100分】
- 报表!一个非常简单的问题!搞定就给分!
- delphi7,如何操作listbox中的item,当单击某项后弹出窗体。
- 怎样捕获窗体最大化和最小化的消息?
- 一个像VB中instr的函数
- 实例变量在这不能被存取 是什么意思? 这程序 怎么解决?
- DBGrid单位格的问题
- 请问 sygate的原理是什么,用delphi如何实现类似sygate 的代理服务器程序
- 关于delphi的ADO的问题?
- 请问类似“Windows优化大师”的Hint效果如何编写?
"在dbgrid的数据源中的onpost事件中"在query中只有afterpost,beforepost事件,均不能
修改字段值,onpost??
或者试一下在字段的onchange事件中修改fdchange的值。