application.Terminate;是在主窗体的onclose()中
程序创建时用formLogin:=TformLogin.create(nil);formLogin.showModal;
在fromLogin窗体中有一个“确定”按钮,点击这个按钮显示(formMain:=TformMain.create(nil);formMain.showModal;)主窗体frmMain

解决方案 »

  1.   

    按照你的说法可以看出,你对主窗口与子窗口创建顺序的认识是错误。
    VCL的规则是那个窗口第一个创建,它就是主窗口,而在主窗口的
    OnClose()事件中加入Application.Termination既是画蛇添足,从逻辑
    上讲也是根本错误。
    //----------------------------------------------------------
    为了达到你想要的登录界面显示的效果,你应当首先创建formMain,
    隐藏它,然后创建formLogin登录窗口。以下代码应该可以达到你的要求:program Win32Test;uses
      Forms,
      Controls,
      MainFormUnit in 'MainFormUnit.pas' {formMain},
      formLoginUnit in 'formLoginUnit.pas' {formLogin};{$R *.res}begin
      Application.Initialize;
      Application.CreateForm(TformMain, formMain);  // 显示登录对话框  formLogin := TformLogin.Create(nil);
      try
        if formLogin.ShowModal = mrCancel then
          Halt;
      finally
        formLogin.Free;
      end;  Application.Run;
    end.//-----------------------------------------------------------
      

  2.   

    楼上的朋友,我按你的方法做了,可是在点击main窗体右上角的关闭图标后,程序是关闭了,可是在“任务管理器中”这个程序对应的进程却一直存在