对工程dpr==>view source可看到
Application.CreateForm(TloginForm, loginForm); Application.CreateForm(TmainForm, mainForm);
Delphi会默认第一个为主窗体。这种方式其实也是可以的,控制好窗体的show和hide。在login确认后,loginForm.hide;mainForm.show;
但有更好的方式,通过Modal回调来告诉程序是否创建主窗体。
首先在loginForm中声明并编写方法
class function Execute: boolean; class function TloginForm.Execute: boolean; begin with TloginForm.Create(nil) do try Result := ShowModal = mrOk; finally Free; end; end;
该方法会创建loginForm窗体,一旦回调参数为mrok即释放登录窗体。在登录页的确认按钮下写下
ModalResult:=mrOK;
在退出/关闭按钮中写下
//只要状态不是mrok的都可以 ModalResult:=mrerror;
在dpr的source中执行该方法
if TloginForm.Execute then begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TmainForm, mainForm); Application.Run; end else begin Application.Terminate; end;
上面表示,启动该程序时,将会动态创建loginForm窗体,一旦确认登录后,将会进入True中,也就是初始化窗体,创建mainForm。一旦点击退出或者关闭时进入False中,调用application.terminate退出并释放程序。
演示实例下载: