![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
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;
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.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 24-07-2010 a las 07:29:24. |
|
#2
|
|||
|
|||
|
Cita:
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. |
|
#3
|
||||
|
||||
|
Si el panel es constante y no se crea y se destruye, sabiendo su nombre desde el principio puedes eliminar todos los botones de ese tipo que contenga.
Modificando un poco la función quedaría algo así:
__________________
"La recompensa de una buena acción está en haberla hecho" |
|
#4
|
||||
|
||||
|
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 Código:
if TSpeedButton(Components[i]).Parent = Panel1 then 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;
Código:
BorrarBtns(Panel1); BorrarBtns(GroupBox1); ...
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#5
|
|||
|
|||
|
Soys unos Crack's muchas gracias a todos.
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| borrar, cerrar botones PHP | arespremium | PHP | 3 | 04-08-2007 18:34:29 |
| Botones | Cañones | Varios | 6 | 19-07-2007 16:59:41 |
| Borrar lineas detalle al borrar registro maestro | akinom38 | Conexión con bases de datos | 3 | 11-01-2006 10:38:07 |
| borrar los campos de un DBGrid sin borrar los titulos de las columnas | Torreblanca | OOP | 2 | 02-08-2005 00:12:52 |
| Botones en vcl | gontxalo | OOP | 2 | 28-05-2005 10:38:16 |
|