VISUAL BASIC 6.0

ENTORNO DE PROGRAMACIÓN VISUAL BASIC 6.0

INTRODUCCIÓN: ¿QUÉ ES VISUAL BASIC 6.0?

Visual Basic 6.0 es una excelente herramienta de programación que permite crear aplicaciones propias (programas) para Windows 95/98 o Windows NT. Con ella se puede crear desde una simple calculadora hasta una hoja de cálculo de la talla de Excel (en sus primeras versiones...), pasando por un procesador de textos o cualquier otra aplicación que se le ocurra al programador. Sus aplicaciones en Ingeniería son casi ilimitadas: representación de movimientos mecánicos o de funciones matemáticas, gráficas termodinámica, simulación de circuitos, etc.

Este programa permite crear ventanas, botones, menús y cualquier otro elemento de Windows de una forma fácil e intuitiva. El lenguaje de programación que se utilizará será el Basic, que se describirá en el siguiente capítulo.

A continuación se presentarán algunos aspectos del entorno de trabajo de Visual Basic 6.0:

menús, opciones, herramientas, propiedades, etc.

EL ENTORNO DE PROGRAMACIÓN VISUAL BASIC 6.0

Cuando se arranca Visual Basic 6.0 aparece en la pantalla una configuración

similar a la mostrada en la pantalla de visual. En ella se pueden distinguir los siguientes elementos:

1. La barra de títulos, la barra de menús y la barra de herramientas de Visual

Basic 6.0 en modo Diseño (parte superior de la pantalla).

2. Caja de herramientas (toolbox) con los controles disponibles (a la izquierda de la ventana).

3. Formulario (form) en gris, en que se pueden ir situando los controles (en el

centro). Está dotado de una rejilla (grid) para facilitar la alineación de los controles.

4. Ventana de proyecto, que muestra los formularios y otros módulos de programas que forman

parte de la aplicación (arriba a la derecha).

 

 

 

 

5. Ventana de Propiedades, en la que se pueden ver las propiedades del objeto seleccionado o del propio formulario (en el centro a la derecha). Si esta ventana no aparece, se puede hacer visible con la tecla <F4>.

6. Ventana FormLayout, que permite determinar la forma en que se abrirá la aplicación cuando comience a ejecutarse (abajo a la derecha).

 

 

 

Tipos de datos

Al igual que C y otros lenguajes de programación, Visual Basic dispone de distintos tipos de datos, aplicables tanto para constantes como para variables. La Tabla 3.2 muestra los tipos de datos disponibles en Visual Basic.

Tipo Descripción Carácter de declaración

TIPO

COMENTARIO

BOOLEAN

Sólo admite 2 valores TRUE o FALSE

BYTE

admite valores entre 0 y 255

INTEGER

admite valores entre -32768 y 32767

LONG

admite valores entre -2.147.483.648 y 2.147.483.647

SINGLE

admite valores decimales con precisión simple

DOUBLE

admite valores decimales de doble precisión

CURRENCY

válido para valores de tipo moneda

STRING

cadenas de caracteres

Variant

Admite cualquier tipo de datos

DATE

fechas, permite operar con ellas

 

Tipos de datos en Visual Basic 6.0.

En el lenguaje Visual Basic 6.0 existen dos formas de agrupar varios valores bajo un mismo nombre. La primera de ellas son los arrays (vectores y matrices), que agrupan datos de tipo homogéneo. La segunda son las estructuras, que agrupan información heterogénea o de distinto tipo. En Visual Basic 6.0 las estructuras son verdaderos tipos de datos definibles por el usuario.

Para declarar las variables se utiliza la sentencia siguiente:

Dim NombreVariable As TipoVariable cuyo empleo se muestra en los ejemplos siguientes:

Dim Radio As Double, Superficie as Single

Dim Nombre As String

Dim Etiqueta As String * 10

Dim Francos As Currency

Dim Longitud As Long, X As Currency

Es importante evitar declaraciones del tipo:

Dim i, j As Integer

pues contra lo que podría parecer a simple vista no se crean dos variables Integer, sino una Integer

(j) y otra Variant (i).

En Visual Basic 6.0 no es estrictamente necesario declarar todas las variables que se van a utilizar (a no ser que se elija la opción Option Explicit que hace obligatorio el declararlas), y hay otra forma de declarar las variables

TIPOS, DECLARACIONES Y ALCANCES DE LAS VARIABLES

Que son las variables

En cualquier programa necesitamos hacer cálculos, usar información, procesarla y mostrarla. En la mayoría de los casos, necesitamos un lugar temporal en el cual guardar parte de esa información, incluso toda.

Es aquí donde entran en juego las variables, las que nos permite guardar datos en memoria, para que cuando los necesitemos, podamos tomarlos, modificarlos y volverlos a guardar para usar mas tarde.

La memoria es el lugar donde el ordenador almacena de forma temporal los programas y parte de la información que necesita o utiliza. Esas posiciones o lugares de la memoria donde los programas pueden almacenar información son las variables.

Es una ubicación de almacenamiento temporal con nombre que se encuentra en memoria, siendo capaz de contener cierto tipo de datos que pueden modificarse durante la ejecución del programa.

En VB los nombres de las variables deben limitarse a 255 caracteres, empezar con un carácter alfabético y no pueden obtener un punto

Utilización temporal de almacenamiento de datos dentro de un programa. Permiten asignar nombres cortos y fácil de recordar. Son para manejar cualquier tipo de información.

 

Tipos de Variables

Dim: Al declarar una variable con esta palabra estamos diciendo que la variable sea local al ámbito en que se declara. Puede ser dentro de un procedimiento o dentro de un formulario, de esta forma no sería accesible desde los demás procedimientos o formularios.

Ej: Dim suma

Public: Las variables declaradas serán publicas y podrán estar accesibles desde todos los formularios de la aplicación. Para conseguirlo tendremos que declararlas en un módulo de código, no en la sección declarations de cualquier formulario de los que conste la aplicación.

Ej: Public suma

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 ejecución de la aplicación. De esta forma a entrar en algún procedimiento las variables recuerdan el valor que tenían cuando se salió de él.

Ej: Static suma

 

 

 

Declaracion de las variables

DIM: Es la abreviatura de Dimensión, esto reserva espacio en memoria para la variable cuando se ejecute el programa y permitirá a VB que tipo de datos deberá guardar en dicha variable.

EJ : Dim nombre

Declaración Implícita: Declarar variables sin uso del Dim. No obliga a organizar y listar las variables de antemano.

Si se va a herramientas, opciones y en editor se elige "Requerir Declaración de Variables". Con esto VB genera un mensaje de error siempre que encuentre una variable mal escrita o declarada.

Pero hay otra forma que sólo es utilizable para 6 tipos. Esta forma de identificar a una variable nos permite ahorrar tiempo a la hora de escribir código, además de tratar de hacer compatible las primeras formas de asignar variables en Visual Basic (desde Visual Basic 1.0).

Estas formas son extensibles para las variables tipo Integer, Long, Single, Double, String y Currency.

Integer %

Long &

Single !

Double #

String $

Currency @

De esta forma, podemos escribir el siguiente código:

Private Sub Command1_Click()

Sum% = 3 + 4

Num# = 32 / Sum%

Label1 = Num#

End Sub

En este ejemplo, puede utilizarse, pero es preciso tener un ligero conocimiento de este tipo de variables para no confundir una variable de tipo Long por otra de tipo Integer por ejemplo.

Establecimiento del alcance de la variable

El alcance de las variables se refiere al área del programa en las cuales es visible la variable. Hay cuatro niveles diferentes de alcances:

Nivel de Procedimiento: Para declarar variables, ya sea implícitas o con el enunciado DIM, es en el nivel de procedimiento. En VB, existen dos tipos de procedimientos: los procedimientos SUB y los FUCNTION. Las variables declaradas en los procedimientos son locales para ese procedimiento. Siendo accesibles solamente por los procedimientos en los cuales están declaradas, las variables locales tienen la visibilidad mas baja y el alcance mas estrecho. Las variables locales de un procedimiento son reinicializada cada vez que llama el procedimiento.

También se pueden declarar variables Estáticas: es decir que las variables locales sean permanentes: EJ static nombre.

Nivel de Formulario: Si se declara una variable a nivel de forma esta disponible en cada procedimiento en esta forma.

Nivel de Modulo: Se crean mediante la selección de la opción Agregar Modulo del menú Proyecto de VB. Los módulos de códigos se utilizan para conservar los subprocedimientos y funciones generales que no están relacionados con eventos, así como sus variables locales(publicas) y sus constantes. Variables Publicas: para identificar una variable global, se declara con

la palabra Public. Ej:

Public nompreapellido As String

Matrices

Para declarar matrices debemos colocar entre paréntesis el número de elementos de los que constará a continuación del nombre de la variable:

Dim medidas(9) as integer

De esta forma tenemos una matriz de 10 elementos identificados del 0 al 9

Podemos obligar a que el primer elemento de una matriz tenga el índice con valor 1.

Esto se hace colocaara cambiar el aspecto de nuestros formularios. El cambiar el valor de esta propiedad afecta también a las propiedades MinButton, MaxButton y ShowInTaskbar que cambian automáticamente según la opción que hayamos seleccionado. En la siguiente tabla aparece una explicación de cada una de sus opciones y de que valor adoptan otras propiedades del formulario

 

Opciones de BorderStyle

Utilidad

MinButton

MaxButton

ShowInTaskbar

0- None

No aparecen bordes ni barra de titulo. No podemos modificar su tamaño de ninguna forma. Sirve para pantallas de presentación al principio de nuestra aplicación

False

option base 1 en la sección declarations de nuestro formulario. También podemos indicar los límites inferior y superior de la matriz:

Dim medidas(5 to 14) as integer

Es una matriz de 10 elementos cuyos índices van del 5 al 14. Las matrices multidimensionales se declaran de la siguiente forma:

Dim medidas(1 to 10, 1 to 10) as integer

Tipos de Datos Definidos por el Usuario

 

El usuario puede definir los datos en VB en la sección General de Declaraciones de un modulo de código, usando la palabra clave Type y End Type. Ej:

Type tipoempleado ‘ Crear tipo definido por el usuario.

ID As Long

Nombre As String *15

Salario As Currency

End Type

Por que son Indispensables las Variables

El poder y la flexibilidad añadidos a sus programas de computadoras por un uso juicioso y bien informado de variables están más allá de cualquier discusión y no pude sobre estimarse. De hecho, cualesquiera programas, a excepción d los más triviales harán un uso cuidadoso de una amplia diversidad de variables, abarcando todo el expectro de tipos disponibles. Los tipos de datos personalizados son útiles en los programas de Bases de Datos, donde ayuda a considerar varios elementos diferentes de datos como una sola entidad, tal como un registro de un empleado por ejemplo, o una factura de un cliente.

Por lo general el establecimiento de variables del tipo y alcance adecuado asegurara el uso más eficiente de la memoria en sus programas.

 

 

Declaración de Constantes

Como su palabra lo dice es Información que no varía hace más fácil la comprensión del código y permite modificar un valor en un solo lugar no ocupa espacio extra, Ejemplo:

Const Mínimo = 1, Máximo = 10

ENTRADAS Y SALIDAS SENCILLAS CON MSGBOX() E INPUTBOX()

Que son Inputbox(), Msgbox()

 

InputBox() Despliega un Mensaje en un cuadro de dialogo, espera que el usuario introduzca el texto o seleccione un botón y luego devuelve el contenido del cuadro de texto.

 

MsgBox() y MsgBox Despliega un mensaje en un cuadro de dialogo y espera que el usuario seleccione un botón.

 

Valor

Botón

Constante

0

Ok(Aceptar)

VbOKOnly

1

Ok(Cancelar)

VbOKCancel

2

Abortar, Reiterar e Ignorar

VbAbortRetryIgnore

3

Si, No y Cancelar

VbYesNoCancel

4

Si o No

VbYesNo

5

Reiterar y Cancelar

VbRetryCancel

16

Icono Parada Critica

VbCritical

32

Signo de Interrogación

VbQuestion

48

Signo de Exclamación

VbExclamation

64

Icono de Información

VbInformation

 

 

ESTRUCTURAS DE DECISIONES: RAMIFICACIONES Y CICLOS

Que son las estructuras de Decisiones?

Estas estructura caen en dos amplias categorías: Ramificaciones y Ciclos. Los dispositivos como If..Then y Select Case hacen que el programa continúe en una dirección cuando se encuentra una condición particular, sin mirar nunca atrás.

Las construcciones en ciclos como Do.. Loop y While..Wend, se usan para repetir un cierto bloque limitado de instrucciones hasta que las condiciones especificadas son True(cierta) o False(Falsa).

 

Sentencia If Then Else

La primera es la sentencia If Then Else que no debe tener secretos puesto que es muy similar en todos los lenguajes. La estructura general es la siguiente:

If condición then

bloque de sentencias

Else

bloque de sentencias

End If

Se pueden colocar todas las sentencias de código que queramos en cada uno de los bloques de sentencias, siempre que cada sentencia vaya en una línea distinta. Si los bloques de sentencias están formados por una sola instrucción podemos utilizar la versión reducida que ocupa una sola línea:

If condición then sentencia else sentencia

Ejemplo:

If isnumeric(numero) then la variable numero es numérica else no es numerica.

También 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 condición:

if dato<10 then

la variable dato contiene un solo dígito

Else

If dato<100 then

la variable dato contiene 2 dígitos

Else

la variable dato contiene más de 2 dígitos

end If

End If

En el ejemplo anterior se quiere saber si la variable dato contiene uno, dos o más dígitos. Para calcularlo no es suficiente con una sola sentencia If Then Else, por tanto se recurre a anidar 2 sentencias de este tipo. La segunda sentencia If se ejecutará si la condición de la primera sentencia If no se cumple, es decir, si dato>=10. Una vez que se ha llegado a este punto sabemos que la variable dato contiene 2 o más dígitos, mediante una nueva sentencia If sabremos exactamente el número de dígitos de la variable dato.

Este último ejemplo podría haberse escrito de otra forma utilizando la cláusula ElseIf:

If dato<10 then

la variable dato contiene un dígito

ElseIf dato<100 then

la variable dato contiene dos digitos

Else

la variable dato contiene más de 2 digitos

End If

Esta segunda opción es perfectamente válida cuando queremos evaluar varias condiciones, aunque tiene más limitaciones que la estructura anterior ya que enlaza directamente el Else con el If siguiente, sin dejarnos introducir sentencias entre medias que algunas veces podríamos necesitar.

Podemos introducir tantas líneas ElseIF como queramos siempre antes del último Else, si es que lo necesitamos.

Para múltiples decisiones en los que dependiendo del valor de una variable queremos que se realice una acción distinta, parecido a los menús de los programas de MS DOS, no conviene utilizar la estructura IF Then, sino que el código queda más claro y resulta más fácil de modificar utilizando la sentencia Select

Algunas veces se puede condensar la construcción If..Then..Else..Endif dentro de una línea de código. Esto se logra con la función IIF(Si inmediato). Ej:

Color = IIF(elcolor < 15, elcolor, 1)

Sentencia Select CASE

 

Esta sentencia permite realizar operaciones diferentes dependiendo del valor de una variable:

Estructura General:

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 construcción, 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 sólo se limitan a valores constantes como números y cadenas de texto, sino que podemos comparar con un número como podemos ver en el siguiente ejemplo:

Select Case NotaFinal

Case Is < 5

Suspendido

Case 5 to 6.99

Aprobado

Case 7 to 8.99

Notable

Case Else

Sobresaliente

End Select

Como se puede observar si utilizamos los operadores lógicos 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. También podemos realizar comparaciones con un conjunto de valores separados por comas:

Case 1, 3, 5. El numero es impar. Para terminar con el tema de las sentencias de selección vamos a ver un ejemplo completo en el que probaremos el uso de este tipo de instrucciones. Se trata del típico ejemplo de resolución de una ecuación de 2º grado. Sabemos que la estructura de una ecuación de este tipo es la siguiente:

ax2+ bx + c = 0

La fórmula que resuelve el valor de x es:

Esta fórmula tiene 2 soluciones, una o ninguna dependiendo del contenido de la raíz, de modo que esa es la comparación que realizaremos:

Trabajaremos con variables de tipo double que permiten decimales con la mayor precisión:

También podría haberse utilizado la estructura If then Else, aunque de esta forma no hay que repetir tantas veces la condición a evaluar. El código anterior es sólo una muestra de como llegar a la solución de un problema utilizando sentencias de Visual Basic, no hemos entrado todavía en como introducir este codigo en el entorno de desarrollo de VB para crear una aplicación. Eso lo veremos en el capítulo siguiente, donde hablaremos de controles que son los elementos necesarios para construir el interfaz de usuario y poder asociar el código necesario para realizar nuestras aplicaciones

Sentencia de Control While Wend

 

 

Ejecuta repetidamente una o mas instrucciones mientras una condición dada es cierta.

Sintaxis:

While condición

[ instrucciones]

Wend

Sentencia de Control Do Until

proporciona una forma mas estructurada y flexible para ejecutar ciclos. Esta repite un bloque de codigo mientras una condicion es True o a partir de que la condicion sea True.

Sintaxis:

Do Unitil cliente.EOF

Print cliente("nombre")

Cliente.movenext

Loop

Exit Do transfiere el control a la instrucción que sigue inmediatamente al ciclo.

Sentencia de Control For Next

 

Esta sentencia repite un grupo de instrucciones, un numero especificado de veces. Sintaxis:

For contador = 1 To 10

Print cliente("nombre")

Cliente.Movenext

Next contador

Se puede especificar también el intervalo Step, la cantidad que cambiar el contador cada vez que se ejecuta el ciclo. Si no se especifica, el incremento toma un valor por omisión de 1. Ej:

For porcentaje = 0 To 100 Step 5

Print porcentaje & "%"

Next porcentaje

 

Exit For se usa frecuentemente con la evaluación de algunas condicionantes If..Then y transfiere el control a la instrucción que se encuentra a continuación de Next.

 

ROBERTO

Que es un Procedimiento de Evento?

Permanece inactivo hasta que se llama para responder a los eventos causados por el usuario.

Que es un Procedimiento Sub?

 

Cualquier procedimiento es una secuencia nombrada de instrucciones que ejecutan como una unidad.

El procedimiento Sub es una unidad de código que realiza una tarea especifica dentro de un programa, pero que no devuelve un valor explícito.

Un procedimiento sub comienza con una instrucción Sub y termina con una instrucción End Sub.

Esto no significa que el procedimiento Sub sea el único, existen una serie de procedimientos que VB trae incluido ej:

Sub DiskCleanup()

Kill "*.Dat"

Kill "*.txt"

Beep

Msgbox " La unidad esta Limpia", vbinformation,

"Procedimiento completo"

End Sub

Para mandarlo a llamar solamente se escribe el nombre del procedimiento sin necesidad de usar los paréntesis DiskCleanup.

También existen procedimientos a los que se le pasan argumentos:

Sub multiplicar(primero As integer, segundo As integer)

Resultado = primero * segundo

End Sub

 

Para mandarlo a llamar seria de la siguiente forma:

Dim i As Integer, y As Integer

I = 3

Y = 4

Multiplicar i, y

 

 

 

***********************************************************************************************************************************************************************

 

 

 

Que es un Procedimiento de Funcion?

 

Es un procedimiento que realiza una tarea especifica dentro de un programa y devuelve un valor. Una función se define en un modulo que inicia con la instrucción Function y termina con la instrucción End Function.

Funciones Utiles en VB

Función

Descripción

Ejemplo

Valor

Len()

Devuelve la longitud de una cadena

Ilen = Len("Hola")

Ilen = 4

Chr()

Devuelve el carácter del código

Schar = chr(65)

Schar = "A"

Asc()

Devuelve el código del carácter

Icod = Asc("A")

Lcod = 65

Ucase()

Convierte a mayúscula

Sup = Ucase("hola")

Sup = "HOLA"

Lcase()

Convierte a minúscula

Slow = Lcase("HOLA")

Slow =("hola")

 

Para convertir un titulo de una manera mas presentable tal como muestra el ejemplo anterior: "el mundo es una ostra" en "El Mundo Es Una Ostra" se escribe el siguiente codigo:

Function titulo(introcadena As String) As String

Dim fueracadena As String

Dim espacio As Integer

Introcadena = Trim(Lcase(introcadena)) + " "

Espacio = instr(introcadena, " ")

While espacio > 0

Fueracadena = fueracadena + Ucase(Mid(introcadena, 1, 1)) +

Mid(introcadena, 2, espacio –1)

Introcadena = Ltrim(Mid(introcadena, espacio +1))

Espacio = instr(introcadena, " ")

Wend

Titulo = fueracadena

End function

 

INTRODUCCION A LOS CONTROLES, METODOS, PROPIEDADES Y FORMULARIOS

Una vez que ya hemos visto algunas de las sentencias básicas: declaración de variables, sentencias de selección, que son muy parecidos a las sentencias utilizadas en MSDOS. Vamos a empezar a programar en windows y veremos en que se diferencia de la programación clásica en MS DOS, para vamos a introducir el uso de los controles.

Pero ¿Qué son los controles?

Realmente son objetos que disponen de sus propias propiedades y métodos, y cuya utilidad es la de facilitarnos el desarrollo de nuestras aplicaciones. En cualquier aplicación con la que trabajamos estamos rodeados de controles. Quien no ha visto en multitud de programas los botones ACEPTAR y CANCELAR, un cuadro para introducir texto, una lista con datos, por mencionar algunos. Pues todos ellos son controles y no tendremos que preocuparnos por crearlos para nuestras aplicaciones sino que ya vienen con el paquete de VB, lo único que tendremos que hacer es modificar sus propiedades: tamaño, color, entre otros. Para incorporarlos en nuestras aplicaciones y asociarles el código necesario para que se comporten como esperamos al ejecutar la aplicación.

Antes de empezar a conocer los controles básicos veamos cuales son sus características 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, entre otros. La sintaxis para asignar una propiedad de un objeto es:

Objeto.Propiedad = Valor

Metodos: Son procedimientos asociados a los controles, es decir, rutinas ya establecidas que podemos invocar desde nuestras aplicaciones para que se realice alguna operación sobre el control. Por ejemplo el control ListView (la lista de archivos que aparece en el explorador de windows) dispone del método order que te ordena los datos aparecidos en la lista. Son procedimientos conectados o integrados, un bloque de código que puede llamarse para impartir alguna acción a un objeto particular. Los metodos pueden requerir informacion adicional en forma de argumento. Su sintaxis es la siguiente:

Objeto.Metodo Arg1, Arg2... Argn

`ej: pictierra.Move 0,0

 

Eventos: Son acciones que pueden ser motivadas por el propio usuario o por el mismo sistema operativo. Ejemplos pueden ser el movimiento del ratón o hacer click sobre su botón. En Visual Basic digamos que se utiliza la programación orientada a eventos, lo cual es una de las diferencias más importantes respecto a la programación lineal de MS DOS. No necesitamos detectar cuando se ha producido un evento determinado, Windows lo detecta automáticamente. Los eventos ya están definidos, son bastantes y cada control cuenta con los suyos propios, aunque son muy parecidos. Lo único que tendremos que hacer es asociar el código necesario al evento que necesitemos tratar.

Para mostrar la ventana donde aparecen los controles que Visual Basic carga por defecto nada más arrancar la aplicación tendremos que marcar en Ver del menú principal y activar la opción Cuadro de Herramientas. Obtendremos una ventana como esta en la pantalla

Realmente existen muchos más controles, aunque estos son los más utilizados y por eso aparecen por defecto. Para tener acceso a los demás controles tanto de Visual Basic como los controles que incorporan otras aplicaciones marcaremos en proyecto y luego la opción componentes del menú principal.

Moviendo el ratón por encima de cualquier control aparecerá una pista indicándonos el control de que se trata.

 

 

BOTONES DE COMANDOS, CUADRO DE TEXTOS Y ETIQUETAS

TextBox

 

Mediante este control podremos realizar tanto la entrada como la salida de datos en nuestras aplicaciones. No hace falta que indiquemos las coordenadas de la situación del formulario en pantalla, simplemente tendremos que marcar sobre el control de la caja de herramientas y dibujarlo con el tamaño que queramos en nuestro formulario.

Se puede almacenar el contenido actual de este control en una variable, ej:

Dim viejotext, nuevotexto As String

Nuevotexto = "Texto Nuevo"

Viejotexto = introtexto.text Lee el texto Actual

introtexto.text = nuevotexto Pone el nuevo texto

 

PROPIEDADES

Text: Aquí indicamos el texto que aparecerá en el control. Podemos asignarle cualquier texto en tiempo de diseño o ejecución. También podemos tomar el texto que haya introducido el usuario para tratarlo durante la ejecución.

Name: Esta propiedad la tienen todos los controles, el nombre que viene por defecto en este caso Text1 y es el nombre con el que se conocerá el control cuando lo utilicemos en el código. En un mismo formulario no puede haber 2 controles con el mismo nombre. Conviene poner un nombre que represente la función que tiene el control en la aplicación para que el código quede más claro. Ejemplo, si en el textbox vamos a introducir la dirección de una persona podemos asignarle a esta propiedad el valor Dirección.

MultiLine: Permite que introduzcamos varias líneas de texto en el control en lugar de sólo una.

Alignment: Alineación que tendrá el texto dentro del control: izquierda, centro o derecha. Para que funcione la propiedad MultiLine debe estar con el valor true.

Locked: Si esta 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.

BorderStyle: Determina el tipo de borde.

PasswordChar: Oculta un texto con un carácter simple.

Tag: Almacena información adicional(cualquier expresión de

cadena), ej: almacenar la contraseña de su sistema.

Otras propiedades que son comunes a la mayoría de los controles:

Backcolor: color de fondo.

Forecolor: color de letra.

Font: tipo y tamaño de letra.

Para personalizar las combinaciones de la barra de desplazamiento en un cuadro de texto, se puede establecer la propiedad ScrollBars en Horizontal, Vertical, Both o None.

Cuando la propiedad MultiLine esta en True se puede usar la propiedad Alignment para ajustar el texto.

EVENTOS

Los eventos son acciones que se pueden realizar en cualquier control: click, doble click, movimiento del ratón. A estos eventos se les puede asociar código para que se ejecute al producir el evento.

MouseMove: al mover el raton por encima del control.

Mousedown: al pulsar cualquier boton del raton

Change: al cambiar el contenido del control

Click: al hacer click con el botón izquierdo del ratón sobre el control

Doubleclick: al hacer doble click con el con el botón izquierdo del ratón

sobre el control.

Getfocus: este evento se activa cuando el control recibe el enfoque, es

decir, cuando se activa el control en tiempo de ejecución para

introducir datos en él o realizar alguna operación.

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.

 

 

Label

 

Este control es también uno de los más utilizados, aunque su utilidad queda restringida a la visualización de datos en el mismo, no permitiendo la introducción de datos por parte del usuario.

La forma de utilizarlo es similar a la del control anterior, dibujar el control en el formulario con el tamaño que queramos y asignarle un texto en tiempo de diseño o de ejecución esta vez sin utilizar la propiedad text puesto que no la incorpora, sino utilizando la propiedad caption.

Este control sirve para mostrar mensajes en nuestro formulario que orienten al usuario sobre la utilidad de los demás controles que tengamos en la aplicación o para indicarnos acciones que podemos realizar. En el ejemplo anterior donde aparecía un textbox en el formulario, hubiera quedado mejor con un mensaje aclaratorio contenido en un control label

Si se desea que se despliegue adecuadamente varias líneas de diversas longitudes, puede establecer las propiedades Autosize y WordWrap en True.

PROPIEDADES

Caption: Es el texto que contendrá el control.

Alignment: Alineación del texto contenido en el control, no necesita que

esté activada ninguna otra propiedad.

BorderStyle: Si queremos que aparezca un borde alrededor del control

activaremos esta propiedad.

Para este control no se suelen utilizar los eventos ya que su contenido suele cambiar poco a lo largo de la ejecución de la aplicación. De todas formas los eventos son casi los mismos del control textbox excepto que no dispone de los eventos GetFocus y LostFocus ya que a este control no se le puede dar el enfoque.

CommandButton

 

 

Se usa un control de botón de comando para iniciar, interrumpir o terminar un proceso en particular.

Este control es el típico botón que aparece en todas las aplicaciones y que al hacer click sobre él nos permite realizar alguna operación concreta, normalmente Aceptar o Cancelar. Aunque según el código que le asociemos podremos realizar las operaciones que queramos. En el ejemplo anterior podemos añadir un control de este tipo para salir de la aplicación sin tener que pulsar sobre la equis de la esquina superior derecha.

Pero sólo con introducir un control de este tipo con el texto salir que se introduce a través de la propiedad caption no basta. Habrá que asociarle un código que nos permita salir de la aplicación en el evento adecuado. Y el evento por excelencia de este control es click. Así pues accederemos al código del control y la sentencia nos permitirá salir de la aplicación es End, simplemente tecleamos esa palabra en el evento click y comprobar que realmente finalizaremos nuestra aplicación al pulsar sobre dicho botón.

PROPIEDADES

Caption: Aquí pondremos el letrero que queremos que aparezca en el botón:

aceptar, cancelar, salir, entre otros.

Enabled: Esta es una nueva propiedad, cuando su valor es true el botón

funciona normalmente, cuando su valor es false el botón se

encuentra desactivado, no responde a los eventos producidos sobre

él y el texto aparece en un gris claro advirtiéndonos de su estado.

Podemos utilizar esta propiedad para activar o desactivar un botón

dependiendo del estado de otros controles. Por ejemplo, en un botón

Aceptar, no activarlo hasta que se haya introducido una cantidad en

un control textbox, ya que ese botón nos calculará el IVA de la

cantidad.

Appearance: Selecciona 3-D o apariencia plana.

Cancel: Permite la selección con Esc True, False

Default: Permite la selección con enter True, False.

 

 

 

 

EVENTOS

Click: Es el evento tipico de este control y el que más se utiliza.

MouseMove: Como sabemos detecta el movimiento del ratón sobre el

control. Puede servir para que aparezca un mensaje en un

control Label que nos aporte información sobre la utilidad del

control ampliando el texto que hayamos colocado como

caption del commandbutton.

Porque usar los cuadros de textos, Botones de comandos y etiquetas?

Cuando los datos de campos se ven a través de un formulario, esto son usualmente almacenados(o relacionados) en varios controles TextBox, los que a su vez se identifican por etiquetas. Es probable que el mismo formulario tenga algunos botones para navegar a través de los registros de base de datos.

BOTONES DE OPCIONES, CASILLAS DE VERIFICACION Y MARCOS

Que son los botones de Opción?

Es el que despliega una opción que puede encenderse a pagarse, con la propiedad Value del botón puesta en True o False, según el caso.

Para agrupar los controles OptionButton en un marco o cuadro de dibujo, trace el marco o cuadro de dibujo primero y luego trace los controles OptionButton adentro. Esto se hace para asegurarse que sean mutuamente excluyentes y crear una jerarquía de contenedores validas. Si traza los controles fuera del marco y los arrastra adentro, los copia dentro del marco o traza el marco alrededor de los controles existentes, no producirá los resultados deseados.

OptionButton

Este control nos permite elegir una opción entre varias de las que se nos plantean. Cada opción será un control optionbutton diferente. Facilita la introducción de datos por parte del usuario:

De todas las opciones que se nos ofrece, en este caso los 4 colores, sólo podremos activar una. Si activamos cualquier otra opción, se desactivará automáticamente la última que teníamos activada

.

El marco que está alrededor de los 4 controles optionbutton se trata del control Frame, es opcional, aunque es conveniente colocarlo siempre que hagamos uso de las opciones. No sólo por motivos de presentación sino porque de esta manera podremos establecer grupos de controles optionbutton independientes en los que en cada grupo sólo pueda haber una opción activada a la vez. También, al mover el marco se moverán los controles incluidos en él facilitándonos las modificaciones.

Del control Frame la única propiedad que nos interesará es caption, que es el texto que aparecerá en el encabezado, en el ejemplo anterior: colores.

PROPIEDADES DE OPTIONBUTTON

Caption: El texto que aparecerá al lado del control: Rojo, verde...

Value: Es el valor que tendrá el control: True si se encuentra activado y

False si no lo está. Para comprobar que opción ha activado el

usuario comprobaremos el estado de esta propiedad.

Alignment: Alineación del texto respecto al control: Left Justify: el control

aparece a la izquierda del texto. Es el ejemplo anterior.Right Justify:

el control aparece a la derecha del texto.

Los eventos del control son los mismos que en anteriores controles, aunque no se suele asociar código a los eventos de este tipo de controles, sino únicamente conocer el valor que tienen: true o false.

 

 

Que son las casillas de verificación?

Un CheckBox muestra una marca cuando esta seleccionado, y la marca desaparece cuando se borra el cuadro. Este control se usa para dar al usuario las opciones True/False , Si/No y Activado/Desactivado.

Se puede desplegar texto junto a las casillas de verificacion, estableciendo la propiedad Caption. Use la propiedad Value para determinar el estado del control:

1 = Marcado

0 = Sin marcar

2 = No disponible(desactivado, aparece atenuado).

Ej:

Select Case chksound

Case 0

Msg = "No Seleccionado"

Case 1

Msg = "Seleccionado"

Case 2

Msg = "No Disponible"

End Select

MsgBox Msg

Que son los Marcos?

Proporciona una forma atractiva de agrupar controles relacionados. Se puede usar un marco para subdividir un formulario en otros.

Primero se traza el control Frame y luego los controles dentro del Frame.

 

******************************************************

Jose Luis

CUADROS DE LISTA Y CUADROS COMBINADOS

Que son los cuadros de lista?

Los cuadros ListBox despliegan una lista de elementos en la que el usuario puede seleccionar uno o más de estos. Si el numero de elementos excede el numero que puede desplegarse a la vista, una barra de desplazamiento se anexa automáticamente al control ListBox. Los eventos Clic o Ddclic del cuadro de lista se utilizan habitualmente para procesar la selección.

Una propiedad Listcount de una lista devuelve el numero de elementos de la lista, mientras que la propiedad ListIndex se una para seguir la pista del elemento actualmente seleccionado.

La propiedad MultiSelect devuelve(en tiempo de ejecución) o establece(en tiempo de diseño) un valor que indica si un usuario puede o no hacer una selección múltiple, y como usted hacerse tal selección. Para seleccionar mas de un elemento de una lista, la propiedad MultiSelect del control ListBox puede ponerse en 1 o 2.

Descripción y Ajuste de MultiSelect

Ajustar

Descripción

0

No se permite la selección múltiple(ajuste por omisión)

1

Selección múltiple sencilla. un clic del ratón u opresión de la barra espaciadora seleccionada o quita la selección de un elemento de lista.

2

Selección múltiple extendida. Oprimiendo mayúsculas y haciendo clic con el ratón u oprimiendo mayúsculas y una de las teclas de flechas, extendiendo la selección del elemento seleccionado anteriormente al elemento actual.

 

*******************************************************************************************************************

Que son los cuadros combinados?

La diferencia entre cuadros combinados (ComboBoxes) y cuadros de lista(ListBox) es que un control ComboBox combina las características de un control Textbox y un control Listbox. Si el usuario no desea seleccionar alguna de las opciones ofrecidas, puede teclear información en la parte del cuadro de texto del control.

Un cuadro combinado tiene tres estilos diferentes, determinados por sus valores en la propiedad Style. Esta propiedad devuelve o establece un valor indicando el tipo de control ComboBox y el comportamiento en el cuadro de lista. Los valores de la propiedad Style del comboBox resumen a continuación:

Descripción y Ajuste de MultiSelect

Ajustar

Descripción

0

DropDown Combo. Incluye una lista desplegable y un cuadro de texto.

1

Simple combo. Incluye un cuadro de texto y una lista fija. El tamaño de un simple Combobox incluye las partes de edición y las parte de la lista.

2

DropDown List. Este estilo no es realmente un comboBox del todo. Este permite solamente la selección de la lista desplegable, cuando la parte del TextBox no esta disponible al usuario.

Propiedades y Métodos Comunes de lista

Estas se resumen en le siguiente cuadro

 

Propiedad

Descripción

Ejemplo de Uso

ListCount

Numero de elementos de una lista

Item = milista.listCount -1

ListIndex

Indice numérico del elemento actual

Milista.Listindex = 3

List

Con el índice devuelve el elemento de lista

Quintoelemento =milista.List(5)

Selected

True, si el elemento esta seleccionado

If milista.Selected(3), Then

Serted

Lista autoordenada si esta en True

Milista.sorted = True

Método

Descripción

Ejemplo

Addeitem

Añade la cadena de elemento

Milista.Additem = "Hola Mundo"

Clear

Elimina todos los elementos de la lista

Milista.clear

RemoveItem

Elimina un solo elemento de la lista

Milista.RemoveItem 5

 

Es importante en la manera en que trabajan los métodos Additem y Removeitem. Ambos requieren un solo argumento, pero Additem espera una expresión de cadena, mientras que Removeitem requiere un índice numérico.

 

 

CAPITULO III FORMULARIOS, CONTROLES Y MENU

Los formularios son tratados como controles con sus propiedades, eventos y métodos. Aunque digamos que se trata de un control especial que utilizamos para contener los controles más usuales con los que construiremos nuestras aplicaciones: textbox, label, commandbutton, etc.

En este capítulo vamos a ver las propiedades y eventos más importantes de los formularios, como trabajar con múltiples formularios y como se establece la comunicación entre ellos.

¿Qué es un Formulario de Arranque?

Es el primer formulario que se despliega en la Aplicación por lo general es el primer formulario que se crea en el Ambiente de desarrollo. No necesariamente una Aplicación tiene que arrancar con el primer formulario del Proyecto ya que esto se puede modificar.

Pasos para especificar un Formulario de Arranque:

  1. Del Menú de Proyecto escoger la opción propiedades del Proyecto.
  2. Hacer Click en la pestaña de Objeto inicial y seleccionar el Formulario de arranque que desea.

 

Cómo se utilizan los Formularios?

En Visual Basic el uso de Formularios es una Actividad realmente flexible. Puede hacer que todos los Formularios de un programa sean visibles de forma simultanea o podrá cargar y descargar formularios a medida que el Programa los valla necesitando.

Un formulario que tenga que ser utilizado cuando se muestre por pantalla se denomina formulario modal (el Formulario acaparara la atención del Programa hasta que el usuario pulse Aceptar, Cancelar o sea eliminado por otros medios).

Un formulario que el usuario puede seleccionar o ignorar en pantalla recibe el nombre de Formulario No Modal. La mayoría de aplicaciones desarrolladas por Microsoft utilizan formularios no Modales para mostrar Información, ya que proporcionan más flexibilidad de empleo del usuario.

Propiedades de los Formularios.

Las propiedades más comunes de los formularios y que son similares al resto de los controles son las siguientes:

Name: Nombre del formulario, necesario para llamar al formulario desde el código.

Caption: Texto que aparece en el título del formulario

Backcolor: Color de fondo del formulario.

Forecolor: color del texto del formulario.

Otras propiedades que son propias de los formularios y que es importante conocerlas para realizar una buena presentación en nuestras aplicaciones son las siguientes:

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 tamaño en que presentemos un formulario en pantalla. Si sólo desactivamos una de las propiedades, el botón correspondiente aparecerá desactivado, pero si desactivamos las dos propiedades, no aparecerá ninguno de los 2 botones, únicamente lo hará el botón 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 aplicación con múltiples formularios, si para cada uno de los que aparezca en pantalla, nos aparece también 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 título de cualquier formulario, que es donde aparece el menú de control, para personalizarlo en nuestra aplicación

El icono que aparece por defecto en todos los formularios se puede cambiar por otro más simpático.

ControlBox: Controla la aparición del menú de control. Esta propiedad por defecto está activada, aunque si la ponemos a False, no sólo hacemos desaparecer el icono que simboliza al menú de control, sino que desaparecen también los botones de minimizar, maximizar y cerrar. Unicamente aparece la barra de titulo con el caption

Si además de colocar ControlBox a False, colocamos MinButton y MaxButton a False y dejamos vacía la propiedad Caption, es decir sin nada en el título, nos aparecerá un formulario sin barra de titulo, es decir, únicamente un rectángulo gris que sí podremos cambiar de tamaño apuntando sobre el borde.

BorderStyle: Esta propiedad es la que más opciones tiene y la que más posibilidades ofrece para cambiar el aspecto de nuestros formularios. El cambiar el valor de esta propiedad afecta también a las propiedades MinButton, MaxButton y ShowInTaskbar que cambian automáticamente según la opción que hayamos seleccionado. En la siguiente tabla aparece una explicación de cada una de sus opciones y de que valor adoptan otras propiedades del formulario

 

Opciones de BorderStyle

Utilidad

MinButton

MaxButton

ShowInTaskbar

0- None

No aparecen bordes ni barra de titulo. No podemos modificar su tamaño de ninguna forma. Sirve para pantallas de presentación al principio de nuestra aplicación

False

False

False

1 - Fixed Single

No se puede cambiar su tamaño. Ni siquiera se puede maximizar haciendo doble click sobre la barra del título, algo que sí se puede hacer desactivando los botones MinButton y MaxButton en un formulario normal

False

False

True

2 - Sizable (aparece por defecto)

Formulario por defecto de VB. Contiene todos los botones de la barra del título, se puede cambiar su tamaño actuando sobre el borde y aparece en la barra de tareas.

True

True

True

3 - Fixed Dialog

No se puede cambiar su tamaño y no aparece en la barra de tareas

False

False

False

4 - Fixed ToolWindow

Aparece con la barra de titulo más pequeña, 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 tamaño actuando sobre el borde.

False

False

False

Utilización de Múltiples Formularios

Para utilizar varios formularios en nuestra aplicación tendremos que añadir cada uno de ellos mediante la opción de menú Insert / Form o pulsando sobre el botón.

Método Show.

Para llamar a un formulario desde el código se utiliza el método Show. Si el formulario 2 tiene en la propiedad Name form2, para llamarlo desde otro formulario se escribe:

Form2.Show

Si no se pone ningún 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 ningún otro formulario hasta que no se cierre el actual. Este último modo puede servir para cuadros de diálogo que soliciten ciertos parámetros para que la aplicación siga funcionando: una contraseña.

Los argumentos del método Show son:

0

VbModeless

No modal

1

VbModal

Modal

Ejemplo:

Form2.Show vbModal

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 método 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 activación de los eventos Load y Activate del formulario en ese orden. En dichos eventos se puede colocar el código necesario que haga que el formulario se inicie siempre con los valores deseados.

Si el formulario ya estaba cargado en memoria, mediante una sentencia Load o porque se haya ocultado con el método Hide, al llamarlo con el método Show, únicamente se realizará la modificación 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 tenía 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.

Permite descargar un formulario de la memoria. Se introduce junto al nombre del formulario que se va a descargar:

Unload Form2

Si se esta dentro del mismo formulario para descargarlo no hace falta colocar el nombre sino únicamente:

Unload me

En una aplicación con varios formularios se debe usar esta sentencia para los métodos que se terminan de utilizar, de esta forma se libera espacio en memoria para que los otros formularios puedan aprovecharla mejor.

La sentencia unload provoca la activación de los eventos:

Deactivate: Al contrario que el evento Activate, este se activa cada vez que un formulario pierde el enfoque. También se activa este evento al utilizar el método Hide.

Unload: Este evento recibe el parámetro Cancel, y al modificar su valor se puede hacer que se suspenda (cancele) el proceso de descarga de un formulario. Mediante 2 líneas de código se puede hacer una pregunta al usuario cada vez que se cierra un formulario para que confirme la operación:

 

Este código provocará que cada vez que se cierre el formulario de cualquier forma, (no sólo mediante la sentencia Unload sino también haciendo click sobre la "x", el menú de control o con ALT + F4) aparezca un mensaje que pregunta si realmente se desea salir:

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

En este evento además de recoger el parámetro Cancel, también proporciona el parámetro UnloadMode que según el valor que tenga se podrá 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 opción 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 aplicación 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 líneas de código se va a probar las posibilidades de este evento. Según desde donde se cierre el formulario del que consta la aplicación aparecerá un mensaje distinto que pide confirmación en el proceso de descarga.

Nota: Para el correcto funcionamiento de este ejemplo se debe compilar la aplicación mediante File / Make EXE File... y ejecutar la aplicación desde fuera del entorno de trabajo de VB. Esto es así para que se pueda cerrar la aplicación apagando el sistema y desde el administrador de tareas.

El código asociado al evento Query_Unload es el siguiente:

 

Desde un formulario se puede tener acceso a los controles y propiedades de otro formulario.

En lugar de realizar el paso de parámetros 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 después mostrarlo mediante el método Show.

Para acceder a los controles de otro formulario se sigue la siguiente sintaxis:

Formulario!Control.Propiedad = valor

Se debe colocar una admiración "!" entre el formulario y el control y un punto entre el control y la propiedad

 

Al acceder a las propiedades de otro formulario automáticamente se carga éste en memoria, si no lo estaba ya antes. Una vez que se hayan modificado sus propiedades los visualizaremos con el método Show.

No se puede acceder a las variables declaradas en otro formulario, de modo que si se quiere trabajar con variables generales, las cuales sean accesibles desde cualquier formulario de la aplicación, se tendrán que declararlas como Públicas desde un módulo de código

Para insertar un módulo en un proyecto de Visual Basic se tendrá que marcar en Proyecto y dentro de la opción proyecto Agregar Modulo o pulsar sobre el botón de la barra de herramientas. Aparecerá una ventana en la que únicamente se podrán colocar las variables y procedimientos o funciones que se deseen públicas para toda la aplicaci&oacutALIGN="CENTER">False

False

1 - Fixed Single

No se puede cambiar su tamaño. Ni siquiera se puede maximizar haciendo doble click sobre la barra del título, algo que sí se puede hacer desactivando los botones MinButton y MaxButton en un formulario normal

False

False

True

2 - Sizable (aparece por defecto)

Formulario por defecto de VB. Contiene todos los botones de la barra del título, se puede cambiar su tamaño actuando sobre el borde y aparece en la barra de tareas.

True

True

True

3 - Fixed Dialog

No se puede cambiar su tamaño y no aparece en la barra de tareas

False

False

False

4 - Fixed ToolWindow

Aparece con la barra de titulo más pequeña, 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 tamaño actuando sobre el borde.

False

False

False

Utilización de Múltiples Formularios

Para utilizar varios formularios en nuestra aplicación tendremos que añadir cada uno de ellos mediante la opción de menú Insert / Form o pulsando sobre el botón.

Método Show.

Para llamar a un formulario desde el código se utiliza el método Show. Si el formulario 2 tiene en la propiedad Name form2, para llamarlo desde otro formulario se escribe:

Form2.Show

Si no se pone ningún 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 ningún otro formulario hasta que no se cierre el actual. Este último modo puede servir para cuadros de diálogo que soliciten ciertos parámetros para que la aplicación siga funcionando: una contraseña.

Los argumentos del método Show son:

0

VbModeless

No modal

1

VbModal

Modal

Ejemplo:

Form2.Show vbModal

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 método Show realiza la carga del formulario en memoria, si no estaba cargado antes, y coloca la propiedad

En el siguiente ejemplo se declara la variable Gen_var de tipo Integer que será accesible desde cualquier formulario de la aplicación:

CREACION DE MENUS.
El Editor de Menú es una Aplicación de diseño de menús que se incluye en Visual Basic. El Editor Menú consiste en un cuadro de texto que consta de:

Caption: Se teclea el nombre del Menú o del comando que aparecerá en la Barra de Menú. Para permitir el acceso por teclado al elemento de Menú se inserta un Ampersand (&) antes de una letra. También puede crear una barra separadora tecleando un guión (-).

Name: Se usa para teclear el nombre del Control para el elemento del Menú. Es un identificador que se usa solamente para accesar el elemento del menú en código y no aparecerá en un Menú.

Index: Se usa para asignar un valor numérico que determina la posición del elemento del menu dentro de un arreglo de control. Shortcut: Presenta una lista desde la que puede seleccionar una tecla de atajo para el elemento del menú. HelpContextId: Se usa para asignar un valor numérico para el Id de contexto. Este valor se usa para encontrar el tema de ayuda apropiado en al archivo de ayuda identificado por la propiedad HelpFile.

Checked: Es una casilla de verificación que se selecciona si desea que aparezca una >Visible del formulario a True. Durante este proceso se provoca la activación de los eventos Load y Activate del formulario en ese orden. En dichos eventos se puede colocar el código necesario que haga que el formulario se inicie siempre con los valores deseados.

Si el formulario ya estaba cargado en memoria, mediante una sentencia Load o porque se haya ocultado con el método Hide, al llamarlo con el método Show, únicamente se realizará la modificación 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 tenía 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.

Permite descargar un formulario de la memoria. Se introduce junto al nombre del formulario que se va a descargar:

Unload Form2

Si se esta dentro del mismo formulario para descargarlo no hace falta colocar el nombre sino únicamente:

Unload me

En una aplicación con varios formularios se debe usar esta sentencia para los métodos que se terminan de utilizar, de esta forma se libera espacio en memoria para que los otros formularios puedan aprovecharla mejor.

La sentencia unload provoca la activación de los eventos:

Deactivate: Al contrario que el evento Activate, este se activa cada vez que un formulario pierde el enfoque. También se activa este evento al utilizar el método Hide.

Unload: Este evento recibe el parámetro Cancel, y al modificar su valor se puede hacer que se suspenda (cancele) el proceso de descarga de un formulario. Mediante 2 líneas de código se puede hacer una pregunta al usuario cada vez que se cierra un formulario para que confirme la operación:

 

Este código provocará que cada vez que se cierre el formulario de cualquier forma, (no sólo mediante la sentencia Unload sino también haciendo click sobre la "x", el menú de control o con ALT + F4) aparezca un mensaje que pregunta si realmente se desea salir:

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

En este evento además de recoger el parámetro Cancel, también proporciona el parámetro UnloadMode que según el valor que tenga se podrá 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 opción 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 aplicación 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 líneas de código se va a probar las posibilidades de este evento. Según desde donde se cierre el formulario del que consta la aplicación aparecerá un mensaje distinto que pide confirmación en el proceso de descarga.

Nota: Para el correcto funcionamiento de este ejemplo se debe compilar la aplicación mediante File / Make EXE File... y ejecutar la aplicación desde fuera del entorno de trabajo de VB. Esto es así para que se pueda cerrar la aplicación apagando el sistema y desde el administrador de tareas.

El código asociado al evento Query_Unload es el siguiente:

 

Desde un formulario se puede tener acceso a los controles y propiedades de otro formulario.

En lugar de realizar el paso de parámetros 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 después mostrarlo mediante el método Show.

Para acceder a los controles de otro formulario se sigue la siguiente sintaxis:

Formulario!Control.Propiedad = valor

Se debe colocar una admiración "!" entre el formulario y el control y un punto entre el control y la propiedad

 

Al acceder a las propiedades de otro formulario automáticamente se carga éste en memoria, si no lo estaba ya antes. Una vez que se hayan modificado sus propiedades los visualizaremos con el método Show.

No se puede acceder a las variables declaradas en otro formulario, de modo que si se quiere trabajar con variables generales, las cuales sean accesibles desde cualquier formulario de la aplicación, se tendrán que declararlas como Públicas desde un módulo de código

Para insertar un módulo en un proyecto de Visual Basic se tendrá que marcar en Proyecto y dentro de la opción proyecto Agregar Modulo o pulsar sobre el botón de la barra de herramientas. Aparecerá una ventana en la que únicamente se podrán colocar las variables y procedimientos o funciones que se deseen públicas para toda la aplicación.

En el siguiente ejemplo se declara la variable Gen_var de tipo Integer que será accesible desde cualquier formulario de la aplicación:

CREACION DE MENUS.
El Editor de Menú es una Aplicación de diseño de menús que se incluye en Visual Basic. El Editor Menú consiste en un cuadro de texto que consta de:

Caption: Se teclea el nombre del Menú o del comando que aparecerá en la Barra de Menú. Para permitir el acceso por teclado al elemento de Menú se inserta un Ampersand (&) antes de una letra. También puede crear una barra separadora tecleando un guión (-).

Name: Se usa para teclear el nombre del Control para el elemento del Menú. Es un identificador que se usa solamente para accesar el elemento del menú en código y no aparecerá en un Menú.

Index: Se usa para asignar un valor numérico que determina la posición del elemento del menu dentro de un arreglo de control. Shortcut: Presenta una lista desde la que puede seleccionar una tecla de atajo para el elemento del menú. HelpContextId: Se usa para asignar un valor numérico para el Id de contexto. Este valor se usa para encontrar el tema de ayuda apropiado en al archivo de ayuda identificado por la propiedad HelpFile.

Checked: Es una casilla de verificación que se selecciona si desea que aparezca una marca de verificación a la izquierda.

Enable: Es una casilla de verificación que se selecciona si desea que el elemento del menú aparezca en el menú.