procedure TForm1.cloneTree(aNode:TTreeNode);
var
  i:integer;
begin
  for i:=0 to anode.Count -1 do
    begin
      showmessage(anode.item[i].Text );
      t2.Items.AddChild(anode, anode.Item[i].text);
      cloneTree(anode.item[i]);
    end;
end;

解决方案 »

  1.   

    chechy(我爱洁洁)大虾
    不行呀,添加过程出错。
      

  2.   

    刚才我特地试了一下,果然有错。我看了,主要是两个TreeView,它们的ParentNode需要区别,下面的代码我经过调试,应该没有问题了。procedure TForm1.cloneTree(aNode2, aNode: TTreeNode);
    var
      i: integer;
      newnode: TTreeNode;
    begin
      newnode := t2.Items.AddChild(anode2, anode.Text);
      for i := 0 to anode.Count - 1 do
        cloneTree(newnode, anode.item[i]);
    end;procedure TForm1.Button6Click(Sender: TObject);
    var
      anode: TTreeNode;
    begin
      anode := t1.Items[0];
      while anode <> nil do
      begin
        cloneTree(nil, anode);
        anode := anode.getNextSibling;
      end;
    end;