我做了登录验证的窗体。但当按窗体上的关闭按钮,程序就会跳过验证直接打开主窗体,请问有什么办法解决?

解决方案 »

  1.   

    if form1.showmodal <> mrclose then ...
      

  2.   

    但当按窗体上的关闭按钮
    --------------------------------------------------
    你把你的关闭按钮的代码改成终止整个工程!
    procedure Tlogform.Button2Click(Sender: TObject);
    begin
      Application.Terminate;//这样就可以退出了
    end;
      

  3.   

    Application.Terminate;//或用 halt;
      

  4.   

    var
      canClose : boolean;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      if canClose then
        Action := caFree
      else
        Action := caNone;
    end;procedure TForm1.Button1Click(Sender: TObject); //正常的关闭按钮
    begin
      canClose := true;
      Close ();
    end;
      

  5.   

    Procedure TFormLogin.FormCloseQuery(Sender: TObject;
      Var CanClose: Boolean);
    Begin
      CanClose := False;
    End;屏蔽 关闭按钮
      

  6.   

    模式窗体的关闭不是可以判断ModalResult吗?你在确定按钮里的关闭语句不要用Close,而是用ModalResult := mrOK;
    将显示窗体的语句改为:
    if frmLogin.showmodal <> mrOK //也即登录失败
    begin
      Application.terminate;
      exit;  //如果不用exit,那么程序会接下去执行下面的语句,从而导致程序出错。
    end;
      

  7.   

    很简单:
    在项目文件(点击project菜单下的view source子菜单可以显示)中的“Application.Run;”语句前添加一句:
    if fmLogin.ShowModal=1 then 这样就应该可以达到你说的要求了。
    fmLogin是你登录的那个form的名字。
    ok,搞定!