首页 Delphi 正文
  • 本文约1348字,阅读需7分钟
  • 1404
  • 0
举报该广告
温故Delphi之TreeView

温故Delphi之TreeView

摘要

TreeView是Delphi中使用频率比较高的一个控件,虽然使用次数很多,但总结不够。借着这次做GDW原型的机会总结一下,写的过程中也会参考网上的博文


TTreeView、TTreeNodes和TTreeNode

TTreeView由节点构成,建树通过对TreeView.items属性进行操作。Items是一个TTreeNodes对象,这是一个TTreeNode集


...

TreeView是Delphi中使用频率比较高的一个控件,虽然使用次数很多,但总结不够。借着这次做GDW原型的机会总结一下,写的过程中也会参考网上的博文


TTreeView、TTreeNodes和TTreeNode

TTreeView由节点构成,建树通过对TreeView.items属性进行操作。Items是一个TTreeNodes对象,这是一个TTreeNode集


常用的属


Count,结点个数;

Item[index],通过index得到结点

TTreeNode.Data,指向一个指针,可以存对象,存指针,也可以存整数

TTreeNode.Text,树结点的文本;

TTreeNode.ImageIndex,TTreeNode.SelectedIndex,分别是树结点图标序号,树结点选中时图标序号,用于设置树结点的图标

TTreeNode.Expanded属性表明是否所有的子项都全部展开

TTreeNode.HasChildren属性表明一个项是否有子项;

TTreeNode.Focused属性确定焦点是否落在此节点上,被Focus时会一个标准的方框围住,只能有一个节点会被聚焦

TTreeNode.Selected属性表明一个节点是否被选中,同样只有一个节点会被选中

常用的方


GetFirstNode 得到根结点;

TTreeNode.GetNext 得到本节点的下一个结点,配合GetFirstNode可以遍历整个树;

AddFirst 添加第一个根节点,此函数添加的节点总排在前面,除非后来又使用此函数添加了一个节点,则后添加的节点将排在前面。返回新添加的节点

AddChild添加一个子节点,要求有父节点作为其参数。返回新添加的节点

Add添加一个兄弟节点,要求有兄弟节点作为其参数。返回新添加的节点

TTreeNode的一些结点关系方法:GetFirstChild, GetLastChild, GetPrevChild, and GetNextChild分别返回当前项子项的第一个、最后一个和前一个、后一个项。GetNextSibling GetPrevSibling则返回在同一Level下的下一个和上一个项

常用的事


当从一个节点跳到另一个节点,会触发TTreeView.OnChange事件。该事件中,将传递node,即当前被选中的节点

当修改一个节点的text时,会触发TTreeView.OnEdit事件

TreeView的常见使用方

添加、删除和编辑树结


用AddFirst, AddFirstChild, AddChild等先添加根节点,如Treeview.Items.AddFirst( nil, 'Root');然后以此为基础,添加此项的子节点

删除节点:Treeview.Selected.Delete

编辑节点内容:Treeview.Selected.EditText

为了提升效率,避免界面大幅闪动,最好使用TreeView.Items.BeginUpdate TreeView.Items.EndUpdate 方法

设置树结点图


ImageIndex:在常态时选用的图的序号;

SelectedIndex:当节点被选中时在TimageList 中选什么样的图象;


📱 扫码关注公众号

公众号二维码

扫描二维码关注我们,获取更多精彩内容
实时更新 · 干货满满

收藏

扫描二维码,在手机上阅读
评论
更换验证码
友情链接