现在有一个程序主界面,上面有一菜单,现想点击菜单上的项目在程序主界面上显示相应的FORM,并且在该FORM没有关闭时,不能打开其它FORM
我是这样处理的:
procedure TFrmMain.NFrmBufferCommitClick(Sender: TObject);
var
  Form : TFrmBufferCommit;
begin
  Form := TFrmBufferCommit.Create(self);
//  Form.Parent := self;  -->用这句的时候,Form不能控制
  Form.ShowModal;
end;请问,这样的要求该怎么实现?谢谢!

解决方案 »

  1.   

    哎呀老兄,只用Form.ShowModal;就搞定了,真的,你试试!
      

  2.   

    用showmodal属性就可以呀,他显示的是模态窗口,显示后除非关闭这窗口,否则不会切换到同一个应用程序的其它窗口的。不明白你说的意思~~~~
      

  3.   

    procedure TFrmMain.NFrmBufferCommitClick(Sender: TObject);
    begin
      // 建議這樣, 當窗體顯示為模態窗體時, 其它的窗體都將無法響應, 直至該窗體關閉
      with TFrmBufferCommit.Create(nil) do
      try
        ShowModal;
      finally
        Free;
      end
    end;
      

  4.   

    假如你的子窗口名为subform,那么你打开可用
    subform:=Tsubform.create(self);
    try
      subform.showmodal
    finally
      subform.free
    end;
    就可以了,所有的子窗口都可以这样打开,关闭时会自动释放的
    注意:子窗体都要从project_option_forms_Auto-create foms中移除,不然执行就会出错
      

  5.   

    楼上的朋友请注意:  我想让子窗口象MDI程序中的MDICHILD一样显示在主窗口内
      

  6.   

    可能是我没有说明白,我是想实现下面这个程序:
    procedure TFrmMain.N22Click(Sender: TObject);
    begin
      FrmHaoMa.Parent := self;
      FrmHaoMa.Align := alClient;
      FrmHaoMa.BorderStyle := bsNone;
      FrmHaoMa.Show;
    end;所能实现的情况,另外还要让窗口FrmHaoMa以showmodal方式出现,请问该怎么实现?
      

  7.   

    可能是我没有说明白,我是想实现下面这个程序:
    procedure TFrmMain.N22Click(Sender: TObject);
    begin
      FrmHaoMa.Parent := self;
      FrmHaoMa.Align := alClient;
      FrmHaoMa.BorderStyle := bsNone;
      FrmHaoMa.Show;
    end;所能实现的情况,另外还要让窗口FrmHaoMa以showmodal方式出现,请问该怎么实现?
      

  8.   

    现在听明白了,楼主要实现的是即要该窗口为MDI主窗体的MDICHILD,但同时又要实现.show后该窗体如同用Showmodal打开的效果,问题的关键是当子窗体为MDICHILD时用showmodal打开会发生错误!不知这样大家是否明白?