请问MDI窗体下,如何当打开第二个子MDI窗体时关闭第一个MDI子窗体啊,也就是说如何保证当前打开的只能是一个子窗体,我是初学者,谢谢各位指点了,解决马上给分!

解决方案 »

  1.   

    while mainform.MDIChildCount<>0 do begin
       mainform.MDIChildren[0].Close;
       mainform.MDIChildren[0].Free;
    end;
      

  2.   

    procedure TMainForm.closeAll;
    var
      I: Integer;
    begin
      for I := MDIChildCount-1 downto 0 do
        MDIChildren[I].Close;
    end;
      

  3.   

    if self.MDIChildCount>0 then self.MDIChildren[0].Close;
      CreateMDIChild('NONAME' + IntToStr(MDIChildCount + 1));
      

  4.   

    来晚了!主窗口调用Form2的事件代码:
    for i:=0 to Form1.MDIChildCount-1 do
        Form1.MDIChildren[i].Close;
    Application.CreateForm(TForm2, Form2);
    Form2.Show();Form2的OnClose事件代码:
    Action := caFree;