![]() |
Manejo de Componentes en Tiempo de ejecución
Hola a todos, si bien hay varias cosas dando vueltas acerca de este tema me quedan un par de dudas al respecto y de paso por si alguien tiene las mismas dudas planteo este hilo para globalizar un poco el tema del manejo de componentes en tiempo de ejecución.
Baso el ejemplo en los Labels: - Crear Labels: Bueno, en este caso uso la variable cant_favoritos para controlar el nombre del componente -Eliminar Labels: Con este codigo (obtenido de otro hilo) elimino los componentes Labels. Hasta ahí todo bien, las dudas que me surgen ahora son las siguientes: -¿Cómo borrar un único componente que fue creado en tiempo de ejecución? -¿Cómo borrar todos los componentes que fueron creados en tiempo de ejecución? -¿Cómo asignarle eventos (como por ejemplo el OnClick) a cada componente que voy creando en tiempo de ejecución? -¿Como referenciar componentes creados en tiempo de ejecucion para cambiarles sus propiedades como por ejemplo el color, fuente, etc.? Bien, creo que esas son las cosas basicas que podemos hacer con los componentes creados en tiempo de ejecución, o al menos es lo que yo estoy necesitando hacer. Desde ya se agradece cualquier aporte a la causa... Saludos!!!;) |
Hola rruffino, para aceder a un componente creado en tiempo de ejecución, puedes utilizar FindCompoenent:
Eliminamos el Label con nombre "Favorito_2"
Parar borrar todos los componentes lo haces con el codigo que ya tienes, pero mejor si los creas dentro de un contenedor (Panel...) y asi borras solo lo que tienes en el contenedor, porque si no tendrías que guardar en algún lado los creados en ejecución para así solo borrar esos componentes o ponerle Tag=-1 y borras solo los que tienen ese valor (esto recorriendo tus componentes). Para asignar eventos:
Y para la ultima pregunta, también con FindComponent.
Saluditos |
Muchas gracias!!
Hola Caro, muchas gracias por la respuesta. La duda que me queda es como me dijiste para eliminar que usara el mismo codigo que tengo y me aconsejabas que lo pusiera en un contenedor como un panel. Bien, justamente tengo todos los compoentes creados en tiempo de ejecucion en un scrollbox. Como me quedaria el codigo?
Muchisimas gracias!!:rolleyes: |
Cita:
Saluditos |
otra consultita?
Hola Caro, mil gracias por la respuesta!! Todo lo que has puesto lo he implementado y anda a las mil maravillas. Ahora me ha surgido una duda, yo puedo crear varios componentes label en tiempo de ejecucion y he podido asignarle el evento onclick, ahora, cuando yo hago el click en el label necesito saber sobre cual lo hago, aunque sea me interesa conocer el Caption del label sobre el cual se hizo el click al momento de ejecutar el procedure. Esto es a fines de que lo necesito para buscar ese valor en una tabla. Ya con esto creo que estaria.
Nuevamente te agradezco tus prontas y eficientes respuestas. Saludos cordiales!;) |
Cita:
El unico detalle es que debes asignarle el mismo evento a todos tus Labels y con el parametro Sender ya sabes sobre cual se a hecho click. Saluditos |
Perfecto!!
Bien Caro, gracias, ha funcionado perfectamente. Ahora por ejemplo yo he creado varios labels en tiempo de ejecucion y quisiera mediante un timer cambiar el color de la fuente, te adjunto el codigo que he hecho pero no me lo hace. Este codigo va en un timer, o por ahi hay otra forma de hacerlo que no la se.
Desde ya muchas gracias!!;) |
La franja horaria es GMT +2. Ahora son las 02:12:21. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi