TreeView由节点构成,建树通过对TreeView.items属性进行操作。Items是一个TTreeNodes对象,这是一个TTreeNode集。通过它能够方便地管理和显示具有层次结构的信息,是Windows应用程序的基本控件之一。DELPHI虽然具有比较强大的文件管理功能,提供了多个用于文件管理的标准控件,如DriveComboBox、DirectoryListBox、FileListBox等,通过设置它们的属性,使其建立起联系,甚至不用编写一行程序,我们就可以实现在不同的目录之间进行切换,然而这样的目录切换只适用于进行文件的查找定位,而不能方便地进行目录的浏览,例如我们要从c:\windows目录转到c:\program files目录,就必须返回到根目录才能进行切换,而不能象Windows资源管理器那样任意地在不同的目录之间进行浏览与切换。
Delphi TreeView怎么用
Delphi TreeView使用方法
一、针对TTreeNodes,也就是 TreeView.Items,有这些属性:
1、count,节点个数。
2、item[index] ,通过index得到节点。
二、针对TTreeNodes,也就是 TreeView.Items,常用的添加节点的操作有:
AddFirst添加第一个根节点。由此函数添加的节点总排在前面,除非后来又使用此函数添加了一个节点,则后添加的节点将排在前面。该函数返回新添加的节点。
AddChildFirst添加第一个子节点,要求有父节点作为其参数。返回新添加的节点。
AddChild添加一个子节点,要求有父节点作为其参数。返回新添加的节点。
Add添加一个兄弟节点,要求有兄弟节点作为其参数。返回新添加的节点。
三、针对TTreeNodes,也就是 TreeView.Items,常用的得到节点的操作有:
GetFirstNode() 得到根节点。然后配合TTreeNode.GetNext(),就可以访问所有的节点。
四、建树举例:
var
root_node,cur_node:TTreeNode;
begin
root_node:=AddFirst(nil,根节点1);
cur_node:=addChildfirst(root_node,nil,根节点1_child1);
add(cur_node,根节点1_child2);
root_node:=Add(nil,根节点2);
AddChildFirst(root_node,根节点2_child1);
end;
五、事件触发:
当从一个节点跳到另一个节点,会触发TTreeView.OnChange事件。该事件中,将传递node,即当前被选中的节点。
当修改一个节点的text时,会触发TTreeView.onEdit事件。
六、将节点和节点所对应的数据联系起来
对于每个TTreeNode,有个Data属性,可以存放一个指针。我们可以利用这个域来存放与节点对应的自己的数据。
1.我们先定义一个数据结构,作为记录我们要记录的数据。如:
type PMyData=^TMyData;
TMyData=Record
sFName:string;
sLName:String;
nIndex:integer;
end;
2.然后,创建数时,将节点和节点数据联系起来:
procedure TForm1.Button1Click(Sender: TObject);
var
myshuju: PMyData
cur_node:TTreeNode;
begin
New(myshuju); //记住,一定要先分配内存。有几个节点,就要分配几次内存。
myshuju^.FName:=Edit1.Text;
Myshuju^.LName := Edit2.Text;
TreeViewIndex := StrToInt(Edit3.Text);
with TreeView1 do
begin
cur_node:=items.AddFirst(nil,first);
cur_node.data:=myshuju;
end;
end;
3.当我们选中一个节点时,就可以使用我们的数据了。
procedure TForm1.TreeView1Change(Sender:TObject;Node:TTreeNode);
begin
if node.data<>nil then
self.label1.caption:=pmyData(node.data)^.Fname+pmyData(node.data)^.Lname
end;
4.内存释放
procedure TForm1.ListView1Deletion(Sender: TObject; Item: TListItem);
begin
Dispose(Item.Data);
end;
七、一般使用流程:
1、添加全局变量:
b_first:boolean; //记录是否是第一次访问节点,因为此时数据还未准备好,而一旦访问节点就会触发OnChange事件,在此事件处理函数中也许会出错。
2、在FormCreate中,
a、设置b_first:=true;
b. 创建数并将节点与数据联系。
3、在FormShow中设置b_first:=false;
4.在事件OnChange中处理节点被选中事件。
5.在Edit中处理节点被修改Text事件。并调用OnChange.
6.在 TreeView.Destory中 释放Data 中指向的内存空间。













delphi7(Borland Delphi 7 企业版)7.0 Build 8.1 中文注册安装版(附序列号)
delphi2009(RAD Studio 2009)12.0.3170.16989 破解安装完美版
delphi2007(RAD Studio 2007)11.0.2902.10471 官方版+破解补丁
Borland Delphi 8.0 光盘版(单纯的for .NET版本)
牛津书虫英汉对照电子书(38本合一)免费下载
delphi 2007 for phpV2.0英文特别版
Delphi组件开发者指南( Delphi组件编写者指南)pdf格式(中文版/带书签)

Apifox(Api调试管理工具)2.1.29.1 绿色版
小乌龟代码管理工具(TortoiseGit)2.13.0.1 中文免费版
SoapUI破解版5.7.0 最新版
小皮面板(phpstudy)8.1.1.3 官方最新版
Ruby3.0(ruby运行环境)3.0.2 官方版
gcc编译器( MinGW-w64 9.0.0绿色版)免费下载
宝玉编辑助手0.0.05新版
火花编程软件2.7.2 官方pc版
猿编程少儿班客户端3.1.1 官方版
Restorator 2009中文版单文件汉化版
十六进制阅读小工具
IT码农工具软件1.0 中文免费版
python爬虫实战入门教程pdf免费版
Postman Canary(网页调试软件)官方版7.32.0绿色免费版
大耳猴少儿编程客户端1.1.2 官方免费版
excel批量sql语句(通过excel构建sql工具)1.0 免费版
软件添加弹窗和网址工具1.0 中文免费版
天霸编程助手2.1 单文件中文版
ida pro 中文破解版(反编译工具)7.0 永乐汉化版64位
VBA代码助手3.3.3.1官方版
Node.js开发实战教程百度云完整版【36课】
猿编程电脑端3.9.1.347 官方PC版
蒲公英 Android SDKV4.1.11 官方最新版
蒲公英iOS SDK2.8.9.1 官方最新版
WxPython中文可视化编辑器1.2 简体中文免费版
Python代码生成器1.0 中文免费版
C语言代码实例助手1.0 免费版
c primer plus第6版中文版高清版
C++ Primer Plus 2021电子版最新版
notepad++7.8.2 中文免费版




Microsoft Spy++9.10 中文绿色版
源代码保护工具(Dotfuscator Professional
MDB数据库管理软件1.0 中文免费版
源码安全监测工具(Fortify SCA 2016)【附cr
RTX ServerSDK 2015官方最新版
阿猫串口调试助手2.4.0.0绿色免费版
精易论坛SQL语句生成器2.1 绿色最新版 【
java开源报表系统(JasperReports Library)6
独立团游戏作坊窗口分析工具【VIP全套教程及