小弟正在做个登陆窗口,先显示登陆窗口,在登陆窗口的Create事件中显示主窗口,登陆窗口是模式窗口,在登陆窗口的close事件中写了application.terminate;语句,在取消也写了这个,但是确定按扭如果成功的话就要关闭登陆窗口,那么也执行了该语句,这个问题要怎么解决啊,谢谢

解决方案 »

  1.   

    先声名,本人不是高手你的方法有问题,为什么不写在工程文件里?begin
      Application.Initialize;
      Application.CreateForm(TLogInForm,LoginForm);
      if LoginForm.ShowModal=mrOK then
         Application.CreateForm(TForm1, Form1);
      else
        Application.Terminate;
      Application.Run;
    end.
      

  2.   

    我现在主窗口为form1,而登陆窗口为form2,谢谢,能不能具体点啊,我是个初雪者,谢谢高手们指点呀,哪里需要声明变量,谢谢5555
      

  3.   

    高手,你上面的代码在mrOK地方会出错啊,mrok是什么变量啊
      

  4.   

    Application.Initialize;
      Application.Title :='管理系统';
      MutexHandle:=CreateMutex(nil,False,'物资管理系统'); //建立一个互斥的窗体P:746
      if GetLastError=ERROR_ALREADY_EXISTS then  //返回调用线程最近的错误代码值P:497
        begin
          Application.MessageBox('该程序已在运行!','提示:',MB_ICONINFORMATION+MB_OK);
          ReleaseMutex(MutexHandle);
          Exit;
        end;
      ReleaseMutex(MutexHandle);
        
      F_PassWord:=TF_PassWord.Create(Application);  //密码验证框
      F_PassWord.ShowModal;
      if F_PassWord.ModalResult=mrOk then
        begin
          F_PassWord.Close;     //关闭密码验证框
          F_PassWord.Free;
          hDesktop:=FindWindow('Progman',nil);
          ShowWindow(hDesktop,SW_HIDE);  //隐藏桌面
          ShowWindow(hDesktop,SW_SHOW);
          Application.CreateForm(TF_Main, F_Main);
          Application.Run;
        end;
    end.
      

  5.   


    还不详细?
    工程文件Project1.dprprogram Project1;uses
      Controls,
      Forms,
      Unit1 in 'Unit1.pas' {Form1},
      Unit2 in 'Unit2.pas' {Form2};{$R *.res}begin
      Application.Initialize;
      Form2 := TForm2.Create(Application);
      if Form2.ShowModal = mrOK then
      begin
          Application.CreateForm(TForm1, Form1);
      end
      else
        Application.Terminate;
      Application.Run;
    end.
      

  6.   

    Application.Initialize;
      Application.Title :='X管理系统';
      MutexHandle:=CreateMutex(nil,False,'X管理系统'); //建立一个互斥的窗体
      if GetLastError=ERROR_ALREADY_EXISTS then  //返回调用线程最近的错误代码值
        begin
          Application.MessageBox('该程序已在运行!','提示:',MB_ICONINFORMATION+MB_OK);
          ReleaseMutex(MutexHandle);
          Exit;
        end;
      ReleaseMutex(MutexHandle);
        
      F_PassWord:=TF_PassWord.Create(Application);  //密码验证框
      F_PassWord.ShowModal;
      if F_PassWord.ModalResult=mrOk then
        begin
          F_PassWord.Close;     //关闭密码验证框
          F_PassWord.Free;
          hDesktop:=FindWindow('Progman',nil);
          ShowWindow(hDesktop,SW_HIDE);  //隐藏桌面
          ShowWindow(hDesktop,SW_SHOW);
          Application.CreateForm(TF_Main, F_Main);//主窗口
          Application.Run;
        end;
    end.以上运行5年了
      

  7.   

    Application.Initialize;
      Application.Title :='X管理系统';    
      F_PassWord:=TF_PassWord.Create(Application);  //密码验证框
      F_PassWord.ShowModal;
      if F_PassWord.ModalResult=mrOk then
        begin
          F_PassWord.Close;     //关闭密码验证框
          F_PassWord.Free;
          Application.CreateForm(TF_Main, F_Main);//主窗口
          Application.Run;
        end;
    end.以上就要以了
      

  8.   

    我怎么老出错啊,我晕,我已经创建好了登陆窗口了:代码:
    program Project2;uses
      Forms,
      Unit1 in 'Unit1.pas' {mainform},
      Unit2 in 'Unit2.pas' {Form2},
      Unit3 in 'Unit3.pas' {Form3},
      Unit4 in 'Unit4.pas' {Form4},
      Unit5 in 'Unit5.pas' {Form5},
      Unit6 in 'Unit6.pas' {DataModule6: TDataModule},
      Unit7 in 'Unit7.pas' {Frame7: TFrame},
      Unit8 in 'Unit8.pas' {loginForm};{$R *.res}begin
      Application.Initialize;   loginform:=Tloginform.Create(Application);
        loginform.ShowModal ;
        if loginform.ModalResult=mrOk then
          begin
            loginform.close;
            loginform.free;
          Application.CreateForm(Tmainform, mainform);
            end  Application.CreateForm(TForm2, Form2);
      Application.CreateForm(TForm3, Form3);
      Application.CreateForm(TForm4, Form4);
      Application.CreateForm(TForm5, Form5);
      Application.CreateForm(TDataModule6, DataModule6);
        Application.CreateForm(TloginForm, loginForm); //   Application.Run;
    end.
      

  9.   

    只要一个主窗口和一个登录窗口,其它的作为主窗口的CHILD,不要一开始就CREATE
      

  10.   

    在uses 后面加上Controls,
    --------------
    uses
      Controls,
      Forms,------------------把下面的语句删掉:
    -----------------------------
    loginform.close;
    loginform.free;....
    Application.CreateForm(TForm2, Form2);
      Application.CreateForm(TForm3, Form3);
      Application.CreateForm(TForm4, Form4);
      Application.CreateForm(TForm5, Form5);
    Application.CreateForm(TloginForm, loginForm);
    -----------------------------------------------在TLoginForm上“确定”按钮OnClick里,
    if 验证通过 then
    ModalResult := mrOK;