delphi中首先建立一个启动窗体,然后再启动窗体点击按钮弹出另一个窗体,设为父窗体,然后再建立子窗体,结果失败,请问这是为什么?
是不是必须启动窗体是父窗体,后面才能建子窗体?因为这个可以实现,而前面说的实现失败

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var f:^tform;
    begin
         f:[email protected];
         f^:=Form2;//这里改变了主窗体为Form2了
         Form2.Show;
    end;
    你关闭Form2即可结束程序运行,也可以建子窗体,不过不提议这么做
      

  2.   

    MDI一般都是启动窗体作为主窗体!
      

  3.   

    在主窗体的OnCreate创建启动窗体并运行(常用于登录检查).
    procedure TFrmMain.FormCreate(Sender: TObject);
    begin
      Application.CreateForm(TFrmLogin, FrmLogin);
      FrmLogin.Caption:='系统登录';
      FrmLogin.ShowModal;
      FrmLogin.Free;
    end;
      

  4.   

    program  TestProgm;uses
       Dialogs, Forms, Types, Sysutils,
       FMain in 'FMain.pas' {F_Main},
       FSlash in 'FSplash.pas' {F_Slash};{$R *.res}begin
      Applicaiton.Initialize;
      F_Slash := TF_Slash.Create(nil); // 这里Owner设置为nil
      if F_Slash.ShowModal=mrOK then
      begin
        Application.CreateForm(TF_Main, F_Main);
        Application.Run;
      end;
      F_Slash.Free;
    end;