L liu12345 Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-11 #1 请问高手: 在 *.create(self) 与 *.create(nil) 分别是什么涵义? 它们之间有什么区别? create()还有别的参数吗?
S svw0506 Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-11 #2 这个参数是对象的拥有者,还可以用 *.create(Application), *.create(form1) 等
J jsxjd Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-11 #3 *.create(self) 一般在 TForm 的过程中使用,这时self 就表示那个 Form Create中的参数表示由谁负责内存的释放. 如果是 nil,在不需要的时候,程序序必须调用相应的 Free 来释放内存. 如果是 self( 或其它的非 nil) ,则在Self,自身释放内存时,会释放动态创建的 控件(*)的内存,不需要程序员调用相应的 Free 来释放内存
*.create(self) 一般在 TForm 的过程中使用,这时self 就表示那个 Form Create中的参数表示由谁负责内存的释放. 如果是 nil,在不需要的时候,程序序必须调用相应的 Free 来释放内存. 如果是 self( 或其它的非 nil) ,则在Self,自身释放内存时,会释放动态创建的 控件(*)的内存,不需要程序员调用相应的 Free 来释放内存
Y yanglih Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-11 #5 SELF表示使用当前的窗体作为所创建的组件的拥有者等价与*.create(CurrentForm) nil则表示当前的组件没有拥有者,参数还可有Application、Panel、GroupBox等。
S shenloqi Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-11 #6 *.create(self) 是把Self作为*的Owner, *.create(nil) *没有Owner。