destructor TObject.Destroy;
begin
end;procedure TObject.Free;
begin
  if Self <> nil then
    Destroy;
end;类的解构函数居然是这样的  
btn1: //单击事件
begin
  form2:=TForm2.Create;
  form2.show;
end;当form1结束的时候彻底删除form2(内存释放 对象释放) 要怎么写啊?
(要是自己的一个类即没有指针也没有句柄  是不是就不需要覆盖TObject的Destroy了?)

解决方案 »

  1.   

    好象是在TComponent的Destory方法中,会释放Owner为当前Component下的所有Component。
    所以无论是设计时创建对象,还是运行时创建对象,记得把owner设置为当前的form,这样的话,在form的free时,这个对象也free了!
      

  2.   

    在form2的onClose中写 Action := caFree; 然后再form2 := nil;
    或者用FreeAndNil(form2)
      

  3.   

    当form1结束的时候彻底删除form2(内存释放 对象释放) 要怎么写啊?
    FreeAndNil(form2)
    (要是自己的一个类即没有指针也没有句柄  是不是就不需要覆盖
    我觉得是类就需要释放,
    就算是有指针句柄的类,也可以不用覆盖TObject的Destroy,,什么叫继承??