form1是动态创建的。
form1中有一个button1
我要在button1的create中写代码释放窗体。
但是释放不了,如何解决??

解决方案 »

  1.   

    button的create ??? 是OnClick吧这样释放窗体不好,就算有方法实现,也不要这样
    最好是这样// Where you need create TForm1
    form1 := TForm1.Create(Application);
    try
      form1.Edit1.Text := 'abc';
      form1.ShowModal;
      ShowMessage(form1.Edit1.Text);
    finally
      form1.Free;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      Close;
    end;
      

  2.   

    我说的只是个比喻,关键是一定要在button1.create中释放。呵呵
    所以才有难度嘛
      

  3.   

    1、如果你的button是聚合(指直接包含对象,不是定义成指针)在form中的,那时不可能释放的(因为button在form之前创建),因为窗体还没有创建,这时候你可以设置标志,事后删除。
    2、如果是指针的方式,那必须把窗口的指针传进去。
      

  4.   

    火箭兄:说得好。那有什么方法去释放FORM?标志只能在button1.create中声明局部变量。
      

  5.   

    好象不可能实现,button1的拥有者为form1,反过来由button1释放form1,释放事件的内存空间由
    form1管理,释放form1,button1及事件的内存应该在之前释放吧!