Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Cómo saber el nombre del formulario origen en Visual Basic 6

Estas en el tema de Cómo saber el nombre del formulario origen en Visual Basic 6 en el foro de Visual Basic clásico en Foros del Web. Hola a todos Tengo tres formularios en visual basic form1, form2 y form3 para llamar al form3 tengo dos opciones desde el form1 o desde ...
  #1 (permalink)  
Antiguo 20/08/2004, 09:39
 
Fecha de Ingreso: agosto-2003
Ubicación: Cancun
Mensajes: 97
Antigüedad: 20 años, 8 meses
Puntos: 0
Cómo saber el nombre del formulario origen en Visual Basic 6

Hola a todos

Tengo tres formularios en visual basic form1, form2 y form3

para llamar al form3 tengo dos opciones desde el form1 o desde el form2
ambas opciones llevan la misma línea de código: form3.show vbModal, Me

estando en el form3 cómo puedo saber cual de los dos formularios es quien lo invoco???

gracias
  #2 (permalink)  
Antiguo 20/08/2004, 10:00
Avatar de jrp01  
Fecha de Ingreso: mayo-2004
Ubicación: México
Mensajes: 2.702
Antigüedad: 19 años, 11 meses
Puntos: 0
Puedes crear una variable global por ejemplo Forma y cuando un formulario se cargue Form1 o Form2 le asigna el valor que quieras Form="Form1" por ejemplo y cuando llames a Form3 solamente buscar que valor tiene:

If Forma="Form1" then
msgbox "Lo mando llamar la forma 1"
Else
msgbox "Lo mando llamar la forma 2"
End If

Espero que te sirva Saludos
  #3 (permalink)  
Antiguo 20/08/2004, 10:08
 
Fecha de Ingreso: agosto-2003
Ubicación: Cancun
Mensajes: 97
Antigüedad: 20 años, 8 meses
Puntos: 0
esa es una forma

Si, esa es una forma, de hecho esa la que estaba usando, pero estaba viendo que uno de los parametros del show es el formulario "padre" entonces me preguntaba si había alguna forma de saber cual es el formulario "padre" desde el formulario "hijo".

:D
  #4 (permalink)  
Antiguo 20/08/2004, 10:12
Avatar de lucasiramos  
Fecha de Ingreso: agosto-2004
Ubicación: Santa Rosa, La Pampa, Argentina
Mensajes: 1.484
Antigüedad: 19 años, 8 meses
Puntos: 13
Hola. Te comento lo que podes hacer.

En el formulario 3, el modal, defini una variable pública como string

Public VengoDe as String


Entonces al momento de llamar desde los formularios 1 o 2, antes del Show, modifica la variable VengoDe asignandole el string que quieras. Quedaria algo asi:

'En el form1, este sería el boton que llame al formulario3

Private Sub LlamarForm3_Click()
Form3.VengoDe = "Form1"
Form3.Show vbModal, Me
End Sub


'En el form2, este sería el boton que llame al formulario3

Private Sub LlamarForm3_Click()
Form3.VengoDe = "Form2"
Form3.Show vbModal, Me
End Sub


Entonces en el load del Form 3 pondrias esto (o lo que necesites vos...)

Private Sub Form_Load()
If VengoDe="Form1" Then
MsgBox "Vengo del formulario 1"
Else
MsgBox "Vengo del formulario 2"
Endif
End Sub

Espero te sirva. Saludos. Lucas
  #5 (permalink)  
Antiguo 20/08/2004, 10:14
Avatar de lucasiramos  
Fecha de Ingreso: agosto-2004
Ubicación: Santa Rosa, La Pampa, Argentina
Mensajes: 1.484
Antigüedad: 19 años, 8 meses
Puntos: 13
Huy, disculpen... Perdon por repetir el post.
Pasa que cuando lo estaba redactando me ganaron de mano
  #6 (permalink)  
Antiguo 21/08/2004, 20:33
 
Fecha de Ingreso: junio-2003
Mensajes: 111
Antigüedad: 20 años, 10 meses
Puntos: 0
Mira yo lo hago así:

forms(Forms(Forms.Count - 2)).name

Comentario
forms.count = total de formularios como empieza a contar desde cero es : forms.count-1

ese sería el ultimo llamado para saber el anterio en vez de restar uno le restaría dos.
y si le nones por ej: Forms(0).name te da el nombre del primer formulario abierto y así sucesivamente
No se si me exprese bien
Saludos
  #7 (permalink)  
Antiguo 03/03/2005, 10:48
Avatar de acervantes  
Fecha de Ingreso: agosto-2003
Ubicación: Madrid
Mensajes: 311
Antigüedad: 20 años, 8 meses
Puntos: 1
Las respuestas anteriores a las de Improvisado, no sirven en todos los casos (más adelante les explico el por qué).
Improvisado, me parece que se te fue un forms() de más, debería de ser:
Forms(Forms.Count - 2).name

Tu respuesta sí me sirvió, pues en mi caso yo tengo lo siguiente:
tengo una tabla (de base de datos) donde guardo el nombre del formulario que deseo abrir, lleno una lista (objeto vb) a partir de la tabla y cuando selecciono alguno de los elementos (evento click) abro el formulario que esté en el registro de la base de datos seleccionado (con respecto a la lista, claro), ahora, en esos formularios finales necesito variables del formulario anterior. Pero, como abro un objeto formulario a partir de una variable string?:
Código PHP:
strVariable "a ser usada en el formulario destino"
strFormulario "formularioejemplo"   (en este caso no viene de la base de datos)
AbreForm strFormulario

Private Sub AbreForm(strFormulario As String)
  
Dim frmFormulario As Form
  Set frmFormulario 
Forms.Add(strFormulario)
  
frmFormulario.Show 1
  
End Sub

-----
formulario destino
msgbox Forms
(Forms.Count 2).strVariable

mostrará un cuadro de texto con el mensaje 
---> "a ser usada en el formulario destino" 

como tip, les cuento que,
Set frmFormulario = Forms.Add(strFormulario)
carga el formulario (load) en ese instante (antes del frmFormulario.show 1)

Gracias.
__________________
ACervantes

[El éxito dura hasta que alguien las caga; los errores son eternos]
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 23:37.