Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: deejaykhali en 14 de Abril 2014, 21:31

Título: ¿Como volver al Formulario que lo llamó? Visual Basic
Publicado por: deejaykhali en 14 de Abril 2014, 21:31
Buenas tardes, tengo una pequeña duda ya que soy nuevo programando en Visual Basic 6.0 y mi pregunta es la siguiente:

Tengo un proyecto con varios formularios (no son dinámicos) que funcionan a la perfeccion salvo un pequeño detalle, hago llamados a un mismo formulario desde formularios distintos y me gustaría saber cual es la manera de volver al formulario que llamo al ultimo, he creado un botron “atrás” con los comandos Hide() y Show() pero solo se devuelve al formulario donde esta el comando pero cuando lo llamo desde otro formulario no vuelve a el sino al formulario donde esta el comando, como no se si me estoy explicando bien lo voy a reflejar en un pequeño código

Asi lo tengo codificado:

Este es el formulario 1

Private Sub Cdm_Sieguiente1_Click()
Frm1.Hide
Frm3.Show
End Sub

Este es el botón atrás del formulario 3 para que vuelva al formulario 1

Private Sub CdmAtras3_Click()
Frm_3.Hide
Frm_1.Show
End Sub

Y este es otro formulario que también llama al formulario 3

Private Sub Cdm_Sieguiente2_Click()
Frm2.Hide
Frm3.Show
End Sub

Mi Pregunta es: Como Hago para que el Formulario 3 vuelva al formulario 2 cuando y no al formulario 1 cuando quien lo haya llamado sea el formulario 2?

De ante mano muchas gracias por la ayuda y la colaboracion
Título: Re:¿Como volver al Formulario que lo llamó?
Publicado por: javi in the sky en 14 de Abril 2014, 22:22
Si tienes 3 formularios, en cada formulario puedes tener dos botones para ir a cualquiera de los otros dos formularios:

En el form1:

Código: [Seleccionar]
Private Sub CommandIrA2_Click()
Form2.Show
Form1.Hide
Form3.Hide
End Sub

Private Sub CommandIrA3_Click()
Form3.Show
Form2.Hide
Form1.Hide
End Sub

En el form2:
Código: [Seleccionar]
Private Sub CommandIrA1_Click()
Form1.Show
Form2.Hide
Form3.Hide

End Sub

Private Sub CommandIrA3_Click()
Form2.Hide
Form1.Hide
Form3.Show
End Sub

Private Sub Form_Load()

End Sub

En el form3:

Código: [Seleccionar]
Private Sub CommandIrA1_Click()
Form1.Show
Form2.Hide
Form3.Hide
End Sub

Private Sub CommandIrA2_Click()
Form3.Hide
Form2.Show
Form1.Hide
End Sub

Private Sub Form_Load()

End Sub

Con estos botones puedes ir saltando de un formulario a otro de la forma que quieras. Salu2


Título: Re:¿Como volver al Formulario que lo llamó?
Publicado por: deejaykhali en 14 de Abril 2014, 22:49
Muchas Gracias de Verdad, aunque es un ejemplo muy logico no es precisamente lo que ando buscando, o sea, no quiero poner 2 botones en el formulario ya que al formulario 3 (por asi nombarlo) lo llaman otros formularios desde distintos puntos y deseo que en su debido momento el formulario que fue llamado retorne al formulario que lo llamo, estuve probando con la funcion Unload Me y hace lo que quiero a medias ya que deja las ventanas (formularios) de atras abiertas y cuando coloco el comando HIDE pues me las desaparece y el formulario 3 (por asi llamarlo) no vuelve o no consigue al formulario que lo llamo, agradezco mucho tu ayuda amigo, saludos
Título: Re:¿Como volver al Formulario que lo llamó?
Publicado por: javi in the sky en 15 de Abril 2014, 09:38
Podrías hacerlo usando variables globales que te almacenen la información de quién llamó al formulario.

Por ejemplo: ultimoLlamoAlForm3Fue = 2

Luego con un if, en el botón para regresar al último formulario que lo llamó, con un if then tendrías que si el último que lo llamó fue el 2 que te muestre el 2, que si el último que lo llamó fue el 1 que te muestre el 1, etc. Saludos.
Título: Re:¿Como volver al Formulario que lo llamó?
Publicado por: deejaykhali en 15 de Abril 2014, 15:09
me parece bien esta solucion, ahora mis preguntas son: como y donde establezco VARIABLES GLOBALES y como haria el formulario 3 para saber si lo llamo el 1 el 2 o el "0"? muchas gracias por tu ayuda amigo... feliz dia
Título: Re:¿Como volver al Formulario que lo llamó?
Publicado por: javi in the sky en 15 de Abril 2014, 16:59
Para declarar variables globales en Visual Basic 6 tienes que ir al menú Proyecto y elegir la opción "Agregar módulo".

Dentro del código del módulo escribe por ejemplo: 

Public quienLLamoAForm1 As Integer
Public quienLLamoAForm2 As Integer
Public quienLLamoAForm3 As Integer

Ahora ya puedes trabajar con esas variables desde cualquier formulario pues tienen visibilidad global, lo que tendrías es que dotar de lógica al programa para saber desde dónde se llamó usando variables globales.
Título: Re:¿Como volver al Formulario que lo llamó?
Publicado por: deejaykhali en 15 de Abril 2014, 17:54
voy a probar, gracias por la ayuda