Autor |
Mensaje |
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Como Hacer Que Un Formulario Retorne [SOLUCIONADO]
Hola a todos.
Estoy tratando de pasar datos de un formulario a otro para un proyecto mas grande en el que agrupo varios formularios típicos.
Para que sea mas simple de comprender hice este ejemplo, pero no logro hacer que funcione.
La idea es pasar un valor Integer desde el formulario secundario al principal.
pero creando una instancia de una clase intermedia que es la visible desde fuera.
Esto lo hago así porque todo lo pondré en un componente.
Parece complicado pero es la forma en que trabaja el formulario print por ejemplo.
He tratado de hacer funcionar el ejemplo de Guardon de otro post pero tampoco lo he conseguido.
https://foro.gambas-es.org/viewtopic.php?f=1&t=402
Si logramos dar con el método correcto sera un gran avance. ya que luego el paso siguiente sera comunicar tipos de variables mas avanzadas como una Collection por ejemplo.
Este es un esquema de la idea para mas claridad.
Saludos.
Descripción: |
|
Descargar |
Nombre del archivo: |
ejemplo-formulario-retorna-valor-0.0.1.tar.gz |
Tamaño: |
11.72 KB |
Descargado: |
40 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
ejemplo-formulario-retorna-valor-0.0.1.tar.gz |
Tamaño: |
11.72 KB |
Descargado: |
40 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
ejemplo-formulario-retorna-valor-0.0.1.tar.gz |
Tamaño: |
11.72 KB |
Descargado: |
40 veces |
última edición por tincho el Miercoles, 12 Febrero 2020, 15:43; editado 2 veces
|
#1 Domingo, 20 Octobre 2019, 13:10 |
|
|
gambafeliz
Analista Programador
Registrado: Julio 2019
Mensajes: 830
Edad: 54
|
Re: Formulario Que Retorna Valor.
tincho escribió: Hola a todos.
Estoy tratando de pasar datos de un formulario a otro para un proyecto mas grande en el que agrupo varios formularios típicos.
Para que sea mas simple de comprender hice este ejemplo, pero no logro hacer que funcione.
La idea es pasar un valor Integer desde el formulario secundario al principal.
pero creando una instancia de una clase intermedia que es la visible desde fuera.
Esto lo hago así porque todo lo pondré en un componente.
Parece complicado pero es la forma en que trabaja el formulario print por ejemplo.
He tratado de hacer funcionar el ejemplo de Guardon de otro post pero tampoco lo he conseguido.
https://foro.gambas-es.org/viewtopic.php?f=1&t=402
Si logramos dar con el método correcto sera un gran avance. ya que luego el paso siguiente sera comunicar tipos de variables mas avanzadas como una Collection por ejemplo.
Saludos.
tincho me supongo que quieres decir de FMain a FData, por favor, aclárame esto, gracias.
Nota te lo digo por que ambas entrada de datos esta accesibles para escribir y si la que recibe los datos al menos estuviera en modo lectura seria mas fácil de saber quien escribe y quien recibe. A parte para mi es la duda.
última edición por gambafeliz el Domingo, 20 Octobre 2019, 14:04; editado 1 vez
|
#2 Domingo, 20 Octobre 2019, 13:27 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Formulario Que Retorna Valor.
gambafeliz escribió:
tincho me supongo que quieres decir de FMain a FData, por favor, aclárame esto, gracias.
Fmain es el principal, allí apreto un botón y se abre el formulario FData, el secundario en este caso. Luego en FData se escriben o procesan datos (que puede ser contra una BBDD) luego al cerrar este formulario tiene que devolver un entero (que puede ser la clave de un registro) y dicho valor tiene que poder ser utilizado en FMain.
Bien esta es la idea básica.
Pero para poner este proceso en un componete es necesario usar una clase intermedia que se instancia en FMain.
Saludos.
|
#3 Domingo, 20 Octobre 2019, 14:10 |
|
|
gambafeliz
Analista Programador
Registrado: Julio 2019
Mensajes: 830
Edad: 54
|
Re: Formulario Que Retorna Valor.
tincho escribió: gambafeliz escribió:
tincho me supongo que quieres decir de FMain a FData, por favor, aclárame esto, gracias.
Fmain es el principal, allí apreto un botón y se abre el formulario FData, el secundario en este caso. Luego en FData se escriben o procesan datos (que puede ser contra una BBDD) luego al cerrar este formulario tiene que devolver un entero (que puede ser la clave de un registro) y dicho valor tiene que poder ser utilizado en FMain.
Bien esta es la idea básica.
Pero para poner este proceso en un componete es necesario usar una clase intermedia que se instancia en FMain.
Saludos.
Y por que no trabajas con la propiedad Tag del formulario, ¿te pregunto?
|
#4 Domingo, 20 Octobre 2019, 14:15 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Formulario Que Retorna Valor.
gambafeliz escribió: Y por que no trabajas con la propiedad Tag del formulario, ¿te pregunto?
Por que mi memoria es un desastre
Voy a probar con .tag a ver como va.
Saludos.
|
#5 Domingo, 20 Octobre 2019, 14:26 |
|
|
gambafeliz
Analista Programador
Registrado: Julio 2019
Mensajes: 830
Edad: 54
|
Re: Formulario Que Retorna Valor.
tincho escribió: gambafeliz escribió: Y por que no trabajas con la propiedad Tag del formulario, ¿te pregunto?
Por que mi memoria es un desastre
Voy a probar con .tag a ver como va.
Saludos.
No se si es lo que quiere o si te vale o no. Te doy el ejemplo como se me ha ocurrido, sino es pues perdone usted.
Saludos.
Descripción: |
|
Descargar |
Nombre del archivo: |
ejemplo-formulario-retorna-valor-0.0.1.tar.gz |
Tamaño: |
11.78 KB |
Descargado: |
29 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
ejemplo-formulario-retorna-valor-0.0.1.tar.gz |
Tamaño: |
11.78 KB |
Descargado: |
29 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
ejemplo-formulario-retorna-valor-0.0.1.tar.gz |
Tamaño: |
11.78 KB |
Descargado: |
29 veces |
|
#6 Domingo, 20 Octobre 2019, 15:06 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Formulario Que Retorna Valor.
gambafeliz escribió: No se si es lo que quiere o si te vale o no. Te doy el ejemplo como se me ha ocurrido, sino es pues perdone usted.
Saludos.
Probé tu ejemplo y funciona a medias, ya que no interviene la Clase CData.
Tendré que seguir investigando.
Saludos.
|
#7 Domingo, 20 Octobre 2019, 15:31 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Formulario Que Retorna Valor.
Bueno probé hacerlo con Me.Tag y tampoco logro hacer funcionar el traspaso de una variable entre Formulario-ClaseIntermedia-OtroFormulario.
- FormularioPrincipal Le pregunta el valor a ClaseIntermedia.
- ClaseIntermedia abre FormularioSecundario
- Edición de la informacion en FormularioSecundario
- Cerrar FormularioSecundario
- Recuperar la variable y utilizarla en el formulario principal
FMain
FData (Formulario secundario)
CData
Saludos.
|
#8 Domingo, 20 Octobre 2019, 15:31 |
|
|
gambafeliz
Analista Programador
Registrado: Julio 2019
Mensajes: 830
Edad: 54
|
Re: Formulario Que Retorna Valor.
tincho escribió: Bueno probé hacerlo
Otra forma y es embeber (inyectar) el formulario principal e insertar el texto directamente.
Descripción: |
|
Descargar |
Nombre del archivo: |
ejemplo-formulario-retorna-valor-0.0.2.tar.gz |
Tamaño: |
11.66 KB |
Descargado: |
31 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
ejemplo-formulario-retorna-valor-0.0.2.tar.gz |
Tamaño: |
11.66 KB |
Descargado: |
31 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
ejemplo-formulario-retorna-valor-0.0.2.tar.gz |
Tamaño: |
11.66 KB |
Descargado: |
31 veces |
|
#9 Domingo, 20 Octobre 2019, 19:07 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Formulario Que Retorna Valor.
gambafeliz escribió: tincho escribió: Bueno probé hacerlo
Otra forma y es embeber (inyectar) el formulario principal e insertar el texto directamente.
Muchas gracias por el interés, de verdad, pero sigue sin ser la solución optima.
Ya que esto debe ir a parar a un componente y luego lo único que sera "visible" o Exported sera la clase que llamara al formulario secundario.
El formulario principal no estará en el componente, sino que este estará en un programa que use el componente.
Por lo que estuve viendo por este foro lo que me parece que debería usarse es el concepto de propiedades.
Saludos.
|
#10 Domingo, 20 Octobre 2019, 20:15 |
|
|
|