Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var
I:Integer;
begin
For i:=ComponentCount -1 downto 0 do
begin
if Components[i] is TGroupBox then
Components[i].free;
end;
end;
He comprobado que si vas de abajo hacia arriba la lista de componentes se vuelve inválida al borrar alguno de ellos, por esto he hecho una prueba recorriendo la lista al revés y funciona.
Un Saludo.