formClose();
事件中有这样一句代码:
   cation:=cafree;

解决方案 »

  1.   

    当你运行到close;语句是就执行onclose事件,
    cation:=cafree(允许关闭)
    cation:=caNone(不允许)
      

  2.   

    要澄清一点, onClose事件不是去关闭被窗体, 而是在关闭窗体时会触发此事件, 以在窗体关闭时进行一些相应的处理。
      

  3.   

    其他地方调用采用以下方法:
    form1.onClose();
      

  4.   

    出现新问题
      在主窗体中调用MDIChild子窗体(Form2)
    调用: 我是这是样写代码的
        application.createform(TForm2,Form2);关闭:  在MDIChild子窗体(Form2)的onclose事件中
        是这样的代码
         freeandnil(form2);我也想把它改为cation:=cafree;
    但是这样改的话,再重新调用时会出错
    同时 project-->option 菜单命令中我把所有子窗体全部改为非自动创建!
    注意这一点非常重要。多个窗体曾互为MDIForm和MDIChild关系后,改回为none
    运行程序时,这几个窗体会同时出现.你们是怎样调用MDIChild子窗体的?
      

  5.   

    你在你的MDIChild窗体的ondestory事件中加一句
    form2:=nil
      

  6.   

    我从不用
    form2:=nil;
    freeandnil(form2);
    之类的语句,只写
    cation:=cafree;
    所有MDI子窗体都是动态创建的,在单元中没有var声明窗体变量。