如题,比如我程序有四个界面.主界面.下面有四个分界面.都是通过主界面打开.如果能让打开的四个窗体包含在主界面内.而不能跑出去.用MDI? 但是我看demo  MDI只能新增窗体.无法打开已有的窗体.忘指教.

解决方案 »

  1.   

    比如,你的Form1是主窗口,Form2是子窗口,那么只需要修改一下属性:
    Form1.FormStyle := fsMDIChild;
    Form2.FormStyle := fsMDIForm;
    效果自动就出来了,你试试吧.
      

  2.   

    上楼说得对.
    Form1.FormStyle := fsMDIChild; //子窗体
    Form2.FormStyle := fsMDIForm; //主窗体
      

  3.   

       谢谢.可以了.但是程序一运行.子窗体就出来.怎么才能程序运行时,子窗体不会自动出来.而是我用form2.show才出来?谢谢.
      

  4.   

    在project--》option中将动态创建的窗口移动到右边
    需要显示的地方写Applicaiton.createform(TF_formname,f_formname)
      

  5.   

    在Form2的Create事件中写上:
      Parent := Form1;怎么样。
      

  6.   

    SETPARENT  就可以了... 不用MDI
      

  7.   

    ctrl+F12打开工程命名文件.
    你可以看到新建的窗体都会在这里有create代码.
    删除子窗体的代码,自己在菜单里进行创建关闭释放等维护.
      

  8.   

    program Project1;uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1},
      Unit2 in 'Unit2.pas' {Form2};{$R *.res}begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.Run;
    end.
    //********************unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation
    uses unit2;//这句不能少
    {$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
        Application.CreateForm(TForm2, Form2);//创建form2
        form2.Parent :=form1;
        form2.Show ;
    end;end.