Anda di halaman 1dari 33

1. Tipos de datos y expresiones .................................................................................................................3 1.1. Declaracin de variables ...............................................................................................................3 1.2. Constantes ......................................................................................................................................3 1.3. Declaracin de matrices ................................................................................................................

4 1.4. Expresiones y operadores ..............................................................................................................4 2. Estructuras de seleccin .......................................................................................................................6 2.1. Sentencia 2.2. Estructura 3.1. Instruccin 3.2. Instruccin IF THEN ELSE ...............................................................................................6 SELECT CASE .........................................................................................................7 FOR TO NEXT ...............................................................................................9 DO LOOP ...........................................................................................................9

3. Estructuras iterativas ............................................................................................................................9

4. Controles bsicos ................................................................................................................................12 3.1. Introduccin al uso de controles ..................................................................................................12 3.2. Controles bsicos .........................................................................................................................13 3.3. Eventos .........................................................................................................................................20 5. Formularios ........................................................................................................................................22 5.1. Propiedades .................................................................................................................................22 5.2. Utilizacin de multiples formularios............................................................................................24 5.3. Comunicacion entre formularios .................................................................................................26 6. Contantes y funciones de Visual Basic ...............................................................................................28 6.1. Constantes ....................................................................................................................................28 6.2. Funciones matemticas ................................................................................................................29 6.3. Funciones aleatorias ....................................................................................................................29 6.4. Funciones de cadenas de caractres ...........................................................................................29 6.5. Funciones de fechas .....................................................................................................................29 6.6. Funciones de comprobacin ........................................................................................................29 6.7. Otras funciones ............................................................................................................................29 6.8. Las funciones InputBox y MsgBox ...............................................................................................30 7. El editor de mens...............................................................................................................................32

1. Tipos de datos y expresiones


1.1. Declaracin de variables
Antes de utilizar un dato en nuestros programas, es necesario declararlo. Este dato puede ser variable, con lo cual podr cambiar de valor a lo largo del programa, o constante, en cuyo caso su valor ser el mismo a lo largo de todo el programa y no podr modificarse. La forma de declarar las variables es la siguiente: Dim| Public| Static nombre_variable As tipo Dim: Al declarar una variable con esta palabra estamos diciendo que la variable ser local al mbito en que se declara. Puede ser dentro de un procedimiento o dentro de un formulario; de esta forma no ser accesible desde los dems procedimientos o formularios. Public: Las variables declaradas sern publicas y podrn estar accesibles desde todos los formularios de la aplicacin. Static: Con esta forma de declarar variables conseguiremos que las variables locales no se creen y se destruyan al entrar y salir de los procedimientos donde fueron declaradas sino que se mantenga su valor durante todo el periodo de ejecucin de la aplicacin. De esta forma al entrar en algn procedimiento las variables recuerdan el valor que tenan cuando se sali de l. Los tipos de variables que se pueden utilizar en Visual Basic se muestrean en la tabla siguiente.

TIPOS DE VARIABLES
TIPO COMENTARIO

BOOLEAN BYTE INTEGER LONG SINGLE DOUBLE CURRENCY STRING DATE

Slo admite 2 valores: TRUE o FALSE admite valores enteros entre 0 y 255 admite valores enteros entre -32768 y 32767 valores enteros entre 2.147.483.648 y 2.147.483.647 admite valores decimales con precisin simple admite valores decimales de doble precisin vlido para valores de tipo moneda cadenas de caracteres fechas, permite operar con ellas

Al declarar una variable lo que estamos haciendo es decir al procesador que reserve una posicin de memoria para guardar un dato. La cantidad de memoria reservada depender del tipo de variable que hayamos indicado. Es importante tener en cuenta que siempre debemos utilizar el tipo de variable ms pequea posible, pues de esta forma estaremos consumiendo la menor cantidad de memoria. Por ejemplo, si queremos crear una variable en la que se guardar la edad de una persona, bastar con que la variable creada al efecto sea de tipo byte.

1.2. Constantes
Una constante es aquel dato que tendr el mismo valor a lo largo de todo el programa. Para declarar una constante, se procede de la forma siguiente:

Const nombre_constante As tipo = valor donde nombre_constante es el nombre que queramos dar a la constante, tipo es uno de los tipos de la tabla anterior y valor es el valor que tendr la constante. El siguiente ejemplo declara una constante llamada PI a la que se asigna el valor 3,1416: Const PI as Single = 3,1416

1.3. Declaracin de matrices


Una matriz es un conjunto de datos del mismo tipo. Supongamos que necesitamos almacenar 10 nmeros enteros; en lugar de crear 10 variables de tipo entero, podemos crear una matriz de 10 elementos. Para declarar matrices debemos colocar entre parntesis el nmero de elementos de los que constar a continuacin del nombre de la variable; tambin habr que indicar el tipo de elementos que va a almacenar la matriz. Todo ello se realiza con la siguiente expresin: Dim nombre_matriz(dimensin) As tipo Ejemplo: Dim medidas(9) as integer De esta forma tenemos una matriz de 10 elementos identificados del 0 al 9, en la cual se almacenarn nmeros enteros. Para referirnos al quinto elemento de nuestra matriz, habra que escribir medidas(4). (Recuerda que el primer elemento es el de ndice 0, el segundo el de ndice 1, ). As por ejemplo, la expresin medidas(7) = -5 almacenara el nmero 5 en el octavo elemento de la matriz. Aunque no es lo habitual, podemos obligar a que el primer elemento de una matriz tenga el ndice con valor 1. Esto lo haremos colocando la instruccin option base 1 en la seccin declarations de nuestro formulario. Tambin podemos indicar los lmites inferior y superior de la matriz: Dim medidas(5 to 14) as integer del 5 al 14. es una matriz de 10 elementos cuyos ndices van

Las matrices pueden tener ms de una dimensin. Las matrices multidimensionales se declaran de la siguiente forma: Dim medidas(2, 9) as integer sera una matriz bidimensional de 30 elementos, agrupados en tres filas y diez columnas. El primer elemento sera el de ndice (0, 0) y el ltimo (2, 9). Imagina que queremos hacer el tpico juego de los barcos con un tablero de 8 x 8 casillas. Crearamos una matriz en la que se almacenara que casilla contiene un barco y cual no de la siguiente forma: Dim tablero_de_barcos(7, 7) as boolean Si te has fijado bien habrs podido observar que hemos separado con el smbolo _ las palabras tablero de barcos; ello es debido a que el nombre de una variable no puede estar formado por ms de una palabra, por lo que hay que unirlas de alguna forma para hacer creer al ordenador que se trata de una sola palabra.

1.4. Expresiones y operadores


Una expresin es un conjunto de operandos y operadores que una vez evaluados devuelven un resultado. En Visual Basic hay cuatro tipos de operadores: aritmticos, relacionales, lgicos y de texto. Los operadores relacionales son aquellos que devuelven valores de tipo Bolean, es decir, su resultado ser Verdadero o Falso.

TIPOS DE OPERADORES Aritmticos Potenciacin Negacin Suma y resta Multiplicacin y divisin Divisin entera Resto de la divisin ^ +, *, / \ Mod Relacionales Igual que Distinto a Menor que Menor o igual que Mayor que Mayor o igual que = <> < <= > >= Lgicos Not And Or De texto &

Los operadores aritmticos y los relacionales no necesitan mayor aclaracin. La funcin de los operadores lgicos y de texto es la siguiente: Not (expresin) (expresin_1) And (expresin_2) si el resultado de expresin es FALSO lo convierte en VERDADERO, y viceversa. devuelve VERDADERO si el resultado de las dos expresiones es VERDADERO, y FALSO en caso contrario. devuelve VERDADERO si el resultado de alguna de las dos expresiones es VERDADERO, y FALSO en caso contrario.

(expresin_1) Or (expresin_2)

Unos ejemplos ayudarn a comprender mejor algunos de los distintos operadores: Expresin Resultado 4 ^ 3 64 7 / 3 2,33333333 7\3 2 7 mod 3 1 buen & da buenda Expresin Resultado 2 + 7 <> 5 VERDADERO 2 + 7 > 9 FALSO 2 + 7 >= 9 VERDADERO Not (3 < 5) FALSO (2 + 3 < 8) And (3 < 5) VERDADERO (2 + 3 < 8) Or (3 < 5) VERDADERO

Ejercicios: 1) Indica como se declarara una variable que almacenase los siguientes datos: a) El ao de nacimiento de una persona. b) El resultado de una ecuacin de un ejercicio de fsica. c) Saber si una persona es mayor de edad. d) La ciudad de residencia de una persona. e) El nmero de hijos de una persona. 2) Escribe la expresin que declara una constante de valor ZAMORA. 3) Queremos crear una matriz en la que se van a almacenar las medidas (ancho, alto y largo) de un automvil, en milmetros y sin decimales. Cmo se declarara la matriz que contuviese estos datos? 4) Indica el resultado de las siguientes expresiones: a) (2 + 5) ^ 2 b) Not (( 19 Mod 5) < 7) c) Hola & & amigos d) 18 > 11 And (( 5 \ 3 ) <> 1) e) 18 > 11 Or (( 5 \ 3 ) <> 1)

2. Estructuras de seleccin
Hay ocasiones en las que un programa debe realizar distintas acciones dependiendo del valor de una condicin. En estos casos, disponemos de 2 tipos de sentencias para realizar selecciones dependiendo del valor de una expresin o de una variable:

2.1. Sentencia

IF THEN ELSE

La estructura general de esta sentencia es la siguiente: If condicin then bloque de sentencias a realizar si la condicin es cierta Else bloque de sentencias a realizar si la condicin es falsa End If Supongamos que queremos crear un programa que nos diga si somos mayores o menores de edad. El cdigo de dicho programa sera el siguiente: If edad < 18 Then print menor de edad Else print mayor de edad End If Se pueden colocar todas las sentencias de cdigo que queramos en cada uno de los bloques de sentencias, siempre que cada sentencia vaya en una lnea distinta. Si los bloques de sentencias estn formados por una sola instruccin podemos utilizar la versin reducida que ocupa una sola lnea: If condicin then sentencia else sentencia Ejemplo: If IsNumeric(nmero) then a = nmero else print Error En el ejemplo anterior, si la variable nmero contiene un valor numrico, este es almacenado en la variable a; en caso contrario el programa imprimir en pantalla el mensaje Error. Tambin podemos anidar varias sentencias If then Else cuando una de las 2 opciones iniciales contiene a su vez 2 bifurcaciones dependiendo del estado de otra condicin: If edad < 18 Then print menor de edad Else If edad < 65 Then print adulto Else print tercera edad End If End If Este ltimo ejemplo podra haberse escrito de otra forma utilizando la clusula ElseIf: If edad < 18 Then print menor de edad ElseIf edad < 65 Then print adulto Else print tercera edad End If Podemos introducir tantas lneas ElseIf como queramos siempre antes del ltimo Else, si es que lo necesitamos.

Para mltiples decisiones, normalmente ms de 3, en las que dependiendo del valor de una variable queremos que se realice una accin distinta, no conviene utilizar la estructura If Then, sino que el cdigo queda ms claro y resulta ms fcil de modificar utilizando la sentencia Select

2.2. Estructura

SELECT CASE

Esta sentencia permite realizar operaciones diferentes dependiendo del valor de una variable. Su estructura general es la siguiente: Select Case dato Case valor1 bloque de sentencias case valor2 bloque de sentencias Case valor3 bloque de sentencias Case Else bloque de sentencias, se ejecutan si no se cumple ninguno de los valores anteriores End Select En esta construccin, dependiendo del valor de la variable dato se ejecutar un bloque de sentencias diferente. Los valores que podemos colocar en lugar de valor1, valor2, valor3 no slo se limitan a valores constantes como nmeros y cadenas de texto, sino que podemos comparar con un nmero como podemos ver en el siguiente ejemplo, en el que tenemos una variable de tipo single llamada NotaFinal en la que est guardada la nota de un alumno: Select Case NotaFinal Case Is < 5 print Suspenso Case Is < 6 print Suficiente Case Is < 7 print Bien Case Is < 9 print Notable Case Else print Sobresaliente End Select Como podemos observar si utilizamos los operadores lgicos como >, <, =, <=, >= debemos anteponer el operador Is. Si lo que hacemos es comparar con un intervalo de valores colocaremos el operador to entre los limites del intervalo. Case 5 to 5.99 print suficiente Tambin podemos realizar comparaciones con un conjunto de valores separados por comas:

Case 1, 3, 5 print el numero es impar


Ejercicios: 1) Escribe un programa que imprima la palabra GRANDE si un nmero es mayor o igual que 1000 y PEQUEO en caso contrario. 2) Un programa debe indicar si un nmero es positivo, negativo o cero. Cul ser su cdigo? 3) Indica como sera el cdigo de un programa en el que a partir del valor numrico del mes nos dijese en que estacin del ao nos encontramos. 4) Indica como se escribira el cdigo en el que a partir del valor numrico del mes nos dijese el nombre del mes en que nos encontramos.

3. Estructuras iterativas
3.1. Instruccin FOR TO NEXT
Sirve para ejecutar un bloque de sentencias un nmero conocido de veces. La sintaxis de esta instruccin es For contador = inicio To fin [Step incremento] bloque de sentencias Next [contador] Contador es la variable numrica que se incrementa cada vez que se ejecuta el bucle. Este se realizar un nmero determinado de veces que vendr determinado por los valores de inicio y de fin. Los argumentos entre corchetes son opcionales. Si no se indica incremento, ste se presupone que vale 1. En cualquier momento podemos abandonar la ejecucin en mitad del bucle si dentro del bloque de sentencias colocamos la instruccin Exit For. Unos cuantos ejemplos ayudarn a comprender mejor esta instruccin:
For i = 1 to 5 Print i Next i For i = 0 to 10 step 2 Print i Next i For i = 10 to 2 step -2 Print i Next i Imprime en pantalla los nmeros 1 a 5

Imprime en pantalla los nmeros 0, 2, 4, 6, 8 y 10 Imprime en pantalla los nmeros 10, 8, 6, 4 y 2

Hay que tener cuidado con no crear un bucle que no se acabe nunca. Por el ejemplo, el siguiente bucle For no se terminara nunca, pues si comenzamos en el nmero 10 y aumentamos una unidad cada vez que el bucle se repita, nunca llegaremos al nmero 5. For i = 10 to 5 Print i Next i

3.2. Instruccin

DO LOOP

En las estructuras anteriores, conocamos de antemano el nmero de veces que iba a repetirse el bucle; en algunas ocasiones no podemos conocer cuantas veces debemos repetir una determinada instruccin (por ejemplo al pedir una clave secreta; habr que repetir la peticin de la misma hasta que la clave introducida sea correcta). En estos casos utilizaremos la instruccin Do Loop. Se ejecutar un bloque de cdigo mientras o hasta que la condicin evaluada sea verdadera. Depender de la forma en la que escribamos la instruccin. Por lo tanto la sintaxis de esta estructura puede adoptar alguna de las siguientes formas:

Estructura

Explicacin El bloque de sentencias se ejecuta mientras se cumpla la condicin. Puede ocurrir que dicho bloque no se ejecute ninguna vez. El bloque de sentencias se ejecuta mientras se cumpla la condicin. Dicho bloque se ejecutar al menos una vez. El bloque de sentencias se ejecuta hasta que se cumpla la condicin. Puede ocurrir que dicho bloque no se ejecute ninguna vez. El bloque de sentencias se ejecuta hasta que se cumpla la condicin. Dicho bloque se ejecutar al menos una vez.

Do While condicin bloque de sentencias Loop Do bloque de sentencias Loop While condicin Do Until condicin bloque de sentencias Loop Do bloque de sentencias Loop Until condicin

En cualquier momento podemos abandonar la ejecucin en mitad del bucle si dentro del bloque de sentencias colocamos la instruccin Exit Do. Veamos algunos ejemplos del uso de estas sentencias:
i = 2 Do While i < 8 Print i i = 2 + i Loop i = 3 Do Print i i = 2 * i Loop While i <= 12 i = 2 Do Until i >= 16 Print i i = i ^ 2 Loop i = 10 Do Print i i = i - 1 Loop Until i < 7

Imprime en pantalla los nmeros 2, 4 y 6

Imprime en pantalla los nmeros 3, 6 y 12

Imprime en pantalla los nmeros 2 y 4

Imprime en pantalla los nmeros 10, 9, 8 y 7

Hay que tener cuidado con no crear un bucle infinito, es decir, un bucle que no termine nunca, como por ejemplo los siguientes: i=2 Do While i > 0 Print i i=i+2 Loop Como i siempre es mayor que 0, el bucle no terminar nunca y el programa imprimir en pantalla todos los nmeros pares, hasta el infinito.

Tambin puede ocurrir lo contrario, es decir, que creemos un bucle que no se ejecute nunca: i=2 Do While i < 0 Print i i=i+2 Loop Como i no es menor que 0, el bucle nunca se ejecutar.
Ejercicios: 1) Escribe el cdigo de un programa que imprima en pantalla los nmeros del 1 al 10 junto a su cuadrado. 2) Un programa debe imprimir todos los nmeros impares en orden descendente entre el 100 y el 10. Cul ser su cdigo? 3) Queremos calcular la suma de los nmeros comprendidos entre 11 y 20, a. i. Escribe el cdigo correspondiente. 4) Escribe el cdigo que imprime todos los nmeros junto a comenzando por el 1, hasta que ese cubo sea superior a 5.000. su cubo,

4. Controles bsicos
3.1. Introduccin al uso de controles
Los controles son objetos que disponen de sus propias propiedades y mtodos, y cuya utilidad es la de facilitarnos el desarrollo de nuestras aplicaciones. Lo nico que tendremos que hacer es modificar sus propiedades (tamao, color, etc..) para incorporarlos en nuestros programas y asociarles el cdigo necesario para que se comporten como esperamos al ejecutar la aplicacin. Por ejemplo, el botn Aceptar que encontramos en multitud de programas es un control. Antes de empezar a conocer los controles bsicos veamos cuales son sus caractersticas generales:

Propiedades: Todos los controles disponen de una serie de propiedades las cuales podemos cambiar al incluirlos en nuestras aplicaciones. Ejemplos de propiedades son el color, el tipo de letra, el nombre, el texto, etc... Mtodos: Son procedimientos asociados a los controles, es decir, rutinas ya establecidas que podemos invocar desde nuestras aplicaciones para que se realice alguna operacin sobre el control. Por ejemplo el control ListView (la lista de archivos que aparece en el explorador de Windows) dispone del mtodo Order que te ordena los datos aparecidos en la lista. Eventos: Son acciones que pueden ser motivadas por el propio usuario o por el mismo sistema operativo. Ejemplos pueden ser el movimiento del ratn o hacer click sobre un botn. No necesitamos detectar cuando se ha producido un evento determinado, Windows lo detecta automticamente. Los eventos ya estn definidos, son bastantes y cada control cuenta con los suyos propios, aunque son muy parecidos. Lo nico que tendremos que hacer es asociar el cdigo necesario al evento que necesitemos tratar. La ventana donde aparecen los controles que Visual Basic carga por defecto nada ms arrancar la aplicacin aparece en la figura adjunta. Moviendo el ratn por encima de cualquier control aparecer un ToolTipText indicndonos el control de que se trata.

Cuando vayamos a utilizar un control en nuestro formulario, tendremos que darle un nombre. Aunque podemos poner el nombre que deseemos a un control, el nombre que le demos deber estar relacionado con la funcin que realizar el control; adems, es conveniente que indique el tipo de control de que se trata. Existe una convencin ampliamente aceptada que es la siguiente: se utilizan siempre tres letras minsculas que indican el tipo de control, seguidas por otras letras (la primera mayscula, a modo de separacin) libremente escogidas por el usuario, que tienen que hacer referencia al uso que se va a dar a ese control. La tabla siguiente muestra las abreviaturas de los controles ms usuales, junto con la nomenclatura inglesa de la que derivan: cmb chk cmd frm fra ComboBox CheckBox CommandButton Form Frame img lbl lin mnu opt Image Label Line Menu OptionButton pic shp txt tmr PictureBox Shape TextBox Timer

As por ejemplo, el botn Aceptar que comentamos antes podra tener en el formulario el nombre cmdAceptar.

3.2. Controles bsicos


Hay una serie de propiedades que son comunes a la mayora de los controles. Son las siguientes: Name: es el nombre con el que se conocer el control cuando lo utilicemos en el cdigo. En un mismo formulario no puede haber 2 controles con el mismo nombre. Conviene poner un nombre que represente la funcin que tiene el control en la aplicacin para que el cdigo quede ms claro. Alignment: alineacin que tendr el texto dentro del control: izquierda, centro o derecha. Appearance: aspecto del control: 3D o plano. BackColor: color del fondo del control. BorderStyle: es el tipo de contorno para el control, el estilo del borde. Caption: Es el texto que contendr el control. Esta propiedad no existe en el control TextBox. Enabled: establece si un control est habilitado para su modificacin por parte del usuario o no. Si un control no est habilitado, es decir, tiene la propiedad Enabled establecida en False, su color aparece un poco difuminado para indicar que no se puede utilizar ese control en ese momento. En la figura anterior podemos ver un men con una opcin habilitada y dos deshabilitadas. Font: tipo y tamao de letra que usa el control. ForeColor color de la letra del control. Heigth: altura del control. Left: distancia entre el borde izquierdo de un objeto y el borde izquierdo de su contenedor. TabIndex: es el orden que ocupa el control cuando se va pasando de uno a otro mediante la tecla tabulador. ToolTipText: Aqu indicaremos el texto que se mostrar cuando el ratn se site sobre el control. Este texto puede servir de aclaracin o ayuda sobre la funcin de dicho control. En la figura adjunta podemos ver el ToolTipText que aparece al dejar el puntero del Top ratn sobre el botn Abrir.
Left Heigth

Top: distancia entre el borde superior de un objeto y el borde superior de su contenedor. Visible: Devuelve o establece un valor que determina si el control es visible. Por ejemplo para ocultar un control podemos establecer el valor de esta propiedad a False. Width: anchura del control.

Width

TextBox
Mediante este control podremos realizar tanto la entrada como la salida de datos en nuestras aplicaciones. Las propiedades de las que dispone el control (adems de las generales de todos los controles) son las siguientes: CausesValidation: Esta propiedad sirve para indicar si queremos que al abandonar el control se genere un evento Validate. Desde el mtodo correspondiente a dicho evento se deber comprobar el valor introducido en el TextBox, permitindose as o no la salida. Esta propiedad podr tener el valor True o False.

MaxLength: nmero de caracteres mximo que puede contener el texto introducido en el TextBox. Cuando estamos introduciendo texto y llegamos al mximo nos alerta con un pitido. MultiLine: permite que el control tenga varias lneas de edicin. Esta propiedad podr tener el valor True o False. Locked: Si est con valor True bloquea el control, es decir, el usuario no puede introducir ni modificar el texto que contenga. Nos puede servir para utilizar el control como salida de datos sin que el usuario pueda modificarlos por error. Text: Es la propiedad equivalente a Caption en los dems controles. Aqu indicamos el texto que aparecer en el control. Podemos asignarle cualquier texto en el momento de disear el programa o durante la ejecucin del mismo. Tambin podemos leer el texto que haya introducido el usuario para tratarlo durante la ejecucin del programa.

Label
Su utilidad queda restringida a la visualizacin de datos en el programa, no permitiendo la introduccin de datos por parte del usuario. Este control sirve para mostrar mensajes en nuestro formulario que orienten al usuario sobre la utilidad de los dems controles que tengamos en la aplicacin o para indicarnos acciones que podemos realizar. Sus propiedades son las comunes a los dems controles, aunque podemos mencionar aqu la propiedad AutoSize: Hace que el tamao de la etiqueta se ajuste automticamente a la longitud del texto que contiene. Para este control no se suelen utilizar los eventos ya que su contenido suele cambiar poco a lo largo de la ejecucin de la aplicacin. A este control no se le puede dar el enfoque (al pulsar la tecla tabulador
Frame OptionButton TextBox

Label

CommandButton

ComboBox

nunca nos podremos colocar sobre este control). Antes de seguir comentando otros controles, podemos ver en la figura siguiente algunos de ellos.

CommandButton
Este control es el tpico botn que aparece en todas las aplicaciones y que al hacer click sobre l nos permite realizar alguna operacin concreta. Segn el cdigo que le asociemos podremos realizar las operaciones que queramos. El evento por excelencia de este control es click. Sus propiedades son: Cancel: si esta propiedad tiene el valor True quiere decir que se trata del botn de cancelacin. Ello implica que al pulsar la tecla Escape se ejecutar el cdigo asociado al evento click de dicho botn, independientemente de donde se encuentre el foco en ese momento.

Default: si esta propiedad tiene el valor True quiere decir que se trata del botn por defecto. Ello implica que al pulsar la tecla Intro se ejecutar el cdigo asociado al evento click de dicho botn, independientemente de donde se encuentre el foco en ese momento. Picture: Podemos escoger una imagen que aparecer sobre el botn. DisablePicture: es la imagen que se mostrar en el botn cuando ste se encuentre deshabilitado, es decir, cuando su propiedad Enabled sea False. DownPicture: imagen que mostrar el botn cuando est pulsado. NOTA: Para poder utilizar las tres propiedades anteriores es necesario que la propiedad Style est en el valor Graphical; en caso contrario el botn no podr contener dibujos. Style: Esta propiedad puede tomar dos valores: Standard o Graphical. Value: dando a esta propiedad desde el cdigo del programa el valor True, se generar el evento Click. Por lo tanto se trata de una forma de activar el botn desde el cdigo, igual que si se hubiese pulsado el ratn o el teclado.

CheckBox
El control CheckBox es una casilla de verificacin en la que nicamente cabe la posibilidad de que se encuentre marcada o desmarcada. Su principal propiedad es: Value: el valor ser Checked cuando la casilla de verificacin se encuentre marcada y Unchecked cuando est desmarcada.

OptionButton
Este control nos permite elegir una opcin entre varias de las que se nos plantean. Cada opcin ser un control OptionButton diferente. Observa la figura del ejemplo de ms abajo. De todas las opciones que se nos ofrece, slo podremos activar una. Si activamos cualquier otra opcin, se desactivar automticamente la ltima que tenamos activada. El marco que est alrededor de los 6 controles OptionButton se trata del control Frame , es opcional, aunque es conveniente colocarlo siempre que hagamos uso de las opciones. No slo por motivos de presentacin sino porque de esta manera podremos establecer grupos de controles OptionButton independientes en los que en cada grupo slo pueda haber una opcin activada a la vez. Tambin, al mover el marco se movern los controles incluidos en l facilitndonos las modificaciones. Para que los controles OptionButton queden englobados dentro de un control Frame, primero tendremos que colocar el control Frame en el formulario con el tamao adecuado y despus ir colocando los controles Optionbutton dentro del Frame. Del control Frame la nica propiedad que nos interesar es Caption, que es el texto que aparecer en el encabezado. La propiedad ms importante del control OptionButton es Value: Es el valor que tendr el control: True si se encuentra activado y False si no lo est. No se suele asociar cdigo a los eventos de este tipo de controles, sino nicamente conocer el valor que tienen: True o False.

EJEMPLO

Para practicar vamos a realizar una aplicacin que consistir en realizar con 2 nmeros que introduzcamos, una operacin que seleccionemos y mostrar el resultado. El formulario donde estarn todos los controles es el que aparece en la figura adjunta. La propiedad Caption de cada uno de los controles es la que se muestra en el formulario. Se ha modificado la propiedad Name de cada control para que al utilizarlos desde el cdigo sepamos cual es el control con el que trabajamos:
Los controles TextBox tienen los nombres: Num1, Num2 y Resul.

Los controles Optionbutton tienen

cada uno de ellos el mismo nombre que su caption


Los controles CommandButton tienen los nombres: Calcular, Limpiar y Salir. A los controles Label y al Frame no hace falta cambiarles el nombre.

Lo que habr que hacer ahora es asociar cdigo a cada uno de los botones que es de donde se van a realizar las operaciones:
Para el botn Calcular, que es el que nos mostrar el resultado segn la operacin seleccionada, hemos utilizado la instruccin If Then Else.

Private Dim a = b = r =

Sub Calcular_Click() r, a, b As Double Num1.Text Num2.Text 0

If suma.Value = True Then r = a + b ElseIf resta.Value = True Then r = a b ElseIf producto.Value = True Then r = a * b ElseIf division.Value = True Then r = a / b ElseIf potencia.Value = True Then r = a ^ b End If Resul.Text = r End Sub
El botn Limpiar Datos nos va a servir para borrar los datos introducidos por el usuario y el resultado preparando. El cdigo que tendremos que introducir es el siguiente:

Private Sub Limpiar_Click() Num1.Text = Num2.Text = Resul.Text = End Sub

El botn Salir nicamente contendr la sentencia End. Private Sub Salir_Click() End End Sub

Nota: el comando End hace que un programa finalice.

Image
Este control lo utilizaremos cuando necesitemos visualizar una imagen en nuestro programa. Para ello haremos uso de las dos propiedades siguientes: Picture: determina la imagen que se debe mostrar en el control. Esta propiedad contendr la direccin del archivo donde est almacenada la imagen. Si la imagen ha de cargarse en tiempo de ejecucin, habr que hacer uso de la funcin LoadPicture de la siguiente forma: Image1.Picture = LoadPicture("c:\mis documentos\dibujo.bmp") Stretch: si esta propiedad est establecida a False, el control se redimensionar al cargar la imagen, adaptndose al tamao de esta. Si el valor es True, ser la imagen la que se adapte al tamao del control.

PictureBox
El control cuadro de imagen es como un control Image ampliado; adems de poder visualizar imgenes nos permite dibujar puntos, lneas, rectngulos, crculos, etc... Dentro de l pueden colocarse incluso otro tipo de controles. Las propiedades ms importantes son: Picture: determina la imagen que se debe mostrar en el control. AutoSize: automatiza el tamao del control a la imagen, es decir, aquel se ajustar al tamao de la imagen que ha de contener. FillColor: Color que se utilizar como relleno cuando se dibujen formas en el formulario utilizando los mtodos Line o Circle. FillStyle: Tipo de relleno que se dar a las formas que se dibujen en el formulario utilizando los mtodos Line o Circle. Existen una serie de mtodos que nos van a permitir realizar determinados dibujos dentro de un PictureBox. Son los siguientes: Pset (x, y), color Dibuja un punto en la posicin dada por las coordenadas X e Y. El color vendr dado por el valor de la variable color. Line (x, y) - (z, w), color Dibuja una lnea entre los puntos (X, Y) y (Z, W) con el color especificado. Line (x, y) - (z, w), color, B Dibuja un rectngulo cuyas esquinas superior izquierda e inferior derecha sern respectivamente los puntos de coordenadas (X, Y) y (Z, W). El color del borde est dado por el valor de color. Circle (x, y), radio, color Dibuja un crculo con centro el punto (X, Y). Cls Borra el contenido del PictureBox.

Todos los mtodos anteriores funcionan igualmente sobre el formulario. Si queremos que los dibujos se realicen sobre un PictureBox tendremos que anteponer el nombre de este antes de todos los mtodos, separados por un punto. En aquellos en los que sea posible, el tipo de relleno y el color del mismo estarn determinados por los atributos establecidos en FillStyle y en FillColor. El estilo de las lneas (continuas, discontinuas) y su grosor se establecen mediante las propiedades DrawWidth y DrawStyle. El siguiente ejemplo hace uso de uno de estos mtodos. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, _ X As Single, Y As Single) If Button = 1 Then PSet (X, Y), vbBlue End Sub El ejemplo anterior ir pintando de color azul aquellos puntos por los que vaya pasando el ratn, siempre que tengamos pulsado el botn primario del mismo. Esto es as porque la condicin If hace que el mtodo Pset slo se ejecute si la variable Button (variable que determina que botn del ratn est pulsado en cada momento) vale 1. El valor de Button ser 0 si no se encuentra pulsado ningn botn, 1 si el botn pulsado es el primario y 2 si es el secundario.

Line

Shape

Estos dos controles son de los ms simples que podemos encontrar en Visual Basic. Se utilizan para dibujar lneas el primero de ellos y para dibujar distintas figuras o polgonos el segundo. Son controles estticos, pues no pueden responder a ningn tipo de evento. Las propiedades caractersticas a ambos controles son: BorderColor: color de la lnea o color del borde que delimita la figura. BorderStyle: estilo de la lnea o del borde: continuo, discontinuo, etc... BorderWidth: anchura de la lnea o del borde de la figura. Adems de estas, hay otras propiedades caractersticas de cada control. Las propias del control Line son: X1, X2, Y1, Y2: Estas cuatro coordenadas determinan los puntos origen y final de la lnea. Recordar que en informtica el origen de coordenadas se corresponde con la esquina superior izquierda. El control Shape tiene estas propiedades caractersticas: FillColor: color de relleno de la figura. FillStyle: el valor de esta propiedad determinar el tipo de relleno que tendr la figura. Este puede ser slido, transparente, con lneas horizontales, verticales, ... Conviene recordar ahora que habamos dicho que existan dos propiedades comunes a todos los controles que eran BackColor y BackStyle, y que tenan una funcin semejante a la que estamos describiendo para FillColor y FillStyle. Si en un Shape tenemos activadas las dos opciones, el color que prevalecer como color de relleno ser el que est indicado en la propiedad FillColor. Shape: propiedad cuyo valor sirve para especificar que figura se dibujar. Los valores posibles son 0 (rectngulo), 1 (cuadrado), 2 (valo), 3 (crculo), 4 (rectngulo redondeado) y 5 (cuadrado redondeado).

ComboBox
Este control es una lista desplegable donde el usuario puede seleccionar una de las posibles opciones que aparecen cuando desplegamos la persiana. El control ComboBox posee dos listas, una visible, que es la que se despliega, y otra no visible. La informacin de la lista visible se guarda en la propiedad List. El primer elemento de la lista est almacenado en la propiedad List(0), el segundo elemento en List(1) y as sucesivamente. El primer elemento de la lista tiene el subndice 0. La propiedad ListCount contiene el nmero de elementos que existen en la lista desplegable. El ltimo elemento de la lista tiene el subndice ListCount 1. Como dijimos este control posee una lista adicional no visible. Los elementos de esta lista no visible se almacenan en la propiedad ItemData; ItemData(0) para el primero, ItemData(1) el segundo, etc. Esta propiedad solo admite nmeros enteros. Cuando hacemos clic sobre una de las opciones de la lista, se muestra en la ventana de control. La propiedad Text almacena el contenido de esa ventana; es decir, Text guarda la misma informacin que la propiedad List(n), donde n es el subndice del elemento seleccionado. La propiedad ListIndex contiene el subndice del elemento seleccionado, o sea n. Cuando la ventana superior de la persiana no contiene nada, la propiedad Text est vacia y ListIndex alamacena 1. Si necesitamos que adems la aplicacin haga algo al seleccionar una opcin de la lista, podemos programar el evento Click del control. El mtodo AddItem inserta un nuevo elemento en la lista. La propiedad NewIndex contiene el ndice del ltimo elemento que hemos insertado. Como propiedades caractersticas de este elemento de control podemos destacar: List: Podemos aadir los Items de la lista no en el momento de ejecucin del programa, sino en el momento de su creacin. Para ello accedemos a esta propiedad y vamos escribiendo los distintos elementos que queremos que salgan al desplegar la lista. Una vez escrito el primero de ellos, para seguir aadiendo elementos debemos pulsar Ctrl+Intro. Sorted: permite especificar si los elementos de la lista aparecern ordenados alfabticamente. Style: existen tres posibles estilos para el ComboBox: 0 (Dropdown Combo) 1 (Simple Combo) Este estilo hace que el texto del ComboBox pueda seleccionarse de la lista o bien escribirse directamente sobre el mismo. No aparece la flecha que nos permite desplegar la lista, por lo que no podremos escoger los elementos de la misma. Simplemente se nos permitir escribir directamente sobre el control como si se tratase de un control TextBox. No es posible escribir directamente sobre el control; nicamente pueden escogerse los elementos de su lista.

2 (Dropdown List)

Timer
Este control funciona de forma distinta a los dems pues no aparece en el formulario durante la ejecucin del programa; slo lo veremos en el proceso de diseo. Se utilizar cuando queramos que una o varias sentencias se ejecuten de forma repetida a lo largo del desarrollo del programa. La propiedad caracterstica de este control es Interval. Esta contendr el valor, en milisegundos, que especifica cada cuanto tiempo deben ejecutarse las sentencias incluidas en el cdigo asociado al control. Para detener la ejecucin del cdigo asociado al control bastar con establecer el valor de la

propiedad Interval a 0. Por ejemplo, si queremos que un programa emita un pitido cada segundo deberemos escribir el siguiente cdigo
Private Sub tmrTemporizador_Timer() Beep End Sub

adems de tener la propiedad Interval del temporizador establecida en 1000.

HScrollBar y VscrollBar
Son las tpicas barras de desplazamiento horizontal y vertical que aparecen en multitud de programas. Las propiedades a destacar de estas barras son: Value: valor que indica la posicin en la que se encuentra el indicador de desplazamiento de la barra. Este valor estar comprendido entre los valores Max y Min. Max: valor mximo que podr tomar la propiedad Value. Min: valor mnimo que podr tomar la propiedad Value. SmallChange: esta propiedad indica cuantas unidades cambiar Value al hacer click en una de las flechas de los extremos de la barra de desplazamiento. LargeChange: nmero de unidades que cambiar el valor de Value al hacer click dentro de la barra de desplazamiento.

3.3. Eventos
Los eventos son acciones que se pueden realizar en cualquier control: click, doble click, movimiento del ratn, A estos eventos se les puede asociar cdigo para que se ejecute al producir el evento. Los eventos ms habituales son: MouseMove: al mover el ratn por encima del control. MouseDown: al pulsar cualquier botn del ratn. MouseUp: al soltar cualquier botn del ratn. Los tres eventos anteriores poseen los cuatro parmetros siguientes: Button, Shift, X e Y. Cada uno de ellos toma los siguientes valores: Button: toma el valor 0 si no se aprieta ningn botn del ratn, el valor 1 si el botn que se aprieta es el primario, el valor 2 si el botn pulsado es el secundario y 4 si se pulsa el botn central del ratn. nos indica si al pulsar el ratn tenamos pulsada alguna de las teclas Shift, Ctrl, Alt o AltGr. Sus posibles valores son los siguientes: 0 1 2 4 6 X e Y: si no est pulsada ninguna de estas teclas, est pulsada la tecla Shift, est pulsada la tecla Ctrl, pulsada la tecla Alt, pulsada la tecla AltGr.

Shift:

guardan el valor de las coordenadas X e Y en las que se encontraba el puntero del ratn en el momento de producirse el evento.

Veamos un ejemplo del uso de uno de estos controles:


Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then Print "Has pulsado el botn primario en la posicin " & X & ", " & Y ElseIf Button = 2 Then Print "Has pulsado el botn secundario en la posicin " & X & ", "& Y Else Print "Has pulsado el botn central en la posicin " & X & ", " & Y End If End Sub

Si pulsamos uno de los botones del ratn, el programa imprimir en pantalla cual de ellos era y la posicin en la que lo hemos hecho. Change: al cambiar el contenido del control, por ejemplo al escribir algo en un TextBox. Click: al hacer click con el botn izquierdo del ratn sobre el control. DblClick: al hacer doble click con el con el botn izquierdo del ratn sobre el control. KeyDown: al presionar una tecla en el teclado. Este evento tiene dos parmetros: KeyCode, que se corresponde con un cdigo numrico que depender de la tecla pulsada, y Shift , que valdr 1 o 0 dependiendo respectivamente de si se encuentra pulsada o no la tecla Shift.
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Print KeyCode, Shift End Sub

KeyUp: semejante al anterior, salvo que este evento se genera al soltar la tecla que tenamos presionada. KeyPress: al pulsar una tecla del teclado y mantenerla pulsada. Es un evento parecido a KeyDown, aunque dispone de un solo parmetro, KeyAscii. Este parmetro es particular de cada carcter, y es un nmero entre 0 y 255 que nos informa del carcter pulsado. (Aunque parezca igual que el parmetro KeyCode del evento KeyDown, no son lo mismo. KeyAscii diferencia entre pulsar a o pulsar A, mientras que KeyCode no). El siguiente ejemplo imprime el carcter pulsado.
Private Sub Form_KeyPress(KeyAscii As Integer) Print Chr(KeyAscii) End Sub

Gotfocus: este evento se activa cuando el control recibe el enfoque, es decir, cuando se activa el control en tiempo de ejecucin para introducir datos en l o realizar alguna operacin. Lostfocus: Es el contrario del anterior evento, se activa cuando el control pierde el enfoque, es decir, se pasa a otro control para seguir introduciendo datos.

5. Formularios
Los formularios son tratados como controles con sus propiedades, eventos y mtodos. Aunque digamos que se trata de un control especial que utilizamos para contener los controles ms usuales con los que construiremos nuestras aplicaciones: TextBox, Label, CommandButton, etc... Vamos a ver las propiedades y eventos ms importantes de los formularios, como trabajar con mltiples formularios y como se establece la comunicacin entre ellos. Mientras que los formularios con los atributos por defecto son ventanas de las que se utilizan en todas las aplicaciones Windows, cuando se les inhabilita los botones de minimizar y maximizar junto con la caracterstica de ser redimensionables tenemos una ventana a la que se denomina cuadro de dilogo. Estos se caracterizan por tener unas dimensiones fijas (p. e., no se puede redimensionar el cuadro de dilogo Imprimir que se muestra al ejecutar el comando del mismo nombre en cualquier programa Windows) y un atributo adicional, el de ser modales o no modales. Un cuadro de dilogo es modal cuando se muestra sobre todas las dems ventanas de la aplicacin y no se puede realizar ninguna otra operacin en tanto no se cierre dicho cuadro de dilogo. Ser no modal en caso contrario.

5.1. Propiedades
Las propiedades ms comunes de los formularios y que son similares al resto de los controles son: Name: Nombre del formulario, necesario para llamar al formulario desde el cdigo. Caption: Texto que aparece en el ttulo del formulario Backcolor: Color de fondo del formulario. Forecolor: Color del texto del formulario. FillColor: Color que se utilizar como relleno cuando se dibujen formas en el formulario utilizando los mtodos Line o Circle que vimos anteriormente. FillStyle: Tipo de relleno que se dar a las formas que se dibujen en el formulario utilizando los mtodos Line o Circle. Otras propiedades que son propias de los formularios son: WindowState: Nos permite indicar el modo en el que aparecer el formulario cuando sea llamado. Tiene tres posibles valores: 0 Normal 1 - Minimizado. 2 - Maximizado. MinButton y MaxButton: Son dos propiedades que admiten nicamente los valores True o False. Permiten que queden habilitados los botones minimizar y maximizar, respectivamente de un formulario. Nos sirven para controlar que el usuario no pueda cambiar el tamao en que presentemos un formulario en pantalla. Si slo desactivamos una de las propiedades, el botn correspondiente aparecer desactivado, pero si desactivamos las dos propiedades, no aparecer ninguno de los 2 botones, nicamente lo har el botn con la "x" de cerrar. ShowInTaskbar: Mediante esta propiedad podremos controlar que determinado formulario aparezca o no en la barra de tareas de Windows. En una aplicacin con mltiples formularios, si para cada uno de los que aparezca en pantalla, nos aparece tambin en la barra de tareas, al final la barra estar llena de aplicaciones. Podemos hacer que determinados formularios no aparezcan en ella colocando esta propiedad a False. Icon: Nos permite modificar el icono que aparece a la izquierda de la barra del ttulo de cualquier formulario, que es donde aparece el men de control, para personalizarlo en nuestra aplicacin ControlBox: Controla la aparicin del men de control. Esta propiedad por defecto est activada, aunque si la ponemos a False, no slo hacemos desaparecer el icono que simboliza al men de control, sino que desaparecen tambin los botones de minimizar, maximizar y cerrar. nicamente aparece la barra de titulo con el caption.

Si adems de colocar ControlBox a False, colocamos MinButton y MaxButton a False y dejamos vaca la propiedad Caption, es decir sin nada en el ttulo, nos aparecer un formulario sin barra de titulo, es decir, nicamente un rectngulo gris que s podremos cambiar de tamao apuntando sobre el borde. BorderStyle: Esta propiedad es la que ms opciones tiene y la que ms posibilidades ofrece para cambiar el aspecto de nuestros formularios. El cambiar el valor de esta propiedad afecta tambin a las propiedades MinButton, MaxButton y ShowInTaskbar que cambian automticamente segn la opcin que hayamos seleccionado. En la siguiente tabla aparece una explicacin de cada una de sus opciones y de que valor adoptan otras propiedades del formulario:

Opciones de BorderStyle

Utilidad

MinButton MaxButton ShowInTaskbar

Muestra

0- None

No aparecen bordes ni barra de titulo. No podemos modificar su tamao de ninguna forma. False Sirve para pantallas de presentacin al principio de nuestra aplicacin No se puede cambiar su tamao.Ni siquiera se puede maximizar haciendo doble click sobre la barra del ttulo, algo que s se puede hacer desactivando los botones MinButton y MaxButton en un formulario normal Formulario por defecto de VB.Contiene todos los botones de la barra del ttulo, se puede cambiar su tamao actuando sobre el borde y aparece en la barra de tareas.

False

False

1 - Fixed Single

False

False

True

2 - Sizable (aparece por defecto)

True

True

True

3 - Fixed Dialog

No se puede cambiar su tamao y no aparece en la barra de tareas

False

False

False

4 - Fixed ToolWindow

Aparece con la barra de titulo ms pequea, es el que utiliza VB para mostrar la caja de herramientas. No aparece el icono del men de control ni aparece en la barra de tareas.

False

False

False

5 - Sizable ToolWindow

Igual que el anterior pero s permite modificar su tamao actuando sobre el borde.

False

False

False

5.2. Utilizacin de multiples formularios


Para utilizar varios formularios en nuestra aplicacin tendremos que aadir cada uno de ellos mediante la opcin de men Insert / Form o pulsando sobre el botn .

Mtodo Show
Para llamar a un formulario desde el cdigo utilizaremos el mtodo Show. Si el formulario 2 tiene en la propiedad Name form2, para llamarlo desde otro formulario pondremos: Form2.Show Si no ponemos ningn argumento se asume que el formulario aparece en modo no modal, es decir, se permitir que se active cualquier otro formulario sin cerrar el formulario 2. La otra modalidad que existe es modal, lo que significa que no se permite el enfoque hacia ningn otro formulario hasta que no se cierre el actual. Este ltimo modo puede servir para cuadros de dilogo que soliciten ciertos parmetros para que la aplicacin siga funcionando: una contrasea. Los argumentos del mtodo Show son: 0 1 Ejemplo: vbModeless vbModal Form2.Show vbModal No modal Modal

Sentencia Load
La sentencia Load seguida del nombre de un formulario provoca que se cargue el formulario en memoria pero sin visualizarse, ya que la propiedad Visible se coloca a False. Ejemplo: Load Form2

Realmente el mtodo Show realiza la carga del formulario en memoria, si no estaba cargado antes, y coloca la propiedad Visible del formulario a True. Durante este proceso se provoca la activacin de los eventos Load y Activate del formulario en ese orden. En dichos eventos se puede colocar el cdigo necesario que haga que el formulario se inicie siempre con los valores que queramos. Si el formulario ya estaba cargado en memoria, mediante una sentencia Load o porque se haya ocultado con el mtodo Hide, al llamarlo con el mtodo Show, nicamente se realizar la modificacin de la propiedad Visible a True, y no se volver a efectuar el proceso de carga del formulario a memoria. Por tanto el formulario aparecer con los mismos datos que tena cuando se ocult. Ahora el nico evento que se activar es el Activate que se activa cada vez que un formulario recibe el enfoque o pasa a ser el formulario activo.

Sentencia Unload
Nos permite descargar un formulario de la memoria. Se introduce junto al nombre del formulario que vayamos a descargar: Unload Form2 Si nos encontramos dentro del mismo formulario para descargarlo no hace falta colocar el nombre sino nicamente: Unload me

En una aplicacin con varios formularios debemos usar esta sentencia para los mtodos que terminamos de utilizar, de esta forma liberaremos espacio en memoria para que los otros formularios puedan aprovecharla mejor. La sentencia unload provoca la activacin de los eventos: Deactivate: Al contrario que el evento Activate, ste se activa cada vez que un formulario pierde el enfoque. Tambin se activa este evento al utilizar el mtodo Hide.
Unload: Este evento recibe el parmetro Cancel, y modificando su valor podemos hacer que se suspenda (cancele) el proceso de descarga de un formulario. Mediante 2 lneas de cdigo podemos hacer una pregunta al usuario cada vez que se cierra un formulario para que nos confirme la operacin:

Este cdigo provocar que cada vez que se cierre el formulario de cualquier forma, (no slo mediante la sentencia Unload sino tambin haciendo click sobre la "x", el men de control o con ALT + F4) aparezca un mensaje preguntndonos si realmente queremos salir:

Query_Unload: Este evento se produce realmente antes que el evento Unload.

En este evento adems de recoger el parmetro Cancel, tambin nos proporciona el parmetro UnloadMode que segn el valor que tenga podremos saber desde donde se produce la posible descarga del formulario. Los valores que puede tener son los siguientes: 0 - vbFormControlMenu: Significa que el cierre del formulario se ha producido: Pulsando sobre la "x" Mediante la opcin cerrar del Men de Control. Pulsando ALT + F4. Cerrando el formulario desde la Barra de Tareas. 1 - vbFormCode: Indica que se ha cerrado el formulario utilizando la sentencia Unload. 2 - vbAppWindows: Se cierra el formulario porque se apaga el sistema desde Inicio / Apagar Sistema. 3 - vbAppTaskManager: Desde el administrador de tareas de windows (CTRL + ALT + DEL) se cierra la aplicacin que contiene el formulario 4 - vbFormMDIForm: Se produce cuando se cierra un formulario hijo porque se est cerrando el formulario MDI que lo contiene. Mediante unas lneas de cdigo vamos a probar las posibilidades de este evento. Segn desde donde se cierre el formulario del que consta la aplicacin aparecer un mensaje distinto pidindonos confirmacin en el proceso de descarga. Nota: Para el correcto funcionamiento de este ejemplo se debe compilar la aplicacin mediante File / Make EXE File... y ejecutar la aplicacin desde fuera del entorno de trabajo de VB.Esto

es as para que se pueda cerrar la aplicacin apagando el sistema y desde el administardor de tareas. El cdigo asociado al evento Query_Unload es el siguiente:

5.3. Comunicacion entre formularios


Desde un formulario se puede tener acceso a los controles y propiedades de otro formulario. En lugar de realizar el paso de parmetros cuando se llama a otro formulario que queremos que aparezca con unos determinados valores iniciales, lo que se hace es acceder a los controles del otro formulario y despus mostrarlo mediante el mtodo Show. Para acceder a los controles de otro formulario se sigue la siguiente sintaxis: Formulario!Control.Propiedad = valor Se debe colocar una admiracin "!" entre el formulario y el control y un punto entre el control y la propiedad. Ejemplo: Form2!Label1.Caption = "Nmero de Clientes" Al acceder a las propiedades de otro formulario automticamente se carga ste en memoria, si no lo estaba ya antes. Una vez que hayamos modificado sus propiedades los visualizaremos con el mtodo Show. A V I S O : No se puede acceder a las variables declaradas en otro formulario, de modo que si queremos trabajar con variables generales, las cuales sean accesibles desde cualquier formulario de la aplicacin, tendremos que declararlas como Pblicas desde un mdulo de cdigo.

Para insertar un mdulo en nuestro proyecto tendremos que ejecutar el men Proyecto/Agregar
Mdulo o pulsar sobre el botn

de la barra de herramientas. Nos aparecer una ventana en la que nicamente podremos colocar las variables y procedimientos o funciones que queramos que sean pblicas para toda la aplicacin. Ahora la ventana de proyecto tiene una lnea ms con un icono distinto indicando que se trata de un mdulo de cdigo:

6. Contantes y funciones de Visual Basic


6.1. Constantes
A continuacin se detalla una lista con las constantes ms usadas definidas en Visual Basic y su significado: vbBlack vbBlue vbCyan vbGreen vbMagenta vbRed vbWhite vbYellow vbYes vbNo vbCrLf color negro color azul color azul celeste color verde color violeta color rojo color blanco color amarillo Si No Introduce un retorno de carro y un avance de lnea. De esta forma podemos hacer que se comience a escribir en una nueva lnea.

Las siguientes constantes se utilizan en los MsgBox para indicar la seal y los botones que se mostrarn: vbCritical seal de error vbExclamation seal de advertencia vbInformation seal de informacin vbQuestion seal de interrogacin vbOkOnly botn de aceptar vbOkCancel botones aceptar y cancelar vbYesNo botones S y No vbYesNoCancel botones S, No y Cancelar vbAbortRetryIgnore botones Anular, Reintentar y Omitir Para determinar que carcter se ha pulsado en el teclado podemos comprobar su cdigo ASCII. Visual Basic nos facilita esta labor mediante estas constantes: vbKeyUp flecha arriba vbKeyDown flecha abajo vbKeyLeft flecha izquierda vbKeyRight flecha derecha vbKeyReturn tecla Intro vbKeyEscape tecla Escape vbKeySpace tecla espacio vbLeftButton botn izquierdo del ratn vbRightButton botn derecho del ratn Evidentemente hay muchas ms, aunque no las expondremos aqu. Los cuatro primeros casos propuestos nos servirn para, por ejemplo, mover un objeto por la pantalla con la ayuda de las teclas de desplazamiento, como sucede en un juego.

Funciones
Una funcin nos servir para realizar un clculo u obtener un determinado valor. Entre las mltiples existentes podemos destacar las siguientes, agrupadas en categoras.

6.2. Funciones matemticas


Abs(nmero) Sgn(nmero) Int(nmero) Sqr(nmero) Round(nmero, numdecimales) Sin(ngulo) Cos(ngulo) Tan(ngulo) Devuelve el valor absoluto de nmero Indica el signo de nmero Devuelve la parte entera de nmero Halla la raz cuadrada de nmero Redondea nmero con las posiciones decimales indicadas Seno de ngulo Coseno de ngulo Tangente de ngulo

6.3. Funciones aleatorias


Rnd Randomize Devuelve un nmero aleatorio entre 0 y 1 Inicializa el generador aleatorio

6.4. Funciones de cadenas de caractres


Left(cadena, num) Right(cadena, num) Mid(cadena, pos, num) Len(cadena) LCase(cadena) UCase(cadena) Extrae num caracteres de cadena contando de izquierda a derecha Extrae num caracteres de cadena contando de derecha a izquierda Extrae num caracteres de cadena a partir de la posicin pos Devuelve la longitud de la cadena Convierte la cadena a minsculas Convierte la cadena a maysculas

6.5. Funciones de fechas


Date Time Now Day(Date) WeekDay(Date) Month(Date) Year(Date) MonthName(num) WeekdayName(num) Hour(Time) Minute(Time) Second(Time) Devuelve la fecha actual Devuelve la hora actual Devuelve la fecha y hora actuales Devuelve el da del mes Devuelve el da de la semana en que nos encontramos, como nmero y teniendo en cuenta que el 1 es el Domingo, 2 lunes, ... Devuelve el mes en que estamos, como nmero Devuelve el ao Devuelve el nombre del mes que representa num. Devuelve el da de la semana que representa num. Recordar que el 1 es el domingo, 2 lunes, ... Devuelve la hora Devuelve los minutos Devuelve los segundos

6.6. Funciones de comprobacin


IsNumeric(dato) IsDate(dato) Comprueba si un dato es numrico Comprueba si un dato es de tipo fecha u hora

6.7. Otras funciones


Asc(carcter) Chr(cdigoASCII) Beep Print Devuelve el cdigo ASCII del carcter indicado Devuelve el carcter correspondiente al cdigo ASCII indicado Emite un pitido Imprime en pantalla el resultado de la expresin o valor que aparece a su derecha. Por defecto, la impresin tendr lugar en el

formulario. Si deseamos imprimir por ejemplo dentro de un PictureBox, tendremos que anteponer el nombre de ste antes de la instruccin Print, separados por un punto. Si queremos escribir varios datos en una misma lnea, podemos utilizar los siguientes separadores entre unos y otros:
Separador Resultado

, (coma) ; (punto y coma) & (andpersand)

los datos quedan separados por un tabulador los datos quedan separados por un nico espacio en blanco los datos se escriben unos junto a otros, sin separacin
Resultado en pantalla

Ejemplos

Print 22, hola Print 22; hola Print 22 & hola

22 hola 22 hola 22hola

6.8. Las funciones InputBox y MsgBox


La funcin InputBox se utilizar cuando queramos que el usuario introduzca algn dato. Esta funcin presenta la siguiente sintaxis: variable = InputBox (mensaje, [titulo], [valor por defecto]) donde variable es una variable de tipo String en la que se almacenar el dato introducido por el usuario, y mensaje es el mensaje que se mostrar en la ventana de entrada de datos. Los valores que aparecen entre corchetes es porque su inclusin en la funcin InputBox es opcional, por lo que pueden omitirse. Ttulo representa el texto que aparecer como cabecera en la ventana, y Valor por defecto es el valor que tomar la variable si el usuario no introduce ningn valor en la casilla correspondiente. El siguiente ejemplo nombre = InputBox (escriba su nombre,AVISO) mostrara la ventana de entrada de datos de la figura, y almacenara el valor introducido por el usuario en la variable nombre (que debe ser de tipo String).

La funcin MsgBox permite mostrar un mensaje. La sintaxis de esta funcin es como en el siguiente ejemplo: MsgBox No se puede calcular el factorial de un nmero negativo, _ vbCritical + vbOKOnly, Error El resultado del ejemplo anterior sera una ventana como la que aparece a continuacin. Como puede verse la funcin MsgBox lleva tres argumentos separados por comas; el primero de ellos es el cuerpo del mensaje, en el segundo se hace referencia tanto al dibujo que se mostrar como al botn o botones que aparecern y en el

ltimo se indica el ttulo de la ventana en la que aparece el mensaje. La funcin MsgBox nos permite conocer que botn ha pulsado el usuario como respuesta al mensaje. Por ejemplo, una funcin MsgBox en la que aparecieran un botn SI junto a un botn NO (vbYesNo), tendra el valor vbYes si pulsamos el botn SI o el valor vbNo si el botn pulsado es NO. Vemoslo ms claramente en el siguiente ejemplo If MsgBox ("Realmente desea salir?", vbYesNo + vbExclamation, _ "ATENCION") = vbYes Then End Esta lnea de cdigo hace que aparezca una ventana preguntndonos si deseamos salir del programa, en la que aparecern los botones <Si> o <No>. Si pulsamos el botn <Si>, el programa finalizar (comando End). Nota importante: conviene resaltar aqu que cuando una sentencia de Visual Basic es demasiado larga y no cabe en una lnea, antes de comenzar a escribir la continuacin de dicha sentencia en la lnea inferior es necesario escribir el carcter de subrayado ( _ ) al finalizar la lnea anterior como puede observarse en el ltimo ejemplo. Las distintas combinaciones de dibujos y botones que pueden mostrarse en un MsgBox se encuentran en el apartado 6.1. , aunque los repetiremos aqu: vbCritical vbExclamation vbInformation vbQuestion vbOkOnly vbOkCancel vbYesNo vbYesNoCancel vbAbortRetryIgnore seal de error seal de advertencia seal de informacin seal de interrogacin botn de aceptar botones aceptar y cancelar botones S y No botones S, No y Cancelar botones Anular, Reintentar y Omitir

7. El editor de mens
Cuando queramos aadir a nuestros programas una barra de mens, la tarea ser sencilla utilizando el editor de mens. Para activar el editor de mens debemos ir al men Herramientas de Visual Basic y all escoger la opcin Editor de mens, o bien hacer clic sobre el botn correspondiente barra de herramientas Estandar. Aparecer una ventana como la siguiente: de la

Caption: ser el texto que aparecer en el men. Si se desea que alguna de las letras del men sirva para acceder de forma rpida a dicho men, se debe situar el carcter & antes de esa letra. Como se puede observar en cualquier programa Windows esto har que ese carcter del men aparezca subrayado. (Este mismo carcter & puede utilizarse de modo anlogo en el caption de un CommandButton. Si pulsamos la combinacin de teclas ALT+ el carcter escogido ser como hacer click con el ratn en dicho botn) Para incluir un separador entre distintas opciones del men, esta propiedad debe ser (un guin). Name: es el nombre con el que nos referiremos al men desde el cdigo. Shortcut: asocia una combinacin de teclas para acceder al men de forma abreviada. Checked: determina si aparecer o no una marca de verificacin a la izquierda de la opcin del men. Enabled: si esta casilla no est marcada, dicho men no ser accesible apareciendo difuminado. Visible: determina si dicho elemento del men podr verse o no. Estas tres ltimas propiedades pueden modificarse en tiempo de ejecucin estableciendo su valor a True o a False. Cuando queramos que un men est dentro de otro, es decir, sea un submen, no tendremos ms que tabularlo en el editor de mens mediante el botn del mismo. El nico evento disponible para un men es Click , que corresponde a la seleccin de la opcin, independientemente de que sta se realice con el ratn o con el teclado. Para crear un men emergente o men contextual no tememos ms que crearlo como si se tratase de un men normal y hacerlo invisible. Para abrirlo haremos uso del mtodo PopupMenu, como se muestra en el siguiente ejemplo.

If Button = vbRightButton Then PopupMenu nombremen

Anda mungkin juga menyukai