Antes de nada, para poner código en el foro usa las etiquetas. Es decir:
[delphi]
// Aqui el codigo
[/delphi]
Y queda así de bonito
:
Código Delphi
[-]
Componentes:= ComponentCount-1;
for i:=0 to Componentes do
begin
try
if (Components[i] is TPanel) then
RemoveComponent(Components[i]) ;
except
end;
end;
Segundo, el error te da porque estas recorriendo la lista al revés. Cuando recorres una lista para eliminar elementos, tienes que hacerlo desde el final hasta el principio. De lo contrario cuando eliminas un elemento, los que vienen a continuación cambian su índice y eso provoca que te "saltes" elementos y, lo que es peor, que al llegar al final hagas referencia a elementos que no existen y de ahí el fallo. Es decir deberías hacerlo así:
Código Delphi
[-]
Componentes:= ComponentCount-1;
for i:= Componentes downto 0 do
begin
if (Components[i] is TPanel) then
RemoveComponent(Components[i]) ;
end;