Visual Basic - Llamar formularios con variables

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 5
Ha aumentado su posición en 13 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Llamar formularios con variables

Publicado por Yony (3 intervenciones) el 24/12/2018 17:14:23
vb6

Buen día, me tope con esta situación necesito hacer el recorrido de los controles que hay dentro de mi formulario.
pero el nombre del formulario lo debo de recibir con una variable.

pero no puedo llamar al recorrido con el nombre de la variable.controls.


como podria realizar este recorrido de controles usando la variable con el nombre del form.

Agradezco su tiempo.
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
Imágen de perfil de gilman
Val: 594
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Llamar formularios con variables

Publicado por gilman (359 intervenciones) el 25/12/2018 09:36:15
Prueba
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public Function elFormulario(ByVal FormName As String) As Form
    Dim i As Long
 
    For i = 0 To Forms.Count - 1
        If Forms(i).Name = FormName Then
            Exit For
        End If
    Next i
    If i < Forms.Count Then
        Set elFormulario = Forms(i)
    Else
        Set elFormulario = Nothing
    End If
End Function

Devuelve el primer formulario cargado con el nombre que se le pasa, si no existe devuelve Nothing
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
sin imagen de perfil
Val: 5
Ha aumentado su posición en 13 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Llamar formularios con variables

Publicado por Yony (3 intervenciones) el 11/01/2019 16:55:49
Agradezco su tiempo y su respuesta... funciona genial la función... estimo que respondiera pues estaba atorado en el desarrollo.
Saludos y excelente día.
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
sin imagen de perfil
Val: 355
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Llamar formularios con variables

Publicado por Raul (160 intervenciones) el 04/01/2019 18:35:52
no te compliques tanto. escribe esto en un modulo

1
2
3
4
5
6
public sub REVELACONTROLS(NFORMS As FORM)
dim MYCONTROLS as controls
for each mycontrols in nforms.controls
msgbox mycontrols.name
next
end sub


y para usarlo desde cualquier forms solo llamas [call revelacontrols(me)] el VB esta hecho para reciclar continuamente el codigo
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
Imágen de perfil de gilman
Val: 594
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Llamar formularios con variables

Publicado por gilman (359 intervenciones) el 05/01/2019 11:03:19
Si lees el mensaje, lo que quiere pasar es el nombre del formulario, no el formulario.
Lellendo el post inicial, se ve que sabe recorrer los controles de un objeto formulario, pero la pega, es que, vete a saber porque, no puede pasar el formulario, sino el nombre, y con tu respuesta no hace absolutamente nada.
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
sin imagen de perfil
Val: 355
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Llamar formularios con variables

Publicado por Raul (160 intervenciones) el 05/01/2019 18:52:27
bien si lo que quiere es saber el nombre de un formulario basta con escribir el comando

1
2
dim XX as string
xx = me.name

y en su caso en particular "me.name" ya que la intrucción "me" hace referencia al formulario donde se escribe

ahora a la sub que le propuse no le interesa el nombre del formulario ya que la variable NFORM asume todas las propiedades del formulario incluyendo el nombre como si se tratara de un clon virtual; de esta forma simplemente desde cualquier formulario llamas a la sub. O sea que lo que intentaba decirle era que modificara su función por la sub mia para que hiciera el recorrido de controles

ahora si el interes es saber todos los nombres de los formularios que componen un proyecto la respuesta es

1
2
3
4
Dim MC As Form
For Each MC In Forms
msgbox MC.NAME
Next

en cuyo caso sugiero guardarlos en un listbox

1
2
3
4
5
6
7
public sub llenar(LW as listbox)
lw.clear
Dim MC As Form
For Each MC In Forms
lw.additem MC.NAME
Next
end sub

el truco es que las variables en visual basic hacen referencias no solo a datos, sino tambien a objetos en cuyo caso se comportan como clones de ese objeto, o sea que si tienes un formulario llamado FORM10 y haces a una variable referencia a él
"set NF = form10" y luego haces NF.show realmente este es un clon por lo que si luego haces esto form10.show tendras 2 formularios exactamente iguales en pantalla.


NOTA: en la linea 2 de la función propuesta se incluyó un error realmente debia decir "dim MYCONTROLS as control"
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
sin imagen de perfil
Val: 5
Ha aumentado su posición en 13 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Llamar formularios con variables

Publicado por Yony (3 intervenciones) el 11/01/2019 16:58:49
Gracias por tu tiempo... probé esta solución y funciona cuando haces el variable.show, sin embargo cuando lo intentas hacer con variable .controls para recorrer los controles de ese formulario no lo reconoce así.
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