Comunidad Gambas-es
Operador punto y la propiedad Group. - 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: Operador punto y la propiedad Group. (/thread-1684.html)



Operador punto y la propiedad Group. - tincho - 09-05-2024

Hola.
Estoy haciendo un procedimiento que permite ver u ocultar un control de acuerdo al grupo al que pertenece, pero luego del operador punto no aparece listada la propiedad "Group".
Por favor ¿alguien podría decirme si esto es así desde siempre o hay un error?
Este es el procedimiento:
Código:
Public Sub LoadScenario(sMode As String, c As Object[])

  Dim o As ToolButton
  Dim p As Panel

  If c.Count > 0 Then
    For Each p In c
      If p.Children Then
        For Each o In p.Children
          If o.Group = sMode Then
            o.Visible = True
          Else
            o.Visible = False
          Endif
        Next
      Endif
    Next
  Endif
End



RE: Operador punto y la propiedad Group. - Shordi - 09-05-2024

El grupo es solo una propiedad para el IDE en tiempo de diseño. En realidad es el nombre de un observador de esos controles y como tal comparten los eventos, pero el control en sí no almacena nada sobre él.

Par a esas cosas está la propiedad Tag. Si ya la estás usando para algo, el truco es almacenar en ella un variant[] o una colección.

Saludos


RE: Operador punto y la propiedad Group. - tincho - 09-05-2024

(09-05-2024, 23:01)Shordi escribió: El grupo es solo una propiedad para el IDE en tiempo de diseño. En realidad es el nombre de un observador de esos controles y como tal comparten los eventos, pero el control en sí no almacena nada sobre él.
Par a esas cosas está la propiedad Tag. Si ya la estás usando para algo, el truco es almacenar en ella un variant[] o una colección.
Me lo imaginaba  Big Grin.
Si el tag lo uso para el icono y action para el comando que ejecuta el botón.
Lo solucione poniéndole a action el grupo seguido de un guión.

Código:
Public Sub LoadScenario(sMode As String, c As Object[])

  Dim o As Object
  Dim p As Panel

  If c.Count > 0 Then
    For Each p In c
      If p.Children Then
        For Each o In p.Children
          If InStr(o.Action, "-" & sMode) > 0 Then
            o.Visible = True
          Else
            o.Visible = False
          Endif
        Next
      Endif
    Next
  Endif

End