社区
Delphi
帖子详情
treeview 动态添加 一个子项问题
aiqikong
2003-09-29 11:34:20
现在我想动态添加一个子项,如
自然信息
申请人信息
住房信息
单位信息
附注
配偶情况
配偶单位
我按动一个按钮,则在'申请人信息'下加入'担保人信息',加入前先判断是否有'担保人信息'这一项.
我用treeview1.items.AddChild(treeview1.items.item[0],'担保人信息');
可以加入但加入位置不对,而且如何判断已存在?要删除住房信息如何删阿?
谢谢指点.
...全文
182
5
打赏
收藏
treeview 动态添加 一个子项问题
现在我想动态添加一个子项,如 自然信息 申请人信息 住房信息 单位信息 附注 配偶情况 配偶单位 我按动一个按钮,则在'申请人信息'下加入'担保人信息',加入前先判断是否有'担保人信息'这一项. 我用treeview1.items.AddChild(treeview1.items.item[0],'担保人信息'); 可以加入但加入位置不对,而且如何判断已存在?要删除住房信息如何删阿? 谢谢指点.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jianxin_js
2003-10-17
打赏
举报
回复
学习
FrameSniper
2003-09-29
打赏
举报
回复
var
str1,str2:string;
begin
str1:='a';
str2:='b';
strcopy(pchar(str1),pchar(str2));
showmessage(str1);
//问会显示什么
end;
IORILI
2003-09-29
打赏
举报
回复
树形图(Treeview)的使用概述
树形图(Treeview)是Win95下新增加的通用显示部件(Common Control,在COMCTL32.DLL中)之一,从Delphi2.0开始也增加了相应的控件Treeview,用于取代原Outline控件。由于树形图结构较复杂,使用起来常不知如何下手。这里就使用中的一些问题作些介绍。
Treeview用于显示按照树形结构进行组织的数据,这在实际当中用途还是比较广泛的,如计算机中的文件系统(Windows95中的资源管理器)、企业或公司的组成结构等等。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的编辑器设置各节点的内容。
在添加和删除前必须保证有节点被选中(Treeview.Selected= nil)
用AddFirst
AddFirstChild
AddChild等先添加根节点,如Treeview.Items.AddFirst( nil'Root');
然后以此为基础,添加此项的子节点。
删除节点
Treeview.Selected.Delete
编辑节点内容
Treeview.Selected.EditText
注意:由于根节点没有父节点 (TTreeNode.Parent= nil)
此外,在大批量添加数据到Treeview中时最好使用
TreeView.Items.BeginUpdate;
添加节点
TreeView.Items.EndUpdate
这样能加快显示速度。
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决定什么时候进行排序;
TreeView.AlphaSort对节点进行排序,如果不能满足要求,你可以定义自己的CustomSort方法。
5.Drag&Drop操作,与标准的拖放操作使用方法一样。
以上具体函数的使用细节可以参考联机帮助。具体的代码编写可以参考Delphi2.0中提供的有关Treeview和ListView控件的使用例子。
wdsimon
2003-09-29
打赏
举报
回复
确实如此。
FrameSniper
2003-09-29
打赏
举报
回复
我发现CSDN关于TreeView的使用方法的帖子特别多!
TreeView
无限级
添加
对微软原始
treeview
进行
动态
无限
添加
子项
aceadmin用简单json生成
treeview
基于aceadmin1.4编写,其它版本稍做改动即可使用,需要先引入aceadmin相应的tree.min.js,使用时只需要传入带id、pId的json数组,自动生成上下级多层关系的树,可直接从后端取数返回json,引入此js后,调用:aceTree.tree("deptTree",treeData);即可。deptTree为要生成树的id,treeData为json数组。方法里包含了取已选择项的方法,如:var items = aceTree.selectedItems("deptTree"); 有些方法来自网络! 使用例子: 放树的html:<ul id="deptTree"></ul>
从新手小白进入WinForm编程 (VS2019)
WinForm框架 是 Windows Form 的简称,是美国微软公司Microsoft开发基于 .NET Framework 平台的桌面运用程序框架,一般使用 C#语言 编写。 WinForm框架可用于设计窗体和可视控件,采用面向对象语言C#,可快速创建绚丽漂亮的基于Windows的桌面应用程序,提供丰富的控件与第三方开源组件,依靠.Net平台的成熟生态,让开发者可以高效快速的开发企业级项目!本课程是黄老师的 .Net平台开发系列课程之一,通过WinForm框架控件与精炼知识点的梳理与细致讲解,结合代码实战演练,帮助学员迅速掌握WinForm开发,达到企业级WinForm开发的水平!
delphi资源-
Treeview
的使用介绍
delphi中
Treeview
的使用介绍 每
一个
节点下子节点形成这一节点的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.
添加
、删除、修改节点:
listview、
treeview
添加
背景图(防挤压图片)
listview、
treeview
添加
背景图(防挤压图片) 利用api函数在
treeview
的pbm_paint事件中进行处理,可以解决在树的
子项
展开,收缩时候以及拖动滚动条时挤压图形的
问题
,在pbm_paint事件中由于做了多次的位图处理操作,在配置较低的机器上可能会有延迟的现象,所以
treeview
控件的长度和宽度不要太大,
子项
的数目应该控制在合理的范围内
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章