这个代码我作过:
function copytree(source:TTreenode):boolean;
begin
CopyTreeNodes(source,dtshowForm.DTTreeView.Selected,dtshowForm.DTTreeView);
result :=true;
end;
//COPY 树结构
procedure CopyTreeNodes(source:TTreenode;dest:TTreenode;DestTreeView:TTreeView);
var i:integer;
begin
if source<>nil then
begin
if dest=nil then dest:=DestTreeView.Items.AddChild(nil,source.Text);
dest.Selected :=true;
for i:=0 to source.Count -1 do
begin
DestTreeView.Items.AddChild(DestTreeView.Selected,source.Item.Text);
end;
for i:=0 to Source.count -1 do
begin
if source.Item.hasChildren then
CopyTreeNodes(source.Item,Dest.Item,DestTreeView);
end;
end;
end;
这是一个递归调用,不知明白没有,与2叉树的遍历相是。
COPY已经解决,再删掉没问题吧。