在创建类的实例时,我见过有:
TClass.create(self)
TClass.create(application)
TClass.create(nil)
到底它们区别何在?各用在什么地方呢?

解决方案 »

  1.   

    如果 ,TForm1.Button1Click 中:  TClass.create(self)        ---- 对象由Form1负责释放,在Form1.Destory 释放资源 
      TClass.create(application) ---- 对象由应用程序负责释放,在 Terminate 时释放资源 
      TClass.create(nil)         ---- 需要手动释放 。Ower 主要负责对象的管理和释放 .
    请指正
      
      

  2.   

    有道理,谢谢wjlsmail(计算机质子) ( )
      

  3.   

    TClass.create(self)
      TClass.create(application)
    最好也手动释放
      

  4.   

    同意wjlsmail(计算机质子) 兄~
      

  5.   

    咦,怎么我昨天的回复没了,
    现在在区内看不到自己的贴子,挺别扭的,不知道到底是在哪个位置,该不该UP一下。
    看来大家对wjlsmail(计算机质子)的回答没什么意见了,结贴了。谢谢大家!!
      

  6.   

    不对,明明还有一些回复,点击管理可以看到,有:  回复人:siyu2002(阿土仔) () 信誉:100  2003-1-3 13:00:05  删除  
     
      self不一定就是指form1  
     
      回复人:jackystar(我) () 信誉:100  2003-1-3 13:01:59  删除  
     
      TClass.create(self)  
       TClass.create(application)  
    最好也手动释放  看来还有点疑问,大家再讨论吧,分数再加!!!!!!!!!!!
      

  7.   

    1 一次性使用的可以用TMyClass.Create(nil); 
      不过要手工调用MyClass.Free;
    2 持久使用的可以用TMyClass.Create(AOwner); 
      当Owner自杀前会杀掉MyClass, 所以不需人工去调用MyClass.Free;
    3 至于Owner选择谁(如Application, MyForm等), 
      则视MyClass的生存期而定了。
      

  8.   

    如果 ,TForm1.Button1Click 中:  TClass.create(self)        ---- 对象由Form1负责释放,在Form1.Destory 释放资 
    在 TForm1.Button1Click 中,Self 指 TForm1 应该对吧