SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: BUHO en Martes 9 de Septiembre de 2003, 21:39
-
Queido foro....
Tengo un problema sobre formularios, que es el siguiente:
Tengo una aplicación en vb60, en la que hay un formulario con textbox, label, commandboton, etc, y desde este formulario hago una llamada a otro formulario para conseguir unos datos que automaticamente se pasan al formulario que lo llamó. Mi pregunta es:
como puedo hacer para que el formulario de donde tomo los datos para pasarlos al otro formulario sea del estilo "msgbox" es decir que reconozca al formulario llamante sin tener que identificarlo con form1.tex1. etc. No se si me he explicado bien os agradeceria buestra ayuda llevo 20 dias bloqueado con esto, agradeceria ejemplo de codigo, gracias por todo.
-
En el formulario que devuelve datos puedes declarar una variable tipo form de forma que cualquier formulario llamante se identifique. En los formularios que obtienen valores deberás declarar o bien una variable común a todos ellos (o algun componente tipo textbox.)
P. Ej.
En el formulario que llama
public MyRetVariable as Variant
private sub Command1_click()
set OwnMsgBox.Llamante = me
OwnMsgBox.show vbModal
end sub
En el formulario que actúa como MSGBOX
Public Llamante as form
Private Sub CommSalir()
Llamante.MyRetVariable="alguna cosa"
unload me
end sub.
Otra forma sería usar la propiedad PARENT para saber que formulario es el llamante y de esta forma devolver el valor a una variable común a todos los formularios de la aplicación.
Espero haberme explicado lo suficiente.
Un saludo
-Acalanto-
-
Gracias por responderme tan rapido
he probado tu codigo, pero lo que yo necesito es poder llamar siempre a un formulario en el cual realizo una busqueda para sacar datos y estos datos pasarlos al formulario que lo llamo, y desde otro formulario tambien llamarlo para lo mismo, entonces el formulario llamado (siempre llamo al mismo) sepa cual es el formulario que lo llamo para pasarle los datos
-
Quizas no comprendiste la ayuda que te dio Acalanto, pero El respondio exactamente a lo que vos necesitas.
Vos necesitas que el Formulario llamado devuelva valores y los coloque automaticamente en controles del formulario llamador (sea este cual fuera).
bien...
Debes agregar un modulo a tu proyecto y ahi declarar un objeto form que va a ser simplemente de referencia al formulario que luego en tiempo de ejecucion llame a tu formulario colector de datos.
en el modulo
public formulario_llamador as form
en el form llamador
private sub boton_click()
set formulario_llamador=me
load formulario_colector
formulario_colector.show
end sub
en el form colector
rem 'devuelve datos al form llamador'
formulario_llamador.textbox1.txt="Dato"
unload me
me.hide
Es muy simple. Al haber creado como publico un objeto form en tu modulo, este estara disponible para todos tus formularios, simplemente antes de abrir el formulario colector, debes setear este objeto con la referencia del formulario origen.
De esta manera en el formulario colector solo debes hacer mencion del objeto del modulo ya que en su interior se encontrara la referencia al formulario real.
Espero que te quede un poco mas claro.
Suerte