我现在有10Form,为了方便和节省系统资源,我是怎样想的系统启动时只启动主见面,其他的Form 我想通过动态调用??类似用a =new tfamil()//不知道delphi中是用什么方法可以实现,但记得在delphi中一定要释放(类似 delete a),在delphi中怎么做??(本人用delphi时间不长还请高手帮忙,谢谢了)

解决方案 »

  1.   

    首先要引用你用到的窗体的单元文件
    uses form1,....
    然后在程序中加入(推荐使用这种)
        from1:=TForm1.Create(Application);
        form1.ShowModal;//如果是模式窗体,否则用.show;
        form1.Free;或者用:
        Application.Create(TForm1,form1);
        form1.ShowModal;
        form1.Free;
      

  2.   

    调用
    if not assigned(FormX) then formX := tform.create(self);释放
    procedure TFormX.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      action := cafree;
    end;
    procedure TFormX.FormDestroy(Sender: TObject);
    begin
      formX := nil
    end;
      

  3.   

    补充:还需要在Project-->Options-->forms中将不需要自动创建窗体的窗体从Auto-create forms 导到Availabale forms中。
      

  4.   

    from1:=TForm1.Create(Application);
    这种写发不安全
    嘿咻嘿咻!
      

  5.   

    很感谢以上朋友的帮忙,能否说说多个窗体互相动态调用如何关闭:如:      form2动态调用form3 
          form3动态调用form4
          form4动态调用form5      以上都采用ShowModal方式显示,现在有个问题在每次create(application)后,也fee了,但是就上面的例子中我如何关闭form2(在调用form3时),如何关闭form3(在调用form4时),以此类推。如果关闭了,在主窗体没有关闭的情况下,是否动态创建的窗体已经不占用系统资源了????