Ver Mensaje Individual
  #5  
Antiguo 24-07-2010
LiAnTe- LiAnTe- is offline
Miembro
 
Registrado: oct 2007
Posts: 47
Reputación: 0
LiAnTe- Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola Liante.
Para borrar los componentes podés usar utilizar la propiedad Components del form:
Código:
procedure BorrarSpeedBtns;
var
  i: Integer;
begin
   for i:= ComponentCount -1 downto 0 do
     if Components[i].ClassType = TSpeedButton then
       Components[i].Free;
end;
No, no hice el conteo al revés por que me guste complicar la cosa.
Si hiciera, for i:= 0 to ComponentCount - 1 do, obtendría un error de índice; puesto que
la posición del elemento que acabo de borrar sería ocupada inmediatamente por la del
componente que lo sucede.
Esto hace que cuando el componente "1" sea borrado y vaya a borrar el "2" este esté en
el lugar que antes ocupaba el "1", borrando entonces el "3" , y así sucesivamente. Provocando
inevitablemente una incongruencia entre el índice del ciclo y el número de los componentes.

Espero haber ayudado.

Saludos.
Genial esa es la idea, eso me va perfecto pero el ultimo problema que tengo ahora es que me borra todo el formulario y me tiene que borrar los botones que hay solo dentro de un PANEL...

estoy mirando de hacerlo metiendo delante el nombre del panel y pasa de mi...

donde me estoy equivocando??

gracias compañeros por el aporte que estais haciendo.
Responder Con Cita