Trucos Pasar una matriz de controles como parámetro   (2 artículos )

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)



Trucos Trucos

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com