delphi -----TTreeView
TTreeView 与两个重要的类相关:TTreeNodes、TTreeNode 。
TTreeNodes即是TTreeView 的Items属性,TTreeNodes是TTreeNode的合集,TTreeNode代表的是TTreeView的节点,不按主从关系,节点依次存储在Items中。
TTreeView的Select方法用来指定TTreeView选择的节点,可以选择多个节点。
TTreeNodes使用add添加同级节点,使用addChild添加下级节点。node.parent表示node节点的上级节点。
1、添加节点方法:http://www.cnblogs.com/del/archive/2008/03/11/1100604.html
2、获取节点的层级,个数等信息,该节点详细信息内容:http://www.cnblogs.com/del/archive/2008/03/12/1101356.html
Node.Count //下一级个数
Node.Level//层级
Node.Index//兄弟排行
3、定位:和文本框匹配:http://www.cnblogs.com/yangxuming/p/6636134.html
node := node.Parent;//定位到父节点
node:= Node.GetNext;//定位到下个点
node:=Node.Parent.getNextSibling; //定位到子节点的父节点的下个兄弟节点
Node:=TreeView1.Selected; //定位到已选择的点
4、if treeview1.Selected=nil then Exit;//判断有没有选择内容
5、删除
删除一个父节点,其子节点会自动被删除。
一个节点的属性Count表示其直接的子节点数(不包括其“孙”节点),通过Item[]属性可以访问其子节点。
例如要删除1个节点下所有的子节点:
for i:=Node.Count-1 downto 0 do
Node.Item[I].Delete;
如此即可。
或者 Node.DeleteChildren;
TreeView1.Items.Clear;//删除所有
6、 例子:查询当前节点所有父节点内容
nlevel:= Node.Level;
for I := 0 to nlevel do
begin
parentArr[i]:= Node.Parent.Text; //父节点存到一个数组
Node:=Node.Parent; //循环后再查询更上级父节点
end;
7、方法:
OnCollapse:闭合
onExpanded:展开
onMouseDown:鼠标点下
8、关联一个poupupmenu,和以前一样关联一下,发现不能获取节点信息,所以要添加一个方法
procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
TreeNode:TTreeNode;
begin
if Button<>mbRight then Exit;
TreeNode:=TreeView1.GetNodeAt(x,y);
if TreeNode<>nil then
begin
TreeView1.Selected:=TreeNode;
end;
end;
9、是否有选 中
if treeview1.Selected=nil then //如果没有被选中的则。。。
10、在一个控件 中定义TreeView2
var
Nodes: TTreeNodes; {尽早习惯使用 TTreeNodes}
begin
Nodes := TreeView2.Items;
delphi -----TTreeView的更多相关文章
- delphi TTreeView组件遍历磁盘目录
TTreeView组件遍历磁盘目录 实例说明 TTreeView组件是一个以分枝结构或者说树状结构显示数据的组件,以该组件显示数据具有较好的等级关系和逻辑层次,并且易于操作.在组件中显示的数据结构与系 ...
- 学习 TTreeView [15] - 连接数据库 (作为给 "丁永其" 和 "DELPHI万岁" 两位朋友的回复)
本例效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Contro ...
- Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem
Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView.TTreeViewItem TScrollBox -> TCustomTreeView -> ...
- delphi中TTreeView的使用方法
[学习万一老师博客摘要] TTreeView 与两个重要的类相关:TTreeNodes.TTreeNode . TTreeNodes即是TTreeView 的Items属性,TTreeNodes是TT ...
- Delphi的基于接口(IInterface)的多播监听器模式(观察者模式 )
本文来自:http://www.cnblogs.com/hezihang/p/6083555.html Delphi采用接口方式设计模块,可以降低模块之间的耦合,便于扩展和维护.本文提供一个实现基于接 ...
- Delphi 7 里没有加载的控件
在原来版本如D5.D6中使用的控件如Quickrep,FastNet等,在D7中仍然是保留的.只是Delphi没有将他们默认的安装到组件面版中来.这些控件包全部保存在Delphi目录的bin下,文件扩 ...
- delphi treeview 鼠标移动显示hint信息
procedure TForm1.TreeView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var Nod ...
- DELPHI TreeView 文件目录树和 设置节点图标 完整
DELPHI TreeView 文件目录树和 设置节点图标 下载地址 http://download.csdn.net/detail/teststudio/6448293 需要制作 ...
- Delphi 和 DFM
Delphi et les DFM Depuis la toute première version de Delphi, celui-ci intègre des fichiers à l'exte ...
随机推荐
- Rabbitmq消息队列(六) 主题交换机
1.简介 前面学习了有选择性的接收消息,但是却没有办法基于多个标准来接收消息.为了实现这个目的,接下来我们学习如何使用另一种更复杂的交换机 —— 主题交换机. 2.主题交换机 发送到主题交换机(top ...
- Lintcode---实现 Trie
实现一个 Trie,包含 insert, search, 和 startsWith 这三个方法. 注意事项 你可以假设所有的输入都是小写字母a-z. 您在真实的面试中是否遇到过这个题? Yes 样例 ...
- Atitit.http连接合并组件 ConnReducerV3 新特性
Atitit.http连接合并组件 ConnReducerV3 新特性 D:\0workspace\AtiPlatf_cms\src\com\attilax\util\ConnReducerV2. ...
- 【ZT】NUMA架构的CPU -- 你真的用好了么?
本文从NUMA的介绍引出常见的NUMA使用中的陷阱,继而讨论对于NUMA系统的优化方法和一些值得关注的方向. 文章欢迎转载,但转载时请保留本段文字,并置于文章的顶部 作者:卢钧轶(cenalulu) ...
- NerdTree 学习
http://www.jianshu.com/p/eXMxGx--------------来自大神到博客 到现在为止我仍然不能设置<F2>开启和隐藏目录树.sangxin.
- The Definitive Guide To Django 2 学习笔记(五) 第四章 模板 (一)基本模板系统
引入模板系统的原因,view中引入硬编码并非明智的选择,设计上的任何改变都会需要改动代码.python代码和HTML代码应该分开,这是多数Web站点的共识,分开会提高效率. 基本模板系统 Django ...
- 自己动手搞定支付宝手机Wap网站支付接口 FOR ECShop
支付宝WAP网站版本的支付接口网上整合的比较少,看到很多网站在卖,顿觉无语. 主要是得自己查看支付宝官方提供的SDK中的开发文档. 支付宝sdk下载地址:https://doc.open.alipay ...
- [转]所有编程皆为 Web 编程
Web编程还远远没有达到完美的境地.其实,还有点乱!没错,随便会写点代码的人就能三下两下地搞出一个糟糕的Web应用:也确实,99%的Web 应用都似狗屎一堆.但是,这也意味着,相当“聪明”的程序员们正 ...
- (转)RISC-V结构逻辑图
转载地址:http://blog.csdn.net/zzwu/article/details/54810162 说明: 执行6级流水作业: 1. fetch(取指) 2. decode(译码) 3. ...
- [Tips] bzr Import error
# bazzar error on Mac Marvericks: 192:~ piaoger$ bzrbzr: ERROR: Couldn't import bzrlib and dependenc ...