Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Mensajes Entre Modulo Y Formulario [Solucionado]
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Mensajes Entre Modulo Y Formulario [Solucionado] 
 
Hola, como seria la mejor forma de manejar mensajes entre los módulos y los formularios?
Explicación: en el ejemplo adjunto hay un formulario y un modulo, en el formulario un botón desencadena un evento click que llama al modulo, este hace la tarea de 0 a 10 y para cada "etapa" imprime en la consola un texto.
¿Como podría obtener ese texto para ponerlo en un label en el formulario sin tener que poner el label explícitamente en el código del módulo?

Saludos.

mensaje-0.0.1.tar.gz
Descripción: Ejemplo 
Descargar
Nombre del archivo: mensaje-0.0.1.tar.gz
Tamaño: 11.26 KB
Descargado: 29 veces
mensaje-0.0.1.tar.gz
Descripción: Ejemplo 
Descargar
Nombre del archivo: mensaje-0.0.1.tar.gz
Tamaño: 11.26 KB
Descargado: 29 veces
mensaje-0.0.1.tar.gz
Descripción: Ejemplo 
Descargar
Nombre del archivo: mensaje-0.0.1.tar.gz
Tamaño: 11.26 KB
Descargado: 29 veces

 



 
última edición por tincho el Jueves, 02 Junio 2016, 10:47; editado 1 vez 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Mensajes Entre Modulo Y Formulario 
 
Para lo que tú quieres en ese ejemplo primero debes responderte una pregunta:
¿Por qué encargas la tarea del bucle a un módulo?
Si la tarea es propia del formulario, es decir es una tarea que precisa de un seguimiento gráfico, déjala en el formulario, no en el módulo. Con eso lo tienes solucionado.

Aún así si es una tarea que va a ser llamada desde varios formularios su sitio es el módulo, el de la tarea, pero el del control de lo que hace sigue siendo función de cada uno de los formularios.
Esto te obliga a dividir la tarea en dos: Por un lado la tarea específica, en el módulo y por otro su control gráfico, en el formulario.
Sería más o menos:
En el módulo
Public Function listFiles() As String

   '... acciones propias del módulo y comunes a varios formularios
   Return Format(Now(), "hh:nn:ss")

End
 


En el formulario:

Public Sub Button1_Click()

  Dim intX As Integer

  For intX = 0 To 10
    TextLabel1.tex &= "Etapa " & Str(intx) & MFiles.Lisfiles() & gb.newline 'mejor le das más altura a texlabel1
    Wait 1
  Next

End
 

 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Mensajes Entre Modulo Y Formulario 
 
Citar:
Hola, como seria la mejor forma de manejar mensajes entre los módulos y los formularios?

En la respuesta anterior no te respondido a la pregunta genérica. La respuesta genérica es:
No hay una "mejor forma". Hay muchas y dependen de tu paradigma de programación (POO o Estructurada), de tu estilo de manejar los controles (encapsulación), etc.
¿Algunos ejemplos?

-Haciendo los controles del formulario públicos y modificandolos desde el módulo (quiebras el principio de encapsulación)
-Usando variables públicas que se modifican desde el módulo y se consultan y/o modifican desde el formulario (quiebra lo mismo que el principio anterior, pero menos)
-Usando ficheros temporales que almacenen los resultados de las operaciones y un watcher que los vigile y levante sus eventos
-Pasando a las funciones del módulo variables por referencia y comprobándolas con un timer en el formulario

etc. etc. etc.

Ya te digo no hay una mejor forma. Hay maneras "coherentes con tu estilo de programación". La tarea principal es definir ese estilo.

¿El mejor "estilo" para mí? Aquél que se ajusta lo más posible a la POO y sus principios.

Saludos.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Mensajes Entre Modulo Y Formulario 
 
Hola, Tincho.

Me resultó interesante tu ejercicio, ya que creí que lo faltaba era que pusieras un Return dentro del bloque For, pero esto hace que salga de la función.  Por lo que me pregunté que tal si enviaba el control al modulo y ahora lo que no logro es que me salga una nueva línea... probé con "\n" y con "gb.NewLine". Te muestro lo que hice:

Public Function listFilesAlControl(cntForm As TextLabel)

  Dim strTimer As String
  Dim intX As Integer
  cntForm.Text = ""
  For intX = 0 To 10
    strTimer = Format(Now(), "hh:nn:ss")
    cntForm.text = cntForm.text & gb.NewLine & strTimer
    Wait 1
  Next

End
 


Eso en el módulo en el FMain puse esto en tu evento click

    MFiles.listFilesAlControl(TextLabel1)
 


Espero que te sirva para encaminarte mejor.

Saludos...

PS: Ahora voy leer con atención lo que dice Shordi...
 



 
vicr - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Mensajes Entre Modulo Y Formulario 
 
Shordi:


Citar:
-Usando ficheros temporales que almacenen los resultados de las operaciones y un watcher que los vigile y levante sus eventos

¿como se hace eso?
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Mensajes Entre Modulo Y Formulario 
 
jsbsan escribió: [Ver mensaje]
Shordi:


Citar:
-Usando ficheros temporales que almacenen los resultados de las operaciones y un watcher que los vigile y levante sus eventos

¿como se hace eso?

Bueno... te abro otro hilo y te lo cuento en un ratito.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Mensajes Entre Modulo Y Formulario 
 
Gracias a todos por su aporte.
Finalmente he adaptado el ejemplo con la idea de vicr que me pareció muy buena por cierto.

Aquí lo dejo por si a alguien le interesa.

mensaje-0.0.3.tar.gz
Descripción: Adapatacion basada en la idea de vicr de pasar el control como parámetro. 
Descargar
Nombre del archivo: mensaje-0.0.3.tar.gz
Tamaño: 11.74 KB
Descargado: 21 veces
mensaje-0.0.3.tar.gz
Descripción: Adapatacion basada en la idea de vicr de pasar el control como parámetro. 
Descargar
Nombre del archivo: mensaje-0.0.3.tar.gz
Tamaño: 11.74 KB
Descargado: 21 veces
mensaje-0.0.3.tar.gz
Descripción: Adapatacion basada en la idea de vicr de pasar el control como parámetro. 
Descargar
Nombre del archivo: mensaje-0.0.3.tar.gz
Tamaño: 11.74 KB
Descargado: 21 veces

 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Cambiar El TextBox De Un Formulario, Con E... CanihoJR General 14 Sabado, 17 Octobre 2009, 16:51 Ver último mensaje
david
No hay nuevos mensajes Diferencia Entre Label Y Textlabel? (Soluc... CanihoJR General 4 Martes, 22 Junio 2010, 20:32 Ver último mensaje
Capa
No hay nuevos mensajes Modulo De Clase Y Modulo Estandar Shell General 5 Martes, 28 May 2013, 12:56 Ver último mensaje
jsbsan
No hay nuevos mensajes Uso De Enter Para Moverse Entre Campos De ... viejito Controles/Librerías/Componentes 20 Domingo, 18 Enero 2015, 18:07 Ver último mensaje
viejito
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

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
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron