Public Sub Form_Open()
 
  Dim hijos As ContainerChildren
  Dim ob As Object
 
  hijos = Panel1.Children
 
  Print "El Panel1 tiene " & Str(hijos.Count) & " hijos"
 
  For Each ob In hijos  
    Print "Un hijo se llama: " & ob.name
  Next
 
EndPublic Sub Ejemplo2()
 
 
  Dim hijos As ContainerChildren
  Dim hcontrol As Control
 
  hijos = Panel1.Children
 
  hcontrol = hijos[0]
 
  Print hcontrol.Name
  
End(30-10-2022, 19:31)Shordi escribió: Estoy intentando mejorar una serie de funciones que revisan todos los controles de un formulario y he visto que existe esa clase que no había visto nunca... pero no hay ni una pequeña ayuda de cómo usarla.
Public Sub LoadIcons(h As Container)
  Dim obj As Object
  For Each obj In h.Children
    If Object.Type(obj) = "ToolButton" Then
      obj.Picture = dsk.TagPic(obj.Tag, 32)
    Endif
  Next
EndPublic Sub Form_Open()
  RScan(Me)
End
Private Sub RScan(obj As Object)
  Dim chi As Object
  Dim chi2 As Object
  For Each chi In obj.Children
    If Object.Type(chi) = "ToolButton" Then
      chi.Picture = dsk.TagPic(chi.Tag, 32)
    Else
      For Each chi2 In chi.Children
        If Object.Type(chi2) = "ToolButton" Then
          chi2.Picture = dsk.TagPic(chi2.Tag, 32)
        Else
          RScan(chi2)
        Endif
      Next
    Endif
  Next
End(02-11-2022, 22:37)tincho escribió: ¿Pero que es lo que quieres hacer exactamente?Sí, cosas así ya tengo hechas usando, como en el ejemplo, Children pero sigo sin entender la utilidad de ContainerChildren. Creí que podía ahorrame esos bucles y la recursividad si ContainerChildren incluía "de manera nativa" todos los children de todos los Container contenidos en el objeto inicial... pero ya veo que no.
No es lo mismo una clase que un objeto.
Por ejemplo yo lo uso de la siguiente manera para asignar la imagen de un ToolButon que se encuentra dentro de un panel
Código:Public Sub LoadIcons(h As Container)
Dim obj As Object
For Each obj In h.Children
If Object.Type(obj) = "ToolButton" Then
obj.Picture = dsk.TagPic(obj.Tag, 32)
Endif
Next
End