Make your own free website on Tripod.com
Ir a ejercicios-parte 11 Ir al Indice Ir a Arreglos parte 2

Los arreglos nos permiten en algunos casos simplificar el código. Cuando hay que almacenar más de un objeto del mismo tipo, se puede usar un nombre común a todos y un número índice para distinguirlos individualmente. Por ejemplo: Un formulario tiene tres cuadros de texto, podríamos llamarlos txt1, txt2, txt3 o utilizar un arreglo que se llame txt y que contenga los tres cuadros de texto y un índice. De esta manera escribiremos txt(0), txt(1), txt(2) siendo el número entre paréntesis el número de subíndice. Si en el código figura el objeto txt sin índice, estará englobando a toda la colección. Todo lo que se escriba en esta forma afectará a todos los elementos.
Los arreglos pueden tener varios elementos pero deben ser del mismo tipo. Se llaman vectores a los arreglos de una sola dimensión y matrices a los de varias dimensiones.
ARREGLOS DE CONTROL:
Es un conjunto de controles del mismo tipo y con el mismo nombre. Se diferencian unos de otros por un número de índice (propiedad index) A cada objeto nos referimos utilizando el número de sub-índice junto con el nombre.

El código se puede simplificar utilizando arreglos y el ciclo For. Supongamos que tenemos 9 cajas de texto en las que debemos escribir el texto "hola". Si no utilizaramos un arreglo deberíamos escribir:
txt1.text = "hola"
txt2.text = "hola"
Index = 0 Index = 1 Index = 2
El mismo código mediante un arreglo cuyo nombre es a:
txt9.text = "hola"
a (0).text = "hola"
a (1).text = "hola"
En los dos casos anteriores debíamos escribir código para los 9 cuadros de texto. En cambio podemos simplificar utilizando un ciclo For:
For I = 0 to 9
a (I).text = "hola"
Next
a (8).text = "hola"
Para los eventos aparecerá junto al nombre del objeto y el evento, un valor de Index, el cual nos indica sobre qué objeto se hizo click (se puede visualizar desde la ventana de propiedades buscando el valor de Index).
Veamos un ejemplo utilizando index:
Private Sub Form_Load()
'El número entre paréntesis
'indica el subíndice

Cmd(3).Caption = "Rojo"
Cmd(4).Caption = "Salir"
'Los tres primeros botones
'tendrán el nombre de "botón"

For I = 0 To 2
Cmd(I).Caption = "botón"
Next
End Sub
Private Sub Cmd_Click(Index As Integer)
'Evento click que acturá solo
'sobre el botón Rojo (Cmd(3)) y sobre botón Salir (Cmd(4))

If Cmd(3) Then
Form1.BackColor = RGB(150, 0, 0)
End If
If Cmd(4) Then
End
End If
End Sub
Para crear un arreglo de control colocamos el objeto original, establecemos su nombre y demás propiedades, luego seleccionamos el objeto, lo copiamos y lo pegamos. Aparecerá un cartel que dirá: "Ya existe un control llamado "..."¿Desea crear una matriz de controles? Indicaremos afirmativamente.
En el siguiente ejemplo hay ocho Picture Box (caja de imagen) conformando una matriz de control llamada P. Luego de creada la matriz agregamos en la ventana de propiedades un color distinto para cada caja de imagen. También habrá una caja de imagen llamada I (picture box) que deberá tomar el color de la Caja de Imagen seleccionada.
Private Sub P_Click(Index As Integer)
I.BackColor = P(Index).BackColor
End Sub
En el siguiente ejemplo el código se simplifica al utilizar una matriz de control a la que llamaremos Cmd. Los números y signos de cada botón han sido colocados en tiempo de diseño en Caption mediante la ventana de propiedades, luego de creada la matriz. Cada vez que se selecciona un botón su símbolo correspondiente (Caption) aparecerá en el cuadro de texto txt1. Finalmente un botón Borrar cmd1, limpiará el cuadro de texto.
Private Sub Cmd_Click(Index As Integer)
Txt1.Text = Txt1.Text & Cmd(Index).Caption
End Sub
Private Sub Cmd1_Click()
Txt1.Text = ""
End Sub

Los arreglos se encuentran definidos en un objeto llamado Colección. Por ejemplo: Si en un formulario se tienen cuatro cuadros de texto llamados t, El objeto t sin sub-índice es el que contiene a la colección.
Al ser la colección un objeto posee propiedades, que son las siguientes:

  • Count: Indica la cantidad de elementos que existen en un arreglo..
  • LBound: Indica el número de elemento más bajo de la colección.
  • UBound: Indica el número de elemento más alto de la colección.
  • Item: Es la propiedad por defecto de los objetos del tipo colección y se utiliza para acceder a los elementos individuales.

La cantidad de elementos que existen en una colección puede ser modificada en tiempo de ejecución. Para esto colocamos el objeto, asignándole como índice "0".
Para agregar un elemento en tiempo de ejecución utilizamos la orden Load seguido del objeto que se quiere agregar. Los objetos agregados tendrán las mismas características que el original, incluso su posición y aparecerán como No visibles (Propiedad Visible=False predeterminado).
Para sacar un objeto de la colección utilizamos la orden UnLoad.

En la próxima veremos un ejemplo y más sobre Arreglos
Volver arriba Ir a ejercicios-parte 11 Ir al Indice Ir a Arreglos parte 2