Ex14

10
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”

Transcript of Ex14

Page 1: Ex14

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”

Page 2: Ex14

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,

Page 3: Ex14

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.

Page 4: Ex14

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 ......

Page 5: Ex14

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.

Page 6: Ex14

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”.

Page 7: Ex14

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”.

Page 8: Ex14

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

Page 9: Ex14

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

Page 10: Ex14

El resultado es que el circulo “shape” no podrá salirse de los limites del

formulario.

Ahora almacenaremos el programa.