怎么擦除窗体下动态生成的控件

如何擦除窗体上动态生成的控件?在窗体上动态生成的panel控件数组, 程序在不断地改变panel的对应的业务状态

如何擦除窗体上动态生成的控件?
在窗体上动态生成的panel控件数组, 程序在不断地改变panel的对应的业务状态,要及时擦除
过期的panel控件,
我试过
  for i := dishcnt - 1  to 0 do
  begin
      Self.RemoveControl(myshwpnlArr[i]);
      myshwpnlArr[i].Hide;
      myshwpnlArr[i].Visible := False;
      Self.Refresh;
      //Self.Repaint;
  end;
都不行,不知如何清除,请教高手!
[解决办法]
你先把这句:for i := dishcnt - 1  to 0 do
换成这句试试再说吧:  for i := dishcnt - 1  downto 0 do