application.Terminate;是在主窗体的onclose()中
程序创建时用formLogin:=TformLogin.create(nil);formLogin.showModal;
在fromLogin窗体中有一个“确定”按钮,点击这个按钮显示(formMain:=TformMain.create(nil);formMain.showModal;)主窗体frmMain
程序创建时用formLogin:=TformLogin.create(nil);formLogin.showModal;
在fromLogin窗体中有一个“确定”按钮,点击这个按钮显示(formMain:=TformMain.create(nil);formMain.showModal;)主窗体frmMain
VCL的规则是那个窗口第一个创建,它就是主窗口,而在主窗口的
OnClose()事件中加入Application.Termination既是画蛇添足,从逻辑
上讲也是根本错误。
//----------------------------------------------------------
为了达到你想要的登录界面显示的效果,你应当首先创建formMain,
隐藏它,然后创建formLogin登录窗口。以下代码应该可以达到你的要求:program Win32Test;uses
Forms,
Controls,
MainFormUnit in 'MainFormUnit.pas' {formMain},
formLoginUnit in 'formLoginUnit.pas' {formLogin};{$R *.res}begin
Application.Initialize;
Application.CreateForm(TformMain, formMain); // 显示登录对话框 formLogin := TformLogin.Create(nil);
try
if formLogin.ShowModal = mrCancel then
Halt;
finally
formLogin.Free;
end; Application.Run;
end.//-----------------------------------------------------------