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
更改后应该为
{var
Form1: TForm1;}

implementation
在调用的窗提内先要在uses中添加

implementation
uses
TFormtestUnit;

再如下写
procedure TFormMain.N11Click(Sender: TObject);
var formtest:Tformtest;
begin
with TFormNzdbdCk.Create(Self) do
Show;
end;
应该能看到结果了吧

两者区别很大
比较一下 Application.CreateForm(TForm1, Form1); 与 Form1 := TForm1.Create(Application);
的区别就容易清楚了.

Form1 := TForm1.Create(Application); 是先调用TForm1的Create方法, 然后付赋值给Form1变量

Application.CreateForm(TForm1, Form1); 则不同. 他先得到一个Instance的指针, 把这个指针
赋值给Form1, 然后是Form1.Create(Application). 这与上面的区别在于, 在TForm1的OnCreate
事件中, 我们可以使用Form1这个变量.

另外一点是Application.CreateForm中判断所创建的Form是否MainForm, 如果是则MainForm := Form1;
这点很重要, 因为Application.MainForm是只读的属性, 整个程序运行过程中只在此赋值一次, 以后
再也不能更改.

注: mat的Application.CreateForm创建了一个空白的窗体的说法是不正确的
[]sorry mat, no hard feelings.

還是會長老師厲害 
呵呵huizhang兄弟说的是,确实犯了点错误,不好意思,差点误导了别人。
多人接受答案了。

最新文章

  1. 关于印发利用DEM确定耕地坡度分级技术规定(试行)的通知
  2. 【Android】中兴ZTE sdcard路径的问题
  3. css书写规则总结
  4. sprintf的缓冲区溢出问题
  5. android最佳实践之设备兼容性
  6. TortoiseGit-创建分支、合并分支
  7. UI 网络程序
  8. 织梦dedecms调用栏目的SEO标题、描述、关键字的方法
  9. IPC$命令详解
  10. WebAPI 用户认证防篡改实现HMAC(二)签名验证 AbsBaseAuthenticationAttribute--转
  11. acdream 1222 Quantization Problem [dp]
  12. [Swift]LeetCode91. 解码方法 | Decode Ways
  13. 007-li标签CSS水平居中垂直居中
  14. Python 设计模式之路
  15. shell 获取时间
  16. [CodeForces - 447E] E - DZY Loves Fibonacci Numbers
  17. 给公司服务器装web服务器,邮件服务器——安装SecureCRT
  18. 超级简单却不知道:html标签的嵌套规则
  19. 怎样知道 CPU 是否支持虚拟化技术(VT) | Linux 中国
  20. 使用better-scroll遇到的问题

热门文章

  1. 页面中获取 iframe 中的值
  2. 中文转换为ASCII码的方式
  3. SpringMVC @RequestMapping注解详解
  4. 鹅厂干货 | 腾讯游戏APP协议迭代的那些事
  5. java面向对象4-多态
  6. 微信小程序-饮食日志_开发记录01
  7. 算法——二进制解决N皇后(超级酷炫o((>ω< ))o
  8. 《转》从系统和代码实现角度解析TensorFlow的内部实现原理 | 深度
  9. CentOS7安装codeblocks
  10. python 输出一个随机数