Visual Basic - recorrer lo formularios de un proyecto

Life is soft - evento anual de software empresarial
 
Vista:

recorrer lo formularios de un proyecto

Publicado por Txapar (7 intervenciones) el 20/04/2006 21:13:22
Hola a todos, necesito recorrer todos los formularios de un proyecto para guardar en una tabla la información de todos los objetos del proyecto.

El problema es que no puedo utilizar la colección Forms porque solo contiene lo formularios que están cargados y la mayoría de los formularios se cargan en el momento de visualizarlos y luego se descargan.

¿Hay alguna otra manera de poder recorrerlos?

Gracias anticipadas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:recorrer lo formularios de un proyecto

Publicado por Pere (54 intervenciones) el 20/04/2006 22:40:52
Recorro los formularios y los descargo de la memoria tanto si están visibles como si no.

Dim frm As Integer, nombre$
frm = Forms.count

Do While frm > 0
Unload Forms(frm - 1)
If frm = Forms.count Then End
frm = frm - 1
Loop

Quita el Unload Forms(frm - 1)
sustituyéndole por el .Name.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:recorrer lo formularios de un proyecto

Publicado por Txapar (7 intervenciones) el 21/04/2006 06:29:17
Sí, lo que haces es recorrer la colección Forms
el problema es que si el formulario no está cargado todavía en memoria no está añadido a la colección Forms.
eso es la primera opcion que probé pero no me vale, porque el proyecto tiene como 50 formularios y no puedo cargarlos todos en la memoria, se van cargando y descargando cuando hacen falta.
Gracias por contestar
Si alguien sabe otra solución?
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:recorrer lo formularios de un proyecto

Publicado por Juan (93 intervenciones) el 21/04/2006 17:00:56
Se que a lo mejor mi sugerencia es un poco tonta. Pero los formularios son iguales cada vez que los corras, salvo que tu aplicacion tenga opciones de custumizacion, cosa que no es muy frecuente. Mi pregunta esta para que quieres hacer entonces??????? Porque es mas simple cargar la data cuando se hable el formulario. Al iniciar la aplicacion todos los formularios deberian ser identicos tal cual como los programaste, y eso podrias tenerlo como informacion estatica. Datos como fecha de conexion, usuario etc no dependen del formulario. No veo entonces para que???? si pudieras aclarar tu contexto ayudaria un poco a darte una solucion que sea semejante a lo que realmente necesitas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:recorrer lo formularios de un proyecto

Publicado por Txapar (7 intervenciones) el 21/04/2006 18:28:29
Es sobre un proyecto ya realizado, el cual ahora hay que traducir.
La solución pasa por guardar todos los caption de todos lo objetos del proyecto
para traducirlas

y necesito poder recorrer todos los formularios
para cargar todos los objetos en la tabla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:recorrer lo formularios de un proyecto

Publicado por Juan (93 intervenciones) el 21/04/2006 19:37:21
Tienes los fuentes???? o solo el exe? Creo que debes tener los fuentes. Yo siempre me voy por la solucion mas facil que en general es la mas rapida. Abrir frame por frame y llenar esa tabla manual. Son 50 formularios, o sea no son tantos. El tiempo de procesamiento se lleva maximo media mañana, y no creo que sea necesario cargar los caption mas de una vez. Obviamente es una solucion de novatos pero es mas rapida y si se tiene la premisa que se requieren esos valores una sola vez y que los caption no cambian de manera dinamica. Ahora de que manera van a hacer la traduccion? los nuevos caption se colocaran a mano, o via base de datos con los nuevos nombres que hagan match? Si tienes un programa de traduccion inmediato puedes hacerlo apenas carges el form y te sirve si los nombres son dinamicos. Bueno es mi analisis. Yo fuera por la solucion que conozco aunque fuera la menos elegante y en cuanto a rapidez fueran las mismas, porque el tiempo de investigacion te puede retardar si es algo urgente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:recorrer lo formularios de un proyecto

Publicado por txapar (7 intervenciones) el 21/04/2006 20:51:37
si, claro que tengo los fuentes, son 50 formularios por módulo y unos 10 módulos, o sea unos 500 formularios con un mínimo de 10 controles por formulario. A mano es algo inabordable.
Los nuevos caption se cogerán de la misma tabla donde guardo estos, por medio de una función que he generado y que es llamada al cargar el formulario.
Por otro lado he hecho otra función que recorre un formulario y me carga los controles en la tabla.
Lo único que me falta es poder recorrer todos los formularios de cada módulo
De momento lo que estoy haciendo es:

load formulario
cargacaption formulario

pero tengo que ir uno por uno
de todas maneras muchas gracias por tus respuestas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:recorrer lo formularios de un proyecto

Publicado por LLE (1 intervención) el 22/04/2006 02:50:21
Hola probás asi:

Private Sub Form_Load()
Dim obj As Control

For i = 0 To Forms.Count - 1

For Each obj In Forms(i)
MsgBox obj.Name
Next
Next

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:recorrer lo formularios de un proyecto

Publicado por txapar (7 intervenciones) el 22/04/2006 06:26:35
Eso es lo primero que probé.
El problema es que la colección Foms sólo contiene los formularios que están
cargados en memoria, es decir sobre los que se ha hecho load,.
Y no puedo cargar todos los formularios del proyecto a la vez, pues son muchos.
gracias de todos modos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar