初级问题:关于Application.CreateForm(10分)

  • 主题发起人 主题发起人 Qingzhong
  • 开始时间 开始时间
Q

Qingzhong

Unregistered / Unconfirmed
GUEST, unregistred user!
请教:
Application.CreateForm(TForm1, Form1)与
Form1 := TForm1.Create(Application)的差别

 
没有本质上的差别
 
[:)]除了写法的区别,没实质区别。记得以前有看过相同的问题:)
 
真的没有区别?果真如此,何必要两种写法,希望我的这个问题不会象孔乙几说的
“茴”字有几种写法一样那么迂腐!
 
BINGO,you are right[:D]
 
看看d的source吧,还不错的:
procedure TApplication.CreateForm(InstanceClass: TComponentClass
var Reference);
var
Instance: TComponent;
begin
Instance := TComponent(InstanceClass.NewInstance);
TComponent(Reference) := Instance;
try
Instance.Create(Self);
except
TComponent(Reference) := nil;
raise;
end;
if (FMainForm = nil) and (Instance is TForm) then
begin
TForm(Instance).HandleNeeded;
FMainForm := TForm(Instance);
end;
end;
 
多人接受答案了。
 
个人感觉没有实质上的差别!
 
< Application.CreateForm(TForm1, Form1)与
< Form1 := TForm1.Create(Application)的差别
能实现同样的结果,application.createform(tform1,form1)可创建一个窗体,在工程文件
中都这儿写的你在程序中按CTRL+F12可查看工程文件,而第二句,把form1:=tform1.create(
self)意思就不一样了。
 
Delphi 会把第一句用
Application.CreateForm
创建的Form设置为MainForm
 
Application.CreateForm在普通的Form(非MainForm)中是能用的,还是CJ的说法有理。
 
后退
顶部