Como VB 3 no permite pasar una matriz de controles como parámetro a una función o procedimiento podemos emplear este pequeño truco para hacerlo.
Imaginemos que queremos hacer una función que dada una matriz de controles les cambie la propiedad enabled.
Public Sub ActivaControles ( Frm as Form, Matriz as Control, Estado as Boolean)
Dim ctl As Control
For Each ctl In Frm.Controls
If ctl.Name = Matriz.Name Then
'este control es mienbro de la matriz de controles
Ctl.Enabled = Estado
End If
Next
End Sub
Si tenemos un formulario con una matriz de textbox llamados Texto y una de checkbox llamados Check, emplearemos esta subrutina de la siguiente manera :
ActivaControles Me, Texto(0), Texto(0).Enabled
ActivaControles Me, Check(0), Check(0).Enabled
Richard Allsebrook [Richard.Allsebrook@easysoft.com]
A partir de VB 5 tenemos una manera más sencilla de pasar una matriz de controles como parámetro a una función, lo único que hay que hacer es pasar el control como object, como se muestra en la siguiente funcion para activar los controles
Public Sub CtrEnable ( Text as Object, Cant as Integer)
Dim I as Integer
for I = 0 to Cant - 1
Text(I).Enabled = True
next
End Sub
Si en un formulario tenemos una matriz de 7 Textbox y otra de 3 Checkbox, empleamos la funcion de la siguiente manera
Call CtrEnable(text1(),6)
'Donde 6 es el numero maximo de textbox
Call CtrEnable(Check1(),3)
'Donde 3 es el numero maximo de checkbox
Antonio Lyon (antlyon@yahoo.com)