在下初学delphi,在做mdi时遇到一个问题。主窗体名为mainform,上面有菜单栏,点击菜单栏中的菜单项后运行相应的功能窗体。我把主窗体mainform设为父窗体,那些点击菜单后运行的窗体设为子窗体。设置完后按F9运行,却发现,主窗体和本该点主窗体上菜单后才能显示的窗体同时运行显示了。我只想要显示主窗体,然后点菜单后显示相应的窗体,而不是父窗体和子窗体同时显示。请高人指点迷津?先行谢过。

解决方案 »

  1.   

    那么你就不应该使用MDI。MDI的界面本来就是父窗体和子窗体同时显示。
      

  2.   

    让mdi子窗体动态创建显示。。procedure Tmain.N19Click(Sender: TObject);//菜单点击事件
    begin
    if not Assigned(Formtest)then //如果没有创建
       begin
         try
         begin
            Formtest:=TFormtest.create(self);//动态创建对象
             femployee.Show;
         end;
         except
            Formtest.Free;
            Formtest:=nil;
         end;
    end;
    关闭MDI子窗体的代码:procedure TFormtest.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      action:=cafree;
    end;