我在panel1上动态创建了一个窗体
请问该如何释放他
这个窗体可能是form1也可能是form2或form3
谢谢

解决方案 »

  1.   

    不是很清楚你说的。不过基本框架就是create哪一个form就free那个form。当然这要根据你的条件来判断了
      

  2.   

    设定好owner就行了,不用释放在owner被释放时,他所属的所有组建都会被自动释放
    以下摘自classes.pas
    destructor TComponent.Destroy;
    begin
      Destroying;
      if FFreeNotifies <> nil then
      begin
        while Assigned(FFreeNotifies) and (FFreeNotifies.Count > 0) do
          TComponent(FFreeNotifies[FFreeNotifies.Count - 1]).Notification(Self, opRemove);
        FreeAndNil(FFreeNotifies);
      end;
      DestroyComponents;
      if FOwner <> nil then FOwner.RemoveComponent(Self);
      inherited Destroy;
    end;
      

  3.   

    释放窗体可能是form1.free也可能是form2.free或form3.free
      

  4.   

    创建之后
    form.showmodal;
    form.free;
    这样关闭窗口后就释放了
      

  5.   

    建议用showmodal模式,这个比较好控制,还有最好用FreeAndNil释放,这个释放比较干净