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;
原文地址:https://www.cnblogs.com/michellexiaoqi/p/7693301.html