Delphi实现登录窗体与主窗体的过程

对工程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退出并释放程序。

原文地址: https://www.cnblogs.com/ne1620/p/16390350.html

posted @ 2022-06-19 13:09  NE1620  阅读(459)  评论(0)    收藏  举报