我用的是Delphi7,创建一个程序,2个Form,把主Form1的Formstyle设置为fsMDIForm,把Form2设置为fsMDIChild,这样程序运行时会自动弹出Form2,因为Form2一Create便会弹出,然后我把Form1,Form2都改为fsNormal,编译后运行,Form2一样也是自动弹出,这是什么原因?我没有写任何代码。

解决方案 »

  1.   

    为何把Formstyle改回来为fsnormal,还会自动弹出Form2呢,我知道在工程文件中去掉创建窗体的代码可以让Form2不在程序一启动就弹出,可是我在程序中只要一创建这个Form2,即使不Show,它也会弹出来,我不要这样的效果。
      

  2.   

    我是新创建一个程序,有两个Form,没有手动写任何代码,
    Form1如下:
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TForm1 = class(TForm)
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}end.
    Form2如下:
    unit Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TForm2 = class(TForm)
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form2: TForm2;implementation{$R *.dfm}end.工程文件:
    program Project1;uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1},
      Unit2 in 'Unit2.pas' {Form2};{$R *.res}begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.CreateForm(TForm2, Form2);
      Application.Run;
    end.两个Form的Formstyle为fsNormal,运行后程序只会弹出Form1,我把Form1改成fsMDIForm,把Form2改成fsMDIChild,这样程序一启动Form1和Form2都会一起弹出,但我把两个Form的Formstyle都改回来fsNormal,程序一启动Form1和Form2还是一起弹出,搞不懂。
      

  3.   

    Form2被设置fsMDIChild后,visible属性自动变成true;改回fsNormal,但visible属性还是true。所以还是一起弹出!
      

  4.   

    谢谢5楼,把position改回poDesigned,问题就解决了