var
node,node1,node2:ttreenode;
begin
node:=treeview1.Items[0];
node1:=treeview2.items[0];
if not node1.HasChildren then node1.HasChildren:=true;
node1:=treeview2.Items.AddChild(node1,node.text);
node2:=node.getFirstChild ;
while node2<>nil do
begin
treeview2.Items.AddChild(node1,node2.text);
node2:=node2.GetNext ;
end;
end;
node,node1,node2:ttreenode;
begin
node:=treeview1.Items[0];
node1:=treeview2.items[0];
if not node1.HasChildren then node1.HasChildren:=true;
node1:=treeview2.Items.AddChild(node1,node.text);
node2:=node.getFirstChild ;
while node2<>nil do
begin
treeview2.Items.AddChild(node1,node2.text);
node2:=node2.GetNext ;
end;
end;
var
TempSourceNode,TempDestNode:TTreeNode;
Begin
if (Source = nil) or (DestTree =nil) then
raise Exception.Create('Error');
if Dest =nil then
TempDestNode := DestTree.Items.Add(nil,'')
else
TempDestNode := DestTree.Items.AddChild(Dest,'');
TempDestNode .Assign(Source);
if Source.HasChildren then Begin
TempSourceNode := Source.GetFirstChild;
repeat
if TempSourceNode <> nil then
CopyTree(TempSourceNode,TempDestNode,DestTree);
TempSourceNode := Source.GetNextChild(TempSourceNode);
until TempSourceNode =nil;
end;
end;参数说明:
Source: 想Copy的树结点,不能为nil,否则会raise一个错误;
Dest: 想Copy到的目的结点,如果为nil,则添加为根结点。
DestTree 目的结点所在的TreeView例子:
CopyTree(TreeView1.Selected,TreeView2.Selected,TreeView2);
谢谢,非常感谢,一点小分先上