Ver Mensaje Individual
  #2  
Antiguo 24-07-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita