我想做一个程序,在程序刚打开的时候只装入主窗体(form1),我在设计阶段已经把delphi-->project-->options里面的form2设计为available,我想等到用户调用的时候再调用并且显示form2,这个form2我已经在设计阶段已经创建好,请问高手如何调用form2并且显示呢?
给分50.

解决方案 »

  1.   

    如果想顯示,就:
    Form2.showmodal;
    躲藏就:
    Form2.hide
      

  2.   

    这个不行的,因为我已经说了,我已经在设计阶段在delphi的project-->options里面把form2弄到右边去了(好像是available),也就是不是和form1同时装入的,在程序刚打开的时候没有把form2装入.
    怎么办呀???
    555555555555
      

  3.   

    需要显示的时候就:
    Application.CreateForm(TForm2,Form2);
    Form2.showmodal;
    freeAndNil(Form2);
      

  4.   

    try 
      form2:=Tform2.create(self);
      form2.show;
    //form2.showmodal;
    finally
      form2.free;
    end;
      

  5.   

    一种就是delphi_xizhousheng(西周生)说的,以为你把它放到available里面,但是窗体单元里还存在这句话,
    var
      Form2:TForm2;
    所以可以用这个实例,用西周生的,那个以后,Form2它就已经实例化了,在内存里一直存在,除非你FREE掉,另一种,你可以定义一个:
    var
      MyForm:TForm2;
    begin
      MyForm := TForm2.Create(Nil);
      MyForm.ShowModal;
    end;这样的话,这个事件或者过程结束,窗体就自动FREE掉了
      

  6.   

    只需要创建一个form2类型的对象就可以了阿,例如form2的对象为TForm2,只需:var
      Form2: TForm2;
    begin
      Form2:=TForm2.Creat(self);
      Form2.show;
    end;
      

  7.   

    只需要创建一个form2类型的对象就可以了阿,例如form2的对象为TForm2,只需:var
      Form2: TForm2;
    begin
      Form2:=TForm2.Creat(self);
      Form2.show;
    end;
      

  8.   

    var
      Form2: TForm2;
    begin
      Form2:=TForm2.Creat(application);
      Form2.showmodal;
    end;
      

  9.   

    try 
      form2:=Tform2.create(self);
      form2.show;
    //form2.showmodal;
    finally
      form2.free;
    end;
      

  10.   

    这个一定行
    var
    form2:Tform2;
    begin
    form2:=Tform2.create(nil);
    form2.show;//也可以form2.showmodal;
    form2.free;
    end;在你设计的时候。form2里调用自已的属性时。不能使用像这样的代码。
    unit form2..........
    form2.caption:='form2';//这里一定报错,因为在这里from2还没有被定义;
    self.caption:='form2';//正确。只能这样写;明白了?
      

  11.   


    if application.FindComponent('Frm_ITEM')= nil then
      begin
        Application.CreateForm(TFrm_ITEM,Frm_ITEM);
      end;
        frm_item.Show;
      

  12.   

    忘了注譯不好意思
      if application.FindComponent('Frm_ITEM')= nil then //如果系統中還未建立該窗體
      begin
        Application.CreateForm(TFrm_ITEM,Frm_ITEM);//那麼創建該窗體
      end;
        frm_item.Show;//顯示出來
      

  13.   

    我试了一下,delphi_xizhousheng(西周生)说的可以。不过我发现有一个问题就是:我的form2上面有一个button,我想让按钮单击的时候关闭form2,并且释放掉(form2.free),好像出现了错误。
      

  14.   

    我上面不是说了吗?在form2单元里不能便用如form2.free。
    请用self.free.就行了!