说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

树形图(Treeview)的使用概述-Delphi资料

HTML文档下载 WORD文档下载 PDF文档下载
树形图(Treeview)的使用概述-Delphi资料

树形图(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控件的使用例子。

提升Sketch使用效率的6个实用技巧 界面设计原则之一篇:权衡优先级 突出焦点 划分好内容层级 开源的ResearchKit:苹果将如何颠覆未来医疗? CocoaPods 0.36正式发布,实现Swift和iOS 8动态框架支持 C++入门学习书籍推荐 GitHub是如何征服Google、微软和其它公司的 约见越狱大神!2015 MSS移动安全峰会议程披露 Spark 1.3更新概述:176个贡献者,1000+ patches 从游戏设计到星际探险,微软HoloLens全息技术将改变什么? 触摸屏技术未来?详解Apple新手段Force Touch 专访云适配CEO陈本峰:紧跟HTML5热潮,Web组件化知多少? QQ音乐5.0全新设计过程要点解析 GDC 2015感悟:从0到1,VR投入手游开发路漫漫 TestBird发布手游真人众测平台——附中国手游兼容性测试白皮书 与用户的再一次连接,微软的免费升级计划背后 颠覆App!LayaBox用Flash开发重度HTML5游戏 WinHEC:微软小娜与小冰正式登陆Windows 10平台 Coursera工程师董飞:典型硅谷公司大数据实战分析 微软开源Visual Studio构建工具MSBuild 死而复生!下架6月,Launcher重回App Store 虚拟投影、高保真耳机!新型可穿戴家庭影院Dashbon Mask 【程序员电子刊精选】躺枪的互联网思维 Algolia的分布式搜索网络架构 对抗苹果?豪雅联合Google、Intel开发智能奢表 VR产品技术解析之三星Gear VR 雅虎北研即将关闭 人才抢夺战迅速拉响 移动应用中的AR开发,5款最受欢迎工具推荐! 中国黑客Pwn2Own再创佳绩 Keen Team三年五夺魁 星环CTO孙元浩:技术解析Transwarp Inceptor是怎样炼成的 第七届中国云计算大会将于6月3-5日在北京召开 两大设计模式 塑造高可读性的网页布局 有CSDN上的兄弟一起过中秋节晚上,今晚不孤独,最后七十分散掉 oracle9i...数据库是提示:ORA-12154: TNS: 无法处理服务名 ? **首先祝大家中秋快乐,然后请问“包程序写入失败”是什么意思???**谢谢:-) 我学应用物理,计算机该怎么自学?100+100=200 大分相送!不够再加(第2部) 如何將數組定義在一段連續的內存空間??急急!!!!! **首先祝大家中秋快乐,然后请问“包程序写入失败”是什么意思???**谢谢:-) 我用这个函数Space$(nSize),提示说工程库没有,需要什么工程库? 两罐啤酒,独过中秋。祝这里的兄弟姐妹中秋快乐! 一个有关datareport的问题 现在有必要学ASP吗? 请教:为什么我不能给被调用包的源代码设置断点,请问是什么原因?怎么解决? 补刚才漏掉的五十分 想编写一个新邮件到达时自动通知的程序,请提供思路 关于SAX对大数据量文件的读写(高分) 中秋节编的程序是不是特别好吃? 请问:什么是“C runtime 函式庫的 Startup code”呢?? 关于自动播放的问题,在线等! 关于自动播放的问题,在线等! 请问怎么读取 text 控件 中 任意一行的内容 如何用jad?谢谢 哪儿有bc++高一点的版本下载 dbf问题 中秋了,我写了一首诗,大家看写得精彩不精彩? 我学应用物理,计算机该怎么自学?100+100=200 大分相送!不够再加(第3部) 和众马甲共度中秋,来来来,吃月饼,吃月饼 请问光驱读盘效率不高会是什么原因? 帮帮忙啊,关于图的遍历 一个form上有两个dbgrid,怎么判断我现在的焦点是在哪个 dbgrid上? 送给8。15继续在网络中漫步的朋友们的礼物! 关于数据库的使用 一个有关listview的问题,一直没解决,急! 有没有人装过MINIX啊 为什么我在查询分析器里执行时,没有时间限制,而在控制台里用同样的代码建一个试图或写在存储过程里都会超时呢········· 中秋快乐!!!!!!!!!大家进来看看,小弟有些问题。 网站运行一会儿IIS自动不运行了 什么是SCSI卡设备呢?有何作用? 未来的软件架构和技术 哪里有VB好界面下啊,谢谢 推荐给希望了解应用程序开发全过程的“初学者”一本书!!!!!!!!! 过节了!谨以些分献给坚守在灌水第一线的朋友们~~(一) 未来的软件架构和技术 zalyer接帖 过节了!谨以些分献给坚守在灌水第一线的朋友们~~(二) 数据库保存图片的问题 js赋值后提交,怎么在servlet中value 为空?? SendMessage参数问题, 过节了!谨以些分献给坚守在灌水第一线的朋友们~(三) 未来的软件架构和技术 ▁▂▃▄▅学ASP一个月了,现在学SQL SERVER,散分100,只为交友!▅▄▃▂▁ 大家好 ! 中秋快乐 顺便提个问题 ? 在线等....顶也给分拉...Explorer执行了非法操作该窗口即将关闭? Farmers rotate their crops____the soil will remain fertile.为什么不用in order to 而用so that 麻烦翻译一下 f(x)=-x(e)平方是-x.求原函数F(x) 函数f(x)= { x平方+2 x0 则 f(0)=多少 函数定义在 f:[1, ∞) -- R 求 c的值, 是的 f 在其定义域上是连续的. 怎么用连续性计算这题的极限 宝塔线的英文缩写是什么? 请问宝塔线的值是怎样得出的? 如何将宝塔线放在常用指标里 如何测量宝塔线长度缝纫用的宝塔线,如何知道一个宝塔线的长度是多少米?有什么仪器吗? 用自己的话评价一下“周瑜”要有自己的真情实感,答好了有重赏 x²-2xy-3y²=0{4x²+4xy+y²=4 2014年春运空调列车可为手机充电 陕西咸阳全城环卫工过节休息一天 三千纽约华裔社区发生凶杀案 4名儿童被刺美“情报器”失控威胁全球 奥巴马或成德媒爆出内幕:默克尔电话2002年就美国国安局:奥巴马并未参与讨论监听默韩国向朝鲜“还人”中国游客成韩免税店最大主顾雅加达司机靠微博避“堵”专家建议国有企业应纳入中央巡视组重点埃及前少校刺杀内政部长?人民日报:南京青奥 青春做主绿色小屋借游戏倡环保(青奥随手拍)新北市新店小区大楼瓦斯气爆 1男童死河南防尘新规:5级以上大风时禁挖土方河北集装箱吞吐量比去年提前两月突破百河北跟踪调查农业物联网技术应用 拟建[河北网上行]北斗七星落凡间 塞罕坝任丘火车站成“京津冀货物快运”列车新[河北网上行]天苍苍 野茫茫 坝上草[江苏行]雨中探幽天宁寺 感受《四库21日见证皮皮鲁爷爷奶奶的“钻石婚”大梦千秋玄元殇大反派之逆袭瓦罗兰召唤师进化之上帝禁区都市剑神录神箭诛日重铸天庭有缘没我份回到唐朝当大侠无限之高等武侠世界鼎翔生态旅游度假区旅游柞水溶洞旅游杨家埠民间艺术大观园旅游丰鱼岩旅游黑水河旅游库车大寺旅游夏塔旅游图开沙漠旅游温泉县旅游炳灵寺石窟旅游刘家峡水库旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘