Manual Visual Basic

download Manual Visual Basic

of 20

Transcript of Manual Visual Basic

  • Manual Bsico de programacin en Visual Basic Pgina: 1

    Programacin en Visual Basic Ricardo Rodrguez Garca

    MMaannuuaall BBssiiccoo ddee

    PPrrooggrraammaacciinn 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 extensin .vbp o .mak. A su vez puede estar constituido por dos tipos de elementos:

    Formularios: son archivos que extensin .frm que contienen cada una de las ventanas que

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

    Objetos de Windows: botones, cajas de texto, etiquetas de texto, imgenes,

    temporizadores, etc.

    Cdigo de programa: que puede ser dividido en tres grandes grupos:

    9 Declaraciones de variables y tipos visibles a nivel de formulario. 9 Funciones y procedimientos generales.

    9 Procedimientos asociados a eventos ocurridos en los distintos objetos que forman

    parte del formulario.

    Mdulos: son archivos con extensin .bas que contienen cdigo 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 aplicacin.

    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 mdulos que sean necesarios.

    5.- En cada uno de los formularios se debern aadir los objetos que precise la aplicacin.

  • Manual Bsico de programacin en Visual Basic Pgina: 2

    Programacin en Visual Basic Ricardo Rodrguez Garca

    6.- Se escribir el cdigo de programa asociado a cada uno de los eventos que puedan ocurrir en el

    funcionamiento normal de la aplicacin, para que sta pueda cumplir con el objetivo o fin establecido.

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

    o El proyecto en s, que ser un archivo con extensin .vbp o .mak. Como hemos apuntado este ser el archivo que contiene la estructura de nuestro proyecto, es decir, almacena el nombre y la ubicacin de los formularios y mdulos que constituyen la aplicacin.

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

    o aplicacin. Recuerda que este tipo de archivos se identifican por la extensin .frm.

    o Los mdulos, archivos que contienen variables, procedimientos o funciones globales. Son reconocibles gracias a su extensin .bas.

    22..-- EEnnttoorrnnoo ddee pprrooggrraammaacciinn Visual Basic nos ofrece un entorno de programacin basado en paneles flotantes y fijos, como el mostrado a continuacin:

    Formulario de trabajo

    Lnea de men

    Cuadro de herramientas

    Ventana de posicin

    Ventana de propiedades

    Ventana de proyecto

  • Manual Bsico de programacin en Visual Basic Pgina: 3

    Programacin en Visual Basic Ricardo Rodrguez Garca

    33..-- CCmmoo ddeeccllaarraarr vvaarriiaabblleess aa nniivveell ddee ffoorrmmuullaarriioo?? Una vez que tenemos activo el formulario en el que queremos aadir una variable a nivel de formulario, seguiremos los siguientes pasos:

    1.- Abre el men Ver y selecciona la opcin Cdigo. Aparecer una ventana que nos permite escribir cdigo de programa.

    2.- Dicha ventana posee dos listas desplegables.

    Asegrate que en la lista de la izquierda se encuentre activa la opcin (General) y en la de la derecha debers elegir la lnea (Declaraciones).

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

    texto que aparece en la ventana y aadir cada una de las declaraciones.

    44..-- CCmmoo ddeeccllaarraarr uunn pprroocceeddiimmiieennttoo oo ffuunncciinn aa nniivveell ddee ffoorrmmuullaarriioo??

    1.- Abre el men Ver y selecciona la opcin Cdigo. Aparecer una ventana que nos permite escribir cdigo de programa.

    2.- Dicha ventana posee dos listas desplegables.

    Asegrate que en la lista de la izquierda se encuentre activa la opcin (General) y en la de la derecha debers elegir la lnea (Declaraciones).

    3.- Escribe la primera lnea de declaracin de la

    funcin o procedimiento. Al pulsar la tecla Enter se aade automticamente el final de la estructura: End Sub o End Function.

    4.- De esta forma queda la funcin o el procedimiento declarado y ya puede comenzar a escribir cdigo en

    su interior.

    5.- Observa como el lista desplegable de la derecha aparece el nombre de la funcin o procedimiento. Si posteriormente necesitamos hacer algn cambio en dicho cdigo, necesitaremos en primer lugar encontrarlo. Para ello, mostraremos la ventana de cdigo, en la lista de la izquierda seleccionaremos la opcin (General) y en la de la derecha se establecer el nombre de la funcin o procedimiento elegido.

    55..-- CCmmoo aaaaddiirr oobbjjeettooss aa uunn ffoorrmmuullaarriioo yy aassoocciiaarr ccddiiggoo 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 rectngulo en el interior del formulario. Una vez insertado, puede mover y modificar el tamao de la mayora de objetos.

  • Manual Bsico de programacin en Visual Basic Pgina: 4

    Programacin en Visual Basic Ricardo Rodrguez Garca

    Cada objeto cuenta con una serie de parmetros que se muestran en la Ventana de propiedades. Dichas propiedades pueden ser modificadas durante el diseo del formulario y posteriormente mediante programa. Destacamos a continuacin las ms importantes 9 Caption: contiene el texto o etiqueta que se mostrar en el objeto. 9 (Nombre): nombre del objeto. Conviene dar un nombre a cada objeto que nos

    ayude a recordar su finalidad. 9 Text: contiene el texto asociado a determinados objetos. No confundir con la

    etiqueta que lo acompaa, que se guarda en la propiedad Caption. 9 Value: contiene un valor asociado a determinados objetos.

    Cuando necesitemos acceder, en nuestro cdigo, a la propiedad de un objeto, deberemos escribir en

    primer lugar el nombre del objeto, a continuacin un punto y por ltimo el nombre de la propiedad. Se seguir por tanto la siguiente sintaxis:

    NombreObjeto.Propiedad Adems, cada objeto introducido en el formulario cuenta con una serie de procedimientos que se ejecutarn cuando ocurra un determinado suceso o evento. Si hacemos doble clic en un objeto, surgir la ventana de cdigo, 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 cdigo que se ejecutar cuando ocurra dicho suceso.

    66..-- CCmmoo aaaaddiirr uunn mmdduulloo yy aaaaddiirr ccddiiggoo ddee mmbbiittoo gglloobbaall?? Como apuntado anteriormente, si necesitamos declarar una variable, procedimiento o funcin para que pueda ser utilizado en cualquier punto del proyecto, tendremos que incluir un mdulo en el mismo. Basta con abrir el men Proyecto y seleccionar la opcin Insertar Mdulo. Las declaraciones se efectan en la ventana Cdigo de la misma forma que se llevan a cabo a nivel de formulario (vase los apartados 3 y 4).

  • Manual Bsico de programacin en Visual Basic Pgina: 5

    Programacin en Visual Basic Ricardo Rodrguez Garca

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

    TIPO DESCRIPCIN RANGO TAMAO Boolean Puede contener tan slo dos valores: True (-1) o

    False (0) Desde 1 hasta 0 1 bit

    Byte Adecuado para contener nmeros enteros que no sean negativos ni mayor que 255, por ejemplo un cdigo ASCII

    Desde 0 hasta 255 1 byte

    Integer Permite trabajar con nmeros enteros, tanto negativos como positivos

    Desde 32768 hasta 32767 2 bytes

    Long Permite trabajar con nmeros enteros, tanto negativos como positivos muy grandes

    Desde 2147483648 hasta 2147483647

    3 bytes

    Single Permite utilizar nmeros en coma flotante, es decir, la coma decimal no tiene una posicin predeterminada.

    Desde 1.401298 10-45 hasta 3.402823 1038

    4 bytes

    Double Permite utilizar nmeros en coma flotante con doble precisin

    Desde 4.9406564584124 10-324 hasta 1.79769313486232 10308

    8 bytes

    Currency Se caracteriza por tener una coma fija, con cuatro dgitos 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 ao 100 hasta el 31 de diciembre del ao 9999.

    8 bytes

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

    88..11..-- OOppeerraaddoorreess aarriittmmttiiccooss Permiten realizar el conjunto de operaciones matemticas ms bsico. Siempre toman dos operandos y generan un resultado. En la siguiente tabla mostramos un resumen de estos operandos.

    OPERADOR OPERACIN ARITMTICA QUE EFECTA 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 operacin N1 \N2 N1 Mod N2

  • Manual Bsico de programacin en Visual Basic Pgina: 6

    Programacin en Visual Basic Ricardo Rodrguez Garca

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

    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 mayor o igual que N2 N1 es menor que N2

    99..-- MMaattrriicceess En ocasiones necesitamos trabajar con mltiples valores distintos del mismo tipo y relacionados entre s. Las matrices son variables con un solo nombre pero con mltiples valores, a los que es posible acceder por medio de un ndice puesto entre parntesis, a continuacin del nombre de la variable. La sintaxis general que permita declara una variable del tipo matriz es la siguiente:

    Dim Nombre_matriz (Lmite_inferior To Lmite_superior) As Tipo_variable

    Ejemplo: Dim Medidas ( 1 To 10) As Double

    99..11..-- MMaattrriicceess mmuullttiiddiimmeennssiioonnaalleess Podemos definir matrices con ms de una dimensin, separando los lmites de una dimensin 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 declaracin necesario podra ser la siguiente:

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

    1100..-- DDeeffiinniicciinn ddee ttiippooss Visual Basic nos permite crear nuestros propios tipos de datos. Se tratar, por lo tanto, de tipos ms complejos, compuestos por una o ms partes de los tipos bsicos que ya conocemos. La creacin de nuestros propios tipos nos permitir manipular con facilidad conjuntos de informacin relacionados, como puede ser la ficha de datos de una persona. La definicin de un tipo siempre se hade realizar a nivel de mdulo. Para iniciar la creacin de un nuevo tipo usaremos Type, seguido del nombre que vamos a darle, cerrando la estructura con End Type.

  • Manual Bsico de programacin en Visual Basic Pgina: 7

    Programacin en Visual Basic Ricardo Rodrguez Garca

    77..-- PPrrccttiiccaass ccoonn eettiiqquueettaass yy bboottoonneess

    77..11..-- PPrrccttiiccaa nn 11 En este sencillo ejercicio nuestro proyecto contendr un nico formulario en el que insertaremos tres etiquetas y un botn tal y como se muestra en la figura. Establece los siguientes valores en cada una de las propiedades en el objeto indicado: 9 Etiqueta1:

    o (Nombre): Et1 o Caption: Etiqueta1

    9 Etiqueta2:

    o (Nombre): Et2 o Caption: Etiqueta2

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

    9 Botn:

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

    CDIGO A PROGRAMAR: Cuando el usuario haga clic en el botn se debern 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 constituirn una matriz de controles, es decir, tendrn todas ellas el mismo nombre.

    Aade un botn cuya misin sea la de pedir al usuario 10 palabras, mediante la funcin InputBox,

    que sern mostradas en las diez etiquetas del ejercicio anterior.

    A continuacin modifica el cdigo asociado el botn Rotar, de manera que ahora la rotacin se produzca letra a letra, es decir, que el ltimo carcter 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.

  • Manual Bsico de programacin en Visual Basic Pgina: 8

    Programacin en Visual Basic Ricardo Rodrguez Garca

    77..11..-- PPrrccttiiccaa 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 ratn 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:

    9 (Nombre): Principal 9 Caption: Texto que no se deja atrapar 9 ScaleMode: 3 Pxel

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

    indicados:

    9 (Nombre): Etiqueta 9 Caption: Sita el ratn sobre este texto 9 Font: MS Sans Serif, con un tamao de 14

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

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

    9 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 ratn entre en el

    recuadro que contiene a la misma. 5.- Haz doble clic en la etiqueta para mostrar la ventana de cdigo.

    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 ratn sobre le rectngulo 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 parmetros de entrada cuyo significado es el

    siguiente:

    9 Button: nos indica si ha sido pulsado un botn del ratn y cual de ellos. 9 Shift: indica si ha sido pulsado la tecla Maysculas. 9 X: coordenada x del puntero del ratn respecto de la esquina superior izquierda del formulario. 9 Y: coordenada y del puntero del ratn respecto de la esquina superior derecha del formulario.

  • Manual Bsico de programacin en Visual Basic Pgina: 9

    Programacin en Visual Basic Ricardo Rodrguez Garca

    9.- En el interior de dicho procedimiento deberemos escribir el cdigo que mueve la etiqueta hacia la direccin contraria en la que entra el puntero del ratn en la etiqueta. (No olvide que el procedimiento se ejecutar en el momento justo que el ratn entre en la etiqueta). Para reconocer el lado del recuadro por el que entra el ratn, contamos con las siguientes propiedades de la etiqueta:

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

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

    formulario al lado superior de la etiqueta. 10.- De manera que el cdigo 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 ratn 'respecto del formulario en pixels X = CInt(X / EscalaX) Y = CInt(Y / EscalaY) 'El ratn entra por la izquierda If X = 0 Then Etiqueta.Left = Etiqueta.Left + 25 End If 'El ratn entra por la derecha If X = Etiqueta.Width - 1 Then Etiqueta.Left = Etiqueta.Left - 25 End If 'El ratn entra por arriba If Y = 0 Then Etiqueta.Top = Etiqueta.Top + 25 End If 'El ratn entra por abajo If Y = Etiqueta.Height - 1 Then Etiqueta.Top = Etiqueta.Top - 25 End If End Sub

  • Manual Bsico de programacin en Visual Basic Pgina: 10

    Programacin en Visual Basic Ricardo Rodrguez Garca

    77..33..-- PPrrccttiiccaa nn 33:: RReelloojj ddiiggiittaall En la primera parte de esta prctica 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 peridico mediante el control Timer, que aparece representado por un cronmetro 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 nmero 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 ejecucin. Veamos a continuacin las propiedades ms 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 cdigo que insertemos en l se ejecutar peridicamente. Siguiendo los pasos que se indican a continuacin, 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.

    9 (Nombre): Principal 9 Caption: Reloj digital 9 ScaleMode: 3 Pxel

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

    indicados:

    9 (Nombre): Hora 9 Caption: 9 Font: Arial, negrita, con un tamao de 48

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

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

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

  • Manual Bsico de programacin en Visual Basic Pgina: 11

    Programacin en Visual Basic Ricardo Rodrguez Garca

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

    9 (Nombre): Reloj 9 Interval: 1000

    5.- Haz doble clic sobre el control Timer y escribe la siguiente lnea en el procedimiento Reloj_Timer.

    Hora.Caption = Format(Now, "hh:mm:ss") 6.- La funcin Now devuelve la hora del sistema. 7.- La funcin 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 funcin Now para ajustarlo a la plantilla hh:mm:ss.

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

    77..44..-- PPrrccttiiccaa 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..-- PPrrccttiiccaa 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 estuviramos tecleando. Una vez que aparezca el texto completo, el ciclo debe comenzar de nuevo.

    77..66..-- PPrrccttiiccaa 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..-- PPrrccttiiccaa 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..-- PPrrccttiiccaa 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.

  • Manual Bsico de programacin en Visual Basic Pgina: 12

    Programacin en Visual Basic Ricardo Rodrguez Garca

    77..99..-- PPrrccttiiccaa nn 99:: LLaa llootteerraa pprriimmiittiivvaa A continuacin disearemos una aplicacin que nos permitir rellenar boletos de la lotera primitiva generando 6 nmeros aleatorios comprendidos entre el 1 y el 49 (DEBEREMOS TENER CUIDADO PARA QUE NO SE REPITA NINGUNO). Para ello seguiremos los pasos mostrados a continuacin:

    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 lotera 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 tamao = 20.

    4.- A continuacin 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 Edicin y elige la opcin Copiar.

    5.- Ahora haz clic sobre el men Edicin y selecciona la lnea Pegar. Aparecer una ventana que nos

    pregunta: Ya existe un control llamada nmero. Desea crear una matriz de controles? Responde afirmativamente y vers 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 recin integrada en nuestro proyecto, identificada con el ndice 1.

    6.- Desplaza el nuevo elemento hasta alinearlo con la

    etiqueta original (Fjate en la figura). 7.- Repite los pasos anteriores hasta contar con una matriz

    compuesta por 6 etiquetas iguales.

    8.- Aade a nuestro proyecto y botn de comando y establece las siguientes propiedades para el mismo:

    (Nombre): Generar Caption = &Generar Combinacin (observa como el smbolo & se traduce en subrayar la letra G,

    lo que permitir posteriormente al usuario activar dicho botn mediante la combinacin de teclas Alt + G)

  • Manual Bsico de programacin en Visual Basic Pgina: 13

    Programacin en Visual Basic Ricardo Rodrguez Garca

    9.- El siguiente paso es introducir el cdigo de programacin que permitir generar de manera aleatoria una combinacin de la lotera primitiva, recuerda que se debern aparecer 6 nmeros 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 botn.

    10.- Haz doble clic en el botn Generar Combinacin para mostrar la ventana de programacin.

    11.- En el interior del procedimiento Private Sub Generar_Click() introduce el cdigo de

    programacin correspondiente, teniendo en cuenta los siguiente aspectos:

    9 Cdigo para generar un nmero aleatorio del 1 al 49: Int((49 * Rnd) + 1) 9 Es necesario generar una semilla, introduce el siguiente cdigo: Randomize Time,

    en el procedimiento que se ejecuta cuando se carga la ventana de nuestra aplicacin: Private Sub Form_Load()

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

    nmero.

    77..1100..-- PPrrccttiiccaa nn 1100:: LLaa qquuiinniieellaa ddee ffttbbooll Si has completado con xito la prctica anterior te resultar muy sencillo disear una aplicacin que genere de manera aleatoria combinaciones de la quiniela de ftbol.

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

    2.- En este caso emplearemos el control CheckBox . Sita un

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

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

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

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

    4.- Sita un nuevo control CheckBox debajo de la etiqueta con

    el rtulo X y establece los siguientes valores en las propiedades correspondientes:

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

    5.- Copia y pega el control recin insertado hasta generar una columna constituida por una matriz de

    14 elementos bajo la denominacin de ColX.

  • Manual Bsico de programacin en Visual Basic Pgina: 14

    Programacin en Visual Basic Ricardo Rodrguez Garca

    6.- Sita un nuevo control CheckBox debajo de la etiqueta con el rtulo 2 y establece los

    siguientes valores en las propiedades correspondientes:

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

    7.- Copia y pega el control recin insertado hasta generar una columna constituida por una matriz de

    14 elementos bajo la denominacin de Col2. 8.- A continuacin inserta un botn de comando y establece los siguientes valores para el mismo:

    9 (Nombre): Generar 9 Caption: &Generar quiniela

    9.- El ltimo paso ser incluir el cdigo de programacin que genere una combinacin aleatoria de la

    quiniela de ftbol cuando el usuario haga clic sobre el botn de la aplicacin. 10.- Haz doble clic sobre el botn Generar para mostrar la ventana de programacin. Introduce el cdigo

    de programacin que cumple con los siguientes requisitos:

    9 Se debe generar para cada fila un nmero aleatorio entre 1 y 3. 9 Mediante una estructura Select Case si el nmero 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 nmero generado es 3, se activar la columna Col3.

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

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

    generen siempre las mismas combinaciones aleatorias, mediante el cdigo Randomize Time.

    77..1111..-- PPrrccttiiccaa nn 1111:: EEll ttrriinngguulloo rreeccttnngguulloo Es muy comn en cualquier aplicacin informtica la solicitud al usuario de una serie de datos por parte de dicho programa. Cuando se trata de solicitar texto o nmeros, se puede llevar a cabo fcilmente empleando el control Caja de texto (TextBox) .

    En este caso se utilizarn dos controles TextBox para permitir que el usuario introduzca los valores de los catetos de cualquier tringulo rectngulo, nuestro programa ofrecer a continuacin el valor de la hipotenusa y los ngulos que conforman dicho tringulo. Se incluir adems 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 posicin dentro de la ventana, se movern a su vez los controles situados en su interior.

  • Manual Bsico de programacin en Visual Basic Pgina: 15

    Programacin en Visual Basic Ricardo Rodrguez Garca

    Recordemos brevemente las relaciones que se dan en cualquier tringulo rectngulo 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 debers 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 tringulo

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

    Botn de comando:

    (Nombre): Calcular Caption: &Calcular

    El ltimo paso ser el de programa el botn 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 tringulo son: 90, __ y __

    Cajas de texto

    Etiquetas

    Botn de comando

    Marco

    Etiquetas

  • Manual Bsico de programacin en Visual Basic Pgina: 16

    Programacin en Visual Basic Ricardo Rodrguez Garca

    77..1122..-- PPrrccttiiccaa nn 1122:: CCoonnttrrooll ddee llaa eennttrraaddaa ddee ddaattooss La aplicacin desarrollada en el apartado anterior solicita al usuario dos datos numricos, en principio parece que nada puede impedir que el usuario introduzca un dato no numrico, por ejemplo un texto. Este hecho puede dar lugar a errores graves en nuestra aplicacin. En ocasiones resulta muy til controlar los datos a medida que stos son introducidos por cualquier usuario de nuestra aplicacin. A continuacin 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 nmeros.

    1.- Abre en Visual Basic el proyecto desarrollado en la prctica anterior. 2.- Haz doble clic sobre la entrada de texto Cateto1. Aparece la ventana de programacin 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 cdigo 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 cdigo ASCII de la tecla pulsada por el usuario. Ser en

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

    5.- Deberemos conocer el cdigo ASCII de los nmeros del 0 al 9 y del punto. Los mostramos a

    continuacin.

    Carcter Cdigo Carcter Cdigo (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 vlida para rechazarla mediante la lnea 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 cdigo 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 lnea de programa: Cateto2.SetFocus.

  • Manual Bsico de programacin en Visual Basic Pgina: 17

    Programacin en Visual Basic Ricardo Rodrguez Garca

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

    9 nicamente sern aceptadas la siguientes teclas: nmeros del 0 al 9 y el punto (.) 9 Cuando el usuario pulse la tecla Enter se podrn dar dos casos:

    Si la entrada de texto Cateto1 se encuentra vaca, esta ser enfocada o activada

    (recuerda, mediante el procedimiento SetFocus). Si la entrada de texto Cateto1 ya posee un nmero, entonces se enfocar o activar

    el botn de comando Calcular.

    9.- La mayora 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.- Sita 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:

    9 SelStart: establece el punto inicial a partir del cual se seleccionar el texto. 9 SelLength: establece el nmero de caracteres que sern 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..-- PPrrccttiiccaa nn 1133:: PPeelloottaa qquuee rreebboottaa Ahora se trata de aprender a situar imgenes en nuestras aplicaciones y dotarlas de movimiento en tiempo de ejecucin, es decir, que dichos movimientos debern ser previamente programados por nosotros. Para ello ser imprescindible conocer el siguiente conjunto de propiedades que poseen la mayora 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 rectngulo del control. Para cualquier otro tipo de control, estaramos 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 centmetro).

  • Manual Bsico de programacin en Visual Basic Pgina: 18

    Programacin en Visual Basic Ricardo Rodrguez Garca

    Top: en el caso de tratarse de una ventana, distancia desde la arista superior de la pantalla hasta la arista superior del rectngulo del control. Para cualquier otro tipo de control, estaramos 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 vrtice 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 disear y programar una aplicacin 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 cdigo de programa debe cambiar el sentido del desplazamiento de la imagen, de manera que parezca que la pelota ha rebotado con el lmite de la ventana. Una vez iniciado el programa, la pelota se encontrar en constante movimiento, rebotando con los lmites de la ventana principal. Veamos los pasos iniciales que debemos tomar para comenzar la prctica:

    Eje x

    Width

    Heigth

    Top Left

    Eje y

    (0,0)

  • Manual Bsico de programacin en Visual Basic Pgina: 19

    Programacin en Visual Basic Ricardo Rodrguez Garca

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

    9 Control PicitureBox :

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

    9 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:

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

    9 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 lmite 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 cdigo de programa con la deteccin del rebote en los otros laterales de la ventana y

    habrs diseado una pelota que no para de rebotar nunca. 6.- A estas alturas ya te habrs 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.

  • Manual Bsico de programacin en Visual Basic Pgina: 20

    Programacin en Visual Basic Ricardo Rodrguez Garca

    77..1155..-- SSeenncciilllloo tteesstt eenn IInnggllss Abre un proyecto nuevo e incluye en el mismo los siguientes elementos: 9 1 control LABEL Caption: Test en Ingls 9 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?

    9 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 debers cambiar la propiedad Caption.

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

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

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

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

    9 En Marco3 sita 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 debers cambiar la propiedad Caption.

    (Nombre): Respuesta3 Caption: Sting

    9 Por ltimo incluye un botn de

    comando con el nombre Resultado y Caption: Resultado.