procedure TForm1.Button1Click(Sender: TObject);
var
   t1,t2 :TTreeNode;
begin
     t1 := tv.Items.Add(nil,'top');
     t2 := tv.Items.AddChild(t1,'Children');end;procedure TForm1.Button2Click(Sender: TObject);
var
    t1,t2 :TtreeNode;
begin
    if tv.Selected.Level = 1 then
    begin
       t1 := tv.Selected ;
       t2 := TTreeNode.Create(nil);
       t2.Assign(t1);     //问题就是此代码提示内存错误
       showmessage(t2.Text );
       t2.Free;
    end;end;为什么 t2.assign(t1) 会出错 
书中解释 如果用 t2 := t1 t1和t2指向同一地址 t2.free时把t1也释放了而
t2.assign(t1)是给t2一个副本