https://wedelphi.com/t/135849/
请详细些,并给出例子。谢谢。 |
Application.CreateForm()创建的第一个可显示的窗体是自动成为主窗体,并且自动显示, 并且在Project Options中窗体左列表中显示,如果有多个这样的窗体的话,这些窗体都会在 程序运行时就自动创建,想用的时候可以不用Create的了,直接Show就行了,TForm.Create 创建的窗体必须show一下才行,其它好象就没有什么分别, |
application.createform是创建一空白的窗体,就象DELPHI里点NEW APPLICATION出来的窗体 一样什么都没有。 而TFORM。CREATE创建出来的窗体可以是设计时候创建好的。也就是设计好窗体,运行时动态 创建。这样做的好处主要是:DELPHI默认的是自动创建,在菜单PROJECT下的OPTION中可以看 到工程中各个单元是自动创建或者是动态创建。但是当工程比较大拥有大量窗体时候,如果 所有窗体都是动态创建的,那么势必影响程序的启动速度和运行速度,因为创建的窗体都是 要放到内存中的。而现实的情况是,某些用户使用某部分功能,而另一些人则用其他的。这 时候就应该使用动态创建窗体的方法了。具体的使用方法如下。先设计好一个窗体。 把窗体名称注释掉 var Formtest: TFormtest;//该句应该注释掉 implementation implementation implementation 再如下写 |
两者区别很大 比较一下 Application.CreateForm(TForm1, Form1); 与 Form1 := TForm1.Create(Application); 的区别就容易清楚了. Form1 := TForm1.Create(Application); 是先调用TForm1的Create方法, 然后付赋值给Form1变量 Application.CreateForm(TForm1, Form1); 则不同. 他先得到一个Instance的指针, 把这个指针 另外一点是Application.CreateForm中判断所创建的Form是否MainForm, 如果是则MainForm := Form1; 注: mat的Application.CreateForm创建了一个空白的窗体的说法是不正确的 |
還是會長老師厲害 |
呵呵huizhang兄弟说的是,确实犯了点错误,不好意思,差点误导了别人。 |
多人接受答案了。 |