FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Crear y Borrar componentes en tiempo de ejecución
Hola amigos tengo en una forma un SpinEdit y segun el numero que vaya seleccionando el usuario voy creando una etiqueta, un cuadro de texto y un calendario (al momento solo he provado con crear las etiquetas). Cuando se aumenta el valor en el SpinEdit en tiempo de ejecución se crean las etiquetas restantes, es decir si spinedit es 0 y el usuario sellecciona 2 se crean dos etiquetas, y si despues el usuario selecciona 3 solo se crea una etiqueta mas, el problema lo tengo cuando el usuario disminuye el valor del SpinEdit por ejemplo de 3 a 2 no logro eliminar la etiqueta sobrante, les anexo el código a ver si me pueden ayudar.
Segun yo buscando en el foro solo encuantro como crear componentes no como borrarlos
__________________
Espero poder seguir exprimiéndote el cerebro 8) Jorge Zamora Ginez Puebla, Pue. México |
#2
|
||||
|
||||
La verdad no he probado muy bien este codigo pero me supongo que puedes jugar con lo siguiente:
Espero te sirva
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#3
|
||||
|
||||
Hola,
A mí a bote pronto se me ocurre que uses variables "TObjectList", de tal forma que puedas ir guardando una referencia a cada objeto que creas, y puedas destruir estos según te sea menester. El código de más abajo está escrito en un momento, no me he parado mucho en el mismo, pero, como puede verse en el ejemplo que adjunto, aparentemente, al menos, consigue más o menos lo que te propones: ciñéndome en el ejemplo a unas cuantas "TLabel". Eres libre de mejorarlo y modificarlo como mejor te parezca. Si algún error de bulto hay, por favor, nadie se prive en comunicarlo. Gracias.
Última edición por dec fecha: 23-11-2005 a las 21:23:18. Razón: Corrección del código fuente (nomás la indentación). |
#4
|
||||
|
||||
Gracias a los dos por su ayuda les comento que la solución de jhonny si borraba pero solo los cuadros de dialogo y las datetimepicker, con la solución de dec fue lo que yo intentaba hacer solo le aumente el codigo para tambier crear los cuadros de dialogo y las datetimepicker.
Nuevamente Gracias
__________________
Espero poder seguir exprimiéndote el cerebro 8) Jorge Zamora Ginez Puebla, Pue. México |
#5
|
||||
|
||||
Por cierto le aumente en la parte de creación del componente le aumente el comando:
debido a que como la forma ya tiene otras etiquetas y no siempre tienen un nombre progresivo (label1, label2, etc.) daba error en el nombre del componente y con esto cambio fue mas que suficiente
__________________
Espero poder seguir exprimiéndote el cerebro 8) Jorge Zamora Ginez Puebla, Pue. México |
#6
|
||||
|
||||
Si vas a necesitar siempre el Tedit, el label y el calendario:
Create un Tframe con esos 3 componentes dentro. Despues solo tendrás que crear un nuevo TFrame y tendrás casi todo hecho. PD: Para liberar un componente en tiempo de ejecución, usa FreeAndNil(nombreComponente). Al crear los labels con el parámetro "Self" estas diciendo que los libere el formulario; si los destruyes tú, cuando el form intente destruirlos te dará un AccessViolation, ya que .Free no deja la variable apuntando a nil
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#7
|
||||
|
||||
Gracias Lepe, ya tengo el formulario funcionando con la ayuda de Dec, pero tendre en cuana la tuya para futuros cambios
__________________
Espero poder seguir exprimiéndote el cerebro 8) Jorge Zamora Ginez Puebla, Pue. México |
|
|
|