用Free释放时,最好选检验一下。

解决方案 »

  1.   

    当然会出错了,创建的时候是i:=1 到 buttoncaption.count 
    释放的时候是i:=buttoncaption.count 到 0
    改成for i:=buttoncaption.count downto 1 do
    myb[i].Free;建议这一块用Try  Except块包起来try
      for i:=buttoncaption.count downto 1 do
        myb[i].Free;
    except
      showmessage('释放失败!');
    end;
      

  2.   

    firing_sky真是眼尖,发现你的序数不对。
    不过最好的方法是不要去释放它,因为你的Form可Panel3会自动释放
    它的子控件。当然,释放也没错,只是有些多余。