图形处理中的撤消,恢复操作

观石 2003-10-15 02:12:39
用Record存储信息,再把Record存在链表中,根据信息重画工作。请问怎样实现撤消和恢复操作。
我用一个很笨的方法就是每操作一步把整个链表存起来,但这样的话对内存消耗太大,或者我把单个图形信息存起来,但对某些操作又不好撤消了
...全文
50 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuziran 2003-10-19
  • 打赏
  • 举报
回复
把所有的编辑类方法封装在一个对象中,然后发布一个诸如OnChange 的更新事件出来,在这个事件里把到当前步为止的命令集保存成文件或者数据库里。这样做撤销的时候,只要调出相应的文件活表ID 根据命令集重新加载就行了,
最好用数据库来管理,“撤销”做一张表,“恢复”一张表
剩下的事,就是怎么同步这两张表了
zhouguoyao 2003-10-19
  • 打赏
  • 举报
回复
up
DY2003 2003-10-17
  • 打赏
  • 举报
回复
我原来是这样做的:在Record中增加一成员删除标志,如果某些记录被删除并不是实际删除,只是加删除标志不显示,然后以块的形式存储操作步骤,如某块范围内的记录被复制,存储复制的块范围,复制的开始位置,结束位置;删除记录:存储删除的块的范围,移动等操作都是一样,记录当前是第几步操作,撤消就是上一步操作的逆过程,恢复就是执行下一步操作。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧