动态创建的FORM对象,并对FORM取名,如:AA.如何在点FORM的'X'按纽关闭后,自动销毁本FORM,然后我还在程序不退出时可以再创建取名叫AA的FORM

解决方案 »

  1.   

    VAR
    AA:Tform;
    begin
      AA:=tFORM.Create(nil);
      AA.Show;你说的'X'按纽是不是就是form上右上角的X
      

  2.   

    to : tianwater(tianwater) 
    是form上右上角的X
    我用的是AA:=tFORM.Create(self);aa.name='ddd';
    form关闭后,再执行上面的语句就说ddd已经存在了,
    如果用Create(nil);好象aa.name='ddd';没有作用了
      

  3.   

    在aa的onclose事件中加入action:=cafree;
      

  4.   

    你定义一个过程
    procedure CloseMyForm(Sender: TObject; var Action: TCloseAction)
    begin
       Action:=Cafree;
       (Sender AS TForm):=nil;
    end;如果你创建的窗体实例是AA
    那么如下赋值
       AA.FormClose:=CloseMyForm;
    这样就哦卡了,
      

  5.   

    我的意思是可以通过CREATE创建不同名字的FROM,某一名字的FORM关闭后就销毁此FORM,还可以再重新创建,如果已经存在就不让再创建了
      

  6.   

    问题解决了,用下面的代码:
    procedure TForm1.Button1Click(Sender: TObject);
    var aa:TForm;
    begin
      AA:=tFORM.Create(self);
      aa.name:='ddd';
      aa.Show;
      aa.OnClose:=FormClose;
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      sender.Free;
    end;
      

  7.   

    用free来释放动态产生的From,否则用destroy