我用showmodal打开的form,但用close无法关掉它,大家能告诉我为什么吗?更好的处理方法是什么呢?谢谢!

解决方案 »

  1.   

    你可以在onclose 中写上这样的代码
    begin
     ...
    Action:=cafree;
    form1:=nill;
     ...
    end;
      

  2.   

    不会吧,是不是子窗口,还是在close事件中作了什么?
      

  3.   

    你是从哪里控制这个关闭按钮,按道理是不会出现这种情况!
    这果是从另外一个窗体关闭这个form的话,就无法获得另外窗体的控制权,因为你是由showmodal打开这个form窗体。Destroy这个方法。在form窗体的close事件中加入这样的语句
     action:=cafree;
      

  4.   

    form1是showmodal打开的,我现在在form1中的按钮添加了以下代码:
    form1.close;
    form2.showmodal;
    form2打开了,但form1并没有关闭!!
    为什么?
      

  5.   

    这样会好些
    form1.Hide;
    form2.showmodal;
    form1.close;
      

  6.   

    close后面有代码,close就不会起作用,因为如果close了,也就是释放了,那其后的代码就不会执行了,支持楼上。
      

  7.   

    showmodalform1的close不是真正意义上的关闭,因为它没有释放内存。并且他close时还要返回一个值,所以即使执行了close,还要往下执行因为他必须把这个过程执行完毕,但是他执行到另一个showmodalform2时就会停下来,等待showmodalform2的返回值。只有showmodalform2返回了一个值后(即关闭),就会接着执行下面的代码!
    (说的很乱,别见怪!)
    你可以试试!