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.
Mensajes Entre Modulo Y Formulario [Solucionado]
Objetivo: Mensajes Entre Modulo Y Formulario [Solucionado]
última edición por tincho el Jueves, 02 Junio 2016, 10:47; editado 1 vez
última edición por tincho el Jueves, 02 Junio 2016, 10:47; editado 1 vez
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 |
Objetivo: 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
En el formulario:
¿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
En el formulario:
Objetivo: Re: Mensajes Entre Modulo Y Formulario
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.
Citar:
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.
Objetivo: 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:
Eso en el módulo en el FMain puse esto en tu evento click
Espero que te sirva para encaminarte mejor.
Saludos...
PS: Ahora voy leer con atención lo que dice Shordi...
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:
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...
Objetivo: Re: Mensajes Entre Modulo Y Formulario
Bueno... te abro otro hilo y te lo cuento en un ratito.
jsbsan escribió: [Ver mensaje]
Bueno... te abro otro hilo y te lo cuento en un ratito.
Objetivo: 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.
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 |
Página 1 de 1
No puede crear mensajesNo 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
Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.
Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo
Página generada en:: 0.4237s (PHP: -80% SQL: 180%)
Consultas SQL: 48 - Debug off - GZIP Activado