TreeView如何查出当前节点的所有子节点

nww2002 2015-09-11 09:18:43
TreeView树结构的层数不固定,对应表ID(节点),PID(父节点),PName(名称)
现在点击TreeView其中一个节点,想找出其下所有子节点的ID,如何编写,麻烦给出代码
...全文
347 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyhoo163 2015-09-11
  • 打赏
  • 举报
回复
遍历全部子节点代码:
procedure TShowTextFrm.Button1Click(Sender: TObject);
var NowNode,Node : TTreeNode;
iLevel:integer;
begin
NowNode:=TreeView1.Selected;
if NowNode.HasChildren then
begin
Node:=NowNode.getFirstChild;
iLevel:=Node.Level;
ShowMessage(Node.Text);
While (Node.GetNext<>nil) and
(Node.GetNext.Level>=iLevel) do
begin
Node:=Node.GetNext;
ShowMessage(Node.Text);
end;
end;
end;
lyhoo163 2015-09-11
  • 打赏
  • 举报
回复
这仅是一层子目录,所有子目录自己修改吧。
lyhoo163 2015-09-11
  • 打赏
  • 举报
回复
先选择树结点,在执行该按钮。可以循环列出子节点。 ShowMessage遍历子节点,更换其它操作代码,放在鼠标右键事件中:

procedure TShowTextFrm.Button1Click(Sender: TObject);
var NowNode,Node : TTreeNode;
begin
  NowNode:=TreeView1.Selected;                // 父节点
  if NowNode.HasChildren then                 // 有子节点
  begin
    Node:=NowNode.getFirstChild;              // 第一个节点
    ShowMessage(Node.Text);
    While NowNode.GetNextChild(Node)<>nil do  // 子节点循环
    begin
      Node:=NowNode.GetNextChild(Node);       // 下一个节点
      ShowMessage(Node.Text);
    end;
  end;
end;
nww2002 2015-09-11
  • 打赏
  • 举报
回复
有高手回复一下吗

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧