Delphi,VirtualStringTree - 重建树,恢复状态(扩展节点)

时间:2009-10-18 09:34:53

标签: delphi treeview virtualtreeview

如何在树重建时恢复VirtualStringTree中的节点状态(哪些已扩展)?

我的应用程序使用VirtualStringTree(最好的组件之一!)。现在,我需要的是每次启动应用程序时重建树。然而,在大多数情况下,“新”树与上次构建的树相同......或者至少非常相似。恢复节点状态的最佳方法是什么?哪些是扩展的等等...... 我不觉得每次启动应用程序时手动扩展所有节点都很方便...所以我的用户,我相信。 不幸的是,由于隐私限制,我无法将实际树保存到文件然后加载它,并在重建时比较现有节点(在必要时添加/删除)...我需要一些其他方式,请... < / p>

1 个答案:

答案 0 :(得分:2)

仅存储树的拓扑,例如每个级别的扩展节点的索引。

或者,您可以为某些不变节点值形成哈希列表,并仅为该列表中的展开节点存储哈希值。这样,即使拓扑发生变化,您也会保留状态,但代价是降低隐私。