var
  ProfileList:TObjectList;
  AMan:TMan;ProfileList:=TObjectList.Create(True);
  for i:=1 to ClientDataSet1.RecordCount  do
  begin
    AMan:=TProfile.Create;
    AMan.Name:=ClientDataSet1.FieldByName('Name').AsString;
    AMan.Job:=ClientDataSet1.FieldByName('Job').AsString;
    AMan.Dep:=ClientDataSet1.FieldByName('Dep').AsString;
    AMan.Password :=ClientDataSet1.FieldByName('Password').AsString;
    ProfileList.Add(AMan);
    ClientDataSet1.Next;
  end;
//----------------------------------------------------------
请问各位上述代码中的对象AMan用不用销毁?如何销毁?

解决方案 »

  1.   

    当然要销毁,在ProfileList中循环销毁
      

  2.   

    ProfileList对成员对象是自动销毁的,所以对ProfileList中成员不用自己管理,
    我是想知道Aman这个对象引用如何处理?
      

  3.   

    TMan(ProfileList[i]).Password:='aaaaaa';
      

  4.   

    需要手动销毁
    freeandnil(aman);
      

  5.   

    最近又看了关于对象生命周期的资料
      对于上述问题Aman这个对象已交于ProfileList去进行生命周期的管理
    对于AMan来说只有只有一个对象引用,所以不用销毁。   如果要进行处理只需AMan=nil即可
      

  6.   

    同意 festivity(festivity)自己可以销毁的
      

  7.   

    上次没看清楚,Aman对象的内存确实由profilelist管理,但是如果不手动释放profilelist的话,Aman也得不到释放的。我觉得应该freeandnil(profilelist)