Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Crear un control de un formulario que puede usarse luego
#1

Buenas!.

Tengo un formulario como este. ( Es un ejemplo ).

[Imagen: A8cbOiw.png]

Este formulario se va crear varias instancias del mismo y se van a embeber (que nombre) en un formulario.

Y podía ser esto como queda.

[Imagen: 6gZeUiH.png]

Creo que es un uso normal y posible. El formulario es un contenedor de los controles que tiene y se instancia en otro formulario.
¿ Qué opinan ?.
¿ Es mejorable este método ?.
¿ Podría hacerlo de otra forma ?. ¿ MDI ?.
¿ Es más cómodo de esta forma ?.

Ahora supongamos que tengo una serie de formularios o este en concreto y quiero usarlo en otros proyectos,
puedo:

- Importar el formulario.
- ¿ Crear un control ?.

Si fuera un control, en realidad no se esta creando un control nuevo que haga algo nuevo, tan solo es un formulario que usa controles
que tiene el propio Gambas.

Entonces el código de la clase no tiene apenas código y todo depende del formulario.

GAMBAS
  1.  
  2. Inherits UserControl
  3.  
  4. Private $ftest As FormTest
  5.  
  6. Public Sub _new()
  7.  
  8.   $ftest = New FormTest(Me)
  9.  



Os subo el código de ejemplo. Por defecto se ejecuta con la clase. Para hacerlo sin la clase ejecutar directamente desde el Fmain.

Saludos


Archivos adjuntos
.gz EjemploEtiquetaBotonConClases-0.0.1.tar.gz Tamaño: 12.28 KB  Descargas: 1

"El buen perfume en frasco pequeño se vende"
    ¡Gracias!
#2

Cita:¿ Es mejorable este método ?.
Un formulario es el observador de sus controles. En tu ejemplo los botones sólo mueven las barras, pero en condiciones reales dichos botones harían algo más ¿Desde dónde controlas lo que hacen? ¿Dónde y cómo colocas el observador del botón interno contenido en tu formulario?
Si lo haces como un control, no como un formulario, el observador será directamente el formulario donde lo coloques y todo será más simple.
Cita:¿ Podría hacerlo de otra forma ?. ¿ MDI ?.
¿ Es más cómodo de esta forma ?.
¿Podías hacerlo de otra forma? De tus preguntas intuyo que sabes que es posible (y según mi punto de vista preferible) hacer un control normal que utilizar un form, pero que es más cómodo usar un form por aquello de que no tienes que crear por código los controles internos (el progress bar y el botón).
MDI no. No tiene nada que ver en éste caso, creo, y te complicaría aún más el tema de los observadores...
Cita:- Importar el formulario.
- ¿ Crear un control ?.
Si importas el formulario, además de lo ya expuesto, también tienes que importar el código que lo inserte en otro y, si lo modificas (aunque este ejemplo es muy simple) tendrás que modificarlo en todos los programas que lo usen.

Saludos

No podemos regresar
[-] Los siguientes 1 usuarios dice gracias a Shordi por este post:
  • Shell
    ¡Gracias!
#3

(04-03-2023, 11:35)Shordi escribió:  En tu ejemplo los botones sólo mueven las barras, pero en condiciones reales dichos botones harían algo más ¿Desde dónde controlas lo que hacen? ¿Dónde y cómo colocas el observador del botón interno contenido en tu formulario?
Si lo haces como un control, no como un formulario, el observador será directamente el formulario donde lo coloques y todo será más simple.

Siendo solo un ejemplo fue más para ver como iba a funcionar esto y cual debería ser la forma más sencilla.
Los botones podían hacer otra cosa, pero en este caso solo activa una barra de progreso.
Todo se controla desde el propio código de cada formulario instanciado y sus controles.

No hay controles públicos y no se usan como variables en el formulario donde se crean las instancias.
( En realidad los controles públicos no me acaba de gustar, si es que existiese otra posibilidad).
Vi en tu vídeo de crear un control compuesto que es como lo haces.
 
(04-03-2023, 11:35)Shordi escribió:  ¿Podías hacerlo de otra forma? De tus preguntas intuyo que sabes que es posible (y según mi punto de vista preferible) hacer un control normal que utilizar un form, pero que es más cómodo usar un form por aquello de que no tienes que crear por código los controles internos (el progress bar y el botón).
MDI no. No tiene nada que ver en éste caso, creo, y te complicaría aún más el tema de los observadores...

Por eso lo hice directamente con el formulario, por la comodidad.
 
(04-03-2023, 11:35)Shordi escribió:  Si importas el formulario, además de lo ya expuesto, también tienes que importar el código que lo inserte en otro y, si lo modificas (aunque este ejemplo es muy simple) tendrás que modificarlo en todos los programas que lo usen.

A ver como sale haciéndolo como control. 

Saludos

"El buen perfume en frasco pequeño se vende"
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje
Último mensaje por tincho
18-09-2022, 18:49
Último mensaje por Shell
28-10-2021, 20:12

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)