最近使用TreeView控件,遇到一个难题,希望朋友们帮帮忙解决!!!(100)

  • 主题发起人 主题发起人 xkjyag
  • 开始时间 开始时间
X

xkjyag

Unregistered / Unconfirmed
GUEST, unregistred user!
最近使用TreeView控件,不知道如何实现类似Edit控件的undo,redo功能,希望有朋友提供例程或者思路,非常感谢!!!
 
如果你只是想对TreeView 节点标签内容的undo,redo 操作,只需要在每次编辑完成时保存如下结构数据到列表,依次取出数据就行PTTreeNodeRec = ^TTreeNodeRec;TTreeNodeRec = packed record Node: TTreeNode; Caption: array[0..255] of char;end;如果是对TreeView的整体操作包括节点的增删操作,那最省事的方法就是整个保存了。
 
iceapi,你好,我需要的是对TreeView的整体操作,包括节点的增删改等操作,你说的整个保存是什么意思,如何操作,望指导,谢谢!
 
这个是有点麻烦哦,iceapi的方法可行的。你需要创建一个堆栈进行存储,然后根据你的操作进行处理,对堆栈的数据进行处理也是可以的。
 
能否说的具体一点,还是不太明白。
 
记录对tree的每一步操作,不就可以了。可能做起来比较繁琐。
 
create a table as histroystru as below,createtime,id,pid,caption,edit_type,state.
 
autumn这么一说,似乎有点儿头绪了,意思应该是,建立一个结构,保存每次编辑节点的id,caption,edittype,state,imageindex等等的内容,需要的时候取出来undo,redo。有个问题,如果树结构很庞大,这样的一个结构,是不是会很耗内存?
 
存在tv里不是更大?你怕的话用一个表,如果设立里功能只允许redo/undo 10次,那你filter 20 records就可以了。
 
可以将结果保存在一个文件中,或者保存在数据库中的表中,保留每次的更改记录。然后分别处理之。
 
我个人认为如果undo,redo在10-20次内保存在内存里效率高点,缺点就是耗内存。假如undo,redo是无限级的,讨论一下用表、文件还是数据库好?
 
多人接受答案了。
 
后退
顶部