Comunidad Gambas-es
Obtener los eventos de controles creados en otra parte pero colocados en el formular. - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: Aplicaciones/Fragmentos de Código (https://gambas-es.org/forum-8.html)
+--- Tema: Obtener los eventos de controles creados en otra parte pero colocados en el formular. (/thread-1832.html)



Obtener los eventos de controles creados en otra parte pero colocados en el formular. - tincho - 03-01-2025

Hola,

Cuando los controles se crean en un módulo, no en el formulario principal, pero luego estos son colocados en un panel en el formulario principal ¿Cuál es la forma de obtener los eventos en estos controles en el formulario?

Gracias.


RE: Obtener los eventos de controles creados en otra parte pero colocados en el formular. - vuott - 03-01-2025

Hooola tinchooo !
En realidad, tu proyecto de ejemplo es bastante Confused farragoso.
Sin embargo, retomando tu ejemplo, yo diría que asigne cada 'Hijo' del nuevo 'Panel' a un único Grupo de Eventos.
Básicamente, yo modificaría el código principal del formulario de Confused esta manera:

Código:
Public Sub Button1_Click()
  Makecontrols(Panel1)
End
Public Sub Makecontrols(cn As Container)
  Dim ob As Panel
  ob = Auxiliary.Capsule(Panel1)
 
  For Each ch As Object In ob.Children
    Object.Attach(ch, Me, "Controles")
  Next
End
Public Sub Controles_Change()
  Print Last.Text
End



RE: Obtener los eventos de controles creados en otra parte pero colocados en el formular. - tincho - 03-01-2025

Hola Vuott,
Hace tiempo que no nos comunicamos por este medio.

La razón de que el código sea farragoso es que Intento aislar la creación de los controles de los formularios. De esta manera puedo reutilizar el código de forma mas eficiente.
Pero todavía falta un largo camino por recorrer.

Gracias por la solución, funciona perfectamente.
Saludos.