本帖最后由 lyyailxj13 于 2013-01-23 15:48:23 编辑

解决方案 »

  1.   

    做了个小例子项目文件
    program Project8;uses
      ExceptionLog,
      Forms,
      frm_main in 'frm_main.pas' {FrmMain},
      frm_Login in 'frm_Login.pas' {FrmLogin},
      frm_QueryClose in 'frm_QueryClose.pas' {Form1};{$R *.res}begin
      Application.Initialize;
      Application.MainFormOnTaskbar := True;
      Application.CreateForm(TFrmMain, FrmMain);
    //  Application.CreateForm(TFrmLogin, FrmLogin);
    //  Application.CreateForm(TForm1, Form1);
      Application.Run;
    end.
    //主窗体单元文件
    unit frm_main;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TFrmMain = class(TForm)
        procedure FormCreate(Sender: TObject);
        procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
      private
        procedure Login;
        { Private declarations }
      public
        { Public declarations }
      end;var
      FrmMain: TFrmMain;implementation
    uses frm_Login, frm_QueryClose;
    {$R *.dfm}procedure TFrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
      //选择 关闭 或 注销 的窗口
      with TForm1.Create(self) do
      try
        if mb_ok = ShowModal then    //关闭, 则程序退出
          Application.Terminate;    Login;
      finally
        free;
      end;
    end;procedure TFrmMain.Login;
    begin
      with TFrmLogin.Create(self) do
      try
        if mb_ok <> ShowModal then    //登录失败后程序退出
          Application.Terminate;
      finally
        free;
      end;
    end;procedure TFrmMain.FormCreate(Sender: TObject);
    begin
      Login;
    end;end.