Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 4
Ir a la página 1, 2, 3, 4  Siguiente
 
Como Hacer Que Un Formulario Retorne Un Valor Usando Encapsulamiento De Clases.
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Como Hacer Que Un Formulario Retorne Un Valor Usando Encapsulamiento De Clases. 
 
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://www.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.
 flow_edit
Saludos.
 



 
última edición por tincho el Lunes, 21 Octobre 2019, 13:24; editado 1 vez 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Formulario Que Retorna Valor. 
 
tincho escribió: [Ver mensaje]
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://www.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, 15:04; editado 1 vez 
gambafeliz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Formulario Que Retorna Valor. 
 
gambafeliz escribió: [Ver mensaje]

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.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Formulario Que Retorna Valor. 
 
tincho escribió: [Ver mensaje]
gambafeliz escribió: [Ver mensaje]

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?
 



 
gambafeliz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Formulario Que Retorna Valor. 
 
gambafeliz escribió: [Ver mensaje]
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.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Formulario Que Retorna Valor. 
 
tincho escribió: [Ver mensaje]
gambafeliz escribió: [Ver mensaje]
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.
 



 
gambafeliz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Formulario Que Retorna Valor. 
 
gambafeliz escribió: [Ver mensaje]
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.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
Public Sub Button1_Click()
  Dim hForm As New CData
  Dim ctn As New Collection
  hForm.Edit(["Value": 0])
  ctn = hForm.ctn
  ValueBox1.Value = ctn["Value"]
End
 

FData (Formulario secundario)
Public ctn As New Collection

Public Sub Form_Open()
  ctn = ["Value": 0]
End

Public Sub Button1_Click()
  Me.Tag = ctn
  Wait 0.001
  Me.Close
End

Public Sub ValueBox1_Change()
  If ctn.Exist("Value") Then
    ctn["Value"] = ValueBox1.Value
  Endif
End
 

CData
Export

Public ctn As New Collection

Public Sub Edit(cn As Collection)

  FData.ShowModal()
  ctn = FData.Tag

End

 

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Formulario Que Retorna Valor. 
 
tincho escribió: [Ver mensaje]
Bueno probé hacerlo


Otra forma y es embeber (inyectar) el formulario principal e insertar el texto directamente.
 



 
gambafeliz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Formulario Que Retorna Valor. 
 
gambafeliz escribió: [Ver mensaje]
tincho escribió: [Ver mensaje]
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.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Explosiones Usando Clases jsbsan Aplicaciones/Fragmentos de Código 2 Domingo, 03 Junio 2012, 12:44 Ver último mensaje
jsbsan
No hay nuevos mensajes Como Enviar Un Valor De Un Formulario A Ot... metalgearxd General 4 Miercoles, 20 Febrero 2013, 09:51 Ver último mensaje
shordi
No hay nuevos mensajes Colisiones De Objetos Usando Clases Shell Aplicaciones/Fragmentos de Código 8 Martes, 15 Diciembre 2015, 13:37 Ver último mensaje
Shell
No hay nuevos mensajes Como Hacer Para Que Una Funcion Retorne Do... tincho Aplicaciones/Fragmentos de Código 2 Jueves, 04 Febrero 2016, 23:59 Ver último mensaje
vuott
 

Publicar nuevo tema  Responder al tema  Página 1 de 4
Ir a la página 1, 2, 3, 4  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario