我的程序有个登陆框(Logform),有个主界面(Mainform),程序大概是这样:
工程文件:
  Application.Initialize;
  Application.CreateForm(TMainform, Mainform);
  ..........
  
  Logform:=TLogform.Create(Application);
  Logform.ShowModal;
  ..........
  Application.Run;然后:
  procedure TLogform.OKBtnClick(Sender: TObject);
  var
    ........
  begin
    ........
    if 身份验证通过 then
      begin
        .......
        .......
        进入主界面
      end 
    else
      begin
        .....//提示身份验证有误
        //这里该这么写????
      end;
  end;
  如果什么都不写会进入Mainform,如果写application.Terminate;会退出程序,这样不好,请教各位我该这么写才能实现身份验证有误时不进入主界面(Mainform),还是显示登陆界面(Logform),可以再次输入账号、密码?????

解决方案 »

  1.   

    将OKBtn的ModalResult属性设置成mrNone
     procedure TLogform.OKBtnClick(Sender: TObject);
      var
        ........
      begin
        ........
        if 身份验证通过 then
          begin
            .......
            .......
            OKBtn.ModalResult:=mrOk
            进入主界面
          end 
        else
          begin
            .....
    这里写一个密码出错的信息,或什么都不写
          end;
      end;
    不过这样有个问题,就是按Alt+F4关闭它后,同样会进入主窗体
    工程文件中改一下这里
      Logform:=TLogform.Create(Application);
     if Logform.ShowModal<>mrOk then
       Application.Terminate;