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()

    UpdateLabel

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.