begin
  Application.Initialize;
  Application.Title := '综合业务系统';
  frmSplash := TfrmSplash.create(application);
  frmSplash.Show;
  frmSplash.Update;  Application.CreateForm(Tdm_xcx, dm_xcx);  Application.CreateForm(TfrmMain, frmMain); //有applcation.terminate
  Application.CreateForm(TfrmAbout, frmAbout);
  Application.CreateForm(TfrmShqz, frmShqz);
  Application.CreateForm(TfrmTdmzTjRtp, frmTdmzTjRtp);
  frmSplash.hide;
  frmSplash.free;
  Application.Run;
end;

解决方案 »

  1.   

    to : luoweicaisd(笑三少)
      不行了(当然appcation最后是会终止的),还是会执行后续的createform,才终止.关键是我的后续的dm有数据库的连接,耗时较长,等到她们都创建完了,才终止applcation.这样用户会觉得等待太久了!!!
      

  2.   

    Application.CreateForm(Tdm, dm); //如何不执行以下两句的窗体创建
      Application.CreateForm(Tfrminfo, frminfo);
     这两句可以放到主程序中,如果你想调用时再写上
      

  3.   

    cutelocust(心里坐满孤独) 说的对呀
    赫赫
      

  4.   

    关键是就是要这些form,需要事先建立好数据库的连接嘛!!!
      

  5.   

    就用cutelocust(心里坐满孤独) 的方法,不过呢,在你可以使用多线程来连接数据库呀,这样打开窗口与联系数据库同时进行,用户就不会感觉到慢了。
      

  6.   

    {$R *.res}
    begin
      frmlogo:=tfrmlogo.create(application); //欢迎界面
      frmlogo.Show;
      frmlogo.Update;
      
      Application.Initialize;
      Application.CreateForm(Tfrmmain, frmmain);---->在frmmain中的create事件中
                                        //有applcation.terminate
                                        
      Application.CreateForm(Tdm, dm); //如何不执行以下两句的窗体创建
      Application.CreateForm(Tfrminfo, frminfo);
      
      frmlogo.Close;              //但是这个释放语句还是要执行的  
      frmlogo.Free;              //释放欢迎界面
      
      application.Run;
      
    end.
    =======================
    如果在进入程序前要操作数据库的话,建议选执行  Application.CreateForm(Tdm, dm);再执行Application.CreateForm(Tfrmmain, frmmain);
    这样即可以在主窗体中使用数据窗体,也可以在想终止重序的时候先释放它。
    不过从你的思想来看,你的总体设计比较乱,一般情况下,可以用下面的结构。
    1、对于先于主窗口显示的窗口,不要使用Application.CreateForm,而是使用TForm本身的Create方法;
    2、如果要做到数据库中的用户登录,可以做一个login窗体,先创建于主窗体而慢于数据模块;当验证通过之后再创建主窗体,但是要记住一点,创建主窗体的语句一定要放在条件语句内,否则它还是会被执行的。
    3、如果实在想强行中止程序,可以使用halt来终止,但是这样有一个缺点,就是无法自动释放程序中创建的内存,所以,在halt之前最后保证所的的内存先释放。
      

  7.   

    数据模板最好在主窗体前创建
      Application.Initialize;
      Application.CreateForm(Tdm, dm);//this is way
      frmlogo:=tfrmlogo.create(application); //欢迎界面
      frmlogo.Show;
      frmlogo.Update;
      Application.CreateForm(Tfrmmain, frmmain);---->在frmmain中的create事件中                                  //有applcation.terminate
      Application.CreateForm(Tfrminfo, frminfo);
      

  8.   

    label 1;
    begin
      frmlogo:=tfrmlogo.create(application); //欢迎界面
      frmlogo.Show;
      frmlogo.Update;
      
      Application.Initialize;
      Application.CreateForm(Tfrmmain, frmmain);---->在frmmain中的create事件中
      if 条件=true then
       begin                                 
         applcation.terminate     //applcation.terminate
         goto 1;
       end;
                                        
      Application.CreateForm(Tdm, dm); //如何不执行以下两句的窗体创建
      Application.CreateForm(Tfrminfo, frminfo);
      
    1: frmlogo.Close;              //但是这个释放语句还是要执行的  
      frmlogo.Free;              //释放欢迎界面
      
      application.Run;
      
    end.
      

  9.   

    看来还是我说得不够清楚.我说创建的主窗体时会访问到文本的ini文件,如果该配置ini文件不存在,根本就不需要连接数据库(不需要用户去等待连接数据库),直接就终止程序退出系统了.所以,dm的连接不要放在主窗体创建前进行!
      

  10.   

    其实
    你何必一定要把Tdm,Tfrminfo设置为自创建呢?
    你完全可以在Tfrmmain的create事件中条件满足时创建啊^-^