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
End
Public 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
End
Public 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