在应该程序prjQuery.dpr中,是这样的执行顺序:
  Application.CreateForm(TBaseTable, BaseTable);
  Application.CreateForm(TMainForm, MainForm);
  Application.CreateForm(TX99, X99);
当程序执行到Application.CreateForm(TMainForm, MainForm)时,如碰到错误,则执行:“Application.Terminate; ”退出应用程序,但是实际上程序还是运行了后面的
Application.CreateForm(TX99, X99);才最终退出了应用程序。可不可以碰到错误就不再执行prjQuery.dpr中后面的语句了呢?

解决方案 »

  1.   

    沒試過, 加個 halt; 呢??
      

  2.   

    用halt是可以的,量halt是非正常关闭啊
      

  3.   

    if not Application.Terminated then
      Application.CreateForm(TMainForm, MainForm);
    if not Application.Terminated then
      Application.CreateForm(TX99, X99);
    试一试
      

  4.   

    这个要看看VCL,从Windows窗口程序的本质上来说只是让程序跳出消息循环而已而Application.Run;后才开始进入消息循环,虽然它会因为收到WM_QUIT立即结束,但之前的代码当然会执行
      

  5.   

    为何用HALT还是报Project Cnc.exe raised exception class EAccessViolation with message 'Access violation at adress 0046DF7A in mode 'test.EXE'. Read of address  01CE1380'. Process stopped. Use Step or Run to continue.错误?