有个问题请教下,做某个管理系统的application的源码如下
  Application.Initialize;
  Application.CreateForm(TFm_Main, Fm_Main);
  Application.CreateForm(TDMd_Public, DMd_Public);
  Application.CreateForm(TFm_Splash, Fm_Splash);
  //打开初始化界面
  Fm_Splash.Lbl_Splash.Caption:= '连接数据库中,请稍候';
  Fm_Splash.Show;
  if DMd_Public.OpenADOConn then //如果连接成功则创建窗体
    begin
      Fm_Splash.Lbl_Splash.Caption:= '系统初始化中,请稍候';
      Application.CreateForm(TFm_Login, Fm_Login);
      {这里创建所有窗体}
      Fm_Splash.Free;
      Fm_Login.Show;<----------
      Application.Run;
    end
  else //如果连接失败则关闭初始化界面和数据模块,系统退出
    begin
      Fm_Splash.Free;
      DMd_Public.Free;
    end;
  end.
主窗体是fm_main,问题是打箭头的语句执行完后登录窗体弹出来了,但是程序自动执行下去,也弹出了主窗体,有没有办法弹出登录窗体后暂时不执行,等输入了正确的用户名和密码后再执行 Application.Run;?

解决方案 »

  1.   

    对 改为 ShowModal试一下
      

  2.   

    哦,那ShowModal完了以后什么情况下才开始继续执行?
      

  3.   

    这是我以前写的程序begin
      Application.Initialize;
      Application.Title := 'ELEVATOR DETECTOR 1.0';
      application.ShowMainForm:=false;
      Application.CreateForm(Tfrmmain, frmmain);
      Application.CreateForm(Tfrmlogin, frmlogin);
      frmlogin.Show;
      Application.Run;
    end.
      

  4.   

    在frmlogin中进行判断,出错 则直接使用 application.Terminate;退出
      

  5.   

    if Fm_Login.ShowModal=mrOk then 
     ...
    else
     ...