一定是这样的,exit只退出当前的过程。
你或者可以在登录失败时结束程序,或者可以给主窗变量赋值,主窗判断这个值,不合适就退出。

解决方案 »

  1.   

    这个容易:
      PostMessage(Application.Handle,WM_CLOSE,0,0)搞定;
      

  2.   

    推荐:
    这样做不好吗!在工程里面加入登陆
    program Mclient;uses
      Forms,  main in 'main.pas' {Fmain},
      logno in 'logno.pas' {Flogno};VAR I:INTEGER;
    {$R *.RES}begin  try
      begin
      Application.Title := '软件';
      Application.CreateForm(Tfmdata, fmdata);
      flogno:= Tflogno.Create(Application);
      flogno.ShowModal;//登陆窗体
      if logno.logno_ok then
      begin
      Start := TStart.Create(Application);
      Start.Show;//登陆后显示一个一个窗体上面放上一个漂亮体图片
      Start.Update;
      Application.Initialize;
      Start.Update;
      Application.CreateForm(TFmain, Fmain);  FOR i:=1 TO 100000 do  
                 begin
                  Start.Update;
                    Application.ProcessMessages;
                    //inc(i);
                 end;
      start.Hide;
      start.free;  Application.Run;
      end
        else
        begin
        {start.Hide;
        start.free; }
        application.run;
        application.Terminate;
        end;
      end;
              except
                  begin
                            application.Terminate;
                  end;
      end;end.************
    * 努力学习 *
    *   全为   *
    *¥人民币¥*
    ************
      

  3.   

    推荐:
    这样做不好吗!在工程里面加入登陆
    program Mclient;uses
      Forms,  main in 'main.pas' {Fmain},
      logno in 'logno.pas' {Flogno};VAR I:INTEGER;
    {$R *.RES}begin  try
      begin
      Application.Title := '软件';
      Application.CreateForm(Tfmdata, fmdata);
      flogno:= Tflogno.Create(Application);
      flogno.ShowModal;//登陆窗体
      if logno.logno_ok then
      begin
      Start := TStart.Create(Application);
      Start.Show;//登陆后显示一个一个窗体上面放上一个漂亮体图片
      Start.Update;
      Application.Initialize;
      Start.Update;
      Application.CreateForm(TFmain, Fmain);  FOR i:=1 TO 100000 do  
                 begin
                  Start.Update;
                    Application.ProcessMessages;
                    //inc(i);
                 end;
      start.Hide;
      start.free;  Application.Run;
      end
        else
        begin
        {start.Hide;
        start.free; }
        application.run;
        application.Terminate;
        end;
      end;
              except
                  begin
                            application.Terminate;
                  end;
      end;end.************
    * 努力学习 *
    *   全为   *
    *¥人民币¥*
    ************
      

  4.   

    terminate前最好
    application.showmainform := False ;
      

  5.   

    要在onActivate或onShow中创建登陆窗口,关闭时要先Close主窗口,再Close登陆窗口!!
      

  6.   

    最好在工程文件里加载,在MainForm.OnActive或onShow中,可能会执行多次。
      

  7.   

    在主form中,关闭程序需要application.terminate,之前application.showmainform :=false,不然有闪烁.