Práctica 2: Barra de Desplazamiento (HScrollBar).

 

 

 

 

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 Speed.vbp, Speed, Speed.frm y frmSpeed.

 

El objetivo del programa es que el TextBox visualice en todo momento los en Km/h que representa el valor del HscrollBar.

 

2.- Colocar los objetos siguientes y asignar los valores adecuados a sus atributos (propiedades).

 

 

Objeto

Propiedad

Valor

Form

Name

FrmSpeed

 

BackColor

Light gray

 

Caption

Programa Speed

CommandButton

Name

CmdExit

 

Caption

&Salir

HscrollBar

Name

HsbSpeed

 

Min

0

 

Max

100

TextBox

Name

TxtSpeed

 

Alignment

2-Center

 

MiltiLine

True

 

BackColor

Red

 

ForeColor

White

 

Font

(A tu gusto)

 

Text

50 Km/h

 

 

Nuevas propiedades:

 

ForeColor: Color del texto.

 

Propiedades del HScrollBar:

 

Min: Valor mínimo del objeto (int).

Max: Valor máximo del objeto (int).

Value: Valor del objeto (int).

SmallChange: Pasos del cursor (int).

 

3.- Codifica el trigger correspondiente al evento Click del botón cmdExit.

 

 

 

Private Sub cmdExit_Click()

    End 'Fin del programa.

End Sub

 

Dos Eventos importantes del HscrollBar:

 

Change: Este evento se produce cuando se cambia el valor del HScrollBar. No se produce cuando se está desplazando el cursor con el mouse (pero si cuando dicho desplazamiento se finaliza).

Scroll: Este evento se produce cuando se desplaza el cursor del HScrollBar con el mouse.

 

4.- En el evento Change del HScrollBar se ha de codificar el código que haga visualizar en el TextBox txtSpeed la velocidad correspondiente al valor del hsbSeep.

 

La propiedad Value contiene el valor del HScrollBar en todo momento, pero es del tipo entero. La propiedad Text del objeto TextBox es del tipo cadena de caracteres, por ese motivo se ha de utilizar una función de conversión de tipos (Str).

 

Para concatenar Strings se puede utilizar + o &.

 

La función Str: String Str(Number).

 

Private Sub hsbSpeed_Change()

    'La función Str devuelve la cadena de caracteres

    'correspondiente al valor del parámetro.

    'El parámetro en este caso es el valor de la

    'barra de desplazamiento.

    txtSpeed.Text = Str(hsbSpeed.Value) + " Km/h"

    'hsbSpeed es el nombre Name de la barra de desplazamiento.

End Sub

 

5.- Ejecuta el programa y comprueba que sucede si modificas el valor del cursor de la barra de desplazamientos con el mouse.

 

6.- Para solucionar este problema se ha de utilizar el evento Scroll de dicho objeto. Este evento se produce por cada movimiento del cursor.

 

Como la acción a realizar es la misma que en el evento anterior no se volverá a codificar la acción, sino que se ejecuta la subrutina del evento Change. Esto nos incorpora la ventaja de que si se ha de modificar el código lo tendremos concentrado en un único lugar.

 

Private Sub hsbSpeed_Scroll()

    'Llamada a la función hbsSpeed_Change

    hsbSpeed_Change

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)       Al empezar el programa el valor de la barra de desplazamiento ha de coincidir en valor con el texto del TextBox.

 

c)       No permitir la modificación del texto del TextBox al usuario.

 

 

 

 

Realizar un ejercicio similar al anterior que utilizando dos barras de desplazamiento HScrollBar las dos se muevan al unísono. Para ello es suficiente con lo estudiado en la actual práctica.

 

 

Realizar el mismo ejercicio que el anterior pero utilizando esta vez un barra de desplazamiento vertical VscrollBar.

 

NOTA: La propiedad TabIndex de los controles nos permite establecer el orden de tabulación de los objetos.