请问Delphi中的TreeView控件的数据存贮方式是什么?如何设计一个类似的数据结构TreeView可以表示一个树的节点图,给出任意一个节点都能查找它的父节点和子节点,并且节点可以
任意增加和删除,我企图研究它的数据组织方式,但是从DFM文件中,我发现TreeView的Item属性
是一个二进制的数据结构,你能设计出一个类似的数据结构吗?
任意增加和删除,我企图研究它的数据组织方式,但是从DFM文件中,我发现TreeView的Item属性
是一个二进制的数据结构,你能设计出一个类似的数据结构吗?
解决方案 »
- 问一个DBGRIDeh排序的问题
- tuxedo8.1是否支持客户端多线程调用
- 怎样使得stringgrid中的表头中的文字居中显示,而其后的数据靠左对齐,并小1号字?
- 如何编程管理serv-u的帐户?
- 高手,都来谈谈,在定义ACTIVE的接口时,应该注意哪些?(包括参数类型设置、返回值类型等等)
- 关于数据传递的问题?200分相送
- 在DELPHI中怎样调用API函数?
- 如何在delphi中打开access?
- 关于SQL语句
- 可以在delphi中编写ocx控件拿到VB中用吗?如果能应该新建一个什么工程啊?
- ADOtable连接oracle中的数据表数据类型不支持
- 怎么在TreeView中的节点上保存一个对象的?
const ANode : TTreeNode;
const AList : TStrings;
const ALevel : string = ''
);
//展开子节点
var
i : Integer;
begin
if ANode.Count = 0 then Exit;
for i := 0 to ANode.Count - 2 do
begin
AList.Add(ALevel + '├' +ANode.Item[i].Text);
ExpandChild(ANode.Item[i],AList,ALevel + '│');
end;
AList.Add(ALevel + '└' +ANode.Item[ANode.Count-1].Text);
ExpandChild(ANode.Item[ANode.Count-1],AList,ALevel + ' ');
end; procedure ExportNode(
const ANode : TTreeNode;
const AFileName : string
);
//导出节点
var
aList : TStrings;
begin
aList := TStringList.Create;
try
aList.Add(ANode.Text);
ExpandChild(ANode,aList);
aList.SaveToFile(AFileName);
finally
aList.Free;
end;
end;调用:
if dlgSave.Execute then
ExportNode(TreeView1.Selected,dlgSave.FileName);结果示例:
窗口查看器 - TFrmWindowView
├(空) - TListBox
├(空) - TCoolBar
│├(空) - TToolBar
│├(空) - TToolBar
││├(空) - TPanel
│││├搜索 - TButton
│││└(空) - TEdit
││└搜索文本: - TPanel
│└(空) - TToolBar
│ └捕获 - TPanelEx
├(空) - TStatusBar
├(空) - TTreeView
└(空) - TListBox
===================
仅供参考!
看看item的源代码