TreeView详细用法

TreeView详细用法

2023年6月22日发(作者:)

TreeView详细⽤法Treeview⽤于显⽰按照树形结构进⾏组织的数据。

Treeview控件中⼀个树形图由节点(TreeNode)和连接线组成。TtreeNode是TTreeview的基本组成单元。

⼀个树的节点⼜包含⽂本(Text)和数据(Data)。Text为String类,Data则为⽆定形指针(Untyped Pointer),

可以指向⼀个与节点相联系的数据结构。

  

每⼀个节点下⼦节点形成这⼀节点的Items属性,当前节点有⼀个唯⼀的Index(TreeNode的Index属性),

⽤于说明⼦节点在Items中的位置,每⼀个节点下的⼦节点是顺序编号的,第⼀个是0,第⼆个是1,依次类推。

⽤IndexOf⽅法获得⼦节点的顺序,绝对顺序(AbsoluteIndex)则是指从Treeview第⼀个项开始的顺序值,

第⼀个是0,如此推下去。Item属性则根据Index的值返回当前节点的第Index个⼦节点。Count则表明属于

此项的所有⼦节点的数量。⽤MoveTo⽅法将Item由⼀个位置移到另⼀个位置。

Expanded属性表明是否所有的⼦项都全部展开(包括⼦项的⼦项),为True表⽰全部展开。

IsVisible属性表明⼀个项是否在树中能被看到,如果树全部展开那么这个Item是肯定可以

被看到。

HasChildren属性表明⼀个项是否有⼦项。 GetFirstChild, GetLastChild, GetPrevChild,

and GetNextChild分别返回当前项⼦项的第⼀个、最后⼀个和前⼀个、后⼀个项。

GetNextSibling and GetPrevSibling则返回在同⼀Level下的下⼀个和上⼀个项。

GetNextVisible and GetPrevVisible则返回能看得到的下⼀个和上⼀个项。如果⼀个节点

有Parent,则HasAsParent⽅法返回True. Parent为当前项的⽗项。Focused属性确定焦点是

否落在此节点上,被Focus时会⼀个标准的⽅框围住。很显然,只有⼀个节点会被聚焦。

Selected属性表明⼀个节点是否被选中,同样只有⼀个节点会被选中。

DropTarget属性表明节点在拖动操作中是源还是⽬标。

.1.添加、删除、修改节点:

静态的⽅法可以在设计时通过Items的编辑器设置各节点的内容。

在添加和删除前必须保证有节点被选中(ed = nil)

⽤AddFirst, AddFirstChild, AddChild等先添加根节点,如st( nil, 'Root');

然后以此为基础,添加此项的⼦节点。

删除节点

编辑节点内容

xt

注意:由于根节点没有⽗节点 (= nil)

此外,在⼤批量添加数据到Treeview中时最好使⽤

  pdate;

  添加节点

  ate

这样能加快显⽰速度。

2.在节点上添加图象

Treeview中⼏个与图象相关的属性:

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

  OverlayIndex:选那副图象作为掩图(⼀幅图象透明地显⽰在另⼀幅图象的前⾯),

⽐如⼀个节点不可⽤时加⼀副X图象在其前⾯。

  ImageIndex:在常态时选⽤的图的序号

  StateIndex: 在StateImages这个ImageList中对应的序号,-1时不显⽰图象

  ⽐较典型的,象在⽂件管理器中的所显⽰的⼀样,Treeview控件在节点之前也可以

显⽰图象。在Form中放置⼀ImageList控件,加⼊⼏个图⽚,分别被Index为0,1,…

在Treeview的Image属性项填⼊你所加⼊的ImageList的控件名称。TreeNode的ImageIndex

表⽰节点未被选中时(Selected=nil)的图⽚序号,SelectedIndex表⽰节点被选中时图⽚序号。

3.关于Level

Level的概念可以⽤下图表⽰:

Level0   Level1 Level2

4.排序

SortType决定什么时候进⾏排序; ort对节点进⾏排序,如果不能满⾜要求,你可以定义⾃⼰的CustomSort⽅法。

&Drop操作,与标准的拖放操作使⽤⽅法⼀样

----------------------------------------------------------------------------

TreeView的使⽤⽅法

基本信息:

TreeView 是⼀个显⽰树型结构的控件,每⼀个节点都是⼀个新类,

使⽤具有代表性

每个节点都有四个值:

TEXT:显⽰⽂字 Image Index:显⽰图形序号

Selected Index:

State Index:

(1)建⽴⽬录项(本例中使⽤的TREEVIEW名称为:TvwTips)

增加根⽬录下的节点:(节点)

var

CatNode : TTreeNode; //先建⽴⼀个TREEVIEW使⽤的⼦对象

begin

us; //将焦点置到这个TREEVIEW控件上

{ 在根标题下建⽴⼀个新的⼦标题 }

CatNode := ld(

stNode,'New Category' );

ndex := 1;

edIndex := 2;

xt; { 允许⽤户改变这个标题 }

end;

增加下⼀级⽬录(内容):

var

ParentNode, TipNode : TTreeNode; //先建⽴TREEVIEW使⽤

的⼦对象

VersionNum : Integer;

begin

us; //将焦点置到这个TREEVIEW控件上

VersionNum := TMenuItem( Sender ).Tag; { Ver num of new tip }

ParentNode := ed; { 取出当前的选中节点 }

if = nlTip then{ Parent cannot be a tip node }

ParentNode := ;

TipNode := ldObject( ParentNode,'New

Subject',Pointer( VersionNum ) );

ndex := 3; { Normal tip bitmap }

edIndex := 4; { Highlighted tip bitmap }

sible; { Move new tip node into view }

xt; { Immediately allow user to edit subject }

EnableTreeViewFunctions( );

;

ed := False;

end;

(2)说明

stNode 返回TREEVIEW的第⼀个节点,函数类型为

:TTreeNode

返回当前TreeView的全部节点数,整数

返回当前选中节点的在⽬录树中的级别,

根⽬录为0

返回当前选中节点上级节点,函数类型为

:TTreeNode〖暴风侧影〗特别提⽰: Expand(False)不展开其⼦孙结点, Expand(True)全部展开。

发布者:admin,转转请注明出处:http://www.yc00.com/news/1687381490a5815.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信