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;