begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  form2 := tform2.create(application);
  if form2.showmodal = 1 then
    Application.Run;end.你看看,点选了Form2.bkOK,就有Application.Run,选择Form2.bkCancel呢,
Application何去何从?既没有终止,也没有投入运行。

解决方案 »

  1.   

    你让application悬挂,这当然bug
      

  2.   

    to adailee(不谈恋爱的铅笔):我不在form1上放adoquery点cancel就不出错啊!
    application何去何从?无application.run,此application就自动结束呗
    现在我认为是adoquery的问题
      

  3.   

    this is because that Adoquery Cannot auto terminate!!!!!
      

  4.   

    to XZHHAI(星之瀚海):那为什么我点ok进去后再关闭mainform结束application又不出错呢?
      

  5.   

    我发现只要是继承TCustomADODataSet的都回出错,跟踪发现在
    destructor TCustomADODataSet.Destroy;
    begin
      Destroying;
      Close;
      SetConnection(nil);
      FreeAndNil(FCommand);
      FreeAndNil(FModifiedFields);
      FreeAndNil(FIndexDefs);
      FreeAndNil(FIndexFields);
      FreeAndNil(FMasterDataLink);
      FreeAndNil(FParams);
      inherited Destroy;
    end;
    当FreeAndNil(FCommand)时
    继续跟踪到
    TADOCommand的Destroy
    当FCommandObject = nil时出错
    FCommandObject为一_Command接口
    当赋为nil时调用_IntfClear时出现异常,不知为何
      

  6.   

    to xzgyb(老达摩) 怎么跟踪至上面你说的语句中,我继承了一个控件都不行啊
      

  7.   

    to xzgyb(老达摩) 
    怎么在你说的位置加一断点,我打开了adodb.pas,在你说的FreeAndNil(FCommand);处加了一断点(F5),然后运行程序(F9),程序好象不会在我加断点处停下来啊?你怎么做的?
      

  8.   

    偶,你在Project\options\compiler下Use Debug DCUS选上就可以了
      

  9.   

    我个人认为只有 xzgyb(老达摩) 说得比较好,给分