这个create是什么意思?(10分)

  • 主题发起人 主题发起人 awfigsk
  • 开始时间 开始时间
A

awfigsk

Unregistered / Unconfirmed
GUEST, unregistred user!
TFMAboutBox.Create(nil)
为什么要加这个nil参数?它起什么作用呢?
 
一般为owner对象,标示当owner对象释放的时候,你创建
的对象被自动释放。传入nil参数表示没有owner对象.
 
nil就是无。
作用就是指向一个无。
你也可以试试TFMAboutBox.Create(form1)
 
组件及其后代类Create方法中一般都要求传入一个组件对象作参数,
这个对象是你的组件实例的Owner,这时,你的组件将由Owner负责释放;
Owner为何可以自动释放你的组件实例呢?谜底在Owner组件的Component属性,
原来,当你创建自己的组件实例时,Owner的Component数祖将自动加入你的组件实例
的指针,这样,当它释放时,就可以查找Component数组,释放所有归它释放的资源了。

Nil为空指针,当组件创建时Owner为Nil时,程序员必须自己释放组件资源。
 
Create中的参数可以理解为创建对象的拥有者是谁。
如:在一个窗体中创建一个按钮,则按钮有它的拥有者,即窗体。
对于窗体,它没有拥有者,所以Create后面的参数是Nil
 
白河愁,你好!我用你讲的TaboutBox.create(form1)语句,但没有任何反应,这是为何?我
定义的aa:TForm1,再执行TAboutBox.create(aa)也没有反应。
我还想请问二个问题
1、在create()函数中括号里面的变量该如何定义?
2、是不是执行了TaboutBox.create(aa);,是否可以执行aa.showmodal,
将调出TAboutBox表单?
谢谢!
 
create 完后象 form 你需要show
aa:=TAbout.Create(aa);
aa.Show;
 
一个组件的Owner怎麽可以是自己呢,你搞错了吧?
其实,一般的Owner指定为Self就可以了,不要搞什么花样.
 
多人接受答案了。
 
后退
顶部