怎么遍历TREEVIEW里面被选节点的所有子节点,包括子节点的子节点???

zlstone 2003-03-12 06:48:41
?????????????????????????
...全文
88 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
citytramper 2003-03-12
  • 打赏
  • 举报
回复
深度优先,广度优先,任选其一
feibob 2003-03-12
  • 打赏
  • 举报
回复
递归!!
chao_jian 2003-03-12
  • 打赏
  • 举报
回复
一个递归函数
function FindNode(ANode: TTreeNode; const condition: Variant; ARecurse: Boolean): TTreeNode;
var
Node: TTreeNode;
begin
Result := nil;
Node := ANode;
while Node <> nil do
begin
//遍历终止条件,例如:
if condition = Node.Text then
begin
Result := Node;
Break;
end
else
if ARecurse then
begin
if Node.HasChildren then
Result := FindNode(Node.getFirstChild, condition, ARecurse);
if Result = nil then
Node := Node.getNextSibling
else
Node := nil;
end;
end;
end;
ehom 2003-03-12
  • 打赏
  • 举报
回复
procedure GetInfo(TreeNode:TTreeNode);
var
i:integer;
begin
for i:=0 to TreeNode.Count-1 do
begin
if TreeNode[i].HasChildren then
begin
Showmessage(TreeNode.Item[i].Text);
GetInfo(TreeNode[i]);
end
else
Showmessage(TreeNode.Item[i].Text);
end;
end;


GetInfo(TreeView.Selected);//调用
proman 2003-03-12
  • 打赏
  • 举报
回复
首先把被选中的节点要找出来。然后可以对每一个选中的节点进行查找即可。难度应该没有吧。
当然查找子节点的过程可能要用到递归的。
bluemeteor 2003-03-12
  • 打赏
  • 举报
回复
for i:=1 to TreeView1.Items.count-1
begin

end;
xzhifei 2003-03-12
  • 打赏
  • 举报
回复
方法1:
var
i;integer;
xx:TListItem;
begin
for i:=1 to Listview1.Items.count-1
begin
xx:=ListView.Items.Item[i];
//process xx here
end;
end;
方法2:
var
lnNode: TTreeNode;
begin
lnNode := TreeView1.Items.GetFirstNode;
while not (lnNode = nil) do begin
{
//process xx here
}
lnNode := lnNode.GetNextSibling;
end;
end;

5,386

社区成员

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

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