我在主窗体(zct)中用打开子窗体(xjlrct)代码如下:
procedure Tzct.N2Click(Sender: TObject);
begin
xjlrct:=Txjlrct.Create(self);
xjlrct.show;
end;
主窗体的formstyle设置为fsmdiform,子窗体设置为fsmdichild但是运行的时候出错,只要将子窗体formstyle改为fsnormal就可以通过运行,不知道我是错在什么地方?请各位帮忙解决!

解决方案 »

  1.   

    procedure Tzct.N2Click(Sender: TObject);
    var
      xjlrct : Txjlrct;
    begin
      xjlrct:=Txjlrct.Create(application);
      xjlrct.show;
    end;子窗口close事件
    action := cafree;
      

  2.   

    在工程文件里有没有子窗体show的代码?
      

  3.   

    把子窗体的Visible 属性设置为FALSE.
      

  4.   

    如果不想MDI子窗体与父窗体同时打开,在菜单Project-Options...里面将你不想和主窗体同时打开的窗体从Auto-Create Forms移到Available Forms里面就行了。
    要用的时候建议用Application.CreateForm(TMDIchild1,MDIchild1); 来创建你在设计是已做好的窗体。如果你只需要用到已定义好的窗体类来创建窗体,可以用TMDIchild1.create()。你自己可以试一下两种方法的不同。
    MDI子窗体默认的关闭操作是最小化,想让它完全关闭,在其OnClose中写:
    Action:=caFree;
      

  5.   

    点击菜单Project->Options,从Auto-create forms列表中移除窗体xjlrct