动态连接库输出的MDIChild窗体在主界面上我用了以下的常规方法不行:
  for I := 0 to frmMain.MDIChildCount - 1 do
  begin
    if frmMain.MDIChildren[I] <> nil then
      frmMain.MDIChildren[I].Close;
  end;

解决方案 »

  1.   

    if frmMain.MDIChildren[I] <> nil then
    begin
          frmMain.MDIChildren[I].Close;
          frmMain.MDIChildren[I].free;
          frmMain.MDIChildren[I]:=nil;
    end;
      

  2.   

    要学会使用Downto
      for i:=MDIChildCount-1 downto 0 do
        MDIChildren[i].Close;
      

  3.   

    仔细想想就知道为什么使用Downto了
      

  4.   

    while true do
      begin
        if MDIChildren[0] = nil then
          break;
        frm := MDICHILDREN[0];
        FreeAndNil(frm);
      end;
    用上面的吧,肯定没问题的
      

  5.   

    好像你们的方法不切题,我的方法已经有了,主要是在dll输出的Child窗体时没有传Screen
    现在我已解决,用的还是常规方法,谢谢你们