窗体的自动生成 ( 积分: 50 )

  • 主题发起人 主题发起人 2005jq
  • 开始时间 开始时间
2

2005jq

Unregistered / Unconfirmed
GUEST, unregistred user!
create(self)、create(nil)有什么区别?最好举个例子。
 
create(self)建立的由application释放,create(nil)要自己不用时释放,如<br>Frm&nbsp;:=&nbsp;TForm1.Create(Nil);<br>try<br>&nbsp;&nbsp;<br>finally<br>&nbsp;&nbsp;FreeAndNil(Frm);<br>end;
 
create(self)、create(nil)有什么区别?最好举个例子。&nbsp;&nbsp;<br>Create(self)的Owner(所有者)为当前的窗体,Owner被Free时,它也被Free<br><br>www.soware.cn
 
跟你解释解释,像你提到的问题,要从追究TComponent(组件基类)说起,<br>TComponent的构造函数Create(Owner:TComponent);需要传入一个类自身的所有者,<br>这个所有者的其一作用就是在所有者被释放时,如果此类还没被释放,它会把此类释放掉,<br>现在create(self)、create(nil)有什么区别?其实意义是一样的,因为Self,nil都不会去释放它自己.
 
后退
顶部