- Introducción al Desarrollo
de Aplicaciones con Visual Basic - Manejo de
Formularios - Tipos de
Datos, Constantes y Variables - Estructuras
de Control - Controles
Estándar Adicionales y
Procedimientos - Depuración,
Validación de Datos y Manipulación de
Errores
Parte
1: Introducción al Desarrollo de
Aplicaciones con Visual Basic
Visual Basic es un ambiente
gráfico de desarrollo de aplicaciones para el sistema operativo
Microsoft
Windows. Las
aplicaciones creadas con Visual Basic
están basadas en objetos y son manejadas por eventos.
Visual Basic se deriva del lenguaje
Basic, el cual es un lenguaje de
programación estructurado. Sin embargo, Visual
Basic emplea un modelo de
programación manejada por
eventos.
Las Aplicaciones Procedurales
En las aplicaciones tradicionales o procedurales, es la
aplicación quien controla que porciones de código
se ejecuta, y la secuencia en que este se ejecuta. La
ejecución de la aplicación se inicia con la primera
línea de código, y sigue una ruta predefinida a
través de la aplicación, llamando procedimientos
según sea necesario.
Las Aplicaciones Manejadas por Eventos
En las aplicaciones manejadas por eventos, la
ejecución no sigue una ruta predefinida. En vez de esto,
se ejecutan diferentes secciones de código en respuesta a
eventos. Los eventos se desencadenan por acciones del
usuario, por mensajes del sistema o de
otras aplicaciones. La secuencia de eventos determina la
secuencia en que el código se ejecuta. Es por esto que la
ruta que sigue el código de la aplicación es
diferente cada vez que se ejecuta el programa.
Una parte esencial de la programación manejada
por eventos es el escribir código que responda a los
posibles eventos que pueden ocurrir en una aplicación.
Visual Basic facilita la implementación del modelo de
programación manejada por eventos.
¿Qué es un objeto?
Cada formulario (ventana), menú o control que se
crea con Visual Basic es un módulo autocontenido llamado
objeto. Los bloques básicos de construcción de una aplicación con
Visual Basic son los objetos. Cada objeto tiene un conjunto de
características y un comportamiento
definido (propiedades, métodos y
eventos) que lo diferencian de otros tipos de objeto. En
otras palabras, un objeto formulario ha sido diseñado para
cumplir determinada función en
una aplicación, y no es lo mismo que un objeto
menú.
Propiedades
El conjunto de datos que
describen las características de un objeto se le conoce
como sus propiedades. Para un formulario tenemos por
ejemplo, las propiedades BackColor (color de fondo),
Height (altura).
Algunas propiedades no solo determinan el aspecto que
tiene el objeto, sino que además pueden determinar su
comportamiento; por ejemplo, la propiedad
MaxButton establece si el formulario tendrá o no el
botón Maximizar. La presencia o ausencia de este
botón determinará si el formulario se puede o no
maximizar.
Métodos
Los métodos son un conjunto de procedimientos que
permiten que un objeto ejecute una acción
o tarea sobre sí mismo. Por ejemplo, para un formulario
tenemos el método
Hide que hará que el formulario se oculte; o el
método Show que hará que el formulario se
vuelva a mostrar.
Eventos
Un evento es una acción que es reconocida
por el objeto. Un evento ocurre (se dispara) como resultado de la
interacción del usuario con el objeto.
También puede dispararse debido a la ejecución de
código (sentencias) o como resultado de la
interacción de otro objeto con el objeto de poseedor del
evento. Para un formulario tenemos por ejemplo; el evento
Load que se dispara cuando se carga el formulario; o el
evento Click para un botón de comando, se dispara
cuando se hace clic sobre él.
¿Qué papel cumplen las propiedades,
métodos y eventos?
Toda aplicación necesita una interfaz de usuario,
la parte visual a través de la cual el usuario
interactúa con la aplicación. Los bloques
básicos de construcción de una interfaz de usuario
son los formularios y los
controles. Visual Basic utiliza técnicas
de programación visual para diseñar las
aplicaciones.
Para diseñar esta ventana (Formulario), del
conjunto de objetos de Visual Basic seleccionamos un objeto tipo
Formulario (Form). Luego a la propiedad Nombre
(Name) le asignamos el valor
frmEntrada; a la propiedad Título le
asignamos el valor Bienvenidos a Gestión
y Sistemas.
Dentro del formulario se colocan los controles. Para que
el usuario pueda ingresar un dato (por ejemplo, la
contraseña) colocamos en la ventana un control tipo
Cuadro de Texto
(TextBox); a continuación establecemos su propiedad
Nombre en txtContraseña, y su propiedad
PasswordChar es un * (asterisco) para que el dato
ingresado sea reemplazado por asteriscos sólo en la
pantalla, para que no se pueda visualizar.
Para obtener el botón Ingresar
seleccionamos un control tipo Botón de Comando
(CommandButton), y lo colocamos en la ventana. Luego cambiamos
sus propiedades; a la propiedad Nombre le asignamos
cmdIngresar, y a la propiedad Título le
asignamos Ingresar.
Se desea que cuando el usuario haga clic en el
botón Limpiar, se borre cualquier dato que el
usuario haya ingresado en los Cuadros de Texto, y que el
punto de inserción se ubique en el cuadro
txtUsuario. Para que esto ocurra debemos programar el
evento Hacer_Click del botón de comando
cmdLimpiar.
El evento debe ejecutar dos sentenciar para cambiar la
propiedad Texto de cada uno de los cuadros de texto, y
luego invocar al método EstablecerEnfoque() del
cuadro de texto txtUsuario.
El Entorno Integrado de Desarrollo
(IDE)
Cuando se inicia Visual Basic, se crea un proyecto nuevo
con un formulario. El IDE de Visual Basic consta de los
siguientes elementos:
Barra de Menús
Presenta los comandos que se
usan para trabajar con Visual Basic. Además de los
menús estándar Archivo, Edición, Ver, Ventana y Ayuda, contiene
otros menús para tener acceso a funciones
específicas de programación, como Proyecto,
Formato o Depuración.
Barra de Herramientas
Permite un acceso directo (solo un clic) a muchas de las
operaciones
más frecuentes utilizadas durante el desarrollo de
aplicaciones.
Cuadro de Herramientas
Contiene todos los objetos y controles que se pueden
añadir a los formularios para crear
aplicaciones.
Diseñador de Formularios
Funciona como una ventana en la que se puede
personalizar el diseño
de la interfaz de usuario (ventana) de una
aplicación.
Explorador de Proyectos
Lista de los archivos
(formularios, módulos, etc.) del proyecto actual. Un
Proyecto es una colección de archivos que utiliza
para construir una aplicación.
Ventana de Propiedades
Lista los valores de
las propiedades del formulario o control seleccionado que pueden
ser modificados durante el diseño del formulario o
control.
Ventana de Código
Funciona como un editor para escribir el código
(sentencias) de la aplicación.
Obtención de Ayuda del Sistema
Visual Basic proporciona una variedad de recursos para
ayudarle a encontrar la información que necesite cuando se
encuentre trabajando dentro del entorno de desarrollo.
Ayuda en línea
Visual Basic proporciona una amplia ayuda en
línea. El archivo de Ayuda
contiene mucho código de ejemplo que se puede copiar
directamente a una aplicación.
La ayuda de Visual Basic es sensible al contexto. Para
emplear la ayuda sensible al contexto en la ventana de
código, escriba la palabra para la cual desea
información, y luego presione F1. Por ejemplo, si
desea información acerca de la sentencia Open,
escriba Open y presione F1.
Libros en Pantalla
Además de la ayuda sensible al contexto, el
CD-ROM de
Visual Basic incluye una versión en línea de la
documentación impresa para Visual Basic.
Para acceder a los Libros en
Pantalla, haga clic en Libros en Pantalla dentro del
menú Ayuda de Visual Basic.
La Ventana de Código
La ventana o editor de código de Visual Basic
proporciona de manera automática información
relevante a medida que se ingresa código. Por ejemplo, si
se escribe el nombre de un control, seguido de un punto, las
propiedades y métodos para ese control serán
mostrados automáticamente en un cuadro de lista. Luego se
puede escoger la propiedad o método deseado para completar
la sentencia.
Cuando se ingresa el nombre de una función en la
ventana de código, Visual Basic automáticamente
proporciona el formato o sintaxis de la
función.
¿Cómo se añaden controles al
formulario?
Para añadir controles a un formulario tenemos dos
métodos:
Método 1
Teniendo el cuadro de Herramientas o
un Formulario visible, haga doble clic en el control que
desea añadir en el Cuadro de Herramientas, los
controles se ubican en el centro del formulario, uno encima de
otro, luego hay que moverlos a la posición deseada dentro
del formulario.
Método 2
- Haga clic sobre el control en el Cuadro de
Herramientas. - Ubique el puntero del Mouse (una
cruz) sobre el formulario en la esquina superior izquierda
donde desea colocar el control. - Realice un clic sostenido mientras arrastra el
puntero a la esquina superior derecha donde colocará el
control. - Suelte el botón del Mouse.
Estos cuatro pasos se repiten con cada control que desea
añadir al formulario.
Terminología de Visual Basic
Conforme trabaje con Visual Basic, necesitará
estar familiarizado con los siguientes
términos:
Término Definición
Tiempo de diseño Es el momento en el que se
construye la aplicación.
Tiempo de ejecución Es el momento en el cual
ejecutamos e interactuamos con la aplicación como lo
haría el usuario.
Formulario Un formulario sirve como una ventana que
puede personalizar como la interfaz de su aplicación o
como un cuadro de diálogo que usa para obtener
información del usuario. Un formulario puede existir
individualmente o puede servir como un documento dentro de una
interfaz de documento múltiple (MDI)
Término Definición
Controles Representación gráfica de
objetos tales como botones, cuadros de lista, cuadros de
edición, etc., con los que el usuario interactúa
para proporcionar información a la
aplicación.
Objetos Un término general usado para
describir todos los formularios y controles que forman parte de
la aplicación.
Propiedades Los valores de un
objeto, tales como tamaño, título, color,
etc.
Métodos Las acciones que un objeto puede
realizar sobre sí mismo.
Eventos Son acciones reconocidas por un formulario o
control. Los eventos ocurren a medida que el usuario
interactúa con los objetos de la
aplicación.
Programación controlada
por eventos Cuando un programa es controlado por
eventos, usted escribe código que se ejecuta en
respuesta a eventos invocados por el usuario. Difiere de la
programación procedural, en la cual el programa
comienza en la primera línea de código y sigue un
flujo definido llamando procedimientos cuando es necesario. La
programación controlada por eventos es la esencia de las
interfaces gráficas de usuario; el usuario acciona y
el código responde.
¿Qué es un proyecto?
Cuando desarrolla una aplicación, Visual Basic
crea un archivo especial llamado Archivo de Proyecto para
administrar todos los demás archivos de la
aplicación.
El Archivo de Proyecto es simplemente una lista
de todos los archivos y objetos asociados con el proyecto,
así como información sobre las opciones del
entorno. Esta información se actualiza cada vez que se
guarda el proyecto. Todos los archivos y objetos también
se pueden compartir con otros proyectos. Un
proyecto está compuesto por los siguientes
archivos:
Tipo de archivo Extensión Descripción
Proyecto .vbp Realiza el seguimiento de todos los
componentes de la aplicación.
Formulario .frm .frx Incluye el formulario, los
objetos sobre el formulario y el código que se ejecuta
cuando ocurre un evento en el formulario.
Módulo estándar .bas Contiene
procedimientos Sub y Function que pueden ser
invocados por cualquier formulario u objeto sobre el
formulario. (opcional)
Tipo de archivo
Extensión Descripción
Controles
Personalizados .ocx Controles adicionales a los
controles estándar proporcionados por Microsoft u otras
empresas. (opcional)
Módulo de clase .cls Contiene la definición de
clase, métodos y propiedades de un nuevo tipo de objeto.
(opcional)
Recursos .res Contiene información binaria
usada por la aplicación. Son usados generalmente cuando
se crean programas para
múltiples lenguajes.
(opcional)
Cuando ha completado todos los archivos del proyecto
puede convertir el proyecto en un archivo ejecutable
(.exe).
Nota: Con las ediciones Profesional y
Empresarial de Visual Basic también puede crear otro tipo
de archivos ejecutables, como archivos .ocx y
.dll.
Pasos para crear una aplicación
El proceso de
creación de una aplicación Visual Basic puede
descomponer en una serie de siete pasos.
Usted crea una interfaz dibujando controles y
objetos sobre un formulario. A fin de hacer que su
código sea más fácil de leer y depurar,
debe luego asignar nombres a los objetos usando convenciones
de nombres estándar.- Crear la interfaz de usuario
Luego de añadir objetos al formulario, se
establece las propiedades de los objetos. Puede establecer
valores iniciales ya sea usando la ventana de propiedades en
tiempo de
diseño o escribiendo código para modificar las
propiedades en tiempo de ejecución. - Establecer las propiedades de los objetos de la
interfazLuego de establecer las propiedades iniciales para
el formulario y cada objeto, añada el código
que se ejecutará en respuesta a los eventos. Los
eventos ocurren cuando diferentes acciones ocurren sobre un
control u objeto. Por ejemplo, clic es un evento que puede
ocurrir para un botón de comando. - Escribir código para los eventos
Cuando crea el proyecto, asegúrese de darle
un nombre usando el comando Guardar Proyecto como del
menú Archivo. Guarde su proyecto frecuentemente
conforme añada código. Al guardar un proyecto
se guardan cada formulario y módulo de código
en el proyecto. - Guardar el proyecto
Conforme añada código al proyecto,
puede usar el comando Iniciar en la Barra de
Herramientas para ejecutar su aplicación y ver su
comportamiento. También puede usar las herramientas de
depuración para verificar errores y modificar
código. - Probar y depurar la aplicación
Al completar su proyecto, crear un archivo
ejecutable usando el comando Generar Xxxxxxx.exe del
menú Archivo. - Crear un archivo ejecutable
- Crear una aplicación de
instalación
Debido a que su archivo ejecutable depende de otros
archivos, tales como el archivo en tiempo de ejecución de
Visual Basic (Vbrun50032.dll), algunos archivos OCX y archivos
DLL adicionales requeridos por la aplicación o por los
controles ActiveX.
Convenciones para los nombres de los
objetos
Los objetos deben llevar nombres con un prefijo
coherente que facilite la identificación del tipo de
objeto. A continuación se ofrece una lista de convenciones
recomendadas para algunos de los objetos permitidos poro Visual
Basic.
Prefijos sugeridos para menús
Las aplicaciones suelen usar muchos controles de
menú, lo que hace útil tener un conjunto
único de convenciones de nombres para estos controles. Los
prefijos de controles de menús se deben extender
más allá de la etiqueta inicial "mnu", agregando un
prefijo adicional para cada nivel de anidamiento, con el
título del menú final en la última
posición de cada nombre. En la tabla siguiente hay algunos
ejemplos.
Secuencia del título del menú Nombre
del controlador del menú
Archivo Abrir mnuArchivadorAbrir
Archivo Enviar
correo mnuArchivoEnviarCorreo
Secuencia del título del menú Nombre
del controlador del menú
Archivo Enviar fax mnuArchivoEnviarFax
Formato Carácter mnuFormatoCarácter
Ayuda Contenido mnuAyudaContenido
Cuando se usa esta convención de nombres, todos
los miembros de un grupo de
menús determinado se muestran uno junto a otro en la
ventana Propiedades de Visual Basic. Además, los nombres
del control de menú documentan claramente los elementos
del menú a los que están adjuntos.
Formularios
El formulario es el principal medio de comunicación entre el usuario y la
aplicación. Los usuarios interactúan con los
controles sobre el formulario para ingresarle datos y obtener
resultados.
Propiedades
BackColor Color de fondo del formulario.
BorderStyle Estilo del borde del formulario.
Caption Texto en la barra de título del
formulario.
ControlBox True/False. Determina si tiene o no el
cuadro de control.
Enabled True/False. Determina si está
habilitado para responder a las acciones del
usuario.
Icon Icono que se muestra cuando el
formulario está minimizado.
Left y Top Ubicación del formulario.
MaxButton True/False. Determina si tiene o no el
botón Maximizar.
MinButton True/False. Determina si tiene o no el
botón Minimizar.
Name Nombre del formulario.
WindowState Estado inicial
del formulario (normal, maximizado o minimizado)
Eventos
Activate Ocurre cuando el formulario se convierte en
la ventana activa.
Click Ocurre cuando hace clic sobre el
formulario.
Deactivate Ocurre cuando el formulario deja de ser la
ventana activa.
Load Ocurre cuando se carga un formulario.
Unload Ocurre cuando un formulario está a punto
de descargarse.
Métodos
Hide Oculta el formulario.
Refresh Actualiza el contenido del
formulario.
SetFocus Le entrega el enfoque al
formulario.
Show Hace visible el formulario.
Controles Básicos
Con los controles, los usuarios pueden operar y obtener
los resultados de una aplicación. Puede añadir
controles a un formulario seleccionando la herramienta adecuada
del Cuadro de Herramientas. Entre los controles más
comunes a utilizar en una aplicación tenemos: Etiqueta
(Label), Cuadro de Texto (TextBox) y Botón de Comando
(CommandButton).
Control Etiqueta (Label)
Se utiliza para mostrar texto que el usuario no puede
modificar. Generalmente para identificar otros controles en el
formulario o para mostrar instrucciones al usuario.
Propiedades
Alignment Alineación del texto dentro del
control.
AutoSize True/False. Determina si el tamaño del
control se ajusta automáticamente al texto que
contiene.
Caption Texto que muestra el control.
Name Nombre del control.
Font Establece la fuente, estilo y tamaño para
el texto del control.
Control Cuadro de Texto (Textbox)
Se utiliza para que el usuario le proporcione datos a la
aplicación o para que la aplicación le devuelva la
información al usuario. El texto que se muestra en el
control puede ser cambiado por el usuario.
Propiedades
Enabled True/False. Establece un valor que determina
si el control puede responder a eventos generados por el
usuario.
Font Establece la fuentes,
estilo y tamaño para el texto del control.
Locked True/False. Determina si es posible modificar el
texto en el control.
MaxLength Establece la longitud máxima permitida
para el texto en el control.
MultiLine Establece si el control puede aceptar
múltiples líneas de texto.
Name Nombre del control.
PasswordChar Carácter utilizado para ocultar el
texto que realmente contiene el control.
Text Texto que realmente contiene y muestra el
control.
Visible Establece si el control será visible
para el usuario.
Eventos
Change Ocurre cuando cambia el texto que contiene el
control.
GotFocus Ocurre cuando el control recibe el
enfoque.
KeyDown Ocurre cuando el usuario presiona una tecla
mientras el control tiene el enfoque.
LostFocus Ocurre cuando el control pierde el
enfoque.
Métodos
Refresh Actualiza el texto del control.
SetFocus Mueve el enfoque al control.
Control Botón de Comando
(Commandbutton)
Permite que la aplicación inicie, interrumpa o
termine un proceso.
Propiedades
Cancel True/False. Establece si el botón se
comportará como el botón cancelar en el
formulario y se invocará su evento Click cada vez
que se presione la tecla ESC.
Caption Establece el texto que muestra el
botón.
Default True/False. Establece si el botón se
comportará como el botón predeterminado en el
formulario.
Font Establece la fuente, estilo y tamaño para
el texto del control.
Name Nombre del botón.
Visible True/False. Establece si el botón
será visible para el usuario.
Eventos
Click Ocurre cuando se hace clic sobre el
botón.
Métodos
SetFocus Mueve el enfoque al botón.
Estableciendo Propiedades
Al diseñar la interfase de usuario de una
aplicación Visual Basic, se deben establecer la
propiedades para los controles (objetos) creados.
Estableciendo Propiedades en Tiempo de
Diseño
Algunas propiedades pueden ser establecidas en tiempo de
diseño. Para establecer estas propiedades se emplea la
ventana de propiedades. Para acceder a la ventana de propiedades,
oprima en botón secundario del ratón sobre un
objeto, y luego haga clic en Propiedades. También
se puede obtener el mismo resultado seleccionado el objeto y
luego presionando F4.
Si selecciona varios objetos a la vez y accede a la
ventana de propiedades, sólo se mostrarán las
propiedades que son comunes para todos los controles
seleccionados. Cualquier cambio que se
haga a una propiedad será aplicada a todos los
controles.
Estableciendo Propiedades en Tiempo de
Ejecución
En tiempo de ejecución, se puede escribir
código para establecer u obtener el valor de una
propiedad. La siguiente línea de código establece a
negrita la fuente de un cuadro de texto llamado
txtData.
txtData.Font.Bold = True ' Establece el texto a
negrita
Este código establece la propiedad Text
del cuadro de texto txtData
txtData.Text = "Hola mundo" 'Establece el valor del
texto
Si se omite el nombre de la propiedad, se establece la
propiedad predeterminada del control. La propiedad predeterminada
de un cuadro de texto es la propiedad Text. La propiedad
predeterminada de una etiqueta es la propiedad Caption.
Las siguientes líneas de código establecen las
propiedades predeterminadas text y caption de un cuadro de texto
y de una etiqueta.
txtData = "Se establece la propiedad Text del cuadro de
texto"
lblData = "Se establece la propiedad Caption de la
etiqueta"
Obteniendo Propiedades en Tiempo de
Ejecución
Puede emplear el siguiente código para obtener el
valor de una propiedad en tiempo de ejecución.
Dim sNombre as String
sNombre = txtName.Text
Procedimientos de Evento
Visual Basic invoca automáticamente
procedimientos de evento en respuesta a acciones del teclado, del
ratón o del sistema. Por ejemplo, los botones de comando
tienen un procedimiento de
evento Click. El código que se escriba en el procedimiento
de evento Click es ejecutado cuando el usuario haga clic en un
botón de comando.
Para abrir la ventana de código, haga doble clic
en el control o formulario, haga clic en la orden
Código del menú Ver.
Cada control tiene un conjunto fijo de procedimientos de
evento. Los procedimientos de evento para cada control son
mostrados en un cuadro de lista despegable en la ventana de
código. El siguiente código muestra el
procedimiento de evento Click para un botón de comando
llamado cmdOK.
Private Sub cmdOK_Click()
MsgBox "Hola"
End Sub
Orden de Tabulacion de los Controles
El orden de tabulación es el orden en que
un usuario se mueve de un control a otro pulsando la tecla
Tab. Por omisión, el orden de tabulación es
igual al orden en que se han colocado los controles en el
formulario.
Para cambiar el orden de tabulación de los
controles de un formulario, establezca el valor de la propiedad
TabIndex de cada control. El valor de esta propiedad va
desde 0 hasta n-1, siendo n el número de controles que
tiene el formulario.
Quitar un control del orden de
tabulación
Normalmente, presionando la tecla Taben tiempo de
ejecución pasamos de un control a otro en el orden de
tabulación establecido. Podemos quitar un control del
orden de tabulación si establecemos su propiedad
TabStop en False. Un control cuya propiedad
TabStop se ha establecido en False sigue
manteniendo su posición en el orden de tabulación
actual, aunque el control es saltado al ir de un control a otro
con la tecla Tab.
Nota: Los controles que no pueden
obtener enfoque, al igual que los controles desactivados o
invisibles, no tienen la propiedad TabIndex y no
están incluidos en el orden de tabulación. Cuando
el usuario presiona Tab, estos controles son
ignorados.
Tecla de Acceso Rapido a un Control
Si el control tiene la propiedad Caption, se le
puede asignar una tecla de acceso rápido para seleccionar
el control y de esta manera el control recibirá el enfoque
cada vez que se oprima ALT + TecladeAcceso. Para
especificar la tecla de acceso rápido debe resaltar un
carácter de la cadena en la propiedad Caption
colocando delante de este el símbolo "&". Por
ejemplo si el valor de la propiedad Caption es la cadena
Usuario, y se desea definir la tecla s como
la de acceso rápido, deberá establecer la propiedad
Caption de la siguiente manera: U&suario. El
texto del control se verá así
Usuario.
Algunos controles, tales como el control Cuadro de
Texto, no tiene la propiedad Caption. Para crear una
tecla de acceso para esos controles:
- Coloque un control Etiqueta cerca de otro
control. - Establezca la propiedad Caption del control
Etiqueta para contener la tecla de acceso
apropiada. - Establezca para el control Etiqueta un valor
de orden de tabulación menor en una unidad que el de
otro control.
Cuando pulse ALT + TecladeAcceso del control
Etiqueta, el enfoque se moverá hacia el otro
control debido a que el control Etiqueta no puede recibir
el enfoque.
Parte
2: Manejo de Formularios
Módulos de Formulario
Cada formulario en su aplicación tiene un
módulo de formulario asociado, estos son guardados con una
extensión de archivo FRM y contienen:
- Los valores de las propiedades para el formulario y
sus controles. - Declaración de variables en
el ámbito del formulario. - Procedimientos de evento y procedimientos generales
en el ámbito del formulario.
Nota: Las descripciones gráficas
de un formulario y los controles sobre el formulario son
almacenados en formato binario en un archivo con extensión
FRX.
Módulos Estándar
Los módulos estándar pueden contener
código que es común a varios formularios en su
aplicación. Este código es por omisión
público, lo cual significa que fácilmente
compartido con otros módulos de código, tales como
un módulo de formulario. Estos módulos contienen
declaraciones de procedimientos, tipos y variables. No pueden
almacenar procedimientos de evento por que no contienen
objetos.
La Ventana de Código
Código es un término general para
todas las sentencias Visual Basic que usted escribe en una
aplicación: procedimientos de evento y procedimientos
generales. El código en Visual Basic se escribe en la
ventana de Código. El editor de texto es solo un editor
ASCII con
colores para
diferenciar las palabras claves en el código que
escribe.
La Ventana de Código se usa para escribir,
mostrar y editar el código de su aplicación. Puede
abrir una ventana de código por cada módulo de su
aplicación, de modo que puede fácilmente copiar y
pegar entre ellos.
La Ventana de Código
contiene:
El Cuadro Lista de Objetos
Muestra el nombre del objeto seleccionado. Haga clic en
la flecha a la derecha del cuadro Objeto para mostrar una lista
de todos los objetos asociados con el formulario.
El Cuadro Lista de Eventos
Muestra todos los eventos reconocidos para el formulario
o control mostrado en el cuadro Objeto. Cuando seleccionamos un
evento, en la ventana de código se muestra el
procedimiento de evento asociado con ese evento.
La Barra de División
Desde el menú Ventana puede ejecutar el
comando Dividir para dividir la ventana de código
en dos partes, cada una de las cuales se desplaza separadamente.
Puede entonces ver diferentes partes de su código al mismo
tiempo. La información que aparece en el cuadro Objeto y
Procedimiento se refiere al código en la parte que tiene
el enfoque. El mismo comando utilizado para dividir la ventana
puede utilizarlo para cerrar una de sus partes o también
lo puede hacer arrastrando la barra de división hacia la
parte superior o inferior de la ventana.
El Botón Ver Procedimiento
Establece que en la ventana de código se edite un
procedimiento a la vez.
El Botón Ver Módulo
Completo
Establece que en la ventana de código se tenga
acceso a todos los procedimientos, separados por una línea
separadora uno de otro.
Editando Código
Use las características de edición de
Visual Basic para que su código sea más
fácil de leer.
Sangría
Use la sangría para diferenciar partes de su
código, tales como estructuras
repetitivas y condicionales. Para aplicar sangría a una
sección de sentencias de un código use la tecla
Tab o el comando Aplicar sangría del
menú Edición. Se forma similar, Shift
+ Tab o el comando Anular sangría del
menú Edición quitará una
sangría a las líneas seleccionadas. Veamos el
siguiente ejemplo:
Carácter de Continuación de
Línea
El carácter subrayado (_) es el carácter
de continuación de línea, y se usa para dividir una
sentencia en múltiples líneas. Esto hace que la
sentencia sea más fácil de leer porque está
contenida totalmente dentro de la ventana de código en
lugar de extenderse mas allá de sus límites.
El carácter de continuación de línea se
coloca luego de un espacio de la sentencia, como se muestra en el
siguiente ejemplo:
MsgBox "La clave ingresada no es válida",
_
vbOKOnly + vbExclamation, _
"Mensaje"
Comentarios
El añadir documentación y comentarios a su
código permite comprender mejor lo que hace el
código. Esto también ayuda a comprender el
código si necesita volver a revisarlo en alguna fecha
posterior. Un comentario se inicia con el carácter
apóstrofe (‘), de modo que todo el texto que
continúe a este carácter será ignorado en la
ejecución de la aplicación. Veamos el siguiente
ejemplo:
Cuadro de Mensaje y de Entrada
Una de las formas más simples de obtener
información para y desde el usuario es utilizando las
funciones MagBox e InpuBox
respectivamente.
Función MsgBox()
Los cuadros de mensaje ofrecen un modo simple y
rápido de consultar a los usuarios por información
simple o para permitirles tomar decisiones sobre el camino que su
programa debe tomar. Puede usar esta función para mostrar
diferentes tipos de mensaje y botones con los cuales el usuario
da una respuesta.
Formato
MsgBox( prompt [, buttons] [, title ] [, helpfile,
context] )
EL formato de la función MsgBox consta de los
siguientes argumentos:
Parte Descripción
Prompt Requerido. Expresión de cadena que
representa el mensaje en el cuadro de diálogo. La
longitud máxima de prompt es de aproximadamente 1024 de
caracteres, según el ancho de los caracteres utilizados.
Si prompt consta de más de una línea, puede
separarlos utilizando un carácter de retorno de carro
(Chr(13) ) o un carácter de avance de línea
(Chr(10) ), o una combinación de caracteres de retorno
de carro – avance de línea (Chr(13 y Chr(10) ) entre
cada línea y la siguiente.
Buttons Opcional. Expresión numérica que
corresponde a la suma de los valores que especifican el
número y el tipo de los botones que se pretenden
mostrar, el estilo de icono que se va a utilizar, la identidad
del botón predeterminado y la modalidad del cuadro de
mensajes. Si se omite este argumento, el valor predeterminado
para buttons es 0.
Title Opcional. Expresión de cadena que se
muestra en la barra de título del cuadro de
diálogo. Si se omite title, en la barra de título
se coloca el nombre de la aplicación.
Helpfile Opcional. Expresión de cadena que
identifica el archivo de Ayuda que se utiliza para proporcionar
ayuda interactiva en el cuadro de diálogo. Si se
especifica helpfile, también se debe especificar
context.
Context Opcional. Expresión numérica que
es igual al número de contexto de Ayuda asignado por el
autor al tema de Ayuda correspondiente. Si se especifica
context, también se debe especificar
helpfile.
Valores
El argumento buttons puede asumir los siguientes
valores:
El primer grupo de valores (0 a 5) describe el
número y el tipo de los botones mostrados en el cuadro de
diálogo; el segundo grupo (16, 32, 48, 64) describe el
estilo del icono, el tercer grupo (0, 256, 512, 768) determina el
botón predeterminado y el cuarto grupo (0, 4096) determina
la modalidad del cuadro de mensajes. Cuando se suman
números para obtener el valor final del argumento buttons,
se utiliza solamente un número de cada grupo.
Nota: Estas constantes las especifica
Visual Basic. Por tanto, el nombre de las mismas puede utilizarse
en cualquier lugar del código en vez de sus valores
reales.
Valores devueltos
Nota: Si desea omitir algún
argumento, debe incluir el delimitador de coma correspondiente o
utilizar argumentos con nombre.
Ejemplos
Función InpuBox()
La función InputBox muestra un mensaje en un
cuadro de diálogo, espera que el usuario escriba un texto
o haga clic en un botón y devuelve un tipo String con el
contenido del cuadro de texto.
Formato
InputBox( prompt [, title] [, default] [, xpos] [,ypos]
[, helpfile, context] )
El formato de la función InpuBox consta de los
siguientes argumentos con nombre:
Parte Descripción
Prompt Requerido. Expresión de cadena que se
muestra como mensaje en el cuadro de diálogo. La
longitud máxima de prompt es de aproximadamente de 1024
caracteres, según el ancho de los caracteres utilizados.
Si prompt consta de más de una línea, puede
separarlos utilizando un carácter de retorno de carro
(Chr(13)), un carácter de avancede línea
(Chr(10)) o una combinación de los caracteres de retorno
de carro – avance de línea (Chr(13) y (Chr(10))
entre cada línea y la siguiente.
Title Opcional. Expresión de cadena que se
muestra en la barra de título del cuadro de
diálogo. Si omite title, en la barra de título se
coloca el nombre de la aplicación.
Default Opcional. Expresión de cadena que se
muestra en el cuadro de texto como respuesta predeterminada. Si
omite default, se muestra el cuadro de texto
vacío.
Xpos Opcional. Expresión numérica que
especifica, la distancia en sentido horizontal entre el borde
izquierdo del cuadro de diálogo y el borde izquierdo de
la pantalla. Si se omite xpos, el cuadro de diálogo se
centra horizontalmente.
Ypos Opcional. Expresión numérica que
especifica, la distancia en sentido horizontal entre el borde
izquierdo del cuadro de diálogo y el borde izquierdo de
la pantalla. Si se omite ypos, el cuadro de diálogo se
coloca aproximadamente un tercio de la altura de la pantalla,
desde el borde superior de la misma.
Helpfile Opcional. Expresión de cadena que
identifica el archivo de Ayuda que se utilizará para
proporcionar ayuda interactiva para el cuadro de
diálogo. Si se especifica helpfile, también
deberá especificar context.
Context Opcional. Expresión numérica que
es el número de contexto de Ayuda asignado por el autor
al tema de Ayuda correspondiente. Si se especifica context,
también deberá especificarse helpfile.
Comentarios
Si el usuario hace clic en Cancelar, la
función devuelve una cadena de caracteres de longitud cero
("").
Nota: Si desea omitir algunos
argumentos, debe incluir el delimitador de coma correspondiente o
utilizar argumentos con nombre.
Constantes Predefinidas
Visual Basic reconoce cierta cantidad de constantes
predefinidas que pueden se usadas en cualquier parte de su
código en lugar de valores numéricos. Puede hacer
que su código sea más fácil de leer y
escribir mediante el uso de estas constantes. Además, los
valores de estas constantes pueden cambiar en versiones
posteriores de Visual Basic, su uso permitirá que su
código sea compatible. Por ejemplo, la propiedad
WindowState de un formulario puede aceptar las siguientes
constantes:
Por ejemplo, para establecer el estado del
formulario frmEntrada en maximizado, la sentencia
sería:
frmEntrada.WindowState = vbMaximized
Manejo de Formularios
Normalmente la intefaz de una aplicación
está compuesta por varios formularios. Cuando Visual Basic
inicia la aplicación, automáticamente se muestra el
formulario de arranque, mientras que los otros formularios deben
ser mostrados y ocultados a través de código. El
método o función usado depende de lo que deseamos
hacer.
Método Show
Muestra un formulario. Si el formulario no está
cargado al momento de ejecutar el método Show, Visual
Basic lo cargará automáticamente.
Formato
NombreDelFormulario.Show
Ejemplo
FrmEntrada.Show
Sentencia Load
Carga un formulario a la memoria,
pero no lo muestra.
Formato
Load NombreDelFormulario
Ejemplo
Load FrmEntrada
Evento Load
El evento Load ocurre cuando el formulario es
cargado en la memoria. Esto
sucede cuando se usa la sentencia Load, o cuando se invoca
el método Show y el formulario aún no
está cargado en memoria. Normalmente, este evento se
utiliza para establecer algunas propiedades del formulario, los
controles que se encuentran en él, o variables a nivel del
formulario.
Ejemplos:
Método Hide
Oculta un formulario, pero no lo descarga de
memoria.
Formato
NombreDelFormulario.Hide
Ejemplo:
frmIngreso.Hide
Sentencia Unload
Descarga un formulario de memoria
Formato
Unload NombreDelFormulario
Comentarios
La descarga de un formulario puede ser necesario o
conveniente en aquellos casos en los que la memoria utilizada se
necesite para alguna otra tarea o cuando sea necesario
restablecer las propiedades a sus valores originales.
Antes de descargar un formulario se ejecuta el evento
Unload (Form_Unload). Si establece el argumento
Cancelar a True en este evento, no se
descargará el formulario.
Sugerencia
Use la palabra Me para referirse al formulario
actual.
Ejemplo
‘ Descarga el formulario actual
Private Sub cmdCerrar-Click ( )
Unload Me
End Sub
Evento Unload
Ocurre cuando un formulario está a punto de
descargarse. Este evento se desencadena porque un usuario cierra
el formulario mediante el comando Cerrar del menú
Control o una sentencia Unload.
El parámetro Cancelar, es un entero que
determina si el formulario es descargado. Si Cancelar es
0, el formulario se descarga. Establecer Cancelar a
cualquier valor distinto de cero impide que el formulario sea
descargado.
Ejemplo
Formularios Modales y No Modales
Un formulario que se abre como Modal, no
permite que el usuario interactúe con otros formularios de
la misma aplicación hasta que no sea cerrado.
Un formulario que se abre como No Modal,
permite al usuario cambiar a otros formularios de la misma
aplicación sin que los primeros sean cerrados.
El argumento Estilo del método
Show determina si el formulario se abre como
Modal o No Modal.
Ejemplos
Finalización de una
Aplicación
Se puede finalizar la ejecución de la
aplicación descargando el último formulario de la
aplicación o usando la sentencia End. La
sentencia End termina la ejecución de la
aplicación y descarga todos los formularios. Cuando
finaliza su aplicación con la sentencia End no se
desencadena ningún evento de los formularios.
Ejemplos
El Editor de menús
Esta herramienta permite crear menús
personalizados para la aplicación y definir sus
propiedades. Para ingresar, estando en tiempo de diseño,
haga clic en el menú Herramientas y luego en la
orden Editor de Menús o en el botón
equivalente de la barra de herramientas
estándar.
Nota: Para poder ingresar
el editor de menús no debe encontrarse en la ventana de
código.
Opciones del cuadro de diálogo
Añadiendo Controles Adicionales al Cuadro de
Herramientas
El Cuadro de Herramientas contiene los controles
intrínsecos o estándar de Visual Basic. Es posible
ampliar el cuadro de herramientas añadiendo controles
ActiveX. La edición profesional de Visual Basic
proporciona controles ActiveX adicionales. También es
posible comprar controles ActiveX a terceras partes.
Para añadir un control ActiveX al cuadro de
herramientas haga lo siguiente:
- En el menú Proyecto, haga clic en
Componentes. Visual Basic mostrará el cuadro de
diálogo Componentes. - En la ficha Controles, haga clic en el control
que desea incluir, y luego haga clic en Aceptar. Visual
Basic añadirá el control al cuadro de
herramientas.
El control ToolBar
Un control Toolbar contiene una colección
de objetos Button utilizados para crear una barra de
herramientas asociada a una aplicación.
Comentarios
Normalmente, una barra de herramientas contiene botones
que corresponden a elementos de menú de una
aplicación, proporcionando una interfaz gráfica al
usuario que le permite tener acceso a las funciones y comandos
empleados con más frecuencia en esa
aplicación.
El control Toolbar le permite crear barras de
herramientas agregando objetos Button a una
colección Buttons; cada objeto Button puede tener
texto opcional o una imagen,
proporcionados por un control ImageList asociado. Puede
mostrar una imagen en un botón con la propiedad
Image o mostrar texto con la propiedad Caption, o
ambos, para cada objeto Button. En tiempo de diseño
puede agregar objetos Button al control utilizando la
Página de propiedades del control Toolbar. En
tiempo de ejecución, puede agregar o quitar botones de la
colección Buttons mediante los métodos
Add y Remove.
Para programar el control Toolbar, agregue
código al evento ButtonClick para que responda al
botón seleccionado. También puede determinar el
comportamiento y la apariencia de cada objeto Button
mediante la propiedad Style. Por ejemplo, si a cuatro
botones se les asigna el estilo ButtonGroup, sólo
se podrá presionar uno de ellos y al menos uno
estará siempre presionado.
La facilidad de uso se mejora considerablemente
programando descripciones ToolTipText de cada objeto
Button. Para mostrar información sobre
herramientas, la propiedad ShowTips debe establecerse a
True.
El Control ImageList
Un control ImageList contiene una
colección de objetos ListImage, a cada uno de los
cuales se puede hacer referencia mediante su índice o su
clave. El control ImageList no está concebido para
utilizarlo en solitario, sino como punto de almacenamiento
central para proporcionar cómodamente imágenes a
otros controles.
Comentarios
Puede usar el control ImageList con cualquier
control que asigne un objeto Picture a una propiedad
Picture.
Es posible agregar imágenes de diferentes
tamaños al control ImageList, pero todas se ajustan
al mismo tamaño. El tamaño de los objetos de
ListImage está determinado por uno de los
siguientes valores:
- El valor de las propiedades ImageWidth y
ImageHeight antes de agregar alguna imagen. - Las dimensiones de la primera imagen
agregada.
No hay ninguna limitación en cuanto al
tamaño de la imagen, pero el número total de
imágenes que se puede cargar está limitado por la
cantidad de memoria disponible.
Durante el diseño del programa puede agregar
imágenes mediante la ficha General del cuadro de
diálogo Propiedades del control ImageList.
En tiempo de ejecución puede agregar imágenes
mediante el método Add para la colección
ListImages.
Nota: Los controles Toolbar e
ImageList forman parte del grupo de controles ActiveX
adicionales Microsoft Windows Common Controls 5.0 (archivo
COMCTL32.OCX). Para usarlos en su aplicación debe agregar
el archivo COMCTL32.OCX al proyecto. Cuando distribuya su
aplicación, instale el archivo COMCTL32.OCX en la carpeta
System o System32 (en plataformas con Windows NT) de
Microsoft Windows del usuario.
Interfaz de Múltiples Documentos (MDI
– Multiple Document Interfase)
El Objeto MDIForm
Un formulario MDI es una ventana que actúa como
fondo de una aplicación y es el contenedor de formularios
que tienen su propiedad MDIChild establecida a True. Para crear
un objeto MDIForm, elija Agregar formulario MDI en el
menú Proyecto, luego de agregarlo tenga en cuenta
lo siguiente:
- Una aplicación sólo puede tener un
objeto MDIForm, pero varios formularios secundarios
MDI.
- Si un formulario secundario MDI tiene menús,
la barra de menús del formulario secundario
reemplazará automáticamente a la barra de
menús del objeto MDIForm cuando el formulario secundario
MDI esté activo. - Un formulario secundario MDI minimizado se
mostrará como un icono en el MDIForm.
- Un objeto MDIForm sólo puede contener
controles Menu y PictureBox, y controles personalizados que
tengan una propiedad Align. Para colocar otros controles en un
MDIForm, puede dibujar un cuadro de imagen en el formulario y
después dibujar otros controles dentro del cuadro de
imagen. Puede utilizar el método Print para mostrar
texto en un cuadro de imagen de un MDIForm, pero no puede usar
este método para mostrar texto en el MDIForm propiamente
dicho. - Un objeto MDIForm no puede ser modal.
- Los formularios secundarios MDI se diseñan de
forma independiente del MDIForm, pero siempre están
contenidos en el MDIForm en tiempo de
ejecución.
Formulario secundario MDI
Un formulario contenido dentro de un formulario MDI en
una aplicación con interfaz de múltiples documentos
(MDI). Para crear un formulario secundario, establezca su
propiedad MDIChild a True.
Propiedad MDIChild
Devuelve o establece un valor que indica si un
formulario debe mostrarse como formulario secundario MDI dentro
de un formulario MDI. Es de sólo lectura en
tiempo de ejecución. Los valores admitidos para la
propiedad MDIChild son:
Valor Descripción
True El formulario es MDI secundario y se
mostrará dentro del formulario MDI primario.
False (Predeterminado) El formulario no es MDI
secundario.
Comentarios
Utilice esta propiedad al crear una aplicación
con interfaz de múltiples documentos (MDI). En tiempo de
ejecución, los formularios que tengan establecida a True
esta propiedad se mostrarán dentro de un formulario MDI.
Los formularios MDI secundarios pueden maximizarse, minimizarse y
desplazarse, siempre dentro del formulario MDI primario. Cuando
trabaje con formularios MDI secundarios, tenga en cuenta lo
siguiente:
- En tiempo de ejecución, cuando un formulario
MDI secundario se maximiza, su título se combina con el
del formulario MDI primario. - En tiempo de diseño, los formularios MDI
secundarios se muestran de la misma forma que el resto y
sólo se mostrarán dentro del formulario primario
en tiempo de ejecución. El icono de un formulario MDI
secundario en la ventana Proyecto es distinto de los iconos de
otros tipos de formularios. - Los formularios MDI secundarios no pueden ser
modales. - El entorno operativo Microsoft Windows controla el
tamaño y la posición iniciales de los formularios
MDI secundarios, a menos que los establezca
específicamente en el procedimiento de evento
Load. - Si se hace referencia a un formulario MDI secundario
antes de cargar el formulario MDI primario, éste se
cargará automáticamente. Sin embargo, si se hace
referencia al formulario MDI primario antes de cargar un
formulario MDI secundario, el formulario MDI secundario no se
cargará.
Página siguiente |