如何创建窗体(50分)

  • 主题发起人 野蛮人
  • 开始时间

野蛮人

Unregistered / Unconfirmed
GUEST, unregistred user!
 DELPHI在创建窗体时有Application.Create()和TForm.Create():
请问此两种创建方式有何区别?
使用时采用Application,Seft,Owner,nil为对象又有何区别呢?
哪位大侠能帮帮忙,谢谢!谢谢!谢谢!!!!
 
Application.Create()和TForm.Create():
这两种方法我用暂时没发现有多大不同;
你要建立新窗口,可以这样执行即可:
TFROM1:=TFROM1。CREATE;
FORM1。SHOWMODEL;
FORM1。FREE;//释放窗口。
然后你在主菜单里点击NEW FROM。
然后运行程序,会有提示,点击YES即可完成新窗口的建立。
 
application 创建的是程序运行就建立的,在程序运行期一直占用内存空间,一般主窗口都在这
里创建,遇到要用的时候才显示的窗口一般用form的create,可以在用完后就释放空间,
主要就是这个差别!
 
>>使用时采用Application,Seft,Owner,nil为对象又有何区别呢?

这几个参数指的是创建的窗体的拥有者。
即是指窗体可以由上面的几个参数在释放的时候释放这个代码创建的窗体。
Application----主程序
Seft---调用创建函数的类



 
在创建窗口时我常用的是
TForm.Create();
此时参数有Application、Self、Owner、nil
我想问的是它们有什么区别,使用时又要注意哪些东西呢?
 
有区别的。
用Application.CreateForm,如果当前Application.MainForm为nil,而且将要建立的是
TForm的子类,那么这个窗体会自动成为Application.MainForm。所以用CreateForm建立
多个窗体的时候要注意顺序问题,否则程序的主窗体可能会以外改变。
最好在Create的时候指定Owner,因为Owner在释放的时候会自动释放其所拥有的所有
Component,如果指定为nil,那么必须自己释放这个对象,否则就会有内存泄漏。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部