看了一下以前的贴子,大家对MDI中子窗体真正退出的解决办法是,
在子窗体onClose方法中,设Action:=acFree.但发现,这样退出的话,若要再次打开这个子窗体时,就只能又重新创建(Application.CreateForm(TForm2, Form2);).这样是不是很麻烦? 当内容多时, 速度也慢, 有没有更好的解决办法?

解决方案 »

  1.   

    TO VISLI:如何用统一的语句打开子窗体啊。大部分语句都一样,可不可以给参数给一个函数,打开窗体啊。   ChildForm:=TChildForm.create(self)
      

  2.   

    你可以在子窗体onClose方法中,设Action:=achide.
    调用子窗体时
    if chldfrm=nil then
        chldfrm:=tchldfrm。create(self)
    else
        chldfrm。show;
      

  3.   

    如果你想速度快,可以用上面的方法,如果你想释放资源,就要用cafree并且chldfrm:=nil;
    效率和资源利用只能而且取其一
      

  4.   

    可以写一个过程作为,在再程序中调用,在过程中把该窗体:=NIL,再FREE
      

  5.   

    關閉后再次打開當然重新建啦﹐如果你的程序很小你就hide也行啊﹗
      

  6.   

    你想过没有,如果是在关的时候不放掉资源的话那你的子窗口多了会是什么样的呢。
    还不如用一个创一个,关一个放一个。我觉的这样也错呀,
    你想一下,现在的机器CREATE 一下不会有问题的。