application.CreateForm(tFrm_ManageUser,Frm_ManageUser);
Frm_ManageUser.ShowModal;
Frm_ManageUser.Free;
这是可以正确打开的,但直接
Frm_ManageUser.ShowModal;也可以打开 
有的不行,非得前面加application.CreateForm(----),为什么?什么样的情况下需要application.CreateForm(----),什么情况下不需要,
还有那free真正有什么作用,可有可无

解决方案 »

  1.   

    MDI窗体与ChildMDI窗体之间不能以模式打开
      

  2.   

    你还对对象的概念还不清楚 这是编程的根本那
    直接ShowModal,  通俗地讲 做ShowModal这个动作的东西还没有被造出来,怎么能做动作
    free怎么能是可有可无,如果你建立了Frm_ManageUser对象的一个实例,那么你就可以让它做动作,但如果
    它已经不需要做任何事, 那么让它留在内存中,就是对内存的浪费,影响程序和系统的速度,没用的东西当然要释放掉!你有时候能直接Frm_ManageUser.ShowModal出来, 就是因为你创建了Frm_ManageUser,没有free 掉,它还在,所以下次可以直接让它做动作
    还有就是你把Frm_ManageUser设置成了autoCreat ,在程序开始运行时自动创建, 已经自动创建好的东西当然可以拿来就用
    你看看菜单project-->opitions-->forms选项卡里是怎么设置的,那里能设置是否自动创建,一般作数据库程序就留一个数据模块自动创建,其它
    窗体都用手动创建!再show,showmodel出来
    建议搂住补习一下面向对象的概念 
    给点辛苦分吧 谢谢!
      

  3.   

    project-->opitions-->forms选项卡里是怎么设置的,那里能设置是否自动创建,一般作数据库程序就留一个数据模块自动创建,其它 
    窗体都用手动创建!再show,showmodel出来 
      

  4.   

    ronal212121 ,谢谢你,受益不好!!显然分太少了!!我试试