1. EJERCICIO DE VISUAL BASIC
En este ejercicio vamos a realizar un programa el cual nos permita mediante
“clics” en determinados botones desplazar por la pantalla un circulo “shape”.
Empezaremos con la creación del formulario,
En el formulario tan solo hemos modificado el “Caption” y hemos introducido
el texto “Movimiento”.
Continuamos con la introducción del primer “commandbutton”, modificando
las propiedades ,
Style = 1.- Graphical
Picture = “selección de icono”
2. Para seleccionar el “icono” localizaremos primero la carpeta...
Eliminaremos también el contenido de la propiedad “caption” para que no
salga texto, y el resultado es un botón con imagen,
Repetiremos esta operación con otros 3 botones mas, como en la siguiente
imagen,
3. Cada botón tendrá un icono diferente, con una flecha que señala en cada
dirección.
Para acabar con los botones, colocaremos otro botón que utilizaremos para
finalizar la ejecución del programa, este botón también tendrá una imagen en
su interior.
4. El siguiente paso del diseño del formulario será colocar en el centro del mismo
un “shape” en forma de “circulo”.
A este “shape” le hemos modificado las siguientes propiedades,
BackStyle = 1.- Opaque
BackColor = “azul”
Shape = 2.- Oval
Ahora que tenemos el formulario diseñado vamos a introducir el código para
poder desplazar por la pantalla el circulo.
Haremos doble “clic” en el botón de la flecha izquierda, y en la rutina ......
5. Private Sub Command1_Click()
Shape1.Left = Shape1.Left - 50
End Sub
Aquí cada vez que se haga “clic” en el “command1” modificaremos la
propiedad “left” del “shape” y le restaremos 50 (unidades de visual basic
=twips)
La propiedad “left” determina los TWIPS que hay desde el margen izquierdo
del formulario, de forma que si le restamos 50 al valor que tenga la propiedad
“left” haremos que se desplace la imagen hacia la izquierda.
En el “command2” que es el botón que mira hacia la “derecha” colocaremos el
mismo código que el anterior pero en lugar de restar 50 unidades a la
propiedad “left” se los sumaremos, así , cada vez estará mas lejos del margen
izquierdo del formulario, con lo cual la figura se desplazara hacia la derecha del
mismo.
Private Sub Command2_Click()
Shape1.Left = Shape1.Left + 50
End Sub
Si ejecutamos ahora el programa veremos como podemos hacer que la figura
se desplace a derecha e izquierda. Si quisiéramos que el desplazamiento fuera
mas o menos grande tan solo tendríamos que modificar el valor 50.
6. Ahora repetiremos la operación anterior pero con los botones de las flechas
que miran “arriba” y “abajo”.
En la rutina de la flecha “arriba”,
Private Sub Command3_Click()
Shape1.Top = Shape1.Top - 50
End Sub
en este caso no modificamos la propiedad “left” sino que modificamos la
propiedad “top” que es la que indica la distancia de la “forma” hasta el margen
superior del formulario.
Repetimos esta operación en el botón contrario “flecha abajo” y en lugar de
restar 50 le sumaremos 50.
Private Sub Command4_Click()
Shape1.Top = Shape1.Top + 50
End Sub
Si ejecutamos el programa observaremos que ya podemos desplazar la forma
por el formulario mediante “clics” en los botones.
Como siempre en el botón de “salir” colocamos el código,
Private Sub Command5_Click()
End
End Sub
Si nos fijamos el problema que encontramos es que si hacemos varios “clics”
en el mismo botón hacemos que la forma salga de las dimensiones del
formulario, ya que no hemos limitado los valores de las propiedades “left” y
“top”.
7. Para poder limitar los valores de la propiedad “left y top” tenemos que conocer
los limites del formulario,
El limite izquierdo de la propiedad “left” será “0” (este valor indica que estamos
en el limite izquierdo del formulario).
El limite derecho de “left”, tendremos que desde el “diseño” del formulario
desplazar el “shape” hasta el borde derecho y mirar el valor de la propiedad
“left”,
Y el valor obtenido en este caso es “4200”.
Ahora repetiremos la operación para conocer los limites de la propiedad “top”,
cuando el “shape” este en el limite superior el valor será “0” y para conocer el
valor del limite inferior, desplazaremos el “shape” hasta la parte inferior y
observaremos el valor del “top”.
8. Valor del “top” en el limite inferior “2040”.
Ahora que conocemos los limites de nuestro formulario, rectificaremos el
código de programación anterior y añadiremos....
botón de flecha hacia la izquierda,
Private Sub Command1_Click()
If Shape1.Left - 50 < 0 Then
Shape1.Left = Shape1.Left
Else
Shape1.Left = Shape1.Left - 50
End If
End Sub
9. Hemos colocado un condicional “IF” que comprueba que si el valor actual del
“left” menos 50 va a dar un numero inferior a 0 (quiere decir que el shape se
perdería por el limite izquierdo del formulario) que no modifique el valor del
“left”.
Y si el resultado de la resta no da numero menor que 0 que se los reste al valor
actual y provoque el movimiento.
Este mismo condicional lo vamos a colocar en las demás rutinas,
Private Sub Command2_Click()
If Shape1.Left + 50 > 4200 Then
Shape1.Left = Shape1.Left
Else
Shape1.Left = Shape1.Left + 50
End If
End Sub
Private Sub Command3_Click()
If Shape1.Top - 50 < 0 Then
Shape1.Top = Shape1.Top
Else
Shape1.Top = Shape1.Top - 50
End If
End Sub
Private Sub Command4_Click()
If Shape1.Top + 50 > 2040 Then
Shape1.Top = Shape1.Top
Else
Shape1.Top = Shape1.Top + 50
End If
End Sub
10. El resultado es que el circulo “shape” no podrá salirse de los limites del
formulario.
Ahora almacenaremos el programa.