(我要说清楚)如何将TreeView上的节点连同其关联的对象存在一个文件里并可以重新装载访问。 SaveToFile我最先就是用它的,但它只能保存树上节点的标题而已。是的,SaveToFile不能保存Object,包括TStringList,Tstrings等等都是这样.自己处理吧,应该没有难度. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不好意思,在你刚才的问题里,因为网络缘故我的文章发了三次,现在看你的代码,我想我们差别不太大,我的做法和你的区别在于你每次加入对象,我通常是将你的PresNodeRec指针赋给节点的DATA属性,DATA可以保存一个指针,当然结构指针也一样,我是这样来操作树的。下面我再发一次我的看法:我曾经这样来记录我的TREEVIEW,不知道和你的想法是否一致:{伪代码}{假设表中有一个TREEVIEW,这里定义一个结构做为节点关联的DATA}type PitemData=^TItemData; TItemData=record caption:string; data:integer;end;----------------------------------------建树的过程:循环: 新建一个PITEMDATA的指针, 为指针的域赋值, 新建一个节点, 节点的DATA=新指针,保存文件的过程:创建一个新文件:得到当前树节点的最顶层节点数,向文件中写节点数,开始循环节点数,遍历每个节点然后向文件中分别写入是否有子节点,有多少个子节点,每个节点下指针的数据.根据层次的增加可能会使用递归(类似于读目录树一样)将所有数据写入文件.------------------------------------导入文件的过程:打开相应文件,依照上面保存的方法得到树结构节点数,然后使用导入数的过程,为它们分配指针,填充适当的数据.记住:在程序退出时,要记得释放为每一个节点分配的指针.其实这个做法和TREEVIEW的SAVETOFILE差不多,但是是以二进制保存,而且相当于使用一个自己定义结构的数据表.这个虽然不是依照上面意思所做的工作,但是有些类似.他简单在层次固定,数据格式固定,但是如果要修改,照上面的结构也很容易,如果你愿意告诉我你想记录你的什么样的树图,我可以写源码给你. 我是这样处理的;(思路) 将treeview的内容(标题和其data)以流的方式保存到一个文件。该文件结构分两部分: 1、视图部分,即treeview的标题和结构,并写入其总长度; 2、数据部分,即treeview的Object; 装载时,找到视图的长度,按视图的长度读入视图结构和标题,再依次读入各个Node的数据。 delphi动态创建Frame窗体 dll传递三方控件的问题 TByteDynArray TGraphic TmemoryStream ,求助互相读取的问题 99.999999更新到数据库变成:90,请问这是怎么回事? 请教P2P打洞问题?十分困惑。 我的DELPHI写的程序,关掉应用程序后,在WIN2000里面老是显示该应用程序的进程依然在活动,不知什么原因, DELPHI6关于文件问题解决者有分 TypeLib..... 我想备份文件夹,不知该怎么做! CSDN 帐号被冻结 急。。。 关于运行外部程序的问题 关于infopower2000 急!!!!
我曾经这样来记录我的TREEVIEW,不知道和你的想法是否一致:
{伪代码}
{假设表中有一个TREEVIEW,这里定义一个结构做为节点关联的DATA}
type PitemData=^TItemData;
TItemData=record
caption:string;
data:integer;
end;
----------------------------------------
建树的过程:
循环:
新建一个PITEMDATA的指针,
为指针的域赋值,
新建一个节点,
节点的DATA=新指针,保存文件的过程:
创建一个新文件:
得到当前树节点的最顶层节点数,向文件中写节点数,开始循环节点数,遍历每个节点
然后向文件中分别写入是否有子节点,有多少个子节点,每个节点下指针的数据.根据层次的增加可能会使用递归(类似于读目录树一样)将所有数据写入文件.------------------------------------
导入文件的过程:
打开相应文件,
依照上面保存的方法得到树结构节点数,然后使用导入数的过程,为它们分配指针,填充适当的数据.记住:在程序退出时,要记得释放为每一个节点分配的指针.其实这个做法和TREEVIEW的SAVETOFILE差不多,但是是以二进制保存,而且相当于使用一个自己定义结构的数据表.这个虽然不是依照上面意思所做的工作,但是有些类似.
他简单在层次固定,数据格式固定,但是如果要修改,照上面的结构也很容易,如果你愿意告诉我你想记录你的什么样的树图,我可以写源码给你.
将treeview的内容(标题和其data)以流的方式保存到一个文件。该文件结构分两部分:
1、视图部分,即treeview的标题和结构,并写入其总长度;
2、数据部分,即treeview的Object;
装载时,找到视图的长度,按视图的长度读入视图结构和标题,再依次读入各个Node的数据。