2024年4月12日发(作者:)
树的遍历:此树是对指定节点的下级节点进行遍历;
函数TreeList(long handle)
long ll_Handle
Treeviewitem ltvi_Item
ll_Handle = Tv_em(ChildTreeItem!,handle)
do while ll_Handle <> -1
Tv_m(ll_Handle ,ltvi_Item)
//根据ltvi_Item做相应的操作
ltvi_Item即取出的节点,
ltvi_ictureindex 节点状态,一般用来区分复选框
ltvi_ 节点标题
ltvi_ 节点创建时存放的数据
TreeList(ll_Handle)
ll_Handle = Tv_em(NextTreeItem!,ll_handle)
loop
记住:populateitem()事件是在用.expand()方法时出发的,要想展开节点的子节点,就要将子节点放在
populateitem()事件里加到树中,否则打不开子节点。
Item ( itemhandle ) 树控件展开哪个节点
All ( itemhandle )
于根节点。
树控件展开某个节点的所有子节点,一般用
em(firstviewvisibletreeitem,0) 这是获得可见树的第一个节点,一
般用来,获取根节点,但是当节点过多时则根节点就会被隐藏,此时就不能得到根了,此
时就要用到item(handle)
item(handle) 当我们展开的节点多时,视觉就会移到下一页,此
时用它则会将视觉焦点放到该节点。
ItemFirst ( handleparent, item ) 在父亲节点下插入第一个子节点。
m ( itemhandle, item ) 它可以修改节点的属性,不是覆盖节点。
Trv_item(0) 则可以删除整棵树。
不要认为一颗树的第一个节点的句柄是1 ,这是不确定的。
当我们用循环一次性建树时,一定要注意树变量的属性值,最好是在循环的开头将属性清
空,不然上一次的属性也会带到下一个节点。
PB下使用TreeView控件实现多级分类检索
2007-8-10 作者: 编辑:问天 点击进入论坛
PowerBuilder中的TreeView控件为树状列表,其特点是信息项呈树状层次结构,且形式灵
活,可展开也可回缩,使用鼠标进行控制,操作简便。因此在应用中,可将其与DataWindow
配合,一个提供信息的分类体系,一个提供具体信息,实现信息的多级分类检索,这样可大
大地方便查询,提高系统的实用性。
在PowerBuilder下,TreeView控件的开发技术一般较为复杂,但如果将它的构成机制及主
要事件、函数领会清楚,掌握它并不困难。下面就是使用TreeView控件实现多级分类检索
涉及的主要开发技术。
一、TreeView控件的信息构成及创建
TreeView控件的基本信息单位是TreeViewItem项,它们按树状层次结构进行组织(如图1
所示),每个TreeViewItem项一般具有下列主要属性:
Data:Any类型数据,该项对应的内部值。
Label:String型数据,该项对应的显示文字。
Children:Boolean型数据,为Ture时表示该项还有下一层(如图1中项item1),为False
时表示该项没有下层,不能被展开(如项item111)
PictureIndex:Integer型数值,该项对应的正常图标在图标队列中的编号。
SelectedPictureIndex:Integer型数值,该项对应的选中图标在图标队列中的编号。
通过TreeView控件查阅信息,首先要将信息转化成相应的TreeViewItem项,插入到
TreeView控件中。这个工作可借助PB提供的函数来完成。
二、TreeView控件实现多级分类检索涉及的主要事件
让TreeView控件和DataWindow配合,完成信息的多级分类检索,开发过程主要涉及下列
三个TreeView事件:
Constructor事件:该事件在控件创建时触发
选中该事件主要用来插入第一层TreeViewItem项,这样用户一进入检索界面,第一层信息
项就会出现在控件中。
ItemPopulate事件:该事件在某TreeViewItem项第一次展开时触发,触发的同时系统会将
该TreeViewItem项的句柄通过参数handle传递过来。
选中该事件主要用来插入当前TreeViewItem项对应的下层信息项。选择这个事件插入下层
信息项,开发时只需考虑插入本项的直属下层,不必去管下层的下层,可大大简化开发工作;
另外,由于用户在执行查询时一般只涉及一些个别类,那些没有涉及的信息类没有展开,因
而没有必要建立下层信息项,在这里做到了,因此改善了应用的执行效率。
SelectionChanged事件:该事件在每次变更选择项后触发,触发的同时系统会将变更前后选
择项的句柄通过参数oldhandle、newhandle传递过来。
选中该事件主要用来控制DataWindow显示当前信息类的内容。这样每次在TreeView控件
中选中一个信息项,DataWindow即刻将其详细信息显示出来。


发布评论