delphi 递归遍历TreeView树节点

//以下全部调试通过,你在窗体扔一个Treeview就行了

procedure GetRootNodes(ATreeView:TTreeView);//得到所有根节点
var vNode:TTreeNode;
begin
  vNode:=nil;
  vNode:=ATreeView.Items.GetFirstNode;
  While vNode<>nil do
  begin
    ShowMessage(vNode.Text);//处理查找到的根节点
    vNode:=vNode.getNextSibling;
  end;
end;

procedure GetChildNodes(ANode:TTreeNode);//根据某个节点得到所有的子节点
var vNode:TTreeNode;
begin
  vNode:=ANode.getFirstChild;
  While vNode<>nil do
  begin
    ShowMessage(vNode.Text);//处理查找到的子节点
    vNode:=ANode.GetNextChild(vNode);
  end;
end;

procedure GetAllChildNodes(ANode:TTreeNode);//根据某个节点得到所有的子节点的递归处理过程
var vNode:TTreeNode;
begin
  vNode:=ANode.getFirstChild;
  While vNode<>nil do
  begin
    ShowMessage(vNode.Text);//处理查找到的子节点//先序访问
    GetAllChildNodes(vNode);//递归调用
    vNode:=ANode.GetNextChild(vNode);
  end;
end;

Procedure VisitAllNodes(ATreeView:TTreeView);//递归访问所有节点
var vNode:TTreeNode;
begin
  vNode:=nil;
  vNode:=ATreeView.Items.GetFirstNode;
  While vNode<>nil do
  begin
    ShowMessage(vNode.Text);//处理查找到的根节点
    GetAllChildNodes(vNode);
    vNode:=vNode.getNextSibling;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin//得到根节点
  GetRootNodes(TreeView1);//treeview1是你自己的Treeview控件哦
end;

procedure TForm1.Button2Click(Sender: TObject);
begin//得到某节点的所有子节点
  GetChildNodes(Treeview1.Items.GetFirstNode);//treeview1是你自己的Treeview控件哦
end;

procedure TForm1.Button3Click(Sender: TObject);
begin//递归访问所有节点
  VisitAllNodes(Treeview1);//treeview1是你自己的Treeview控件哦
end;

时间: 2024-12-25 17:29:25

delphi 递归遍历TreeView树节点的相关文章

C# TreeView 树节点:递归显示整个系统盘符文件目录及文件

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace Demo { /// <summary> /// 有关对于TreeView节点的填充的相关处理类 /// </summary> class TreeViewUtils { #region 有关将整个系统盘

TreeView 树节点的处理

TreeView 树节点的处理 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Threading.Tasks; 9 using System.Windows.Forms; 10

java递归实现easyui树节点

1. [代码]easyui的Tree节点JSON格式 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [{        "id":1,        "text":"Folder1",        "iconCls":"icon-save",        "chi

使用递归方法遍历TreeView的节点如配置则勾选

自己在网上找了一段时间都没有找到取自数据库的值与TreeView中的节点值进行对比如匹配则勾选中CheckBox的资料,后面自己写了一个递归方法实现,现在记录起来以备需要时使用.在没写这递归方法前如果需要一个一个对比深度为4的TreeView 需要不少于5个for循环,写太多内嵌的for循环觉得不好,因此写了以下的方法. /// <summary> /// 递归实现与TreeView节点值对比,如相同则该节点的CheckBox=True /// </summary> /// <

winform TreeView树节点上下移动

/// <summary> /// 上移 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tsbMoveUp_Click(object sender, EventArgs e) { if (Tv_tree.SelectedNode == null) { Messa

Access Treeview树节点代码一

Private Sub TreeView0_Updated(Code As Integer)Dim ndeindex As NodeSet ndeindex = TreeView0.Nodes.Add(, , "a", "基础资料 ", "k1")Set ndeindex = TreeView0.Nodes.Add("a", tvwChild, "a1", "品号资料 维护 ", &qu

树的递归遍历

树是一个由n个有限节点组成并具有层次关系的集合,是一种非线性的数据结构.树是由跟节点和它的子树构成,所以树的定义是递归的.二叉树是树的一种,它的特点是至多有两颗字树,并且二叉树的子树也有左右之分,不能互相颠倒. 二叉树常用的遍历方式有三种,即:前序遍历,中序遍历,后序遍历,这三遍历方式的主要却别是访问根结点和遍历左子树.右子树的先后关系不一样. 访问顺序: 前序遍历:根->左->右 中序遍历:左->根->右 后序遍历:左->右->根 下面由树的递归建立和对树进行递归遍历

wxPython treeCtrl树节点递归遍历(复制)

下面是递归遍历.获取树节点的方法. 1 def getTreeAllText(self): 2 '''获取树控件的全部文本''' 3 result = [] 4 treeRoot = self.treeCtrl.GetRootItem() 5 rootText = self.treeCtrl.GetItemText(treeRoot) 6 result.append(u'┌'+rootText) 7 def recursivelyGetTreeItem(tree,leval): 8 ''' 递归

C# 中采用treeview递归生成目录树(Winform和Webform两种)

部门表: 课程表: 查询结果结构: 数据结构分析,部门分为部门id和部门名称:课程分为课程id,课程名称,课程路径和课程所属部门. 要求以部门为父节点展示不同部门下的课程. Winform采用treeview递归生成目录树using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using Sy