Autor |
Mensaje |
lumbanico
Usuario
Registrado: Septiembre 2009
Mensajes: 23
Edad: 47
|
Recorriendo Los Formularios Y Controles De La Aplicación
Hola a todos,
En la aplicación que estoy creando utilizo un formulario auxiliar con un Listbox para seleccionar un valor determinado y pasárselo a otros formularios guardando el dato en un Textbox.
Los formularios principales pasan como variables al secundario su nombre y el nombre del TextBox donde tiene que guardar el dato.
Para devolver el dato he creado el código siguiente que recorre todos los formularios de la aplicación (o eso creo), hasta que encuentra el principal. Una vez en el formulario principal recorre todos su controles, hasta que 'da' con el correcto y le asigna el valor del Listbox.
Pero no funciona correctamente, me da la impresión que no recorre todos los formularios de la aplicación.
El código:
|
#1 Martes, 26 Febrero 2013, 09:09 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Recorriendo Los Formularios Y Controles De La Aplicación
Lumbanico:
¿ La función no tendría que devolver un valor ?. Ya sea el nombre del control o el nombre del control que buscas.
Para probar que recorre todos los controles , ¿ por que no imprimes en la consola sus nombres para depurar ?.
Así verías si los recorre o no.
Saludos.
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Martes, 26 Febrero 2013, 09:46; editado 2 veces
|
#2 Martes, 26 Febrero 2013, 09:42 |
|
|
lumbanico
Usuario
Registrado: Septiembre 2009
Mensajes: 23
Edad: 47
|
Re: Recorriendo Los Formularios Y Controles De La Aplicación
Lumbanico:
¿ La función no tendría que devolver un valor ?. Ya sea el nombre del control o el nombre del control que buscas.
Saludos.
La función lo que hace es asignarle un valor a un control: ctr.Value='valor'
última edición por lumbanico el Martes, 26 Febrero 2013, 09:44; editado 1 vez
|
#3 Martes, 26 Febrero 2013, 09:43 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Recorriendo Los Formularios Y Controles De La Aplicación
Lumbanico:
Entonces es un procedimiento no una función.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#4 Martes, 26 Febrero 2013, 09:47 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Recorriendo Los Formularios Y Controles De La Aplicación
lumbanico_
Citar: , me da la impresión que no recorre todos los formularios de la aplicación
He estado mirando la documentación y se supone que con Windows, da la lista de ventanas creadas por tu aplicacion...
http://www.gambasdoc.org/help/comp/gb.qt4/windows?es&v3, osea que en principio los deberia de recorrer todas las ventanas creadas (para mi que quiere decir ventana abierta)... a lo mejor el problema es ese... que las tienes que tener abiertas, osea formularios que no se esten mostrando (no este .show, o .showmodal), no los considera "ventana creada".....
Miralo en modo depuración como comenta Shell, a ver si lo puedes confirmar...
Si es asi, la solución que se me ocurre, seria crear una lista una lista de formularios, y es esa lista la que tienes que recorrer en vez de usar Windows...
|
#5 Martes, 26 Febrero 2013, 10:10 |
|
|
lumbanico
Usuario
Registrado: Septiembre 2009
Mensajes: 23
Edad: 47
|
Re: Recorriendo Los Formularios Y Controles De La Aplicación
Los formularios que están cerrados no los recorre, y de los que están abiertos no siempre los pasa...
|
#6 Martes, 26 Febrero 2013, 11:11 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Recorriendo Los Formularios Y Controles De La Aplicación
A parte de eso, si se me permite opinar, no creo que sea buena idea. Si quieres modificar el valor de un formulario desde otro, pásale en creación una referencia al control y no tienes por que recorrer ninguna colección.
En el formulario de origen:
dim f as miformularioquetieneellisbox(milistbox)
f.showmodal
El listbox milistbox se pasa por refencia, por lo que cualquier cambio que le hagas en el otro formulario será válido
En el formulario de destino:
Creo que se entiende la idea
....
|
#7 Martes, 26 Febrero 2013, 11:45 |
|
|
lumbanico
Usuario
Registrado: Septiembre 2009
Mensajes: 23
Edad: 47
|
Re: Recorriendo Los Formularios Y Controles De La Aplicación
Muchas gracias por las respuestas.
Intentaré ver si la solución de Shordi resuelve mis problemas.
|
#8 Martes, 26 Febrero 2013, 12:01 |
|
|
|