我的程序是一个ERP应用,前面用户登录正常,主界面程序中的onShow事件也正常执行,在执行application.run后,主程序立即自动退出,程序界面不会出现,且主程序中的onDestory也被激发,onClose无反应。
换用其他窗口作为主界面程序,情况依旧,请高手们帮忙分析分析,万分感谢!

解决方案 »

  1.   

    没有application.run,主界面的onShow会执行?
      

  2.   

    界面都没出现,什么操作都还没做就自动退出了,有什么办法跟?
    主程序的create会在application.run之前
    Application.CreateForm(Tfrmmain, frmmain);
    Application.run;
      

  3.   

    算了不要继续这个问题了,此问题已列入2008十大未解之谜
    我重新建立了一个工程,add所有文件,运行一切正常!
      

  4.   

    Application.CreateForm(Tfrmmain, frmmain); 
    Application.run;
    ---------------------------------------------------
    请您确保你的主界面是Application.CreateForm的第一个窗体.
    这很重要,Delphi的Application.run是针对Application.CreateForm的第一个窗体运行的.
    如果你第一个加载的是登陆窗体,他肯定是没有反应的退出了.
    ---------------------------------------------------
    当然,你也可以不使用Application.Run,
    直接使用frmmain.ShowModal;
      

  5.   

    第一种方法:在主界面的OnShow事件中显示登陆窗体。
    第二种方法:动态创建登陆窗体,并用ShowModal方式显示,如果返回是mrOK则继续执行,代码如下:
    var
      frm2: TForm2;//假设这是Login窗体
    begin
      Application.Initialize;
      frm2 := TForm2.Create(nil);
      try
        frm2.ShowModal;
        if frm2.ModalResult = mrOK then
        begin
          FreeAndNil(frm2);
          Application.CreateForm(TForm1, Form1);
          Application.Run;
        end;
      finally
        if frm2 <> nil then
        begin
          FreeAndNil(frm2);
        end;
      end;
    end.