我想实现依次显示三个窗口,具体过程是这样的:当双击应用程序时首先出现的是闪现窗口,3秒后消失然后出现一个登陆窗口,当点击确定后登陆窗口消失,最后出现程序主窗口,窗口名分别为Form_Flash,Form_Login,Form_Main,请问高手我怎样布局Form_Flash,Form_Login,Form_Main将哪一个窗口放在Auto-Create Form中,Project1应该怎样写,最好写出原代码和解释,一定给高分!!!!
我是这样实现的,将Form_Login,Form_Main放在Auto-Create Form中,当点击Form_Login上的确定按钮时Form_Login消失,Form_Main出现,但有一个问题是:我点Form_Main的退出,程序的内存不释放处在暂停状态,不知是哪儿没有释放????

解决方案 »

  1.   

    我的做法Auto-Create Form 中只有DM(数据模块),Form_main
    {$R *.RES}begin
      Application.Initialize;
      Form_splash:=TForm_splash.Create(NIL);
      Form_splash.Show;
      Form_splash.Update;
      Application.CreateForm(TDM, DM);
      Application.CreateForm(TForm_main, Form_main);
      Form_splash.Hide;
      Form_splash.Free;
      Application.Run;
    end.在DM的Create过程中动态生成登录窗
    procedure TDM.DataModuleCreate(Sender: TObject);begin
      with TForm_Login.Create(NIL) do
      begin
        ShowModal;
        Free;
      end;
    end;登录窗取消按钮
    procedure TForm_Login.btn_cancelClick(Sender: TObject);
    begin
      Application.Terminate;
    end;
      

  2.   

    在Project文件中﹕program Project1;uses
      Forms,
      Unit1 in 'Unit1.pas' {Form_Flash},
      Unit3 in 'Unit3.pas' {Form_Main},
      Unit2 in 'Unit2.pas' {Form_Login},{$R *.RES}begin
      Application.Initialize;
      Form_Flash:=TFrmSplash.Create(Application);
      Form_Flash.show;
      Form_Flash.refresh;
      while Form_Flash.Timer1.Enabled do
             Application.ProcessMessages;
      sleep(3)
      Form_Flash.Close
      Frmsplash.free;
      Application.CreateForm(TForm_Login, Form_Login);
      Application.CreateForm(TForm_Main, Form_Main);
      Application.Run;
    end.
      

  3.   

    补充:
    在登录的时候,如果不存在用户,循环登录或者Application.Terminate;