我想编一个MDI窗口的应用程序,将各种对话框都设置fsMdichild样式,请问怎么做啊?
我现在是将主窗口设为fsMdiForm,各种子窗体都设为fsMdiChild,然后在事件中
var 
  f:TfrmForm1;
begin
  f:TfrmForm1.Create(Application);
  try
    f.show
  finally
    f.free;
  end
end;
但是子窗体却显示不出来。

解决方案 »

  1.   

    显示Form2的代码:
    begin
      try
        Form2:= TForm2.Create(self);
        Form2.ShowModal;
      finally
        Form2.Free;
      end;
    end;
      

  2.   

    if not Assigned(Form2) then
        Application.CreateForm(TForm2, Form2);
      Form2.ShowModal;
      FreeAndNil(Form2);
    Mdi窗体是这么用的
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
       if not Assigned(Form2) then
          Form2 := TForm2.Create(Application);
          Form2.Show;
    end;
    ---------
    procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
        action:=cafree;
    end;procedure TForm2.FormDestroy(Sender: TObject);
    begin
        form2 := nil;
    end;--------------
    fsMdiChild子窗体不能ShowModal
      

  4.   

    注意:如果用assigned(form2),那么form2变量不能声明为局部变量,一定要为全局变量,因为全局变量form2会自动初始化为nil