manual básico visual basic

20
Manual Básico de programación en Visual Basic Página: 1 Programación en Visual Basic Ricardo Rodríguez García M Ma a n nu u a a l l B Bá á s s i i c c o o d d e e P P r r o o g g r r a a m ma a c c i i ó ó n n e e n n V V i i s s u u a a l l B Ba a s s i i c c 1.- Estructura de un proyecto Visual Basic Los programas o aplicaciones desarrolladas en Visual Basic van a constituir un único “paquete” que denominaremos proyecto. A su vez, un proyecto presenta una estructura que puede ser resumida mediante el siguiente esquema: Proyecto : se almacena en un archivo con extensión .vbp o .mak. A su vez puede estar constituido por dos tipos de elementos: Formularios : son archivos que extensión .frm que contienen cada una de las ventanas que forman parte de nuestro proyecto a aplicación. En un formulario podemos encontrar los siguientes elementos: Objetos de Windows: botones, cajas de texto, etiquetas de texto, imágenes, temporizadores, etc. Código de programa: que puede ser dividido en tres grandes grupos: Declaraciones de variables y tipos “visibles” a nivel de formulario. Funciones y procedimientos generales. Procedimientos asociados a eventos ocurridos en los distintos objetos que forman parte del formulario. Módulos : son archivos con extensión .bas que contienen código de programa, es decir, variables, procedimientos o funciones que pueden ser utilizadas en cualquier punto del proyecto, son por tanto, variables, procedimientos o funciones globales. El proceso de trabajo será el siguiente: 1º.- El primer paso, será tener claro, ya sea mentalmente o mediante un esquema, qué es lo que queremos conseguir con nuestra aplicación. 2º.- Crear una carpeta en la que almacenaremos todos los archivos que constituyen el proyecto. 3º.- Para cada una de las aplicaciones que creemos se deberá abrir un proyecto nuevo. 4º.- En dicho proyecto insertaremos los formularios y módulos que sean necesarios. 5º.- En cada uno de los formularios se deberán añadir los objetos que precise la aplicación.

Upload: defcondos

Post on 06-Jun-2015

12.704 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Manual Básico Visual Basic

Manual Básico de programación en Visual Basic Página: 1

Programación en Visual Basic Ricardo Rodríguez García

MMaannuuaall BBáássiiccoo ddee

PPrrooggrraammaacciióónn eenn VViissuuaall BBaassiicc

11..-- EEssttrruuccttuurraa ddee uunn pprrooyyeeccttoo VViissuuaall BBaassiicc Los programas o aplicaciones desarrolladas en Visual Basic van a constituir un único “paquete” que denominaremos proyecto. A su vez, un proyecto presenta una estructura que puede ser resumida mediante el siguiente esquema:

Proyecto: se almacena en un archivo con extensión .vbp o .mak. A su vez puede estar constituido por dos tipos de elementos:

Formularios: son archivos que extensión .frm que contienen cada una de las ventanas que

forman parte de nuestro proyecto a aplicación. En un formulario podemos encontrar los siguientes elementos:

Objetos de Windows: botones, cajas de texto, etiquetas de texto, imágenes,

temporizadores, etc.

Código de programa: que puede ser dividido en tres grandes grupos:

Declaraciones de variables y tipos “visibles” a nivel de formulario.

Funciones y procedimientos generales.

Procedimientos asociados a eventos ocurridos en los distintos objetos que forman parte del formulario.

Módulos: son archivos con extensión .bas que contienen código de programa, es decir,

variables, procedimientos o funciones que pueden ser utilizadas en cualquier punto del proyecto, son por tanto, variables, procedimientos o funciones globales.

El proceso de trabajo será el siguiente:

1º.- El primer paso, será tener claro, ya sea mentalmente o mediante un esquema, qué es lo que queremos conseguir con nuestra aplicación.

2º.- Crear una carpeta en la que almacenaremos todos los archivos que constituyen el proyecto.

3º.- Para cada una de las aplicaciones que creemos se deberá abrir un proyecto nuevo. 4º.- En dicho proyecto insertaremos los formularios y módulos que sean necesarios.

5º.- En cada uno de los formularios se deberán añadir los objetos que precise la aplicación.

Page 2: Manual Básico Visual Basic

Manual Básico de programación en Visual Basic Página: 2

Programación en Visual Basic Ricardo Rodríguez García

6º.- Se escribirá el código de programa asociado a cada uno de los eventos que puedan ocurrir en el

funcionamiento normal de la aplicación, para que ésta pueda cumplir con el objetivo o fin establecido.

7º.- A la hora de cerrar el proyecto se deberán guardar y dar nombre a los siguientes tipos de archivos:

o El proyecto en sí, que será un archivo con extensión .vbp o .mak. Como hemos apuntado este será el archivo que contiene la estructura de nuestro proyecto, es decir, almacena el nombre y la ubicación de los formularios y módulos que constituyen la aplicación.

o Los formularios, es decir, cada una de las ventanas que podrán ser mostradas por el programa

o aplicación. Recuerda que este tipo de archivos se identifican por la extensión .frm.

o Los módulos, archivos que contienen variables, procedimientos o funciones globales. Son reconocibles gracias a su extensión .bas.

22..-- EEnnttoorrnnoo ddee pprrooggrraammaacciióónn Visual Basic nos ofrece un entorno de programación basado en paneles flotantes y fijos, como el mostrado a continuación:

Formulario de trabajo

Línea de menú

Cuadro de herramientas

Ventana de posición

Ventana de propiedades

Ventana de proyecto

Page 3: Manual Básico Visual Basic

Manual Básico de programación en Visual Basic Página: 3

Programación en Visual Basic Ricardo Rodríguez García

33..-- ¿¿CCóómmoo ddeeccllaarraarr vvaarriiaabblleess aa nniivveell ddee ffoorrmmuullaarriioo?? Una vez que tenemos activo el formulario en el que queremos añadir una variable a nivel de formulario, seguiremos los siguientes pasos:

1º.- Abre el menú Ver y selecciona la opción Código. Aparecerá una ventana que nos permite escribir código de programa.

2º.- Dicha ventana posee dos listas desplegables.

Asegúrate que en la lista de la izquierda se encuentre activa la opción (General) y en la de la derecha deberás elegir la línea (Declaraciones).

3º.- Ahora puedes hacer clic en el interior del Editor de

texto que aparece en la ventana y añadir cada una de las declaraciones.

44..-- ¿¿CCóómmoo ddeeccllaarraarr uunn pprroocceeddiimmiieennttoo oo ffuunncciióónn aa nniivveell ddee ffoorrmmuullaarriioo??

1º.- Abre el menú Ver y selecciona la opción Código. Aparecerá una ventana que nos permite escribir código de programa.

2º.- Dicha ventana posee dos listas desplegables.

Asegúrate que en la lista de la izquierda se encuentre activa la opción (General) y en la de la derecha deberás elegir la línea (Declaraciones).

3º.- Escribe la primera línea de declaración de la

función o procedimiento. Al pulsar la tecla “Enter” se añade automáticamente el final de la estructura: End Sub o End Function.

4º.- De esta forma queda la función o el procedimiento declarado y ya puede comenzar a escribir código en

su interior.

5º.- Observa como el lista desplegable de la derecha aparece el nombre de la función o procedimiento. Si posteriormente necesitamos hacer algún cambio en dicho código, necesitaremos en primer lugar encontrarlo. Para ello, mostraremos la ventana de código, en la lista de la izquierda seleccionaremos la opción (General) y en la de la derecha se establecerá el nombre de la función o procedimiento elegido.

55..-- ¿¿CCóómmoo aaññaaddiirr oobbjjeettooss aa uunn ffoorrmmuullaarriioo yy aassoocciiaarr ccóóddiiggoo aa uunnoo ddee ssuuss eevveennttooss?? Insertar un objeto en un formulario es muy sencillo, basta con seleccionar el objeto a introducir en el Cuadro de Herramientas y dibujar un rectángulo en el interior del formulario. Una vez insertado, puede mover y modificar el tamaño de la mayoría de objetos.

Page 4: Manual Básico Visual Basic

Manual Básico de programación en Visual Basic Página: 4

Programación en Visual Basic Ricardo Rodríguez García

Cada objeto cuenta con una serie de parámetros que se muestran en la Ventana de propiedades. Dichas propiedades pueden ser modificadas durante el diseño del formulario y posteriormente mediante programa. Destacamos a continuación las más importantes

Caption: contiene el texto o etiqueta que se mostrará en el objeto.

(Nombre): nombre del objeto. Conviene dar un nombre a cada objeto que nos ayude a recordar su finalidad.

Text: contiene el texto asociado a determinados objetos. No confundir con la

etiqueta que lo acompaña, que se guarda en la propiedad Caption.

Value: contiene un valor asociado a determinados objetos.

Cuando necesitemos acceder, en nuestro código, a la propiedad de un objeto, deberemos escribir en primer lugar el nombre del objeto, a continuación un punto y por último el nombre de la propiedad. Se seguirá por tanto la siguiente sintaxis:

NombreObjeto.Propiedad Además, cada objeto introducido en el formulario cuenta con una serie de procedimientos que se ejecutarán cuando ocurra un determinado suceso o evento. Si hacemos doble clic en un objeto, surgirá la ventana de código, abriendo la lista desplegable de la derecha se mostrará los distintos sucesos asociados a dicho objeto. Dichos procedimientos siguen la siguiente estructura:

Private Sub NombreOjbeto_Suceso ( ) En el interior de los mismos se puede escribir el código que se ejecutará cuando ocurra dicho suceso.

66..-- ¿¿CCóómmoo aaññaaddiirr uunn mmóódduulloo yy aaññaaddiirr ccóóddiiggoo ddee áámmbbiittoo gglloobbaall?? Como apuntado anteriormente, si necesitamos declarar una variable, procedimiento o función para que pueda ser utilizado en cualquier punto del proyecto, tendremos que incluir un módulo en el mismo. Basta con abrir el menú Proyecto y seleccionar la opción Insertar Módulo. Las declaraciones se efectúan en la ventana Código de la misma forma que se llevan a cabo a nivel de formulario (véase los apartados 3 y 4).

Page 5: Manual Básico Visual Basic

Manual Básico de programación en Visual Basic Página: 5

Programación en Visual Basic Ricardo Rodríguez García

77..-- TTiippooss ddee ddaattooss Resumen de los tipos de datos disponibles en VISUAL BASIC:

TIPO DESCRIPCIÓN RANGO TAMAÑO Boolean Puede contener tan sólo dos valores: True (-1) o

False (0) Desde –1 hasta 0 1 bit

Byte Adecuado para contener números enteros que no sean negativos ni mayor que 255, por ejemplo un código ASCII

Desde 0 hasta 255 1 byte

Integer Permite trabajar con números enteros, tanto negativos como positivos

Desde –32768 hasta 32767 2 bytes

Long Permite trabajar con números enteros, tanto negativos como positivos muy grandes

Desde –2147483648 hasta 2147483647

3 bytes

Single Permite utilizar números en coma flotante, es decir, la coma decimal no tiene una posición predeterminada.

Desde –1.401298 · 10-45 hasta 3.402823 · 1038

4 bytes

Double Permite utilizar números en coma flotante con doble precisión

Desde –4.9406564584124 · 10-324 hasta 1.79769313486232 · 10308

8 bytes

Currency Se caracteriza por tener una coma fija, con cuatro dígitos decimales.

8 bytes

String Almacena cadenas de texto con longitud fija o variable

Date Permite almacenar fechas y horas Desde el 1 de enero del año 100 hasta el 31 de diciembre del año 9999.

8 bytes

88..-- OOppeerraaddoorreess Para conseguir la mayoría de las operaciones que un programa necesita es necesario construir expresiones, que en base a unos operandos y operadores se resolverán en un resultado. Los operandos pueden ser números, cadenas, fechas, etc. ya sea en forma literal o de variable.

88..11..-- OOppeerraaddoorreess aarriittmmééttiiccooss Permiten realizar el conjunto de operaciones matemáticas más básico. Siempre toman dos operandos y generan un resultado. En la siguiente tabla mostramos un resumen de estos operandos.

OPERADOR OPERACIÓN ARITMÉTICA QUE EFECTÚA SINTAXIS + Suma de N1 y N2 N1 + N2 - Halla la diferencia entre N1 y N2 N1 - N2 * Multiplica N1 por N2 N1 * N2 / Divide N1 / N2 N1 / N2 \ Divide N1 entre N2 sin hallar decimales N1 \ N2 ^ Eleva N1 al exponente indicado por N2 N1 ^ N2

Mod Resto de la operación N1 \N2 N1 Mod N2

Page 6: Manual Básico Visual Basic

Manual Básico de programación en Visual Basic Página: 6

Programación en Visual Basic Ricardo Rodríguez García

88..22..-- OOppeerraaddoorreess rreellaacciioonnaalleess Este conjunto de operadores nos permitirán evaluar expresiones y obtener dos resultados posibles: True, si la expresión es cierta o devuelve un valor distinto de cero, o False, si la expresión es falsa o devuelve cero. Se utilizan principalmente en estructuras de decisión.

OPERADOR DEVUELVE True SI DEVUELVE False SI = N1 y N2 son iguales N1 y N2 son distintos

<> N1 y N2 son distintos N1 y N2 son iguales < N1 es menor que N2 N1 es igual o mayor que N2 > N1 es mayor que N2 N1 es menor o igual que N2

<= N1 es menor o igual que N2 N1 es mayor que N2 >= N1 es mayor o igual que N2 N1 es menor que N2

99..-- MMaattrriicceess En ocasiones necesitamos trabajar con múltiples valores distintos del mismo tipo y relacionados entre sí. Las matrices son variables con un solo nombre pero con múltiples valores, a los que es posible acceder por medio de un índice puesto entre paréntesis, a continuación del nombre de la variable. La sintaxis general que permita declara una variable del tipo matriz es la siguiente:

Dim Nombre_matriz (Límite_inferior To Límite_superior) As Tipo_variable

Ejemplo: Dim Medidas ( 1 To 10) As Double

99..11..-- MMaattrriicceess mmuullttiiddiimmeennssiioonnaalleess Podemos definir matrices con más de una dimensión, separando los límites de una dimensión de los de la siguiente mediante comas. Supongamos que deseamos crear una matriz de cien elementos, estructurados en 10 filas por 10 columnas cada una. La declaración necesario podría ser la siguiente:

Dim N(1 To 10, 1 To 10 ) as Byte

1100..-- DDeeffiinniicciióónn ddee ttiippooss Visual Basic nos permite crear nuestros propios tipos de datos. Se tratará, por lo tanto, de tipos más complejos, compuestos por una o más partes de los tipos básicos que ya conocemos. La creación de nuestros propios tipos nos permitirá manipular con facilidad conjuntos de información relacionados, como puede ser la ficha de datos de una persona. La definición de un tipo siempre se hade realizar a nivel de módulo. Para iniciar la creación de un nuevo tipo usaremos Type, seguido del nombre que vamos a darle, cerrando la estructura con End Type.

Page 7: Manual Básico Visual Basic

Manual Básico de programación en Visual Basic Página: 7

Programación en Visual Basic Ricardo Rodríguez García

77..-- PPrrááccttiiccaass ccoonn eettiiqquueettaass yy bboottoonneess

77..11..-- PPrrááccttiiccaa nnºº 11 En este sencillo ejercicio nuestro proyecto contendrá un único formulario en el que insertaremos tres etiquetas y un botón tal y como se muestra en la figura. Establece los siguientes valores en cada una de las propiedades en el objeto indicado:

Etiqueta1: o (Nombre): Et1 o Caption: Etiqueta1

Etiqueta2:

o (Nombre): Et2 o Caption: Etiqueta2

Etiqueta3: o (Nombre): Et3 o Caption: Etiqueta3

Botón:

o (Nombre): Rotar o Caption: Rotar el Texto

CÓDIGO A PROGRAMAR: Cuando el usuario haga clic en el botón se deberán rotar el contenido de las

etiquetas, es decir, el texto de la Et1 pasará a Et2, el de Et2 a Et2 y por último el contenido de Et3 a Et1.

MODIFICACIONES A REALIZAR:

Repite el ejercicio anterior pero ahora con 10 etiquetas que constituirán una matriz de controles, es decir, tendrán todas ellas el mismo nombre.

Añade un botón cuya misión sea la de pedir al usuario 10 palabras, mediante la función InputBox,

que serán mostradas en las diez etiquetas del ejercicio anterior.

A continuación modifica el código asociado el botón Rotar, de manera que ahora la rotación se produzca letra a letra, es decir, que el último carácter de la etiqueta nº 1 pase a ser la primera letra de la etiqueta nº 2, la última de ésta pasará a ser la primera de la etiqueta nº 3 y así sucesivamente.

Page 8: Manual Básico Visual Basic

Manual Básico de programación en Visual Basic Página: 8

Programación en Visual Basic Ricardo Rodríguez García

77..11..-- PPrrááccttiiccaa nnºº 22:: LLaa eettiiqquueettaa qquuee ssee nnoo ssee ddeejjaa aattrraappaarr En este caso crearemos un proyecto nuevo en que utilizaremos un único formulario que contará con una única etiqueta. Dicha etiqueta deberá moverse fuera del alcance del puntero del ratón cuando el usuario intente colocar el mismo sobre la etiqueta. Para conseguirlo sigue los siguientes pasos:

1º.- Abre un proyecto nuevo, en el cual ya aparece un formulario inicial. 2º.- En primer lugar modificaremos algunas de las propiedades del formulario. Establece en la Ventana de

Propiedades los siguientes valores:

(Nombre): Principal Caption: Texto que no se deja atrapar ScaleMode: 3 – Píxel

3º.- Inserta una etiqueta en el interior del formulario y modifica las siguientes propiedades con los valores

indicados:

(Nombre): Etiqueta Caption: Sitúa el ratón sobre este texto Font: MS Sans Serif, con un tamaño de 14

unidades. Height: 25 (Height significa alto, es decir,

establecemos un alto de 25 pixels para el recuadro que contiene a la etiqueta)

Width: 250 (Width significa ancho, es decir, establecemos un ancho de 250 pixels para el recuadro que contiene a la etiqueta)

4º.- El último paso es programar la etiqueta para que esta se mueva cuando el cursor del ratón entre en el

recuadro que contiene a la misma. 5º.- Haz doble clic en la etiqueta para mostrar la ventana de código.

6º.- Abre la lista desplegable situada a la derecha y selecciona el evento MouseMove.

7º.- Surgirá el procedimiento asociado a dicho evento, procedimiento que se ejecutará cuando el usuario

mueva el ratón sobre le rectángulo que contiene a la etiqueta. La estructura del mismo es la siguiente:

Private Sub Etiqueta_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub

8º.- Se puede observar que dicho procedimiento posee cuatro parámetros de entrada cuyo significado es el

siguiente:

Button: nos indica si ha sido pulsado un botón del ratón y cual de ellos. Shift: indica si ha sido pulsado la tecla Mayúsculas. X: coordenada x del puntero del ratón respecto de la esquina superior izquierda del formulario. Y: coordenada y del puntero del ratón respecto de la esquina superior derecha del formulario.

Page 9: Manual Básico Visual Basic

Manual Básico de programación en Visual Basic Página: 9

Programación en Visual Basic Ricardo Rodríguez García

9º.- En el interior de dicho procedimiento deberemos escribir el código que mueve la etiqueta hacia la dirección contraria en la que entra el puntero del ratón en la etiqueta. (No olvide que el procedimiento se ejecutará en el momento justo que el ratón entre en la etiqueta). Para reconocer el lado del recuadro por el que entra el ratón, contamos con las siguientes propiedades de la etiqueta:

Height: ancho de la etiqueta. Width: alto Left: distancia desde el lado izquierdo del

formulario al lado izquierdo de la etiqueta. Top: distancia desde el lado superior del

formulario al lado superior de la etiqueta. 10º.- De manera que el código que debemos introducir

es el siguiente:

Private Sub Etiqueta_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim EscalaX, EscalaY As Integer EscalaX = Screen.TwipsPerPixelX EscalaY = Screen.TwipsPerPixelY 'Determinamos las coordenados X e Y del ratón 'respecto del formulario en pixels X = CInt(X / EscalaX) Y = CInt(Y / EscalaY) 'El ratón entra por la izquierda If X = 0 Then Etiqueta.Left = Etiqueta.Left + 25 End If 'El ratón entra por la derecha If X = Etiqueta.Width - 1 Then Etiqueta.Left = Etiqueta.Left - 25 End If 'El ratón entra por arriba If Y = 0 Then Etiqueta.Top = Etiqueta.Top + 25 End If 'El ratón entra por abajo If Y = Etiqueta.Height - 1 Then Etiqueta.Top = Etiqueta.Top - 25 End If End Sub

Page 10: Manual Básico Visual Basic

Manual Básico de programación en Visual Basic Página: 10

Programación en Visual Basic Ricardo Rodríguez García

77..33..-- PPrrááccttiiccaa nnºº 33:: RReelloojj ddiiggiittaall En la primera parte de esta práctica insertaremos una etiqueta de texto en un formulario, que mostrará la hora, minutos y segundos del sistema de forma actualizada, con un intervalo de un segundo, es decir, desarrollaremos un reloj digital. Precisaremos, por tanto, programar un evento periódico mediante el control Timer, que aparece representado por un cronómetro en la paleta de herramientas. La finalidad de este control es generar un evento cada cierto intervalo de tiempo, que especificaremos en la propiedad Interval. El número de propiedades de este control es mucho menor que las de cualquier otro, ya que se trata de un control que no aparecerá en el formulario durante la ejecución. Veamos a continuación las propiedades más importantes del control Timer.

(Nombre): nombre asignado al control.

Enabled: determina cuando el funcionamiento del control está activado o no. Puede tomar dos valores: True o False.

Interval: intervalo de tiempo en el que se producirá el evento asociado al control.

El único evento que tiene disponible este control es Timer, el evento que se producirá cada vez que transcurra el intervalo de tiempo fijado, por lo que cualquier código que insertemos en él se ejecutará periódicamente. Siguiendo los pasos que se indican a continuación, desarrollaremos un sencillo reloj digital que mostrará en cada momento, la hora del sistema.

1º.- Abre un nuevo proyecto, en el que aparecerá un formulario inicial. 2º.- Modifica algunas de las propiedades del formulario.

(Nombre): Principal Caption: Reloj digital ScaleMode: 3 – Píxel

3º.- Inserta una etiqueta en el interior del formulario y modifica las siguientes propiedades con los valores

indicados:

(Nombre): Hora Caption: “ “ Font: Arial, negrita, con un tamaño de 48

unidades. Height: 100 (Height significa alto, es decir,

establecemos un alto de 100 pixels para el recuadro que contiene a la etiqueta)

Width: 300 (Width significa ancho, es decir, establecemos un ancho de 300 pixels para el recuadro que contiene a la etiqueta)

Page 11: Manual Básico Visual Basic

Manual Básico de programación en Visual Basic Página: 11

Programación en Visual Basic Ricardo Rodríguez García

4º.- Inserta un control Timer en cualquier parte del formulario y establece las siguientes propiedades para el mismo.

(Nombre): Reloj Interval: 1000

5º.- Haz doble clic sobre el control Timer y escribe la siguiente línea en el procedimiento Reloj_Timer.

Hora.Caption = Format(Now, "hh:mm:ss") 6º.- La función Now devuelve la hora del sistema. 7º.- La función Format se utilizar para asignar un determinado formato a un dato conforme a un plantilla

dada, en este caso, modificamos el valor devuelto por le función Now para ajustarlo a la plantilla “hh:mm:ss”.

8º.- Ejecuta el proyecto y comprueba el funcionamiento del mismo.

77..44..-- PPrrááccttiiccaa nnºº 44:: TTeexxttoo iinntteerrmmiitteennttee Desarrolla un proyecto que cuente con un único formulario en el que debe aparecer una etiqueta con el texto: “Texto Intermitente”, que debe ser mostrada de forma intermitente con un intervalo de medio segundo.

77..55..-- PPrrááccttiiccaa nnºº 55:: TTeexxttoo eemmeerrggeennttee Modifica el proyecto anterior para que ahora el texto se muestre en pantalla letra a letra, con un intervalo de medio segundo, como si lo estuviéramos tecleando. Una vez que aparezca el texto completo, el ciclo debe comenzar de nuevo.

77..66..-- PPrrááccttiiccaa nnºº 66:: TTeexxttoo aalltteerrnnaattiivvoo Inserta en el proyecto anterior una etiqueta nueva y un control Timer, de manera que en la etiqueta se muestre alternativamente las palabras FUMAR y MATA, con un intervalo de tres cuartos de segundo.

77..77..-- PPrrááccttiiccaa nnºº 77:: TTeexxttoo eemmeerrggeennttee yy aalltteerrnnaattiivvoo Modifica el proyecto anterior para que las palabras FUMAR y MATA se muestra alternativamente, pero letra a letra con un intervalo de un cuarto de segundo.

77..88..-- PPrrááccttiiccaa nnºº 88:: TTeexxttoo qquuee ssee ddeessppllaazzaa En este caso de se trata de insertar en el formulario una etiqueta por la cual el texto se desplazará a lo largo de la misma, apareciendo por la izquierda y desapareciendo por la derecha con un intervalo de 250 milisegundos.

Page 12: Manual Básico Visual Basic

Manual Básico de programación en Visual Basic Página: 12

Programación en Visual Basic Ricardo Rodríguez García

77..99..-- PPrrááccttiiccaa nnºº 99:: LLaa llootteerrííaa pprriimmiittiivvaa A continuación diseñaremos una aplicación que nos permitirá rellenar boletos de la lotería primitiva generando 6 números aleatorios comprendidos entre el 1 y el 49 (DEBEREMOS TENER CUIDADO PARA QUE NO SE REPITA NINGUNO). Para ello seguiremos los pasos mostrados a continuación:

1º.- Abre un nuevo proyecto en Visual Basic. 2º.- Establece las siguientes propiedades para la ventana del proyecto, es decir para el objeto Form1.

(Nombre): Principal Caption: Generador de boletos de lotería primitiva

3º.- Inserta en la ventana del proyecto una etiqueta de texto y establece los siguientes valores en las

correspondientes propiedades:

(Nombre): Numero Alignment : Center BorderStyle: 1 – Fixed Single Caption: 0 Font: Arial, Negrita y tamaño = 20.

4º.- A continuación crearemos una matriz de objetos label. Haz clic sobre la ventana del proyecto para

seleccionarla y ahora vuelve a activar la etiqueta que acabas de insertar, ahora abre el menú Edición y elige la opción Copiar.

5º.- Ahora haz clic sobre el menú Edición y selecciona la línea Pegar. Aparecerá una ventana que nos

pregunta: Ya existe un control llamada ‘número’. ¿Desea crear una matriz de controles? Responde afirmativamente y verás como ahora contamos con dos etiquetas en nuestro proyecto.

Numero(0): la etiqueta original que ha sido renombrada utilizando al formar parte de una matriz.

Se identifica con el índice 0. Numero(1): la etiqueta recién integrada en nuestro proyecto, identificada con el índice 1.

6º.- Desplaza el nuevo elemento hasta alinearlo con la

etiqueta original (Fíjate en la figura). 7º.- Repite los pasos anteriores hasta contar con una matriz

compuesta por 6 etiquetas iguales.

8º.- Añade a nuestro proyecto y botón de comando y establece las siguientes propiedades para el mismo:

(Nombre): Generar Caption = &Generar Combinación (observa como el símbolo & se traduce en subrayar la letra G,

lo que permitirá posteriormente al usuario activar dicho botón mediante la combinación de teclas Alt + G)

Page 13: Manual Básico Visual Basic

Manual Básico de programación en Visual Basic Página: 13

Programación en Visual Basic Ricardo Rodríguez García

9º.- El siguiente paso es introducir el código de programación que permitirá generar de manera aleatoria una combinación de la lotería primitiva, recuerda que se deberán aparecer 6 números elegidos al azar entre el 1 y el 49 sin que se repita ninguno. Todo ello debe ocurrir cuando el usuario haga clic en el botón.

10º.- Haz doble clic en el botón Generar Combinación para mostrar la ventana de programación.

11º.- En el interior del procedimiento Private Sub Generar_Click() introduce el código de

programación correspondiente, teniendo en cuenta los siguiente aspectos:

Código para generar un número aleatorio del 1 al 49: Int((49 * Rnd) + 1)

Es necesario generar una semilla, introduce el siguiente código: Randomize Time, en el procedimiento que se ejecuta cuando se carga la ventana de nuestra aplicación: Private Sub Form_Load()

Recuerda que no debe evitar mediante programa que se pueda repetir cualquier

número.

77..1100..-- PPrrááccttiiccaa nnºº 1100:: LLaa qquuiinniieellaa ddee ffúúttbbooll Si has completado con éxito la práctica anterior te resultará muy sencillo diseñar una aplicación que genere de manera aleatoria combinaciones de la quiniela de fútbol.

1º.- Coloca en la ventana de trabajo las etiquetas: Quiniela de fútbol, 1, X y 2, tal y como se indica en la figura.

2º.- En este caso emplearemos el control CheckBox . Sitúa un

ejemplar del mismo debajo de la etiqueta con el rótulo 1. Establece para el mismo las siguientes propiedades:

(Nombre): Col1 Caption: (dejar en blanco) Value: 0 - Unchecked

3º.- Copia y pega este elemento para generar un matriz de

elementos con el nombre Col1 y sitúalos uno debajo del otro hasta conseguir una columna con 14 elementos.

4º.- Sitúa un nuevo control CheckBox debajo de la etiqueta con

el rótulo X y establece los siguientes valores en las propiedades correspondientes:

(Nombre): ColX Caption: (dejar en blanco) Value: 0 - Unchecked

5º.- Copia y pega el control recién insertado hasta generar una columna constituida por una matriz de

14 elementos bajo la denominación de ColX.

Page 14: Manual Básico Visual Basic

Manual Básico de programación en Visual Basic Página: 14

Programación en Visual Basic Ricardo Rodríguez García

6º.- Sitúa un nuevo control CheckBox debajo de la etiqueta con el rótulo 2 y establece los

siguientes valores en las propiedades correspondientes:

(Nombre): Col2 Caption: (dejar en blanco) Value: 0 - Unchecked

7º.- Copia y pega el control recién insertado hasta generar una columna constituida por una matriz de

14 elementos bajo la denominación de Col2. 8º.- A continuación inserta un botón de comando y establece los siguientes valores para el mismo:

(Nombre): Generar Caption: &Generar quiniela

9º.- El último paso será incluir el código de programación que genere una combinación aleatoria de la

quiniela de fútbol cuando el usuario haga clic sobre el botón de la aplicación. 10º.- Haz doble clic sobre el botón Generar para mostrar la ventana de programación. Introduce el código

de programación que cumple con los siguientes requisitos:

Se debe generar para cada fila un número aleatorio entre 1 y 3.

Mediante una estructura Select Case si el número generado es 1 se activará el elemento correspondiente de la columna Col1, si hemos obtenido un 2 el elemento a activar será el de la columna ColX y por último, si el número generado es 3, se activará la columna Col3.

Para activar un elemento ChecBox basta con poner el valor 1 en su propiedad Value.

Recuerda que cuando se cargue la ventana debemos generar una semilla, para que no se

generen siempre las mismas combinaciones aleatorias, mediante el código Randomize Time.

77..1111..-- PPrrááccttiiccaa nnºº 1111:: EEll ttrriiáánngguulloo rreeccttáánngguulloo Es muy común en cualquier aplicación informática la solicitud al usuario de una serie de datos por parte de dicho programa. Cuando se trata de solicitar texto o números, se puede llevar a cabo fácilmente empleando el control Caja de texto (TextBox) .

En este caso se utilizarán dos controles TextBox para permitir que el usuario introduzca los valores de los catetos de cualquier triángulo rectángulo, nuestro programa ofrecerá a continuación el valor de la hipotenusa y los ángulos que conforman dicho triángulo. Se incluirá además un control Marco (Frame) , el cual permite tratar todos los controles insertados en su interior como un conjunto, es decir, si desplazamos el marco a otra posición dentro de la ventana, se moverán a su vez los controles situados en su interior.

Page 15: Manual Básico Visual Basic

Manual Básico de programación en Visual Basic Página: 15

Programación en Visual Basic Ricardo Rodríguez García

Recordemos brevemente las relaciones que se dan en cualquier triángulo rectángulo y que relacionan tanto sus lados entre sí, como los ángulos que forman:

22 2CatetoCateto1 Hipotenusa +=

Alfa = arcotg (Cateto2 / Cateto1)

Beta = 90º - Alfa

Recuerda que Visual Basic, determina los ángulos en radianes, que se convierten en grados al multimplicar el ángulo obtenido por (180 / π ).

En primer lugar deberás confeccionar en Visual Basic la siguiente ventana incluyendo los controles con sus respectivas propiedades, tal y como se indica:

PROPIEDADES:

Cajas de texto: • (Nombre): Cateto1 y Cateto2 • Text: (dejar en blanco)

Marco: • (Nombe): Marco • Caption: Valores del triángulo

Etiquetas en el interior del marco: • (Nombre): Hipotenusa y Angulos • Caption: (dejar en blanco)

Botón de comando: • (Nombre): Calcular • Caption: &Calcular

El último paso será el de programa el botón de comando de manera que cuando el usuario haga clic en el mismo aparezcan los valores de la hipotenusa y lo ángulos en las etiquetas correspondiente, para ello se seguirá el siguiente formato:

o Etiqueta Hipotenusa: “El valor de la hipotenusa es de __” o Etiqueta Angulos: “Los ángulos que conforman el triángulo son: 90º, __ y __”

Cajas de texto

Etiquetas

Botón de comando

Marco

Etiquetas

Page 16: Manual Básico Visual Basic

Manual Básico de programación en Visual Basic Página: 16

Programación en Visual Basic Ricardo Rodríguez García

77..1122..-- PPrrááccttiiccaa nnºº 1122:: CCoonnttrrooll ddee llaa eennttrraaddaa ddee ddaattooss La aplicación desarrollada en el apartado anterior solicita al usuario dos datos numéricos, en principio parece que nada puede impedir que el usuario introduzca un dato no numérico, por ejemplo un texto. Este hecho puede dar lugar a errores graves en nuestra aplicación. En ocasiones resulta muy útil controlar los datos a medida que éstos son introducidos por cualquier usuario de nuestra aplicación. A continuación te indicaremos las medidas a adoptar para que una entrada de texto, se puedan introducir únicamente aquellos caracteres o letras que nos interesen. En concreto, debemos permitir que el usuario introduzca únicamente números.

1º.- Abre en Visual Basic el proyecto desarrollado en la práctica anterior. 2º.- Haz doble clic sobre la entrada de texto Cateto1. Aparece la ventana de programación situando el

cursor en el interior del procedimientos Private Sub Cateto1_Change(), el cual se ejecuta en el momento en el que cambia el texto situado en el interior de dicho control.

3º.- Abre al lista desplegable que aparece a la derecha de la ventana y selecciona el evento KeyPress.

Ahora el cursor nos permite escribir código en el procedimiento Private Sub Cateto1_KeyPress(KeyAscii As Integer), que se ejecuta en el momento que el usuario presiona una tecla.

4º.- En el argumento KeyAscii aparece el código ASCII de la tecla pulsada por el usuario. Será en

este momento cuando preguntaremos si la tecla pulsada es un número, un punto o tecla retroceso (recuerda que debemos ofrecer la posibilidad de introducir números con decimales, y de borrar las cifras escritas).

5º.- Deberemos conocer el código ASCII de los números del 0 al 9 y del punto. Los mostramos a

continuación.

Carácter Código Carácter Código (Tecla Enter) 13 4 52

. 46 5 53 0 48 6 54 1 49 7 55 2 50 8 56 3 51 9 57

(Tecla retroceso) 8

6º.- En el procedimiento Private Sub Cateto1_KeyPress(KeyAscii As Integer) deberemos detectar cuando se ha pulsado una tecla no válida para rechazarla mediante la línea de programa Keyascii = 0.

7º.- A su vez, en el mismo procedimiento, se detectará el momento en el que el usuario pulsa la tecla

Enter, mediante su código ASCII, que como se indica en la tabla anterior es el 13. Detectada esta tecla se anulara la misma (Keyascii = 0) y se establecerá el foco, es decir, se activará la caja de texto Cateto2, de manera que el usuario pueda escribir en dicho control. Para ello deberemos introducir la siguiente línea de programa: Cateto2.SetFocus.

Page 17: Manual Básico Visual Basic

Manual Básico de programación en Visual Basic Página: 17

Programación en Visual Basic Ricardo Rodríguez García

8º.- Siguiendo los pasos anteriores programa el procedimiento Private Sub Cateto1_KeyPress(KeyAscii As Integer) de manera que se cumplan los siguientes requisitos:

Únicamente serán aceptadas la siguientes teclas: números del 0 al 9 y el punto (.)

Cuando el usuario pulse la tecla Enter se podrán dar dos casos:

• Si la entrada de texto Cateto1 se encuentra vacía, esta será enfocada o activada

(recuerda, mediante el procedimiento SetFocus). • Si la entrada de texto Cateto1 ya posee un número, entonces se enfocará o activará

el botón de comando Calcular.

9º.- La mayoría de los controles cuenta con el evento GotFocus, el cual se ejecuta cuando dicho control es enfocado o activado. Mediante este evento marcaremos el texto completo que pueda existir en las entradas de texto Cateto1 y Cateto2, de manera que el usuario pueda comenzar a escribir una nueva cifra borrando la anterior.

10º.- Sitúa el cursor en el procedimiento Private Sub Cateto1_GotFocus() haciendo doble clic

sobre la entrada de texto Cateto1 y utilizando la lista desplegable de eventos de la derecha.

11º.- El control TextBox cuenta con las siguientes propiedades:

SelStart: establece el punto inicial a partir del cual se seleccionará el texto.

SelLength: establece el número de caracteres que serán seleccionados a partir del indicado en la propiedad SelStart.

12º.- Utiliza las propiedades anteriores para seleccionar todo el texto en cada uno de los controles:

Cateto1 y Cateto2.

77..1133..-- PPrrááccttiiccaa nnºº 1133:: PPeelloottaa qquuee rreebboottaa Ahora se trata de aprender a situar imágenes en nuestras aplicaciones y dotarlas de movimiento en tiempo de ejecución, es decir, que dichos movimientos deberán ser previamente programados por nosotros. Para ello será imprescindible conocer el siguiente conjunto de propiedades que poseen la mayoría de controles:

Height: Ancho del control u objeto medido en twips1.

Width: alto del control u objeto medido en twips.

Left: en el caso de tratarse de una ventana, distancia desde la arista izquierda de la pantalla hasta la arista izquierda del rectángulo del control. Para cualquier otro tipo de control, estaríamos hablando de la distancia desde la arista izquierda de la ventana o form que lo contiene, hasta la arista izquierda de dicho control.

1 Un twip es 1/20 de punto de impresora (1.440 twips equivalen a una pulgada y 567 twips equivalen a un centímetro).

Page 18: Manual Básico Visual Basic

Manual Básico de programación en Visual Basic Página: 18

Programación en Visual Basic Ricardo Rodríguez García

Top: en el caso de tratarse de una ventana, distancia desde la arista superior de la pantalla hasta la arista superior del rectángulo del control. Para cualquier otro tipo de control, estaríamos hablando de la distancia desde la arista superior de la ventana que lo contiene, hasta la arista superior de dicho control.

Sistema de coordenadas de Visual Basic Visual Basic emplea un sistema de coordenadas en el que el punto inicial (0,0) se encuentra en el vértice superior izquierdo del objeto contenedor, ya sea este un form, un frame, etc. A partir de este punto se pueden trazar dos ejes x e y, de manera que:

La parte positiva del eje X se encuentra a la derecha del punto (0,0).

La parte positiva del eje Y se encuentra por debajo del punto (0,0).

Las unidad de medida empleada por defecto por Visual Basic es el twip, pero podemos cambiar la escala o el tipo de unidades si utilizamos las siguientes propiedades de los controles:

ScaleMode: establece un valor que indica las unidades de medida de las coordenadas de un objeto.

ScaleHeight: contiene el valor del ancho de un objeto o control especificado en las unidades establecidas en la propiedad ScaleMode.

ScaleWidht: contiene el valor del alto de un objeto o control especificado en las unidades establecidas en

la propiedad ScaleMode.

77..1144..-- PPeelloottaa qquuee rreebboottaa eenn llooss bboorrddeess En este caso se trata de diseñar y programar una aplicación en la que la imagen de una pelota se desplazará a lo largo de la ventana que la contiene. En su desplazamiento, la pelota chocará con cualquiera de los bordes de la ventana, en ese momento nuestro código de programa debe cambiar el sentido del desplazamiento de la imagen, de manera que parezca que la pelota ha rebotado con el límite de la ventana. Una vez iniciado el programa, la pelota se encontrará en constante movimiento, rebotando con los límites de la ventana principal. Veamos los pasos iniciales que debemos tomar para comenzar la práctica:

Eje x

Width

Heigth

Top Left

Eje y

(0,0)

Page 19: Manual Básico Visual Basic

Manual Básico de programación en Visual Basic Página: 19

Programación en Visual Basic Ricardo Rodríguez García

1º.- Abre un proyecto nuevo e inserta en la ventana los siguientes controles, asignando las respectivas propiedades:

Control PicitureBox :

(Nombre): Pelota Picture: (selecciona el archivo Pelota.gif que contiene la imagen de la pelota) ScaleMode: 3-Pixel ScaleHeight: 72 ScaleWidth: 72

Control Timer :

(Nombre): Reloj Interval: 10

2º.- Define a nivel de formulario, es decir, en el apartado (General) (Declarations) las siguientes

variables: Dim VectorX, VectorY As Integer 3º.- Cuando se cargue la ventana (Form_Load) asignaremos el valor 1 a ambas variables, de manera

que inicialmente la imagen de la pelota se desplazará en el sentido positivo, tanto del eje X como del eje Y.

4º.- Programa el Reloj de manera que:

La imagen de la pelota se desplace. Basta con sumar a la propiedad Left del control Pelota, el

valor del vector X. Igualmente se deberá sumar a la propiedad Top de dicho control, el valor del vector Y.

Se comprobará si la imagen ha chocado con cada uno de los cuatro bordes de la ventana. Por

ejemplo, sabremos que la pelota ha chocado con el límite inferior si: la suma de la propiedad Top y la propiedad ScaleHeight del control PictureBox, es igual al ancho de la ventana, que podemos encontrar en su propiedad ScaleHeigth. En ese momento la pelota debe rebotar hacia arriba, bastará con cambiar el valor del vector Y, es decir, pasará de 1 a -1.

5º.- Completa el código de programa con la detección del rebote en los otros laterales de la ventana y

habrás diseñado una pelota que no para de rebotar nunca. 6º.- A estas alturas ya te habrás dado cuenta, que el primer paso será detectar el sentido del

desplazamiento de la pelota, para ello deberemos preguntar qué valores tienen los vectores X e Y.

Page 20: Manual Básico Visual Basic

Manual Básico de programación en Visual Basic Página: 20

Programación en Visual Basic Ricardo Rodríguez García

77..1155..-- SSeenncciilllloo tteesstt eenn IInnggllééss Abre un proyecto nuevo e incluye en el mismo los siguientes elementos:

1 control LABEL Caption: Test en Inglés

3 controles Frame

(Nombre): Marco1 Caption: 1st Cuestion: What`s the most successful British car of all time?

(Nombre): Marco2 Caption: 2nd Cuestion: Which film was made by the Max Brothers?

(Nombre): Marco3 Caption: 3rd Cuestion: How many words are false frineds?

En Marco1 debes incluir cuatro controles OptionBotton. Asignar al primero las siguientes propiedades,

posteriormente copia y pega para obtener los tres restantes creando una matriz de 4 controles. Únicamente deberás cambiar la propiedad Caption.

(Nombre): Respuesta1 Caption: The Fiat Value: True

En Marco2 introduce un control ComboBox y define las siguientes propiedades:

(Nombre): Respuesta2 List: debes incluir estos 4 valores (pregunta al profesor cómo):Rebel without a cause, A day at

the Races, An American in Paris, Richard II Style: 2-Dropdown List

En Marco3 sitúa 4 controles CheckBox siguiendo los siguientes pasos: en primer lugar asigna al primer

control las siguientes propiedades, posteriormente copia y pega para obtener los tres restantes creando una matriz de 4 elementos. Únicamente deberás cambiar la propiedad Caption.

(Nombre): Respuesta3 Caption: Sting

Por último incluye un botón de

comando con el nombre Resultado y Caption: Resultado.