Вы находитесь на странице: 1из 4

Arreglos y vectores

Los Arreglos se utilizan para almacenar un conjunto de variables, que sean del mismo tipo de dato, y todas estas bajo un mismo nombre. Por ejemplo imaginemos que tenemos 20 variables de tipo String que almacenan nombres (nombre1, nombre2, etc...). Si yo ahora quisiera pasar todas estas cadenas a minsculas tendra que utilizar la funcin Lcase con cada variable: nombre1 = Lcase (nombre1), nombre2 = Lcase (nombre2), etc... En cambio s utilizara un arreglo solucionara mi problema solo a esto

Dim nombres(30) As String For x = 0 To 30 nombres(x) = LCase(nombres(x)) Next

Las matrices Como se dijo anteriormente, las matrices son arreglos de ms de 1 dimensin (2 o ms), a diferencia de los vectores que poseen una sola dimensin. Podemos imaginar una matriz bidimensional ( 2 dimensiones) , como una cuadrcula con filas y columnas, donde las filas representaran las coordenadas x y las columnas las coordenadas y. A una matriz de 3 dimensiones o tridimensional se la puede imaginar con las coordenadas x, y, z, y esta es ideal para representar figuras en el espacio por ejemplo.
Las matrices se declaran en el cdigo de manera igual que los vectores, con la diferencia que debemos indicar ms subndices de acuerdo a la cantidad de dimensiones que posea la matriz. por lo general no se suele utilizar matrices de ms de 3 dimensiones..

Ejemplo de matriz de 2 dimensiones Matriz bidimensionales de 6 x 8 (de 2 dimensiones). Dim personas (1 to 6, 1 to 8) as string Vectores dinmicos Hasta ahora habamos visto solo vectores o arreglos de tamao fijo, pero qu pasa cuando no sabemos el tamao o el largo de un vector y queremos que sea variable ?.
Visual basic posee una sentencia o funcin que nos permite cambiar el largo de un vector en tiempo de ejecucin, dndonos as ms flexibilidad, y de esta manera no desperdiciar memoria y recursos de la pc creando vectores ms largos de lo que realmente necesitamos. Esta funcin se llama Redima y Redima Preserve , y un ejemplo de cmo aplicarla sera de la siguiente manera:

Ejemplo de vectores y arreglos dinmicos En lo siguiente, primero declaramos un vector de la forma como lo hacemos siempre con la diferencia de que en vez de colocar un tamao declaramos el vector solo con los parntesis : Dim alumnos () as string
Ahora le establecemos un tamao, por ejemplo de 4 elementos y le agregamos valores:

Redima alumnos(1 To 4) As String alumnos(1) = "Luciano" alumnos(2) = "Esteban" alumnos(3) = "Mariano" alumnos(4) = "Pedro"
Ahora para redimensionar el tamao del vector por ejemplo a 7 elementos, utilizamos la funcin ReDim Preserve, para preservar los 4 valores anteriores y le agregamos 3 valores mas:

ReDim Preserve alumnos(1 To 7) alumnos(5) = "Karina" alumnos(6) = "Ral" alumnos(7) = "Romina"


Nota: si utilizamos la sentencia ReDim, o mejor dicho si redimensionamos el vector sin utilizar la sentencia ReDim preserve, los valores que contena el vector anteriormente se perdern Eliminar o vaciar un vector Para eliminar un array, arreglo o vector, podemos utilizar Erase, por ejemplo:

Erase Nombre_Del_Vector

Arreglos de controles en visual basic


Hasta ac se vi los aspectos de los vectores y matrices como estructuras que nos permiten almacenar datos y resolver problemas lgicos en nuestros programas. Ahora veremos los Arreglos de controles o vectores de controles Un arreglo de controles es un conjunto de controles, todos de la misma clase (todos TextBox, todos Label, etc...) que poseen un mismo nombre y cada uno posee un nmero de ndice que los identifica y los hace nicos con respecto a los dems, y conformando entonces un vector de controles. por ejemplo en vez de tener 3 Command, llamados command1, command2 y command3, puedo crear un arreglo de 3 botones. Estos 3 botones comparten el mismo nombre pero cada botn se distingue del resto por un nmero de ndice, es decir si por ejemplo nuestro botn de comando se llama cmd pasara a tener un cmd(1), un cmd (2) y un cmd(3).

En un arreglo de controles todos los controles deben ser del mismo tipo y adems no puede haber un control dentro del arreglo que tenga el mismo nmero de ndice, ya que sera imposible identificarlo en el conjunto, adems VB no lo permitira y nos mostrara un error. Las ventajas principales que tenemos cuando trabajamos con un vector de controles son las siguientes: 1. 2. 3. 4. Todos los controles que forman el arreglo comparten el mismo procedimiento de cdigo, con lo cual si tenemos muchos controles que tienen que ejecutar la misma instruccin no debemos escribir cdigo de ms en cada control. Tener 20 cajas de texto, por ejemplo, consumen mucha mas memoria que utilizar un vector de 20 cajas de texto. Es posible crear controles en tiempo de ejecucin, a partir de un arreglo de controles ya creado. Es ms fcil manipular y establecer las propiedades en un vector de controles refiriendonos al subndice de los mismos.

Ejemplo para crear un arreglo de controles


Para crear un arreglo de controles podemos hacerlo de 2 maneras. La primera opcin es copiar un control ya dibujado y pegarlo en el formulario. Luego visual basic nos mostrar un dilogo preguntndonos si queremos crear una matriz de controles. Al contestar que s, ya se ha creado un arreglo con 2 controles, en este caso el primer control tendr el ndice 0 y el que pegamos el ndice 1. Si queremos seguir agregando ms controles cuando peguemos nuevamente otro control visual basic no nos preguntar nuevamente si deseamos crear una matriz del control ya que esta ya est creada, y por lo tanto agregar un nuevo control y le agregar el nmero de ndice correspondiente para diferenciarlo del resto, en este caso el 2. Ahora si observas en la propiedad index de los controlesque forman el arreglo vers que estos tienen un nmero de ndice que antes no tenan al no formar parte de un arreglo de controles Nota: cualquier control de visual basic que no tenga un arreglo creado, la propiedad index de los mismos no tendr ningn nmero o valor, ya que esta propiedad est reservada para los controles que formen parte de un vector o arreglo. La otra opcin para crear un arreglo, es ingresar directamente el nmero de ndice en la propiedad index del control del cual queremos crear un arreglo. Ejemplo: El ejemplo consiste en crear 10 Arreglos de TextBox y lo que se va a hacer es mediante un bucle poner la propiedad Enabled de los controles en False, es decir los vamos a deshabilitar a todos. Como te dars cuenta, si tuvieses que hacer esto manualmente, es decir deshabilitar cada TextBox individualmente tendras que escribir text1.enabled = False y as para cada uno de los controles. en cambio haciendo un arreglo de controles, recorremos mediante un For todos los controles refiriendonos al ndice y establecindole la propiedad Enabled en False para deshabilitarlos. Create un arreglo de 10 TextBox Para eso coloca un text1 en el formulario. despus copialo y pegalo, vb te va a preguntar si quers hacer un arreglo, decile que si, hasta que tengas 10 o los que quieras. Si te fijs ahora en la ventana de propiedades, cuando seleccionas un textBox en la propiedad index te vas a dar cuenta que poseen un nmero, ese es el ndice que los identifica, y por medio de ese ndice nos vamos a referir en el bucle For

El cdigo de este ejemplo bien simple quedara as:

Dim i As Integer For i = 0 To 9 text1(i).Enabled = False Next


Como pods ver, le pasamos en el parmetro ndice el valor de la variable i para referirnos a ese text1 en particular y asignarle la propiedad Enabled en False

Pasar un arreglo de controles como parmetro


Una tarea habitual es la de poder pasar un arreglo o vector de controles como parmetro a una Sub o function. Por ejemplo supongamos que tenemos un programa que tiene muchos formularios. y varios de esos formularios tienen una funcin que se encarga de limpiar todas los textBox y eliminar el contenido de los mismos Para solucionar esto, y no tener que repetir cdigo, podramos crear en un mdulo de cdigo, una SubRutina para que la puedan utilizar y acceder desde todos los formularios. Para poder pasar un vector como parmetro a una rutina, la variable o argumento en la Subrutina, debe estar declarada como de tipo Object Ejemplo Colocar en un formulario un arreglo de textBox, por ejemplo TextBox1(0), TextBox1(1) y TextBox1(2) Colocar un CommandButton para limpiar el contenido de las cajas de texto Cdigo fuente en el formulario

Option Explicit Private Sub Command1_Click() Call Limpiar_TextBox(Text1) End Sub ' Recibe el vector como parmetro Sub Limpiar_TextBox(El_TextBox As Object) Dim i As Integer For i = 0 To El_TextBox.Count - 1 El_TextBox(i).Text = vbNullString Next End Sub

Вам также может понравиться