1、只要Create自己写好的子窗体就可以了
2、利用MainForm.ActiveMDIChild、MDIChildren、MDIChildCount判断就可以实现

解决方案 »

  1.   

    请大虾告知Create的用法及所带参数,最好写点代码,若能告知E-mail,便于请教,则不胜感激.
      

  2.   

    procedure TForm1.ASDF2Click(Sender: TObject);
    VAR I:INTEGER;
    begin
        IF FORM1.MDIChildCount>0 THEN
        BEGIN
            FOR I:=0 TO FORM1.MDIChildCount-1 DO
            BEGIN
                FORM1.MDIChildren[I].Close;
            END;
        END;
        FORM2:=TFORM2.CREATE(FORM1);
        FORM2.SHOW;
    end;
      

  3.   

    建立一个全局变量
    implements 
    uses Form2; //假设Form2为子窗口var
      ChildForm:TForm2;//利用菜单命令打开子窗口
    procedure TForm1.NewMenuItemClick(Sender:TObject)
    begin
      ChildForm:=TForm2.Create(self);
      ChildForm.Show;
    end;//关于第二个问题,当一个子窗口已经打开,那么当要新建窗口时,可先判断当窗口有没有建立,如果有,就显示,如果没有就建立,干嘛要关闭后再建立呢?
    利用上面一段代码改一个就可以了
    procedure TForm1.NewMenuItemClick(Sender:TObject)
    begin
       //如果该子窗口没有建立就建立一个子窗体
      if TForm2(FindComponent('ChildForm'))=nil then
        ChildForm:=TForm2.Create(self);
      ChildForm.Show;
    end;
    end;