一个函数行不行?

解决方案 »

  1.   

    控件在釋放時, 會廣播一個自己要釋放的消息, 給它的子控件, 通知它們釋放,
    如果要用一個孫數的話, 就用
    Panel1.Broadcast();
      

  2.   

    //参考如下代码~~
    var
      I: Integer;
    begin
      for I := Panel1.ControlCount - 1 downto 0 do
        Panel1.Controls[I].Free;
    end;
      

  3.   

    我的超级笨办法把
    PANEL下面的所有控件的TAG属性设置为1,然后检查TAG为1的就释放
      

  4.   

    或者(先释放,再重新创建一个Panel)
      Panel1.Free;
      with TPanel.Create(self) do
      begin
        Name := 'Panel1';
        Parent := self;
        ...
      end;
    /////////////////////////////////////
    当Panel上的控件很多时使用这个方法可以提高速度
    ///////////////////////////////////to zswangII(伴水清清)(职业清洁工) 上面的方法有个缺点,就是重新创建Panel时,很有可能会漏掉属性,而是前后两个Panel不同。
    当Panel上的控件很多时,还有没有好方法?用你的那个速度会很慢!
      

  5.   

    或者(先释放,再重新创建一个Panel)
      Panel1.Free;
      with TPanel.Create(self) do
      begin
        Name := 'Panel1';
        Parent := self;
        ...
      end;
    /////////////////////////////////////
    当Panel上的控件很多时使用这个方法可以提高速度
    ///////////////////////////////////to zswangII(伴水清清)(职业清洁工) 上面的方法有个缺点,就是重新创建Panel时,很有可能会漏掉属性,而使前后两个Panel不同。
    当Panel上的控件很多时,还有没有好方法?用你的那个速度会很慢!
      

  6.   

    Panel1.Free;
      with TPanel.Create(self) do
      begin
        Name := 'Panel1';
        Parent := self;
        ...
      end;
      

  7.   

    zswangII(伴水清清)(职业清洁工) 的
    var
      I: Integer;
    begin
      for I := Panel1.ControlCount - 1 downto 0 do
        Panel1.Controls[I].Free;
    end;
    不可以解决问题吗?????