Hola de nuevo.
La idea de DarkMan está bíen orientada.
Pero [i]Components nos da un TComponent y no tiene la propiedad
Parent,
o sea que tendríamos que ir a un descendiente que la tenga. Este es
TWinControl.
Entonces la línea:
Código:
If Components[i].Parent = Panel then
debería ser:
Código:
if TSpeedButton(Components[i]).Parent = Panel1 then
Parametrizando para cualquier contenedor sería:
Código:
procedure TForm1.BorrarBtns(ACtrl: TWinControl);
var
i: Integer;
begin
for i:= ComponentCount -1 downto 0 do
if (Components[i].ClassType = TSpeedButton)and
(TSpeedButton(Components[i]).Parent = ACtrl) then
Components[i].Free;
end;
Llamadas:
Código:
BorrarBtns(Panel1);
BorrarBtns(GroupBox1);
...
Saludos.