Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Recorriendo Los Formularios Y Controles De La Aplicación
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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:

Public Function fncRecorrerFormulario(strForm As String, strControl As String)

  Dim frm As Form
  Dim ctr As Object

  'Recorre los formularios, o eso creo.
  For Each frm In Windows

    'El formulario se llama como el valor pasado a la función.
    If frm.Name = strForm Then

      'Recorre los controles del formulario.
      For Each ctr In frm.Controls

        'El control se llama como el valor pasado a la función.
        If ctr.Name = strControl Then

          'Le asigna el valor al control.
          ctr.Value = 'valor'

        End If

      Next

    End If

  Next

End
 

 



 
lumbanico - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Recorriendo Los Formularios Y Controles De La Aplicación 
 
Shell escribió: [Ver mensaje]
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 
lumbanico - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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...
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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...
 



 
lumbanico - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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:

private lista as listbox
Public sub _new(ellistbox as listbox)

lista=ellistbox  
end

public sub asignovalor

lista.value=elvalorquequieroponer

end
 

Creo que se entiende la idea

....
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 



 
lumbanico - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
10.00 10 10 1
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes ¿cómo Puedo Mostrar Todos Los Formulario... jsoto61 General 12 Martes, 08 Diciembre 2009, 12:31 Ver último mensaje
jsoto61
No hay nuevos mensajes A Cerca De Controles En Distintos Formularios messerschmitt General 3 Sabado, 16 Abril 2011, 18:14 Ver último mensaje
soplo
No hay nuevos mensajes Formularios Muchos Formularios Ideas De D... codificador General 5 Viernes, 07 Junio 2013, 08:22 Ver último mensaje
codificador
No hay nuevos mensajes Controles En Aplicación Gráfica GTK, Sim... viejito Instalación 6 Domingo, 04 Enero 2015, 20:16 Ver último mensaje
shordi
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario