Práctica 3: Controles de opciones (CheckBox y OptionButton).

1.- Crear un nuevo proyecto
(EXE estándar) que incluya un formulario. Los nombres que tenemos que dar a los
ficheros y atributos Name del proyecto y formulario son respectivamente
Options.vbp, Options, Options.frm y frmOptions.
El objetivo del programa es que el Label visualice en todo momento las opciones seleccionadas por el usuario en los CheckBox y los OptionButton.
2.- Colocar los objetos siguientes
y asignar los valores adecuados a sus atributos (propiedades).
|
Objeto |
Propiedad |
Valor |
|
Form |
Name |
frmOptions |
|
|
BackColor |
Red |
|
|
Caption |
Programa Opciones |
|
CommandButton |
Name |
cmdExit |
|
|
Caption |
&Salir |
|
CheckBox |
Name |
chkSound |
|
|
BackColor |
Red |
|
|
Caption |
&Sonido |
|
|
Font |
(A tu gusto) |
|
|
ForeColor |
White |
|
CheckBox |
Name |
chkMouse |
|
|
BackColor |
Red |
|
|
Caption |
&Ratón |
|
|
Font |
(A tu gusto) |
|
|
ForeColor |
White |
|
CheckBox |
Name |
chkColors |
|
|
BackColor |
Red |
|
|
Caption |
&Colores |
|
|
Font |
(A tu gusto) |
|
|
ForeColor |
White |
|
OptionButton |
Name |
optLevel1 |
|
|
BackColor |
Red |
|
|
Caption |
Nivel &1 |
|
|
Font |
(A tu gusto) |
|
|
ForeColor |
White |
|
OptionButton |
Name |
optLevel2 |
|
|
BackColor |
Red |
|
|
Caption |
Nivel &2 |
|
|
Font |
(A tu gusto) |
|
|
ForeColor |
White |
|
OptionButton |
Name |
optLevel3 |
|
|
BackColor |
Red |
|
|
Caption |
Nivel &3 |
|
|
Font |
(A tu gusto) |
|
|
ForeColor |
White |
|
Label |
Name |
lblChoice |
|
|
Alignment |
2-Center |
|
|
BorderStyle |
1-Fixed Single |
|
|
Font |
(A tu gusto) |
Nuevas propiedades:
BorderStyle: Estilo
del contorno del objeto.
Propiedad Value del
OptionButton:
La propiedad Value es del tipo
integer y toma los valores 0, 1 y 2. 0 si el objeto no está checkeado, 1 si lo
está y 2 en caso de que el objeto esté deshabilitado. VB define tres constantes
para estos caso (siempre se deben utilizar y no colocar los valores de 0, 1 y 2
en el código) vbUnchecked, vbChecked y vbGrayed respectivamente.
Propiedad Value del
CheckBox:
La propiedad Value es del tipo
integer y toma los valores 0 y 1. 0 si el objeto no está seleccionado y 1 en
caso contrario. VB define dos constantes para estos caso (siempre se deben
utilizar y no colocar los valores de 0 y 1 en el código) False y True.
3.- Codifica el trigger
correspondiente al evento Click del botón cmdExit.
Private Sub cmdExit_Click()
End 'Fin
del programa.
End Sub
Un Evento de relevancia en los controles de opción es el Clic.
4.- En los eventos Click de
los objetos de opción se llamará a la subrutina UpdateData. Dicha subrutina la
definiremos con posterioridad (Es una subrutina creada por nosotros y no
pertenece a VB).
Private Sub chkColors_Click()
UpdateLabel
End Sub
Private Sub chkMouse_Click()
UpdateLabel
End Sub
Private Sub chkSound_Click()
End Sub
Private Sub cmdExit_Click()
End
End Sub
Private Sub optLevel1_Click()
UpdateLabel
End Sub
Private Sub optLevel2_Click()
UpdateLabel
End Sub
Private Sub optLevel3_Click()
UpdateLabel
End Sub
5.- Para codificar la subrutina UpdateLabel
primero tenemos que crearla. Para ello vamos a la opción de menú Tools/AddProcedure
(desde la ventana de código).

Las diferentes opciones de este diálogo se estudiarán con posterioridad.
Public Sub UpdateLabel()
'Declaración
de una variable local del tipo integer
Dim szInfo
As String
'la
propiedad Value de un CheckBox puede tomar tres
'posibles
valores: vbUnchecked, vbChecked y vbGrayed.
'que
corresponden a los valores de 0, 1 y 2 respect.
'Estos valores (vbChecked, etc..) son realmente const.
'Sonido
If chkSound.Value = vbChecked
Then
szInfo = "Sonido =
ON"
Else
szInfo = "Sonido =
OFF"
End If
'Otra
const. importante que existe es vbCrLf que
'contiene el carácter de retorno de carro y el
'deavance de línea.
'Ratón
If chkMouse.Value = vbChecked
Then
szInfo = szInfo + vbCrLf
+ "Ratón = ON"
Else
szInfo = szInfo + vbCrLf
+ "Ratón = OFF"
End If
'Colores
If chkColors.Value =
vbChecked Then
szInfo = szInfo + vbCrLf
+ "Colores = ON"
Else
szInfo = szInfo + vbCrLf
+ "Colores = OFF"
End If
'Los posibles valores de la propiedad Value de un
'OptionButton
son: True y False. True si es la opción
'seleccionada y False en caso contrario.
'Nivel 1
If optLevel1.Value = True
Then
szInfo = szInfo + vbCrLf
+ "Level: 1"
End If
'Nivel 2
If optLevel2.Value = True
Then
szInfo = szInfo + vbCrLf
+ "Level: 2"
End If
'Nivel 3
If optLevel3.Value = True
Then
szInfo = szInfo + vbCrLf
+ "Level: 3"
End If
lblChoice.Caption = szInfo
End Sub
6.- Ejecutar el programa y
comprobar el funcionamiento.
Se puede observar que nada más inicializar el formulario ninguno de los OptionButton está seleccionado.
7.- Para seleccionar el problema
se puede utilizar el trigger del evento Load del formulario. Este evento sucede
en la carga del formulario justo antes de su visualización.
Private Sub Form_Load()
optLevel1.Value
= True
End Sub
7.- Ejecutar el programa y generar
un ejecutable.
a) No
permitir el cambio de tamaño del formulario (para ello utilizar las propiedades
del formulario)
b) Inicializar
el formulario con el valor del sonido chequeado.
Realizar
un ejercicio que utilizando un VScrollBar y cuatro CheckBox (<25%, <50%,
<75% y <100% ) estos nos visualicen el % de la posición del Scroll.
Realizar
el mismo ejercicio utilizando OptionButton.
NOTA: VB nos
permite omitir la declaración de variables y/o sus tipos, pero esa una práctica
poco recomendada en programación.