我想动态生成Form,程序一运行就已经生成的那种太浪费了,我应该怎么做啊

解决方案 »

  1.   

    form2:=tform2.create(nil);//创建Form2的新实例
    form2.show;//显示form2
      

  2.   

    把xxx.dpr文件里的application.createform(xxxx,xxxx)创建相关FORM那句去了
    或用菜单选项option里把不想开始就CREATE的FORM移到右边列表。可以在程序里用application.createform,也可以自已创建啊procedure TForm1.Button1Click(Sender: TObject);
    var
      Form2:TForm2;
    begin
      Form2:=TForm2.Create(nil);
      Form2.ShowModal;
    end;另忘了uses TForm2所在单元。
      

  3.   

    说得更明白一点 窗口名:=窗口类(一般都是T+窗口名).create(nil);
     
    //create参数是窗体的拥有者可以为
     //空 或者为Application
     //显示窗口有两种方式 窗口名.show;//普通的显示窗口 窗口名.showmodal; //模式显示窗口 所谓模式显示既不关闭或者不返回modalresult的话
      //当前窗口就永远在最前面不能访问本程序中的其他的窗口
      

  4.   

    两种情况的,模式窗口
    try
      form2:=tform2.create(nil);
      form2.showmodal;
    finally
      form2.free
    end;  非模式窗口
      form2 := tform2.create(nil)
      form2.show;
    在该窗口的Onclose关闭里
      Action := cafree;
      

  5.   

    form1 := Tform1.create(nil)
    form1.show;
    onclose
    action:=cafree
      

  6.   

    “另忘了uses TForm2所在单元。”是什么意思?我在implementation后面写了uses TForm2可是编译出错,说:Declaration expected but “USES" found
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);
    var form2:TForm;
    begin
      form2:=Tform.Create(nil);
      form2.ShowModal;
    end;