首页 > 代码库 > delphi 递归遍历TreeView树节点
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;
delphi 递归遍历TreeView树节点