Professional Documents
Culture Documents
Pgina: 1
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.
Ventana de propiedades
Formulario de trabajo
Ventana de posicin
Pgina: 2
5.- Cmo aadir objetos a un formulario y asociar cdigo a uno de sus eventos?
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.
Pgina: 3
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.
Pgina: 4
8 bytes
8.- Operadores
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.
Pgina: 5
9.- Matrices
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
Pgina: 6
Pgina: 7
8.- Se puede observar que dicho procedimiento posee cuatro parmetros de entrada cuyo significado es el siguiente: 9 9 9 9 Button: nos indica si ha sido pulsado un botn del ratn y cual de ellos. Shift: indica si ha sido pulsado la tecla Maysculas. X: coordenada x del puntero del ratn respecto de la esquina superior izquierda del formulario. Y: coordenada y del puntero del ratn respecto de la esquina superior derecha del formulario.
Pgina: 8
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
Pgina: 9
Pgina:
10
4.- Inserta un control Timer 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.
11
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)
Pgina:
12
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.
Pgina:
13
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.
Pgina:
14
Recordemos brevemente las relaciones que se dan en cualquier tringulo rectngulo y que relacionan tanto sus lados entre s, como los ngulos que forman:
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:
Etiquetas
Cajas de texto
Marco
Etiquetas
Botn de comando
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 __
Pgina:
15
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.
Pgina:
16
8.- Siguiendo
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.
los
pasos
anteriores
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.
Un twip es 1/20 de punto de impresora (1.440 twips equivalen a una pulgada y 567 twips equivalen a un centmetro).
Pgina:
17
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).
(0,0) Eje x
Left Eje y
Top Heigth
Width
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.
Pgina:
18
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.
Pgina:
19
Pgina:
20