我在FORMACTIVATE事件里面加入 了以下程序:LOGINFRM.SHOWMODAL 可是当我输入 的用户名和密码都正确时,主窗体却和SHOWMODAL背景的一样,不能操作?如何办?

解决方案 »

  1.   

    当然啦,你不就是在loginfrm里输入的吗,结果又是这个窗体的showmodal吗
      

  2.   

    给你个长用的方法,用一个Timer来代替:
    procedure TfrmPer.tmrMainTimer(Sender: TObject);
    var
      frmLogin: TfrmLogin;
    begin
      tmrMain.Enabled := false;
      frmLogin := TfrmLogin.Create(self);
      if frmLogin.ShowModal <> mrOk then  {若不满足条件则关闭主窗体}
        Close;
      FreeAndNil(frmLogin);
    end;
    ...
    登录窗体中代码:
    procedure TfrmLogin.bbtnloginClick(Sender: TObject);
    ...
    begin
      ...
      if 登录成功 then self.ModalResult := mrOk;
      ...
    end;
      

  3.   

    先把用户名和密码窗口释放。再把主窗口显示出来。
    LOGINFRM.desctry;
    main.show;
      

  4.   

    在工程文件里写
    用户名密码正确后
    if loginfrm.showmodal = mrok then 
     application.run
    else
    begin
     application.terminate;
     application.run;
    end;