Shell   03-03-2023, 12:09
#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.

Código:
Export

Inherits UserControl

Private $ftest As FormTest

Public Sub _new()

  $ftest = New FormTest(Me)

End

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 conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shordi   04-03-2023, 11:35
#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
Shell   05-03-2023, 11:51
#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 conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
  
Usuarios navegando en este tema: 3 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.