我在主窗体form1里的按钮里加入如下代码:application.createform(tform2,form2);   但是问题出现了,尽管form2已经存在,但是我每次单击一下还会新生成一个form2.

解决方案 »

  1.   

    Form2 是MDI子窗体 必须保证Form2是全局变量
    if not assighed(form2) then
    form2:=tform2.Create(application)
    Form2.show;
    ------------------
    Form2的Destroy事件里面写
    Form2:=nil;
    ----------
    Form2的Close事件里面写
    cation:=caFree;
    ---------------
      

  2.   

    你在PROJECT/OPTION你看一下,是否FORM2是AUTO CREATE淂,我想应该是,如果这样,你去掉就可以AUTO CREATE就可以。
      

  3.   

    if not assigned(from2) then begin
       application.createform(tform2,form2);
       form2.show;
    end;
      

  4.   

    如果不是auto create,怎么在主窗体生成的时候就显示form2呢?
      

  5.   

    最简单的方法是这个:
    application.create(Tform2,form2);
    form2.showmodal;
    只要FORM2在,再点也不会出现你说的那种情况。
      

  6.   

    子窗体别用ShowModal
    if form2=nil then
      form2:=Tform2.Create(Application);
    不过自动创建就不必要操心那么多了。
      

  7.   

    if (mcdBCPrint = nil) or (csDestroying in mcdBCPrint.ComponentState) then
        mcdBCPrint := TBCPrint.Create(Application)
      else
        mcdBCPrint.Show;