重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
基本上这类功能只能用代码实现,原理是每次处理用户操作都用变量或文件保存前一次的数据,如果操作可逆则只记录操作也行,代码要写好多。最简单的方法应该是用临时文件保存每次修改后的结果,然后用个数组保存各文件对应的操作序号,如果存档文件很大则不太理想。用逆向操作的方法就比较复杂,每触发一次修改事件都要记录,而且还原的代码也可能相当麻烦。自己挑一种吧。
成都创新互联公司的客户来自各行各业,为了共同目标,我们在工作上密切配合,从创业型小企业到企事业单位,感谢他们对我们的要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。专业领域包括网站设计、成都做网站、电商网站开发、微信营销、系统平台开发。
不经过优化最简单的就是记录每一步的操作,然后反向操作回去就好了··,比方说你可以加两个visible为FALSE的list(list1和list2)
其中list1用来存储现在当前的操作,list2用来存储历史操作。
你每操作一步,比方说点击了label2,那list1中就additem "label2"
其中list1增加项目时候,list2复制为list1
要撤销的时候,就是将list1的最后一项删除掉,这个时候list2保持不变。要还原的话,先判断list1.listcount 是否和 list2.listcount相同。若相同则不进行还原(可以提示说已经是最新的操作了),若不相同,则list1.additem list2.list(list1.listcount)
上面说的只是记录还原和撤销的记录,其关联的是还原和撤销的功能,比方说你简单点的可以将所有的line的颜色以及text全部初始化,然后只要你激发了撤销恢复功能,不论你是还原还是撤销,都是重新执行一遍list1中的存在的信息记录。比方说你list1中的记录是 label1 label3 label4,那就相当于顺序执行 label1_click label3_click label4_click 那就可以了··
如果你要效率高一点的话,那就你在编程的时候对每一个执行任务编写一个反向编程 比方说你有label1_click 那你就变写一个还原label1_click的函数比方说是anti_label1,那你撤销时候就调用这个函数好了··,还原的时候当然还是调用原来的那个函数。不过基本上不是特别多的话,用第一种方法就够用了··省事···呵呵···不知不觉地说了这么多··呵呵·· 当然也可以用数组来存储当前操作和历史操作的···
控件都有.tag属性
你可以通过在.tag属性里保存值来确定当前按钮进行到哪一步
窗口内容的变化无非是对象的visible属性true 和false 的变化。
11个类似的窗口可以用11个放到窗口上frame来实现,frame里放上你的textbox等对象,一个前进(下一个)按钮的代码类似于:
with command1
select case .tag
case "1" '第一个窗口
frame1.visible=false
frame2.visible=true
.tag=2
case "2" '第2个窗口
frame2.visible=false
frame3.visible=true
.tag=3
....
case "n" '第n个窗口
end select
如果是用控件数组则代码可以写的非常精简