jueves, 8 de marzo de 2007

Arrays de Control

Visual Basic cuenta con el concepto de array de controles, en elque varios controles comparten el mismo conjunto de procedimientos de suceso, incluso aunque cada uno de los elementos individuales en el array pueda tener asignados diferentes valores para sus propiedades. Sólo podrá crear un array de control en tiempo de diseño y, como mínimo, al menos un control debe pertenecer al array. Podrá crear un array de controles utilizando cualquiera de los siguientes métodos:
  1. Crear un control y, posteriormente, asihnar un valor numérico (no negativo) a su propiedad Index; de esta forma habrá creado un array de control con un único elemento.
  2. Crear dos controles de la misma clase y asignarles el mismo valor a su propiedad Name. Visual Basic muestra un cuadro de diálogo avisándole que ya existeun control con el mismo nombre y le preguntara sidesea crear un array de controles.
  3. Seleccionar un control del formulario, pulsar Crtl + C para copiarlo en el portapapales y, posteriormente, pulsar Ctrl + V para pegar una nueva isntancia del control con la misma propiedad Name que el objeto inicial. Visual Basic muestra el mensaje de aviso mencionando en el punto anterior.
Los array de controles son una de las caracteristicas más interesantesdel entorno Visual Basic y añade una gran flexibilidad a sus programas:

  • Los controles que pertenecen al mismo array comparten el mismo conjunto de procedimientos de suceso; de esta forma podrá reducir drasticamente la cantidad de código que tendra que escribir en respuesta a una acción del usuario.
  • Podrá añadir dinamicamente nuevos elementos al array de controles en tiempo de ejecución; en otras palabras, podrá crear nuevos controles que no existan en tiempo de diseño.
  • Los elementos de los array de controles consumen pocos recursos en comparación con los controles normales y producen archivos ejecutables de menor tamaño. Además , los formularios de Visual Basic pueden almacenar hasta 256 nombres de controles distintos, pero un array de controles cuenta como uno solo de estos nombres. En otras palabras , los arrays de controles le permiten superar con facilidad esa limitacion.
Como Compartir Procedimientos de Suceso

Los Procedimientos de suceso relacionados con los ementos de un array de control son facilmente reconocibles porque cuenatn con un parámetro Index adicional, que precede a todos los demás parámetros. Este parámetro adicional recibe el indice del elemento que ha provocado el suceso, como puede ver el siguiente ejemplo:

Private Sub Text1_keyPress(Index As Integer, Keyascii As Integer)
Msgbox " Se ha pulsado una tecla sobre el control Text1 ( " & Index &" )"
End Sub

El hecho de que varios controles puedan compratir el mismo conjunto de procedimientos de suceso suele ser, con frecuencia, un buen motivo para crear un array de controles. Por Ejemplo, suponga que desea definir como amarillo el color de fondo de cada uno de los controles TextBox cuando reciban el foco de entrada y restaurar su color de fondo como blanco cuando el usuario pulse en otro campo:

Private Sub Text1_GotFocus(Index As Integer)
Text1(Index).BackColor = vbYellow
End Sub

Private Sub Text1_LostFocus(Index As Integer)
Text1(Index).BackColor = vbWhite
End Sub

Los Array de controles son especialmente útiles congrupos de controles OPtionButton por que podrá recordar cuál esel elemento del grupo que se ha activado sin más que añadir una linea de código a su suceso click compartido. Esta forma de actuar le permitirá ahorrarse unas cuantas lineas de código cuando el programa necesite determinar qué boton es el que se encuentra activo.






No hay comentarios: