以前用PB写过一些小程序,后被Delphi强大的功能吸引,开始学习Delphi。一个考勤管理的例程断断续续啃了近一个多月,对窗口打开的顺序还是满头雾水,实在郁闷,几度萌生放弃的想法。该管理系统有两个窗口:主窗口mainForm和登录窗口Passworddlg。可我就总搞不明白,为什么程序启动后会自动地先打开窗口Passworddlg,而不是主窗口mainForm?
Main form: mainForm
Auto-creat form: mainForm, Passworddlgkaoqin.dpr如下:
program kaoqin;
uses
Forms,
main in 'main.pas' {mainForm},
passdlg in 'passdlg.pas' {Passworddlg},
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TmainForm, mainForm);
Application.CreateForm(TPassworddlg, Passworddlg);
Application.Run;
end.
恳请高手指教,谢谢。
Main form: mainForm
Auto-creat form: mainForm, Passworddlgkaoqin.dpr如下:
program kaoqin;
uses
Forms,
main in 'main.pas' {mainForm},
passdlg in 'passdlg.pas' {Passworddlg},
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TmainForm, mainForm);
Application.CreateForm(TPassworddlg, Passworddlg);
Application.Run;
end.
恳请高手指教,谢谢。
Application.CreateForm(TPassworddlg, Passworddlg);
如果你在这里改,把
Application.CreateForm(TPassworddlg,Passworddlg)写在
Application.CreateForm(TmainForm,mainForm)的前面,那么TPassworddlg就变成了主窗口了,工程选项那里也自动变了。
但我的意思是,为什么没有作其它设置,
Passworddlg窗口就能在主窗口前,第一个打开?
Application.CreateForm(TPassworddlg,Passworddlg)写在
Application.CreateForm(TmainForm,mainForm)的前面,的方法是一样的,你改完这个代码,选项卡中,Main Form选项也自动变了
实际上你这句已经是将两个窗口同时打开了,但是为什么显示后者为什么不显示前者,我也遇到过这个问题,但是实际上这样写也是没有什么意义上的,把Passworddle放到左边就可以了.因为你想显示前者以后在显示后者.(对吧)
但我还是没搞明白,
为什么没有作其他设置,也没有其它语句,
Passworddlg窗口就能在主窗口前,第一个被打开?
顺便说句,Passworddlg窗口读取了初始化文件.ini的内容,
难道这和初始化文件.ini有关系吗?
估计兄台是高手,何不点拨小弟一二?
谢了.
這個問題已經說了,Passworddly第一個被打開的原因就是他第一個創建的...
Application.Initialize;
//下面哪個代碼創建的是哪個窗體,那麽那個窗體就是第一個被打開.
Application.CreateForm(TPassworddlg, Passworddlg);
Application.CreateForm(TmainForm, mainForm);
Application.Run;
end.
kaoqin.dpr代码中mainForm第一个被创建,照你的说法,应该是第一个打开的.
可实际上却不是啊!
程序启动后,第一个窗体却是Passworddlg.kaoqin.dpr如下:
program kaoqin;
uses
Forms,
main in 'main.pas' {mainForm},
passdlg in 'passdlg.pas' {Passworddlg},
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TmainForm, mainForm);
Application.CreateForm(TPassworddlg, Passworddlg);
Application.Run;
end.