最近学习MDI多文档窗体,遇到了问题:1、子窗体最大化后,如何做到让 子窗体右上角仍有最大化,最小和关闭按钮?并且按了关闭按钮后,该子窗体会关闭。2、主窗体运行后,如何控制子窗体的显示和关闭,比如有10个子窗体,我程序运行时默认只要显示其中一个子窗体,比如FORM23、一般在实际开发软件中,MDI用的多吗?我感觉很麻烦。我认为点一下一个按钮,弹出一个窗体,操作完了,关闭该窗体。这种模式会更好一些,是吗?谢谢! 

解决方案 »

  1.   


    {MDI父窗体的formstyle为fsmdiform
    MDI子窗体的formstyle为fsmdichild
    MDI子窗体设置为手动创建
    1.MDI子窗体最大化以后,在主窗体的关闭下面就会看到MDI子窗体的最大化和最小化还有关闭按钮;子窗体关闭时在OnClose里面加入下面的代码就可以关闭子窗体了:}
    procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      action:=cafree;
    end;
    {2.只运行一个子窗体}
    procedure TForm1.ButtonClick(Sender: TObject);
    begin
      try
      if application.MainForm.MDIChildCount>0 then
         activemdichild.Close;
      finally
         TForm2.Create(Self);
      end;
    end;
    {3.不同的软件有不同的设计风格,也不要基于一种开发模式,关键要学会创新}