F fpsky Unregistered / Unconfirmed GUEST, unregistred user! 2002-04-15 #1 客户要求在程序中实现像WORD的undo功能,包括在文本框,DBGRID中实现,我可以 前没做过啊,我快晕了,帮帮我。
S softdog Unregistered / Unconfirmed GUEST, unregistred user! 2002-04-15 #2 TClientDataSet.UndoLastChange 好像是这个方法,有点记不清了。不过不可能做的和Word那样。
C CrazyCat Unregistered / Unconfirmed GUEST, unregistred user! 2002-04-15 #3 在DBGRID中好实现,你将QUERY的REQUESTLIVE设置成TRUE。那么数据不会马上进行写库动作,这时不要写库就可以恢复,等下个操作执行前写库一次!就可保存新的操作! 文本框的你可在它下面建个不显示的文本框,记录上次的值。要恢复的时候取回付值一次就可! 当然,这个办法不能实现多级恢复的要求,那就要你想办法了!
在DBGRID中好实现,你将QUERY的REQUESTLIVE设置成TRUE。那么数据不会马上进行写库动作,这时不要写库就可以恢复,等下个操作执行前写库一次!就可保存新的操作! 文本框的你可在它下面建个不显示的文本框,记录上次的值。要恢复的时候取回付值一次就可! 当然,这个办法不能实现多级恢复的要求,那就要你想办法了!
H hbezwwl Unregistered / Unconfirmed GUEST, unregistred user! 2002-04-15 #4 DBGRID你选择数据缓存可以的. edit你自己编辑前先保存下来.不过只能保存前一次的值.
天 天真 Unregistered / Unconfirmed GUEST, unregistred user! 2002-04-15 #5 你可以在客户端建成个数据表,记录所有的操作按取消时再根据数据表中的记录进行UNDO不就行了?
G GanQuan Unregistered / Unconfirmed GUEST, unregistred user! 2002-04-15 #6 如果客户要求可以Undo N个步骤,你就惨了! 如果只是想数据提交后Undo一步方法就很多,最好自己控制, 比如提交后,记录下这条信息的关键字,影响的表单等,Undo时删除等。
C citybug Unregistered / Unconfirmed GUEST, unregistred user! 2002-04-16 #7 借用CrazyCat的思路: 文本框后面放个listbox来存放每步骤的操作。
F fpsky Unregistered / Unconfirmed GUEST, unregistred user! 2002-04-16 #8 请问大侠们,有没有比较方便一点的方法,或者第三方控件也可以。谢谢
S softdog Unregistered / Unconfirmed GUEST, unregistred user! 2002-04-16 #9 TClientDataSet.UndoLastChange就可以做到N步撤消啊!
V vine Unregistered / Unconfirmed GUEST, unregistred user! 2002-04-19 #13 TClientDataSet有几个方法都可以的哦! UndoLastChange savepoint 等!
X xinhe_1981 Unregistered / Unconfirmed GUEST, unregistred user! 2002-04-22 #15 你可以试试用: Query.RevertRecord; 在单机下面的是可以成功的你试试吧