![]() |
??Como modificar una variable externa en un procedimiento??
Buenas,
Lo que quiero hacer es recorrer los componentes de un form que esta lleno de puros chekbox y si esta marcado llamo a un procedimiento que me modifica una variable global llamada perfil:TPerfil que contiene una TObjectList de TDetallePerfil. Entonces por cada check marcado tengo que hacer un add a la lista de detalles; pero no puedo simplemente
porque tengo que validar varias cosas en el form y ademas crear un objeto detalle para insertarlo, entonces me hice un procedimiento
pongo solo la declaracion porque es muy(muy) extenso pero el var no me sirve ya que cada vez que entra al procedimiento compruebo recorriendo el list que solo se encuentran los ultimos registros y en la bd se inserta asi por lo tanto puedo deducir que el procedure no modifica como quiero: no borra las otras propiedades del perfil pero si los elementos que se encontraban en el list. Ustedes que conocen, ¿me podrian ayudar? |
En vez de utilizar esto:
Utiliza este otro: El .Detalles tiene que ser TStrings para poder utilizar lo anterior. Cuando recuperes el objecto lo tienes que hacer: Espero que sea esto lo que estés buscando. Un saludo. |
A ver si alguien lo entiende, yo no he llegado a comprender el problema :o
|
Cita:
la verdad es que lo que ocupo es saber como modificar la variable sin que el procedimiento me modifique los registros que ya hay en esta |
ok a ver si me explico en otras palabras lo que necesito es tomar un objeto declarado en un formulario y enviarlo como parametro a un procedimiento y que este lo modifique sin borrar los datos que el objeto ya trae
|
Cita:
Te pongo un ejemplo simple donde se crean TCheckBox, a algunos se les modifica las propiedades Left y Checked al azar y luego se muestra en un ListBox aquellos que tengan la propiedad Checked en True.
Si los componentes fueron añadidos en diseño para pasarlos al TObjectList, habría que reemplazar btnCrearClick por:
Saludos. |
muchas gracias a todos ya pude solucionar el problema
|
La franja horaria es GMT +2. Ahora son las 04:16:58. |
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