社区
Delphi
帖子详情
如何将TreeView上的节点连同其关联的对象存在一个文件里并可以重新装载访问。
Time
2000-01-11 08:57:00
如何将TreeView上的节点连同其关联的对象存在一个文件里并可以重新装载访问。
注:不保存在文件型数据库里。
...全文
183
6
打赏
收藏
如何将TreeView上的节点连同其关联的对象存在一个文件里并可以重新装载访问。
如何将TreeView上的节点连同其关联的对象存在一个文件里并可以重新装载访问。 注:不保存在文件型数据库里。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Lin
2000-02-18
打赏
举报
回复
在添加节点时可用TTreeView.Items.AddObject代替TTreeView.Items.Add来保存对象信息到节点中。
其余同意Tiger和LightTop的意见。
土豆
2000-02-18
打赏
举报
回复
将节点信息保存就可以了,不必序列化对象吧?
barton
2000-01-23
打赏
举报
回复
谁把我的应答删了?可恶。
光明山人
2000-01-23
打赏
举报
回复
保存对象要稍难一些,因为在TreeNode中只存了个指针,除非TreeNode.Data是一个能用流操作的对象。如果是这样:(简单示范)
var
s1: TFileStream;
s2: TMemoryStream;
nCount, i: Inteter;
procedure CopyStream( sSrc, sDest: TStream );
begin
nCount := sSrc.Size;
sDest.Write( nCount, sizeof(nCount) ); // 请写入字节数
sDest.CopyFrom( sSrc, 0 ); // 写入TreeView的内容,第二个参数为0表示全部复制
sSrc.Size := 0; // 清掉以前数据
end;
begin
s2 := TMemoryStream.Create;
// 保存到文件
s1 := TFileStream.Create( '文件名', fmCreate );
TreeView.SaveToStream( s2 );
CopyStream( s2, s1 );
// 下面写入TreeNode的Data
for i:=0 to TreeView.Items.Count-1 do
begin
if Assigned(TreeView.Items[i].Data) then
begin
s2.Write( i, sizeof(i) ); // 保存序号,如果你有更好标识方法,可以代替
TYourDataClass(TreeView.Items[i].Data).SaveToStream( s2 ); // TYourDataClass只是假定的名字
CopyStream( s2, s1 );
end;
end;
s1.Free; // 在Free之前它会保存的
// 从文件读取
s1 := TFileStream.Create( '文件名', fmOpenRead );
s1.ReadBuffer( nCount, sizeof(nCount) );
s2.CopyFrom( s1, nCount );
TreeView.LoadFromStream( s2 );
// 下面读入TreeNode的Data
while s1.Position<s1.Size do
begin
s1.ReadBuffer( i, sizeof(i) );
s1.ReadBuffer( nCount, sizeof(nCount) );
s2.CopyFrom( s1, nCount );
TreeView.Items[i].Data := TYourDataClass.Create; // 当然,可能Create调用格式是另外的
TYourDataClass(TreeView.Items[i].Data).LoadFromStream( s2 );
end;
s1.Free;
s2.Free;
这个例子不一定能满足你的要求,不过至少你可以参考一下。因为在你的程序里,可能TreeView.Items[i].Data还有别的变量指着。但你可以变化一下。比如倒着赋值。
tiger
2000-01-11
打赏
举报
回复
TreeView.SaveToFile
lighttop
2000-01-11
打赏
举报
回复
或者保存到数据库表里。
bootstrap树 bootstrap-
treeview
完整例子
强烈建议初次使用bootstrap的人参考,例子很全 bootstrap树控件使用bootstrap-
treeview
.js实现树前边多选框checkbox 并实现, 0、获取选中的项 1、点击父级的多选框,自己默认选中 2、全选 3、反选 4、展开、 5、折叠
WPF
TreeView
递归异步绑定
WPF的
TreeView
不像WinForms的
TreeView
那样,通过TreeNode实现树型
节点
。WPF的
TreeView
实现起来,我感觉有点像VM(View-Model)模式,就像WinForms中的DataGrid,控件负责显示,数据在DataTable中。那么我们在实现
TreeView
时,也需要用这样的思路,数据在Model中,控件是View负责显示。 我需要实现的最终目标是: 1.
节点
是异步加载的(解决效率问题) 2.
节点
是无限级别的(递归的,这样可复用与目录结构、组织架构等数据类型) 3.
节点
是可以多选的(用CheckBox选择) 4.XAML方式绑定(减少UI上Code量) 5.方便得获取选中项信息
好看的Winform.
TreeView
自定义的美化
TreeView
源码和对应demo,样式好看,对初学者是很好的学习资料,然后也可用于项目中
用Html静态写的
TreeView
用Html和JavaScript静态制作的
TreeView
(树结构)。可以说是功能最全的树结构
TreeView
。实现了点击
节点
,改变
节点
前的图片。实现了树结构的展开和收缩功能。由于页面包含了许多图片和样式表,所以只能用打包的方式上传,没有办法直接发表在Blog中了。
Qt Q
TreeView
使用-QStandardItemModel的使用
代码
里
面有tree view的
节点
操作,包括添加,当前点击检查,遍历等。具体介绍见: Qt树形控件Q
TreeView
使用1——
节点
的添加删除操作: http://blog.csdn.net/czyt1988/article/details/18996407 Qt树形控件Q
TreeView
使用2——复选框的设置: http://blog.csdn.net/czyt1988/article/details/19171727 利用C++11的function和bind功能,实现QStandardItemModel的通用遍历函数: http://blog.csdn.net/czyt1988/article/details/21093451
Delphi
5,392
社区成员
262,732
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章