画图程序中的撒消操作?怎么实现 windows里面自带的画图小程序,有撒消操作,在编辑菜单中,不知道大家有没有看到。它最多可以撒消前三步的操作,请问这个功能是怎么样实现的。如果有谁做过相关的,可以给个思路吗。我只要思路,不需要程序代码的,这样大家都可以发言了,觉得有道理的都可以给分。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 运用的Command设计模式首先把操作记录到一个数据对象中然后再从数据对象进行redo有空看看设计模式的Command 我思路是这样的:用一个TList存放五个位图对象,然后每一次都是像队列一样五个更换图象,一个新的进来,最老的就删去,然后恢复就是把最新的取出来用,同时把它从TList中除去。有谁提出更好的思路,上面说的都很抽象,没有就具体问题来讨论: guge(天使在唱歌~~) :这个你要先写个备份函数,把上一部操作记录下来,要撤消就恢复到前一个状态re:你会不会自己都觉得好抽象,请问这个备份函数怎么写,怎么记录下来,怎么恢复过去。 这些你想清楚了没有?fjb5926(樱木花道) 是不是可以按照文本文件中的撤消操作一样的处理方式呢?re:那是什么方式呢,你知道他内部是怎么实现的吗?Zsyzk(浪子)说得更是抽象,让人无法理解,不是每一样东西都要什么设计模式的,你想以前没有设计模式的时候,人们是怎么样完成那些软件,何况这么一个小软件。 keyz(keyz):如果是可恢复的操作,把操作过程放到栈中(比如颠倒图片),不可以恢复的操作(比如二值化),把原始图片放到栈中。回退的时候从栈中取出。re:这是我看到的最好的回答了,和我的思路有些相似,可见是经过思考的。你已经得了一大半的分了。不知道下面还有没有更好的回答呢? http://community.csdn.net/Expert/topic/3016/3016940.xml?temp=.7669336 一个功能的思路望高人指点 嵌入式窗体如何使用vcl skin啊? 我的窗体是嵌入在主窗体的一个panel上面 tidhttp控件提示找不到属性maxlineaction和readtimeout 高分求助:一个sql语句的问题 关于坐标的问题,高手快进来指点下 DLL中怎么调用主程序的函数 高手请进,在线等待--请教一个关于查询参数的问题!! 检查ODBC数据源问题? 这个数据库这样这样定义好不好?高手请进,热烈拥抱!!!!!!!!!! 请问:在使用socket连接时,如果服务器名称错误,该如何处理这个异常? 简单问题,关于路径的获取? 怎样修改帮助文件(HLP)中的内容
首先把操作记录到一个数据对象中
然后再从数据对象进行redo
有空看看设计模式的Command
re:你会不会自己都觉得好抽象,请问这个备份函数怎么写,怎么记录下来,怎么恢复过去。
这些你想清楚了没有?fjb5926(樱木花道) 是不是可以按照文本文件中的撤消操作一样的处理方式呢?
re:那是什么方式呢,你知道他内部是怎么实现的吗?Zsyzk(浪子)说得更是抽象,让人无法理解,不是每一样东西都要什么设计模式的,你想以前没有设计模式的时候,人们是怎么样完成那些软件,何况这么一个小软件。 keyz(keyz):如果是可恢复的操作,把操作过程放到栈中(比如颠倒图片),不可以恢复的操作(比如二值化),把原始图片放到栈中。回退的时候从栈中取出。
re:这是我看到的最好的回答了,和我的思路有些相似,可见是经过思考的。你已经得了一大半的分了。不知道下面还有没有更好的回答呢?