|
Inicio | Temas | Source Code | Download |
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Introducción a los controles en Visual Basic En Visual Basic existen tres categorías generales de controles: Controles intrínsecos, Controles ActiveX, Objetos insertables Estos controles se encuentran dentro del archivo ejecutable de Visual Basic. Los controles intrínsecos están siempre incluidos en el cuadro de herramientas, no como los controles Activex, que se pueden quitar o agregar al cuadro de herramientas. A continuación una lista de controles intrínsecos.
Son aquellos controles que existen como archivos independientes con extensión nombre de archivo .ocx. Entre éstos se incluyen los controles disponibles en todas las ediciones de Visual Basic (controles cuadrícula, cuadro combinado y lista enlazados a datos y varios más) y los que sólo están disponibles en la Edición Profesional y la Edición Empresarial (como Listview, Toolbar, Animation y Tabbed Dialog). A estos también se suman los controles Activex de otros fabricantes.
Como un objeto Worksheet de Microsoft Excel que contienen la lista de los empleados de su empresa, o un objeto Calendar de Microsoft Project que contiene la información del calendario de un proyecto. Puesto que estos objetos se pueden agregar al cuadro de herramientas, se les considera controles. Convenciones de nomenclatura de los controles Cuando crea un objeto (un formulario o un control) por primera vez, Visual Basic establece su propiedad Name a un valor predeterminado. Por ejemplo, todos los botones de comando tienen la propiedad Name establecida inicialmente a Commandn, donde n es 1, 2, 3 y así sucesivamente. Visual Basci llama al primer botón de comando de un formulario Command1, al segundo Command2 y al tercero Command3. Puede mantener los nombres predeterminados; sin embargo, cuando tiene varios controles del mismo tipo, es más lógico modificar las propiedades Name para que sean algo más descriptivas. Como puede ser dificil distinguir entre el botón Command1 de miForm y el botón Command1 de SubForm, la convención de nomenclatura es recomendable, especialmente cuando una aplicación se compone de varios módulos de formulario, módulos estándar y módulos de clase. Puede usar un prefijo para describir la clase, seguido de un nombre descriptivo del control. El uso de convención de nombres hace que el código sea más autodescriptivo y agrupa objetos similares alfabéticamente en el cuadro de lista Objeto. Por ejemplo:
Los nombres de los formularios y los controles:
Para más información vea: Programar con estilo Todos los controles tienen una propiedad que se puede usar para almacenar
u obtener valores mediante una referencia al control, sin mencionar el
nombre de la propiedad. Cuando quiera hacer una referencia a la propiedad de un control que es el valor de dicho control, puede hacerlo sin especificar el nombre de la propiedad. Por ejemplo, esta línea de código establece la propiedad Text de un cuadro de texto.
En este ejemplo, la propiedad Caption de Label1 se establece a la propiedad FileName de File1 cuando el usuario hace clic en un archivo del cuadro de lista de archivos: Private File1_Click() Label1 = File1 End Sub En la tabla siguiente se enumeran las propiedades consideradas como valor de control.
Una matriz de controles en un grupo de controles que comparten el mismo nombre y el mismo tipo. También comparten los mismos procedimientos de evento. Las matrices de controles tienen al menos un elemento y pueden crecer hasta contener tantos elementos como permitan los recursos y la memoria del sistema; su tamaño dependen también de la memoria y de los recursos de Windows requeridos por cada control. El índice máximo que puede usar en una matriz de controles es 32 767. Los elementos de una misma matriz de controles tienen sus propio valor de propiedades. Entre los mas usados están los controles de menú y las agrupaciones de botones de opción. ¿Por qué usar matrices de controles? Al agregar controles mediante matrices de controles se utilizan menos recursos que si simplemente se agregan al formulario múltiples controles del mismo tipo en tiempo de diseño. Las matrices de controles también son útiles cuando quiere que varios controles compartan código. Por ejemplo, si crea tres botones de opción como una matriz de controles, se ejecuta el mismo código independiente del botón en el que haga clic. Si desea crear una instancia nueva de un control en tiempo de ejecución,
dicho control tiene que ser miembro de una matriz de controles. En una
matriz, los nuevos elementos heredan los procedimientos de evento comunes
de toda la matriz. Cuando crea una matriz de controles los valores de la propiedad Index de dicho control se agrega al momento de agregar los elementos de la matriz. Es la propiedad Index la que distingue cada elemento de otro dentro de la matriz de controles. Cuando un elementos de la matriz reconoce un evento, Visual Basic llama a un procedimiento de evento común y pasa el argumento (el valor de la propiedad Index) para identificar qué control reconoce realmente el evento. Por ejemplo:
Agregar, eliminar un elemento de una matriz de controles en tiempo de ejecución Puede agregar o quitar controles de una matriz de controles en tiempo
de ejecución mediante las instrucciones Load y Unload.
sin embargo, el control que va a agregar tiene que ser un elemento de
una matriz de controles existente. Debe crear un control en tiempo de
diseño con la propiedad Index establecida en la mayor parte de
los casos a 0.
Donde: objeto: Nombre del control que va a agregar o eliminar
de la matriz de controles. Puede utilizar Unload para quitar cualquier control creado con Load. Sin embargo, no puede usar Unload para quitar controles creados en tiempo de diseño, independientemente de si forman parte o no de una matriz de controles. Ejemplo: En este ejemplo se permite al usuario agregar controles que cambian el color de fondo de la ventana. Agrege un formulario y despúes dibuje dos botones de opciones y dos botones de comando, como se ilustra en la tabla siguiente:
Ahora copie el siguiente código y ejecute el proyecto para ver como funciona: Option Explicit
Dim MaxID As Integer
Private Sub cmdAgregar_Click()
MaxID = optButton.Count - 1 'Establece el total de botones existentes
If MaxID > 3 Then Exit Sub 'Sólo se permiten 5 botones
MaxID = MaxID + 1
Load optButton(MaxID) 'Crea un nuevo control
optButton(0).SetFocus 'Enfoque al primer botón
'Colocar el nuevo control debajo del último control
optButton(MaxID).Left = optButton(MaxID - 1).Left
optButton(MaxID).Top = optButton(MaxID - 1).Top + _
optButton(MaxID - 1).Height + 100
optButton(MaxID).Visible = True 'Mostrar el nuevo control
'Texto en el nuevo botón
optButton(MaxID).Caption = "Opción " & MaxID + 1
End Sub
Private Sub cmdEliminar_Click()
If MaxID <= 1 Then Exit Sub 'No podrá eliminar los dos primeros botones
Unload optButton(MaxID) 'Elimina el último botón
MaxID = MaxID - 1 'Establece el recuento de botones
optButton(0).SetFocus 'Reestablece la selección del botón
End Sub
Private Sub optButton_Click(Index As Integer)
Form1.BackColor = QBColor(Index + 1)
End Sub
|
|
|
|