下面的程序本来希望能实现将TTreeView1中选中的Node以下的所有子孙复制到TTreeView2中,但如何实现让DisTTreeNodes转移到子孙上去?
procedure CopyTreeView(StartNode:TTreeNode;DisTTreeNodes:TTreeNodes);
var
node,node1:TTreeNode;
Str:string;
I:integer;
begin
node:=StartNode;
if DisTTreeNodes.Count=0 then //如果是Root node
begin
DisTTreeNodes.Add(nil,node.text);
end;
if node <> nil then
begin
for I:=0 to node.Count-1 do
begin
DisTTreeNodes.Add(node,node.text);
if node.HasChildren then
begin
node1:=node.GetFirstChild;
CopyTreeView(node1,DisTTreeNodes//这地方是有问题的); //递归程序
end;
end;
node:=node.GetNextSibling;
end;
end;
procedure CopyTreeView(StartNode:TTreeNode;DisTTreeNodes:TTreeNodes);
var
node,node1:TTreeNode;
Str:string;
I:integer;
begin
node:=StartNode;
if DisTTreeNodes.Count=0 then //如果是Root node
begin
DisTTreeNodes.Add(nil,node.text);
end;
if node <> nil then
begin
for I:=0 to node.Count-1 do
begin
DisTTreeNodes.Add(node,node.text);
if node.HasChildren then
begin
node1:=node.GetFirstChild;
CopyTreeView(node1,DisTTreeNodes//这地方是有问题的); //递归程序
end;
end;
node:=node.GetNextSibling;
end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货