Capitulo 3 - Centro Herrera

Anuncio
CAPITULO III
INDICE DE CONTENIDO
III.
CONTROLES BÁSICOS ADICIONALES ..................................... 55
III.1. Control Casilla de Verificación (CheckBox) ............................. 55
III.1.i.
Principales propiedades del control CheckBox .................. 55
III.2. Botones de Opción (OptionButton) .......................................... 57
III.2.i.
Principales propiedades de los botones de opción .............. 57
III.3. Cajas de listado (ListBox)....................................................... 59
III.3.i.
Principales propiedades de las cajas de listas .................... 61
III.3.i.1. Selección múltiple ............................................................ 62
III.3.i.2. Agregar elementos............................................................ 62
III.3.i.3. Eliminar elementos........................................................... 63
III.4. Cajas combinadas (ComboBox) ............................................... 67
III.4.i.
Principales propiedades de los combos .............................. 67
III.5. Marco (Frame) ...................................................................... 68
III.5.i.
Principales propiedades de los marcos .............................. 71
III.6. Cajas de listado de unidades (DriveListBox) ............................ 73
III.6.i.
Principales propiedades de las cajas de listado de unidades 73
III.7. Cajas de listado de directorios (DirListBox) ............................ 74
III.7.i. Principales propiedades de las cajas de listado de directorios 74
III.8. Cajas de listado de archivos (FileListBox)............................... 74
III.8.i.
Principales propiedades de las cajas de listado de archivos 74
III.9. Temporizador (Timer)........................................................... 75
III.9.i.
Principales propiedades del temporizador ......................... 76
III.10. Barras de desplazamiento: Horizontal (HscrollBar) y Vertical
(VscrollBar) .................................................................................. 80
III.10.i. Principales propiedades de las barras de desplazamiento... 80
III.11.
Arreglo de controles ......................................................... 84
III.11.i. Ventajas ........................................................................... 84
III.11.ii. Crear un arreglo de controles ........................................... 85
III.12.
Ejercicios propuestos ....................................................... 88
LABORATORIO II – AÑO 2008
Introducción a los Controles Básicos en Visual Basic
Página 54
Mg. Ing. Fátima Martínez
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO III
Página 55
III. CONTROLES BÁSICOS ADICIONALES
III.1.
Control Casilla de Verificación (CheckBox)
Las casillas de verificación se utiliza generalmente para listar opciones y que el
usuario pueda elegir entre ellas, y dependiendo del valor (si está chequeado o no), se
realiza una u otra acción. Las opciones son del tipo Si/No o Activado/Desactivado. Son
ideales para desplegar muchas opciones, siempre que se pueda elegir una o más de
ellas; también se puede no seleccionar ninguna.
III.1.i. Principales propiedades del control CheckBox
Cuando el usuario selecciona una opción, la casilla se encuentra activa y en el
control se aprecia R , de lo contrario está
vacía. Pero existe el estado atenuado que se
representa por una tilde sobre fondo • 0 - UnChecked (sin chequear)
grisáceo. La principal propiedad de este • 1 - Checked (chequeado)
control Value determina el estado. Esta • 2 - Grayed (deshabilitado)
propiedad devuelve y establece el valor
seleccionado.
El siguiente ejemplo presenta un formulario en el cual se realiza una encuesta.
1. Ejemplo de la propiedad VALUE
Cuando se presiona en el botón de comando
Muestra Resultado se mostrará un mensaje
del resultado de la encuesta, evaluando la
propiedad Value de cada Checkbox.
Antes de evaluar los CheckBox se comprueba
que se haya ingresado un texto en el Text1,
si no se ingresó nada, se muestra un mensaje
de advertencia y se termina la rutina
mediante la instrucción Exit Sub, si se
ingresó un nombre, prosigue la ejecución del
resto del código.
Mg. Ing. Fátima Martínez
Introducción a los Controles Básicos en Visual Basic
Mg. Ing. Fátima Martínez
El código del evento asignado al botón Muestra Resultados
Private Sub cmdMuestra_Click()
'Variable que almacenará los datos para mostrar el resultado al final de la rutina
Dim Resultado As String
'Esto verifica si el cuadro de texto no está vacío y se ha ingresado un nombre
If txtNombre = "" Then
'si está vacío muestra el mensaje
MsgBox "Debe ingresar un nombre", vbExclamation, "encuesta"
'Mediante Exit Sub sale de la rutina para no ejecutar las líneas que debajo
Exit Sub
End If
'En la Variable Resultado se guarda el nombre que se ingresó en text1
Resultado = txtNombre
' Evalua Check1 (España)
If chk1.Value = 0 Then
Resultado = Resultado & " no deseas ir a " & chk1.Caption
Else
Resultado = Resultado & " deseas ir a " & chk1.Caption
End If
'Le agrega a la variable Resultado un salto de carro o salto de línea
Resultado = Resultado & vbNewLine
' Evalua Check2 (Francia)
If chk2.Value = 0 Then
Resultado = Resultado & " no deseas ir a " & chk2.Caption
Else
Resultado = Resultado & " deseas ir a " & chk2.Caption
End If
'Otro salto de carro
Resultado = Resultado & vbNewLine
' Evalua Check3 (Alemania)
If chk3.Value = 0 Then
Resultado = Resultado & " no deseas ir a " & chk3.Caption
Else
Resultado = Resultado & " deseas ir a " & chk3.Caption
End If
'Muestra el valor de la variable Resultado con la información
MsgBox Resultado
End Sub
Página 56
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
III.2.
CAPITULO III
Página 57
Botones de Opción (OptionButton)
Un control OptionButton muestra una opción que se puede activar o desactivar, pero
con dependencia del estado de otros controles del mismo tipo que existan en el
formulario. Son útiles para presentar un conjunto de opciones al usuario con el
propósito que sólo pueda elegir una. Los botones deben estar agrupados, para ello,
deben estar colocado en el mismo control o formulario, es decir, los botones de opción
que se encuentran directamente encima del formulario se agruparán y sólo se podría
elegir una de ellas.
Nota: No se debe confundir las cajas de verificación con los botones de
opción. Las primeras admiten una o más opciones seleccionadas en cambio
en los botones de opción, el usuario puede elegir sólo una.
Si durante una prueba se observa que se pudo escoger más de una
opción es porque el botón de opción no quedó agrupado sino que quedó
fuera del área del grupo, por lo tanto se lo reubica en el diseño. Para
ello se corta el control y se lo pega ubicándolo dentro del área.
III.2.i. Principales propiedades de los botones de opción
Los botones de opción poseen las mismas propiedades de los botones de comando
de la cual se destaca Caption que muestra el texto indicador de la función de ese
botón y Value, común al CheckBox, indica si el control esta seleccionado o no.
2. Ejemplo de VALUE:
Mg. Ing. Fátima Martínez
Como se dijo anteriormente un control
PictureBox permite contener otros
controles, por lo tanto es posible
agrupar botones de opción en él. Esto
se logra dibujando dentro del control
PictureBox cada uno de los botones de
opción. Así se ubicaron los botones de
opción del País de nacimiento.
Introducción a los Controles Básicos en Visual Basic
Mg. Ing. Fátima Martínez
El código para cada control de Opción
Private Sub optArgt_Click()
If optArgt.Value Then
MsgBox "Ud. es argentino/a", vbInformation, "Nacionalidad"
End If
End Sub
Private Sub optClmb_Click()
If optClmb.Value Then
MsgBox "Ud. es colombiano/a", vbInformation, "Nacionalidad"
End If
End Sub
Private Sub optUrgy_Click()
If optUrgy.Value Then
MsgBox "Ud. es uruguayo/a", vbInformation, "Nacionalidad"
End If
End Sub
3. Ejemplo de OptionButton:
En éste proyecto se permite mover,
dentro de la venta de la aplicación,
una caja de texto y a su vez,
modificar el color de fondo de la
misma
según
cuatro
colores
diferentes.
El código para cada control de Opción
Private Sub Form_Load()
txtCaja.Top = 0
End Sub
Private Sub optArriba_Click()
txtCaja.Top = 0
End Sub
Private Sub optAbajo_Click()
txtCaja.Top = frmColores0.ScaleHeight - txtCaja.Height
End Sub
Private Sub optAzul_Click()
txtCaja.BackColor = vbBlue
End Sub
Página 58
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO III
Página 59
Private Sub optRojo_Click()
txtCaja.BackColor = vbRed
End Sub
Private Sub optVerde_Click()
txtCaja.BackColor = vbGreen
End Sub
Private Sub optAmarillo_Click()
txtCaja.BackColor = vbYellow
End Sub
Cuando el número de opciones se aumenta considerablemente es
conveniente crear un arreglo de controles 1 y utilizar el ciclo For…
Next.
Nota: con respecto a la forma de expresar su valor, la propiedad Value ,
presenta una diferencia entre los botones de opción con los de verificación
cuando está seleccionado, es decir cuando la propiedad está en True.
Para OptionButton → es indistinto: Option1.Value = True o Option1.Value = 1
Para CheckBox → solamente es posible: Check1.value = 1.
III.2.ii.
Botones de Opción gráficos
Con la propiedad Style que o establece un valor que indica el tipo de
muestra y el comportamiento del control, se puede establecer botones de opción
gráficos.
Sintaxis: objeto.Style
Los valores son los mismos que para el control CommandButton:
• 0 – Standar (Predeterminado). Estándar. El control OptionButton aparece
como un botón de opción con una etiqueta a su lado.
• 1 - Graphical. El control se muestra con un estilo gráfico. El OptionButton
aparece como un botón tipo CommandButton que permanece suelto o
presionado hasta que se seleccione otro OptionButton de su grupo de
opciones.
1
Ver al final del capítulo.
Mg. Ing. Fátima Martínez
Introducción a los Controles Básicos en Visual Basic
4. Ejemplo de OptionButton gráficos:
Mg. Ing. Fátima Martínez
En éste proyecto, al seleccionar uno
de los botones de opción aparece un
mensaje con un texto de acuerdo a la
opción elegida.
Al iniciar la aplicación ningún botón
se encuentra seleccionado.
Se utilizó un arreglo de botones (Ver
al final de capítulo).
El código para los controles de Opción
Private Sub Form_Load()
Dim i As Integer
'dimensiona la variable para el índice de cada control
For i = 0 To 3
optAnimo(i).Value = False
'ningún botón está seleccionado
Next i
End Sub
Private Sub optAnimo_Click(Index As Integer)
'Se utiliza un arreglo de botones de opción
'Index es el índice de cada elemento del arreglo
Dim mensaje As String
If Index = 0 Then
mensaje = "¡¡Contento!!"
ElseIf Index = 1 Then
mensaje = "¡¿Preocupado?!"
ElseIf Index = 2 Then
mensaje = "Mal."
Else
mensaje = "¡¡Furioso!!"
End If
MsgBox "Usted está " & mensaje, vbExclamation, "Estado de ánimo"
End Sub
III.3.
Cajas de listado (ListBox)
Un control ListBox muestra una lista de elementos en la que el usuario puede
seleccionar uno o más. Si el número de elementos supera el número que puede
mostrarse, se agregará automáticamente una barra de desplazamiento al control.
Los elementos pueden colocarse en la lista en tiempo de diseño o en tiempo de
ejecución.
Página 60
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO III
Página 61
III.3.i. Principales propiedades de las cajas de listas
La propiedad List sirve para agregar en tiempo de diseño los elementos que se
deseen, en este caso, cada vez que se coloque un elemento se presiona la
combinación de teclas [ C t r l ] + [ E n t e r ] para pasar al siguiente elemento.
La lista enumera los elementos desde el número 0 (primer elemento) hasta el
último que tendría como valor de índice el n-1.
Para obtener un elemento en particular utilice la codificación:
List1.List(índice)
El valor del primer elemento lo devuelve: List1.List(0)
Posee dos propiedades disponibles en tiempo de ejecución ListCount y ListIndex.
Propiedad
Columns
ListCount
ListIndex
MultiSelect
NewIndex
Selected
Sorted
Style
Descripción
Establece si los controles se mostrarán en columnas por medio de barras
de desplazamiento horizontales. Si el valor es 0 no posee columnas. Otro
valor muestra el listado en la cantidad de columnas especificado. Se
aplica a cualquier estilo de caja de listado.
Representa el número de elementos del listado, por lo tanto el último
elemento tiene el índice ListCount-1.
Representa el elemento seleccionado. Si no hay elemento seleccionado
esta propiedad posee el valor -1 .
Permite seleccionar varios elementos de la lista. Sus valores son 0 :
ningún elemento, 1 : selección simple y 2 : selección múltiple.
Devuelve el índice del último elemento agregado a un control ComboBox
o ListBox. Es de sólo lectura en tiempo de ejecución.
Devuelve o establece el estado de selección de un elemento. Es una
matriz de valores booleanos con el mismo número de elementos que la
propiedad List.
Propiedad booleana. Permite ordenar automáticamente los elementos de
la lista. True : ordena alfabéticamente los elementos ingresados.
Establece el estilo del control. Sus posibles valores: 0 – Standar y 1 –
CheckBox, permite agregarle caja de verificación.
Mediante la propiedad ListIndex se puede conocer el índice del elemento
seleccionado y su contenido mediante un vector List(i) donde se guardan los
elementos de la lista. Entonces el valor del elemento actual de un control
llamado lstLista es:
lstLista.List(lstLista.ListIndex)
Mg. Ing. Fátima Martínez
Introducción a los Controles Básicos en Visual Basic
III.3.i.1.
Mg. Ing. Fátima Martínez
Selección múltiple
Las listas con estilo CheckBox permiten seleccionar varios elementos de la
lista marcando una tilde a todos los elementos deseados. Esto también se
consigue si la propiedad Style = 0 - Standar se combina con la propiedad
MultiSelect = 1 - Simple.
Nota: Cuando la propiedad Style es 1-CheckBox la propiedad MultiSelect
debe ser 0 – None.
ListIndex indica siempre el elemento actual pero no todos los elementos
seleccionados en una selección múltiple. Para saber cuáles están
seleccionados y cuáles no lo están, se puede utilizar la propiedad Selected.
Su sintaxis: List1.Selected(índice) [=valor] El valor True o False se usa
para seleccionar o no un elemento.
5. Ejemplo de selección múltiple:
Las listas tienen las propiedades:
1ª lista → Multiselect = 2 – Extended
2º lista → Multiselect = 1 – Simple
3º lista → Multiselect = 0 – None
Style = 1 - CheckBox
El código de los eventos
Private Sub cmdEscribe_Click()
Dim i As Integer
'Dimensiona una variable contador
'Para saber cuáles están seleccionados y cuáles no
'Se utiliza la propiedad Selected
For i = 0 To lstUno.ListCount - 1
'Se recorre todos los elementos de la lista
If lstUno.Selected(i) = True Then
If txtUno = "" Then
txtUno = lstUno.List(i)
Else
'Si txtUno esta vacío, es la primera selección
'escribe la primera seleccion
'si ya contiene una selección
txtUno = txtUno & vbCrLf & lstUno.List(i)
End If
End If
Next i
Página 62
'concatena
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO III
Página 63
End Sub
Private Sub Form_Load()
txtUno = ""
'Inicia la aplicación borrando la caja de texto
End Sub
Private Sub lstUno_Click()
'Cuando empieza a seleccionar si txtUno tenía selecciones
If txtUno <> "" Then
txtUno = ""
'borra para escribir las nuevas selecciones
End If
End Sub
III.3.i.2.
Agregar elementos
Además de agregar en tiempo de diseño los elementos, es muy común
agregarlos en tiempo de ejecución mediante el método Additem.
List1.Additem "Elemento" [, índice]
“Elemento” es la cadena de caracteres del elemento a agregar. El índice
es opcional, si no se incluye, el elemento se colocará al final de la lista.
•
Se agrega un elemento al principio de la
lista:
Private Sub cmdAgrega_Click()
lstColores.AddItem txtElem, o
End Sub
•
Si se agrega al final de la lista es:
Private Sub cmdAgrega_Click()
lstColores.AddItem txtElem
End Sub
Si se agrega un elemento en una posición mayor a la cantidad de
elementos del listado, se produce Error.
III.3.i.3.
Eliminar elementos
El método RemoveItem permite eliminar un elemento específico de las
cajas de listado. Su sintaxis: List1.RemoveItem índice , donde índice es
la posición del elemento a eliminar.
Mg. Ing. Fátima Martínez
Introducción a los Controles Básicos en Visual Basic
Mg. Ing. Fátima Martínez
Para eliminar el último elemento de una lista:
List1.RemoveItem List1.ListCount -1
Para eliminar el elemento actual:
List1.RemoveItem List1.ListIndex
Nota: Se debe tener mucho cuidado al utilizar RemoveItem en líneas
seguidas de código ya que al borrar un elemento se actualiza el total de
ítems de la lista y esto puede afectar a una posterior línea de código que
incluya este método.
Si se intenta utilizar RemoveItem con un índice que no existe, se
produce Error, por lo tanto, antes se debe verificar que la propiedad
ListIndex no contenga el valor -1, que indica que no hay ningún ítem
seleccionado:
If List1.ListIndex <> -1 then
List1.RemoveItem List1.ListIndex
End If
Asimismo es posible borrar todos los elementos del control mediante el
método Clear. Su sintaxis:
List1.Clear
6. Ejemplo completo.
Formulario para seleccionar,
modificar, eliminar o agregar
un color de auto.
Contiene los siguientes controles:
Página 64
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
Control
PictureBox
Nombre
Picture1
ListBox
lstColores
Label
Label1
commandButton
cmdModif
commandButton
cmdElimina
commandButton
cmdAgrega
commandButton
cmdSelecciona
Label
Label1
TextBox
txtElem
Label
Label2
Label
Label3
Label
lblActual
Mg. Ing. Fátima Martínez
CAPITULO III
Página 65
Propiedades
AutoSize
Picture
List
Caption
BackStyle
Font
Caption
Font
TabIndex
TabStop
Default
Style
Caption
Font
TabIndex
TabStop
Default
Style
Caption
Font
TabIndex
TabStop
Default
Style
Caption
Font
TabIndex
TabStop
Default
Style
BackColor
Caption
BackStyle
Font
Enabled
Text
Font
TabIndex
Caption
Font
Caption
Font
Caption
Valor
False
D:\auto2.wmf
Rojo
Verde
Azul
Amarillo
Violeta
Gris oscuro
Gris plateado
Negro
Color de su auto
0 - Transparent
Arial 10, negrita
&Modifica
Verdana 9, negrita
2
True
False
0 - Standar
&Elimina
Verdana 9, negrita
3
True
False
0 - Standar
&Agrega
Verdana 9, negrita
4
True
True
0 – Standar
&Selecciona
Verdana 9, negrita
1
True
False
1 - Graphical
&H0080C0FF&
Otro color:
0 - Transparent
Arial, 10 negrita
True
(Vacío)
Arial, 10 negrita
0
Elemento actual:
Arial 10
Total elementos:
Arial 10
Introducción a los Controles Básicos en Visual Basic
Label
lblTotal
commandButton
cmdSalir
Font
Caption
Font
Caption
Font
TabIndex
TabStop
Default
Style
Picture
Mg. Ing. Fátima Martínez
Arial 10, negrita
Arial 10, negrita
&Salir
Verdana 9, negrita
0
True
False
1 – Graphical
D:\cancel2.jpg
El código de los eventos asignados a cada botón de comando
Private Sub cmdAgrega_Click()
'si caja de texto no esta vacía
If txtElem <> "" Then
'Se agrega al final de lista
lstColores.AddItem txtElem
'Se vacia el contenido de caja de texto
txtElem = ""
End If
' El valor de los índices
lblTotal = lstColores.ListCount
lblActual = lstColores.ListIndex
'Agrega y lleva la selección al elemento agregado que tiene índice NewIndex
lstColores.Selected(lstColores.NewIndex) = True
txtElem.SetFocus 'pone el foco en la caja de texto
End Sub
Private Sub cmdElimina_Click()
Dim i As Integer
‘una variable local para enteros
'Si hay un elemento seleccionado
If lstColores.ListIndex <> -1 Then
'Elimina el elemento actual
i = lstColores.ListIndex
lstColores.RemoveItem lstColores.ListIndex
End If
'Modifica el valor de los índices
lblTotal = lstColores.ListCount
lstColores.ListIndex = 0
lblActual = lstColores.ListIndex
txtElem.SetFocus 'pone el foco en la caja de texto
End Sub
Private Sub cmdModif_Click()
'Si el contenido no es vacío
If txtElem <> "" Then
'Modificamos el elemento actual de la lista
lstColores.List(lstColores.ListIndex) = txtElem
End If
Página 66
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO III
Página 67
txtElem = ""
txtElem.SetFocus
End Sub
Private Sub cmdSalir_Click()
End
End Sub
Private Sub cmdSelecciona_Click()
If lstColores.ListIndex <> -1 Then
txtElem = lstColores.List(lstColores.ListIndex)
End If
End Sub
Private Sub Form_Load()
lstColores.ListIndex = 0
lblActual = lstColores.ListIndex
lblTotal = lstColores.ListCount
End Sub
Private Sub lstColores_Click()
lblActual = lstColores.ListIndex
End Sub
III.4.
Cajas combinadas (ComboBox)
Un control ComboBox mezcla las características de las cajas de listado, ListBox, con
las de cajas de texto, TextBox. De manera que presenta la posibilidad de elegir de
una lista un elemento de interés, pero además, puede obviar cualquier opción y
agregar nuevos elementos escribiendo en el control de cuadro de texto. La diferencia
con las listas es que no se pueden hacer múltiples selecciones.
III.4.i. Principales propiedades de los combos
Posee las propiedades, métodos y eventos de la lista como también de los cuadros
de texto. Así, mediante las propiedades ListCount y ListIndex se puede conocer
el total de elementos y el índice del ítem seleccionado. También el vector List
puede usarse en este control para conocer el valor de un elemento.
Así mismo se puede agregar un elemento en tiempo de ejecución por el método
AddItem; eliminar un elemento mediante RemoveItem o borrar toda la lista con
Clear.
Mediante la propiedad Sorted es posible ordenar la lista y la propiedad Style
permite usar los combos de tres formas diferentes. Sus posibilidades de valores:
Nº
0
Estilo
caja combinada
desplegable
Mg. Ing. Fátima Martínez
Característica
Mezclan las cajas de texto con los cuadros de listado. Se puede
ingresar un valor en la caja de texto o seleccionar un elemento.
Introducción a los Controles Básicos en Visual Basic
Mg. Ing. Fátima Martínez
1
combo simple
Presenta una caja de texto y una lista siempre visible, no
desplegable. Se puede seleccionar elementos de la lista o escribir
valores nuevos.
2
lista
desplegable
Similar a la caja de listado ya que sólo se puede seleccionar un
elemento de la lista. Presentan una caja de texto pero no
permiten el ingreso de nuevos valores, sino que al hacer clic se
despliega el listado completo.
En la siguiente ilustración se representan los estilos 0 y 1:
Aquí se puede escribir
un nuevo elemento.
Caja combinada
con lista
desplegable.
a) Antes de la
selección
b)Después de la
selección:
Combo simple
con lista a la
vista.
La imagen presenta el combo con
estilo 2 :
a) antes de la selección del usuario;
b) después que se hace clic en el
control.
7. Ejemplo de estilos de
combo.
En el cuadro de texto
Nombre se ingresa un
nombre. Este es agregado
mediante el botón Agregar.
También puede modificarse
un elemento de las listas.
Página 68
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO III
Página 69
El código de los eventos Click
Private Sub cboSimple_Click()
'cuando se selecciona un elemento en el combo Simple
'se desplaza la selección en los otros dos combos
cboDesplegable.ListIndex = cboSimple.ListIndex
cboLista.ListIndex = cboSimple.ListIndex
End Sub
Private Sub cmdAgregar_Click()
'Si el contenido de la caja de texto txtNombre no es vacío
If txtNombre <> "" Then
'Agregamos el elemento a los combos
cboDesplegable.AddItem txtNombre
cboSimple.AddItem txtNombre
cboLista.AddItem txtNombre
'Vaciamos el contenido de la caja de texto
txtNombre = ""
txt Nombre.SetFocus
'ponemos el foco en la caja de texto
End If
cboSimple.ListIndex = cboSimple.ListCount - 1
cboDesplegable.ListIndex = cboDesplegable.ListCount - 1
cboLista.ListIndex = cboLista.ListCount - 1
End Sub
Private Sub cmdModif_Click()
'Si el contenido de la caja de texto txtNombre no es vacío
If txtNombre <> "" Then
cboSimple.List(cboSimple.ListIndex) = txtNombre
cboDesplegable.List(cboSimple.ListIndex) = txtNombre
cboLista.List(cboSimple.ListIndex) = txtNombre
End If
txtNombre.SetFocus
'pone el foco en la caja de texto
End Sub
Private Sub cmdSalir_Click()
End
End Sub
8. Ejemplo de combo.
Llena la lista de los combos en
tiempo de ejecución.
Según sea la provincia
seleccionada con un clic, el
combo de las ciudades se llena
con los datos correspondientes.
Mg. Ing. Fátima Martínez
Introducción a los Controles Básicos en Visual Basic
Mg. Ing. Fátima Martínez
El código de los eventos
Private Sub cmdAceptar_Click()
Dim band As Integer 'dimensiona una variable local
band = 0
'variable bandera en 0
'posiciona el foco en el control que no ha sido llenado
'y cambia bandera en 1
If cmbProvin.ListIndex = -1 Then
cmbProvin.SetFocus
band = 1
'bandera en 1
ElseIf cmbDpto.ListIndex = -1 Then
cmbDpto.SetFocus
band = 1
'bandera en 1
ElseIf Text3 = "" Then
Text3.SetFocus
band = 1
'bandera en 1
End If
If band = 1 Then
'Si los datos no se ingresaron band =1
'presenta mensaje que avisa no se llenaron todos los datos
MsgBox "Datos Incompletos", vbCritical, "Alerta!!!"
Else
'Si se ingresaron todos los datos band=0
'presenta mensaje que avisa que han sido llenados todos los datos
MsgBox "Datos completos", vbInformation, "Ale rta!!"
End If
End Sub
Private Sub cmbProvin_Click()
'Cuando selecciona una provincia
'Habilita el combo de las ciudades para el ingreso
cmbDpto.Enabled = True
'llena con el combo con las ciudades de Tucumán
If cmbProvin.ListIndex = 0 Then
cmbDpto.AddItem "San Miguel de Tucumán"
cmbDpto.AddItem "Yerba Buena"
cmbDpto.AddItem "Aguilares"
'llena con el combo con las ciudades deSalta
ElseIf cmbProvin.ListIndex = 1 Then
cmb Dpto.AddItem "Salta"
cmbDpto.AddItem "Orán"
cmbDpto.AddItem "Metán"
'llena con el combo con las ciudades de Santiago
ElseIf cmbProvin.ListIndex = 2 Then
cmbDpto.AddItem "Santiago del Estero"
cmbDpto.AddItem "Termas del Río Hondo"
cmbDpto.AddItem "Frías"
End If
End Sub
Private Sub cmdLimpiar_Click()
cmbDpto.Clear
Página 70
'Borra el combo de las ciudades
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO III
Página 71
'Borra contenido
Text3 = ""
cmbProvin.SetFocus 'Pone el foco en el combo de las provincias
cmbProvin.ListIndex = -1
'no selecciona ninguna
End Sub
Private Sub cmdTerminar_Click()
End
End Sub
Private Sub Form_Load()
'Inicia la aplicación cargando el combo de las provincias
cmbProvin.AddItem "Tucuman"
cmbProvin.AddItem "Salta"
cmbProvin.AddItem "Santiago"
'Deshabilita el combo de las ciudades
cmbDpto.Enabled = False
End Sub
III.5.
Marco (Frame)
Este control permite agrupar otros controles para darle mayor funcionalidad a la
interfaz. Esto lo hace especial porque actúa como contenedor de otros controles.
Se puede utilizar un control Frame para subdividir un formulario funcionalmente,
por ejemplo, para separar grupos de controles OptionButton.
Para agrupar controles, se dibuja primero el control Frame y a continuación, los
controles dentro del marco.
Si se traza un control fuera del Frame y a continuación se intenta
moverlo dentro de éste, el control se colocará sobre el Frame, pero no
formará parte del contenedor.
III.5.i. Principales propiedades de los marcos
La apariencia de los marcos se define mediante las propiedades conocidas
Caption, Appearance y BorderStyle.
Cuando un control Frame conteniendo otros controles se hace invisible
mediante su propiedad Visible = False , los controles de su interior quedan
también invisibles.
Mg. Ing. Fátima Martínez
Introducción a los Controles Básicos en Visual Basic
Mg. Ing. Fátima Martínez
9. Ejemplo de la propiedad
Visible
Al mostrar y ocultar el marco
también se muestran u ocultan
todos los controles de su interior.
Private Sub cmdMostrar_Click()
'Muestra el marco
frmMarco.Visible = True
End Sub
Private Sub cmdOcultar_Click()
'Oculta el marco
frmMarco.Visible = False
End Sub
10. Ejemplo completo de Frame
Selecciona la Carrera y la
Universidad en donde un alumno
desea estudiar
Contiene los siguientes controles:
Control
Frame
Nombre
frmCarreras
Label
Label1
commandButton
cmdSalir
OptionButton
optCarrera(0)
optCarrera(1)
optCarrera(2)
optCarrera(3)
Frame
frmInstitu
Página 72
Propiedades
Visible
Caption
Font
Caption
Font
AutoSize
Caption
Style
Picture
Caption
Caption
Caption
Caption
Font
Visible
Valor
True
Carreras
Arial 11, negrita
(vacío)
Verdana 10
True
(vacío)
1 – Graphical
D:\cancel2.jpg
Ingeniería
Arquitectura
Letras
Arte
Arial 11, negrita
True
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
OptionButton
optInstitu(0)
optInstitu(1)
optInstitu(2)
CAPITULO III
Página 73
Caption
Font
Caption
Caption
Caption
Font
Institución
Arial 10, negrita
UNT
UTN
UNSTA
Arial 10, negrita
El código de los eventos asignados
Public strCarrera As String, strInstitucion As String
Private Sub cmdSalir_Click()
End
End Sub
Private Sub optCarrera_Click(Index As Integer)
strCarrera = optCarrera(Index).Caption
Call Display
End Sub
Private Sub optInstitu_Click(Index As Integer)
strInstitucion = optInstitu(Index).Caption
Call Display
End Sub
Private Sub Display()
Label1 = "Ha decidido estudiar " & strCarrera & " en la " & strInstitucion
End Sub
III.6.
Cajas de listado de
unidades (DriveListBox)
Son cajas de listado desplegables que permiten al
usuario seleccionar una unidad de disco disponible
en la PC en tiempo de ejecución. Comienzan
mostrando la unidad actual y para ver el resto de las
unidades válidas se hace clic sobre el botón 6.
III.6.i. Principales propiedades de las cajas de listado de
unidades
Una de las propiedades más importantes es Drive no disponible en tiempo de
diseño. Otras son List , ListCount y ListIndex que permiten manipular la lista
de forma similar a cualquier caja de listado.
Mg. Ing. Fátima Martínez
Introducción a los Controles Básicos en Visual Basic
Propiedad
Drive
List
ListCount
ListIndex
Mg. Ing. Fátima Martínez
Descripción
Devuelve o establece la unidad seleccionada en tiempo de ejecución.
Contiene la lista de conexiones de unidad efectivas.
Devuelve el número de conexiones con unidades de disco.
Devuelve o establece el índice del elemento seleccionado actualmente en el
control. No está disponible en tiempo de diseño.
III.7.
Cajas de listado de
directorios (DirListBox)
Muestra directorios y rutas de acceso en tiempo de
ejecución. Es útil para mostrar una lista jerárquica
de directorios. Por defecto muestra el directorio
actual sobre el cual se está ejecutando la aplicación.
III.7.i. Principales propiedades de las cajas de listado de
directorios
Además de las propiedades: List, ListCount y ListIndex posee otra muy
importante: Path que permite establecer o devolver la ruta de acceso actual. Su
sintaxis: objeto.Path = [ruta]
III.8.
Cajas de listado de
archivos (FileListBox)
Muestra los archivos del directorio especificado por la
propiedad Path en tiempo de ejecución. Es útil para
mostrar una lista de los archivos seleccionados por tipo.
III.8.i. Principales propiedades de las cajas de listado de
archivos
Además de las propiedades: List, ListCount, ListIndex y Path que especifica la
ruta de acceso para obtener el listado de archivos, posee otras:
Página 74
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
Propiedad
FileName
Pattern
CAPITULO III
Página 75
Descripción
Devuelve o establece el nombre de un archivo seleccionado.
Devuelve o establece un valor que indica los nombres de archivo mostrados en
tiempo de ejecución. Es útil para filtrar los archivos a mostrar, por ejemplo: *.*
o *.frm.
Al igual que la caja de listado de directorios reconoce los eventos Click y DblClick
del mouse, así como los de teclado KeyDown, KeyUp y KeyPress.
11. Ejemplo completo
de Cajas de
listado
Selecciona un archivo
de una carpeta dentro
de una unidad.
El código de los eventos asignados a cada caja de listado
Private Sub Dir1_Change()
'Segundo establece los archivos del directorio
File1.Path = Dir1.Path
End Sub
Private Sub Drive1_Change()
'Primero establece los directorios de la unidad
Dir1.Path = Drive1.Drive
End Sub
Private Sub File1_Click()
‘Selecciona un archivo
lblArchivo = File1.FileName ‘muestra el archivo seleccionado en una etiqueta
End Sub
III.9.
Temporizador (Timer)
Permite ejecutar código a intervalos periódicos
produciendo un evento Timer. Este control es muy útil
para crear aplicaciones donde se necesita llevar un
control de tiempo o cuando se desea que el programa
repita una acción cada cierto intervalo de tiempo.
Mg. Ing. Fátima Martínez
Introducción a los Controles Básicos en Visual Basic
Mg. Ing. Fátima Martínez
Este control solamente se ve durante el tiempo de diseño; en tiempo de ejecución,
permanece invisible. Para agregarlo al proyecto se debe hacer doble clic en su
icono de la caja de herramientas.
Se emplean generalmente para:
• Crear imágenes que se desplazan.
• Controlar la velocidad de animaciones sencillas.
• Presentar una pantalla de inicio que desaparezca luego de 1 o 2 segundos.
• Mostrar una cantidad de tiempo transcurrido.
Nota: No se debe abusar de su uso en los programas porque consume
muchos recursos del sistema. Windows sólo permite 16 timers simultáneos.
La temporización producida por el Timer es independiente de la
velocidad de trabajo del ordenador, casi independiente. El Timer no es
un reloj exacto, pero se le parece.
III.9.i. Principales propiedades del temporizador
Las propiedades más importantes son Interval y Enabled.
Propiedad
Enabled
Descripción
Propiedad booleana. Activa o desactiva el control. False desactiva el control, se
cancela la cuenta establecida por la propiedad Interval del control.
Interval
Devuelve o establece el número de milisegundos que debe esperar el programa
para generar el evento
Timer . Los valores admitidos para milisegundos son 0
(predeterminado) que desactiva el control o de 1 a 65535 milisegundos que
equivale a poco más de un minuto.
Todo el código relacionado con este control se introduce en el evento Timer, el cual
se produce cada vez que se cumple un intervalo completo.
Milisegundo equivale a un segundo dividido en 1000, es decir para un
retardo de un segundo la propiedad Interval será igual a 1000.
En el siguiente ejemplo se establece el valor del intervalo en el evento Load del
formulario y el color del texto de la etiqueta cambia en el evento Timer para dar
el efecto de texto titilante.
12. Ejemplo sencillo de
Timer
Página 76
Private Sub Form_Load()
‘se establece el intervalo en ¼”
Timer1.Interval = 250
‘se activa el temporizador
Timer1.Enabled = True
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO III
Página 77
End Sub
Private Sub Timer1_Timer()
‘procedimiento del temporizador en cada
intervalo
If lbl1.ForeColor = vbBlack then
lbl1.Forecolor = vbRed
Else
Lbl1.ForeColor = vbBlack
End if
End Sub
13. Ejemplo de Timer
Barra de progreso a partir
de un control Timer.
En tiempo de diseño se establece para el control Timer1:
Interval = 100
Enabled = True (habilita el Timer)
El código del evento Timer()
Private Sub Timer1_Timer()
‘Procedimiento que se ejecuta en un intervalo del control Timer1
‘Se ejecute al iniciar la aplicación porque Enabled es True
'Si Enabled es False no se ejecuta este procedimiento
If lblProgreso.Width < 4215 Then
‘La etiqueta aumenta su ancho en cada intervalo del control Timer1
lblProgreso.Width = lblProgreso.Width + 100
Else
lblProgreso.Width = 4215 ‘Determina el ancho máximo de la etiqueta
'Deshabilita el control Timer1 es decir deja de ejecutar el procedimiento
Timer1.Enabled = False
End If
End Sub
Mg. Ing. Fátima Martínez
Introducción a los Controles Básicos en Visual Basic
Mg. Ing. Fátima Martínez
14. Ejemplo de Timer
Album de fotos a partir de
un control Timer.
En tiempo de diseño se establece para el control Timer1:
Interval = 250
Enabled = True (habilita el Timer)
Se agrega en el centro del formulario un control Image : Name = imgDibu con la
propiedad Picture = Image37.gif . Este va cambiando su imagen en cada
intervalo del control Timer1 .
Para establecer la ruta de acceso actual (en la que se encuentra el
proyecto), se utiliza la propiedad Path. No está disponible en tiempo de
diseño. Para el objeto App es de sólo lectura en tiempo de ejecución. La
sintaxis es: A p p . P a t h
El código del evento Timer()
Private Sub Timer1_Timer()
'define un contador como una variable estática
'la cual no cambia al salir del procedimiento
Static a As Integer
a=a+1
'incrementa el contador en cada intervalo
If a = 5 Then
'Si el contador llegó a 5
'carga otra imagen, utiliza App.Path para establecer la ruta actual
imgDibu.Picture = LoadPicture(App.Path + "\image\Image38.gif")
ElseIf a = 20 Then
'si no si el contador llegó a 20, carga otra imagen
imgDibu.Picture = LoadPicture(App.Path + "\image\Image39.gif")
ElseIf a = 35 Then
'si no si contador llegó a 35, carga otra imagen
imgDibu.Picture = LoadPicture(App.Path + "\image\Image40.jpg")
Página 78
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO III
Página 79
End If
End Sub
15. Ejemplo de Timer
Album de imagenes a partir
de un control Timer.
Para el control Timer1 se establece, en tiempo de diseño :
Interval = 250
Enabled = True (habilita el Timer)
Se agregan, en tiempo de diseño , en el formulario 4 imágenes: Image1, Image2,
Image3, Image4 con la propiedad Visible = False y para cada una se asigna una
imagen en la propiedad Picture.
Se agrega una imagen Image5 en el centro del formulario , con la imagen de un
cuadro, sobre la cual irán apareciendo de una en una las imágenes en cada
intervalo del control Timer1.
Por último se agrega una imagen imgFoto, en la misma posición del control
Image5 , la cual irá tomando en cada intervalo del control Timer1 el valor del
Picture de cada una de las imágenes que se encuentran ocultas en el formulario.
El código del evento Timer()
Option Explicit
Dim A As Integer 'Declara la variable a nivel de modulo
'A - esta disponible para todos los procedimientos
Private Sub cmdReini_Click()
‘procedimiento del botón Reiniciar
Timer1.Enabled = True 'Activa el Timer para reiniciar su ejecución
'Inicializa la variable
A=0
End Sub
Private Sub Timer1_Timer()
A=A+1
If A = 3 Then
imgFoto.Picture = Image1.Picture ‘toma el valor del Picture de Image1
Mg. Ing. Fátima Martínez
Introducción a los Controles Básicos en Visual Basic
Mg. Ing. Fátima Martínez
ElseIf A = 6 Then
imgFoto.Picture = Image2.Picture ‘toma el valor del Picture de Image2
ElseIf A = 9 Then
imgFoto.Picture = Image3.Picture ‘toma el valor del Picture de Image3
ElseIf A = 12 Then
imgFoto.Picture = Image4.Picture ‘toma el valor del Picture de Image4
Timer1.Enabled = False ' desactiva el Timer1
End If
End Sub
III.10.
Barras de
desplazamiento: Horizontal
(HscrollBar) y Vertical (VscrollBar)
Las barras de desplazamiento se utilizan en las
aplicaciones para desplazarse horizontal o
verticalmente cuando hay gran cantidad de
información o cuando los controles toman gran
tamaño. Tienen la misma finalidad de aquellas
que aparecen en los cuadros de texto cuando el contenido de su propiedad Text
sobrepasa el tamaño de los mismos o las que aparecen en un cuadro de lista o
combinado cuando el número de elementos es mayor al tamaño designado para la
muestra de ellos.
Ambas barras: horizontal (HscrollBar) y vertical (VscrollBar) trabajan de la misma
manera sólo se diferencian en la orientación. Devuelven un valor numérico el cual
puede ser usado de manera conveniente en una aplicación. Son ideales para ingresar
valores numéricos gráficamente.
Las flechas se utilizan para desplazarse distancias reducidas. La barra para moverse
a grandes saltos. El botón llamado “dedo gordo” puede ser arrastrado para
desplazarse a una posición específica de la barra.
Principales propiedades de las barras de
desplazamiento
III.10.i.
Como se mencionó, las barras de desplazamiento devuelven un valor numérico,
por lo tanto existen cinco propiedades que controlan esos números: Value, Max,
Mín, SamallChange y LargeChange .
Propiedad
Descripción
LargeChange
De 1 a 32767. Cantidad de cambio cuando el usuario hace clic en la barra que
se encuentra entre una flecha y el dedo gordo.
Max
Máximo valor de desplazamiento cuando el botón se encuentra en la posición
más alta. Valor predeterminado: 32767.
Página 80
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
Propiedad
Min
CAPITULO III
Página 81
Descripción
Mínimo valor del desplazamiento cuando el botón se encuentra en la posición
más baja. Valor predeterminado: 0.
SmallChange
De 1 a 32767. Controla la cantidad en que aumenta o disminuye Value. Es la
cantidad de cambio cuando el usuario hace clic en la flecha de desplazamiento.
Value
Valor actual en la escala de valores.
Normalmente la propiedad LargeChange suele ajustarse a un valor que
represente el 10% del intervalo total. Por ejemplo, para una barra que se
desplace entre 1 a 100 el valor LargeChange puede ser 10 y el de
SamallChange puede ser 1.
16. Ejemplo de barra de
desplazamiento vertical.
El siguiente programa sencillo permite ver
la equivalencia entre las escalas de
temperaturas en grados Centígrados y
grados Fahrenheit.
Private Sub cmdSalir_Click()
End
End Sub
Private Sub vsbTempe_Change()
txtCenti.Text = vsbTempe.Value
txtFahre.Text = 32 + 1.8 *
vsbTempe.Value
End Sub
Control
VscrollBar
Nombre
vsbTemperatura
Propiedades
Min
Máx
SmallChange
LargeChange
Value
Valor
100
-100
1
10
0
El evento Load del formulario es ideal para establecer los valores iniciales de la
barra de desplazamiento.
Mg. Ing. Fátima Martínez
Introducción a los Controles Básicos en Visual Basic
Mg. Ing. Fátima Martínez
Nota: El evento Change se activa cada vez que cambia el valor de la barra
de desplazamiento mediante las flechas o la barra y el evento Scroll cuando
se arrastra el dedo gordo.
17. Ejemplo de barras de
desplazamiento horizontal.
La siguiente aplicación muestra un
formulario y los controles que
permiten cambiar el color de la fuente
y el color de fondo de una etiqueta.
El control barra de desplazamiento
horizontal es un arreglo de tres
elementos, uno para cada color
denominado hsbColor(Index).
Las opciones Fondo y Texto son
elementos de un arreglo de botones de
opción denominado optColor(Index).
Los cuadros de texto que muestran los
valores de las barras pertenecen a un
arreglo denominado txtColor(Index).
El evento que se programa es Change.
Un arreglo de controles esta formado por controles del mismo tipo que
comparten el nombre y los procedimientos o funciones para gestionar los
eventos. Para identificar a cada uno de los controles pertenecientes al
arreglo se utiliza Index que es una propiedad del control. Su utilidad
principal se presenta en aquellos casos en los que el programa debe
responder de forma semejante a un mismo evento sobre varios controles
del mismo tipo.
Control
HsbcrollBar
Nombre
hsbColor()
OptionButton
optColor()
Página 82
Propiedades
Min
Máx
SmallChange
LargeChange
Index
Value
Caption
Font
Valor
0
255
1
16
0, 1, 2
0
Fondo, Texto
Arial, 10 negrita
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
TextBox
txtColor()
CAPITULO III
Página 83
Index
Text
Locked
Index
0, 1
(vacío)
True
0, 1, 2
El código de los eventos asignados
Option Explicit
‘Declara las variables públicas
Public Brojo, Bverde, Bazul As Integer
Public Frojo, Fverde, Fazul As Integer
Private Sub cmdSalir_Click()
End
End Sub
Private Sub Form_Load()
'Fondo Negro
Brojo = 0
Bverde = 0
Bazul = 0
'Texto blanco
Frojo = 255
Fverde = 255
Fazul = 255
lblTexto.BackColor = RGB(Brojo, Bverde, Bazul)
lblTexto.ForeColor = RGB(Frojo, Fverde, Fazul)
End Sub
Private Sub hsbColor_Change(Index As Integer)
'Evento CHANGE del control barra de desplazamiento
Dim i As Integer
If optColor(0).Value = True Then
'Función RGB determina los colores
lblTexto.BackColor=RGB(hsbColor(0).Value,hsbColor(1).Value,
hsbColor(2).Value)
For i = 0 To 2
txtColor(i).Text = hsbColor(i).Value
Next i
Else
lblTexto.ForeColor=RGB(hsbColor(0).Value,hsbColor(1).Value,
hsbColor(2).Value)
For i = 0 To 2
txtColor(i).Text = hsbColor(i).Value
Next i
End If
End Sub
Private Sub optColor_Click(Index As Integer)
If Index = 0 Then 'se pasa a cambiar el fondo
Mg. Ing. Fátima Martínez
Introducción a los Controles Básicos en Visual Basic
Mg. Ing. Fátima Martínez
Frojo = hsbColor(0).Value
Fverde = hsbColor(1).Value
Fazul = hsbColor(2).Value
hsbColor(0).Value = Brojo
hsbColor(1).Value = Bverde
hsbColor(2).Value = Bazul
Else ' Se pasa a cambiar el texto
Brojo = hsbColor(0).Value
Bverde = hsbColor(1).Value
Bazul = hsbColor(2).Value
hsbColor(0).Value = Frojo
hsbColor(1).Value = Fverde
hsbColor(2).Value = Fazul
End If
End Sub
III.11.
Arreglo de controles
Un arreglo de controles es un grupo de controles que comparten el mismo:
• Tipo de objeto.
• Nombre del control y están identificados por un índice.
• Procedimientos de evento.
Por ejemplo un arreglo de cajas de texto, todos sus elementos deben ser cajas de texto.
Una vez creado podemos referirnos a todo el arreglo mediante su nombre o a cada
elemento mediante su índice usando paréntesis, por ejemplo Text1(1). La propiedad
Index determina el índice de cada control en el arreglo.
La principal utilidad de los arreglos se presenta en aquellos casos en los que el
programa debe responder de forma semejante a un mismo evento sobre varios
controles del mismo tipo. De esta manera el código es más fácil de escribir y mantener
debido a que solo se escribe un solo procedimiento de evento para todos los controles
pertenecientes al arreglo, el parámetro Index del procedimiento de evento determina
desde que control ocurrió el evento.
El ejemplo más claro es el de los botones de opción. En estos casos el programa
responde de manera semejante independientemente de cuál es la opción seleccionada.
III.11.i.
Ventajas
• Comparten el mismo nombre, no es necesario dar distintos nombres a cada
control.
• Es más fácil modificar las propiedades de todos los controles en tiempo de
ejecución ya que podemos referirnos al subíndice de cada uno.
• Comparten el mismo procedimiento de suceso en cada evento, no es
necesario repetir el código para cada control por separado. Es decir si
Página 84
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO III
Página 85
tenemos un arreglo con 20 botones de comando, todos tienen el mismo
evento Click . Nota: tienen el mismo procedimiento.
• Requiere menos recursos que tenerlos por separado.
• Cuando se copia un control y luego se lo pega, el nuevo control tiene las
mismas propiedades que el anterior.
III.11.ii. Crear un arreglo de controles
Un arreglo de controles se crea en tiempo de diseño en forma rápida de la
siguiente manera.
Método 1
1. Agregar un control al formulario, por ejemplo una caja de texto (Text1).
2. Seleccionarlo y copiarlo con CTRL + C , luego pegarlo en el formulario
CTRL + V.
Visual Basic pregunta mediante el siguiente mensaje si se quiere crear el arreglo:
Ya existe un control Text1. ¿Desea crear una matriz de controles?
[Si]
[No]
Se contesta Sí para construir el arreglo, así Visual Basic creará un arreglo de
controles que tendrá los elementos T e x t 1 ( 0 ) y T e x t 1 ( 1 ) . Si no queremos crear se
contesta NO y Visual Basic le asignará un nuevo nombre al control pegado.
Método 2
3. Agregue un control y establezca su nombre igual al del primer control.
Visual Basic le preguntará si desea crear un arreglo de controles.
4. Repita el paso 1 hasta completar el arreglo.
Método 3
1. Agregue un control y establezca su propiedad Index en 0. Cuando un
control es ubicado en el formulario, esta propiedad se encuentra vacía. Si se
le da un valor por ejemplo 0, se establece un nuevo arreglo de controles con
el nombre de ese control.
2. Copie y pegue ese control. Cada control que pegue tendrá el mismo nombre
del control copiado y su índice irá incrementando de uno en uno.
Mg. Ing. Fátima Martínez
Introducción a los Controles Básicos en Visual Basic
Mg. Ing. Fátima Martínez
Ejemplo 1:
Marcador de teléfono.
Se emplea un arreglo de cajas de texto
en donde se utiliza el Index para
conocer el número seleccionado
(Birnios y Birnios; 2003: 243).
El código del evento Click de los controles
Private Sub cmdBorra_Click()
txtNumero = ""
End Sub
Private Sub cmdSalir_Click()
End
End Sub
Private Sub Label1_Click(Index As Integer)
'Format función que devuelve una cadena
'En lugar se puede usar Str función que transforma en cadena
txtNumero = txtNumero + Format(Index)
End Sub
Ejemplo 2
La siguiente aplicación tiene un arreglo de controles para seleccionar el
reporte. El procedimiento de evento es el mismo para cualquier elemento del
arreglo2.
OptReport(0)
OptReport(1)
OptReport(2)
lblDesde
lblHasta
lblRango
2
“Fundamentos de programación en Visual Basic”; http://www.cs.us.es/cursos/ai-2003/VB/VB.pdf.
Página 86
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO III
Página 87
El código del evento Click para los OptionButton
Private Sub optReport_Click(Index As Integer)
‘Index es el índice de cada elemento del arreglo de botones de opción
If Index = 0 Or Index = 1 Then
lblRango.Enabled = False
lblDesde.Enabled = False
lblHasta.Enabled = False
txtDesde.Enabled = False
txtHasta.Enabled = False
ElseIf Index = 2 Then
lblRango.Enabled = True
lblDesde.Enabled = True
lblHasta.Enabled = True
txtDesde.Enabled = True
txtHasta.Enabled = True
txtDesde.SetFocus
End If
End Sub
Ejemplo 3
La siguiente aplicación tiene un arreglo de controles para seleccionar el estilo
del texto copiado en el cuadro de texto.
El código del evento Click de los controles CheckBox y OptionButton
Private Sub chkEstilo_Click(Index As Integer)
If chkEstilo(0).Value = 1 Then
txtOtro.Font.Bold = True
Mg. Ing. Fátima Martínez
‘pone en negrita
Introducción a los Controles Básicos en Visual Basic
Mg. Ing. Fátima Martínez
Else
txtOtro.Font.Bold = False
‘saca negrita
End If
If chkEstilo(1).Value = 1 Then
txtOtro.Font.Italic = True
‘pone la fuente en cursiva
Else
txtOtro.Font.Italic = False
‘saca la fuente cursiva
End If
End Sub
Private Sub optMaymin_Click(Index As Integer)
If Index = 0 Then
'Convierte a mayúsculas por medio de la función UCase()
txtOtro = UCase(txtOtro)
Else
'Convierte a minúscula por medio de la función LCase()
txtOtro = LCase(txtOtro)
End If
End Sub
Nota: En el caso de no utilizar arreglo de controles se escribiría el código de
los procedimientos por cada control a seleccionar.
III.12.
Ejercicios propuestos
Eje. 1) Cree una aplicación con una caja de lista de marca de autos, con los
elementos ordenados. Trabaje con la propiedad Sorted. Mediante un
botón de comando agregue items a la lista desde el texto ingresado en
una caja de texto y mediante otro botón elimine el item seleccionado.
Incorpore a la aplicación una caja de texto que muestre el número de
items en la lista. Ejecute la aplicación y chequee el cambio en la caja de
texto creada al agregar un item o al eliminarlo.
Eje. 2) Modifique la aplicación anterior de tal forma que cuando el usuario haga
clic en un elemento de la lista, una caja de texto muestre el nombre del
auto seleccionado. Recuerde : cuando un item es seleccionado, la propiedad
List1.Text contiene el texto del item seleccionado.
Eje. 3) Realice una aplicación que solicite el nombre de 10 personas. Según se va
escribiendo en una caja de texto el nombre queda incorporada en un
ListBox en forma ordenada.
Eje. 4) Realice una aplicación que permita elegir un gráfico de una carpeta. Para
ello inserte en un formulario
a. Un combo con las siguientes opciones: '*.gif', '*.jpg','*.png'
b. Un control en el que se puede cambiar la unidad.
Página 88
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO III
Página 89
c. Un control en el que se puede elegir la carpeta de la unidad especificada
anteriormente.
d. Un control en el que se ven los ficheros que estén en la carpeta indicada
anteriormente y que cumplan la norma del combo.
e. Una etiqueta en la cual aparezca el mensaje “I magen seleccionada XXX”
al seleccionar el archivo.
f. Una caja de imagen donde se puede ver la imagen.
Eje. 5) Realice un programa que muestre un mensaje en una etiqueta “Ha sido
contratado” si el aspirante cumple con todos los requisitos, o “No ha es
contratado” si no cumple todos los requisitos.
a. Cambie el título del formulario a Requisitos.
b. Coloque tres casillas de verificación con las siguientes opciones: Entre
20 y 30 años; Tiene experiencia en el área; Bilingüe.
c. Un botón de comando Contratar debajo de las casillas de verificación,
realizará la verificación de cuáles son las opciones activadas y mostrará
el mensaje en una etiqueta.
d. Debajo del botón de comando ubique una etiqueta con las propiedades de
tal manera que su tamaño se adecue al texto, este aparezca centrado
dentro de la misma y el tipo de fuente sea Arial 12, negrita.
Eje. 6) Realice un programa en cual se debe seleccionar un mes y al presionar un
botón de comando, se despliegue en el cuadro de texto en número de
mes correspondiente al Número de Mes. Para ello agregue en el
formulario una etiqueta con el texto: Mes Nº; a su lado un cuadro de
texto; un botón de comando Numero de Mes; un control ComboBox.
a. La lista de los meses se agrega en el combo en el momento que se carga
el formulario.
b. El botón de comando Numero de Mes mostrará en el cuadro de texto el
número correspondiente al mes seleccionado en el combo.
Eje. 7) Crea una aplicación que permita
realizar
una
de
las
cuatro
operaciones matemáticas, para ello
inserta en un formulario: tres
etiquetas, tres cajas de texto, una
caja de combo y tres botones de
comando, tal como se muestra en la
figura. Considera lo siguiente:
a. Las operaciones matemáticas deben
Mg. Ing. Fátima Martínez
Introducción a los Controles Básicos en Visual Basic
Mg. Ing. Fátima Martínez
agregarse a la lista del ComboBox en el momento que se carga el
formulario.
b. Al iniciar la ejecución el foco debe estar en el cuadro de texto donde
ingresa la Cantidad 1.
c. El cursor pasará a la siguiente caja de texto con la tecla Tab y de allí al
ComboBox.
d. El botón Calcular se encontrará deshabilitado mientras no se haya
seleccionado ninguna de las distintas opciones de la lista. Según la opción
seleccionada en el ComboBox realiza la operación, siempre y cuando en
las cajas de texto se haya ingresado algún valor.
e. Si se ingresan valores pero en el ComboBox no se selecciona ninguna
operación el foco regresa al primer número, pero no se permite pasar al
botón Calcular que seguirá deshabilitado.
f. El botón Nuevo Cálculo borra el contenido de las cajas de texto, pone el
foco en la primera, borra la operación seleccionada y deshabilita el
botón Calcular.
g. El botón Salir termina la aplicación, también debe permitirse su
ejecución con la tecla [ESC].
Nota: utilice el método SetFocus para poner el foco en el control.
Eje. 8) Realice un programa que calcule el Cociente y Resto con barras de
desplazamiento. Agrega en el formulario dos barras de desplazamiento
horizontal; cuatro cajas de texto. Considera lo siguiente:
a. Determine el valor máximo y el
mínimo para cada barra de
desplazamiento.
b. El valor que asuman cada barra
de desplazamiento
determinará el dividendo y el
divisor (los números a dividir).
c. En la primera caja de texto
establezca el valor (dividendo) de la primera barra de desplazamiento;
en la segunda caja de texto, el valor (divisor) de la segunda barra de
desplazamiento.
d. En la tercera caja de texto disponga el valor del cociente entero, en la
cuarta caja de texto, el resto de la división.
Nota: para la división entera su operador es (\), para el resto utilice el operador
Mod.
Página 90
PROGRAMADOR UNIVERSITARIO
LABORATORIO II - VISUAL BASIC
AÑO 2008
CAPITULO III
Página 91
Eje. 9) Un restaurante de comida rápida desea instalar un sistema de menú
automático. Crea una aplicación para ello que cumpla los siguientes
requerimientos:
a. Los comensales indicarán cual es su dieta r‘ egular’ o ‘vegetariana’. Utiliza
botones de opción gráficos.
b. De acuerdo a la dieta se darán tres listas para escoger: bebidas, platillo
principal y postres.
c. La carga de cada uno de los elementos de las tres listas se hará en tiempo de
ejecución.
d. Según las elecciones del consumidor se presentará el menú completo en una
caja de texto Menú , por ejemplo: Pollo frito c/ensalada mixta, agua tónica y
suflés de coco. Utiliza la propiedad adecuada para que admita varias líneas de
texto.
e. En una etiqueta delante de la caja de texto mostrarás: Escogiste comida XXX
según el tipo de comida escogida.
f. Limpia la caja de texto de Menú para otro cliente.
g. Modifica el título del formulario: Restaurante típico
Nota: Usa la propiedad adecuada para hacer que la lista apropiada esté accesible
según se requiera.
BIBLIOGRAFÍA CONSULTADA Y RECURSOS EN LA WEB
Nombre
Microsoft Visual Basic 6.0.
Manual de Referencia
Aprenda Visual Basic 6.0
Autor, Edición, Editorial / Dirección del Sitio
Birnios, B. y Birnios, M.; 2003; Manuales USERS; MP Ediciones;
Buenos Aires – Argentina.
http://www.esnips.com/doc/a1f3a80f-ec28-4d6f-869184e59aec86fd/GuiaVB_6 (accedido 03/08/2007)
Aprenda Visual Basic 6.0
como si estuviera en
Primero
http://www.tecnun.es/asignaturas/Informat1/ayudainf/aprendainf/Visual
Basic6/vbasic60.pdf; (accedido 10/03/2007)
Control CheckBox
http://www.recursosvisualbasic.com.ar/htm/tutoriales/control_checkbox.
htm; (accedido 14/07/2007)
Fundamentos de
Programación en Visual
Basic
Visual Basic - Guía del
Estudiante. Cap. 2
Visual Basic 6.0.
Programación Orientada a
Objetos
Mg. Ing. Fátima Martínez
http://www.cs.us.es/cursos/ai-2003/VB/VB.pdf; (accedido 14/07/2007).
http://www.monografias.com/trabajos2/guiavb/guiavb.shtml; (accedido
10/07/2007)
http://www.lawebdelprogramador.com/cursos/enlace.php?idp=2175&id
=93&texto=visual+basic (accedido 10/03/2007)
Introducción a los Controles Básicos en Visual Basic
Mg. Ing. Fátima Martínez
1) La herramienta que permite elegir una opción entre varias:
a) ListBox
b) OptionButton
c) CheckBox
2) El control ListBox es utilizado para:
a) Mostrar una lista de artículos de los cuales el usuario puede escoger sólo uno.
b) Mostrar una lista de artículos de los cuales el usuario puede escoger uno o más.
c) Mostrar opciones de las cuales el usuario puede escoger sólo una.
3) ¿Cómo se insertan elementos en un control ListBox durante el tiempo de
diseño?
a) A través del menú Edición.
b) Con la propiedad List.
c) Haciendo doble click en el control.
4) El control ComboBox combina las características de los controles:
a) TextBox y CheckBox
b) TextBox y ListBox
c) TextBox y ListDirBox
5) ¿En qué orden se crea un grupo de controles usando el control Frame?
a) Primero cada uno de los controles y a continuación el control Frame.
b) Primero el control Frame y a continuación cada uno de los controles, colocándolos
fuera del marco.
c) Primero el control Frame y a continuación cada uno de los controles, colocándolos
dentro del marco.
6) ¿Qué propiedad muestra la unidad seleccionada de un cuadro de lista de
unidades?
a) Unidad.Path
b) Unidad.Drive
c) Unidad.Filename
7) ¿Qué indica App.Path?
a) La carpeta en la que se encuentra el programa que se está ejecutando.
b) La ruta de acceso actual del proyecto.
c) El tamaño de un archivo de programa.
8) El Timer se puede observar en:
a) Tiempo de ejecución.
b) Tiempo de diseño.
c) En la ventana de proyectos.
9) ¿Qué propiedad del control Timer determina el lapso de tiempo del bucle?
a) Enabled
b) Interval
c) Index
10) ¿Qué parámetro se necesita para poder diferenciar los elementos de un
procedimiento de evento en array o matriz de controles?
a) TabIndex
b) Index
c) Button
Página 92
Descargar