CURSO BASICO DE
VISUAL BASIC 6.0
En qué consiste Visual
Basic
- Visual Basic
es un lenguaje que permite programar aplicaciones a la
manera de Windows, esto es, siguiendo las convenciones de
la GUI (interfaz gráfica de usuario) de Windows
- Visual Basic es un
lenguaje manejado por eventos (event-driven), esto
significa que el código se ejecuta en respuesta a
ciertos eventos (click en un botón, selección en un menú,
tecla enter, etc., ...). Visual Basic ies manejado por un
`procesador de eventos Nada ocurre en tanto no se detecte
un evento. Una vez detectado se ejecuta el código
correspondiente (event procedure)
- Este esquema presenta
cierta diferencia con la programación tradiional (para
interfases no graficas como DOS por ejemplo) donde los
programas son secuencias de instrucciones donde el
computador "pregunta" y va ejecutando el flujo
de código de manera secuencial
- Algunas características
de Visual Basic
- Conjunto de objetos -permiten
"dibujar" las pantallas
- Posibilidad de
insertar iconos e imágenes
- Responde a acciones
de mouse y teclado
- Acceso a impresora y
portapapeles (clipboard)
- Funciones
mathematicas, manejo de string, y gráficas
- Puede manejar
arreglos de controles estáticos y dinámicos
- Soporte para acceso a
archivos secuenciales y aleatorios
- Debugger
- Poderosas
herramientas de acceso para las principales bases de
datos
- Soporte ActiveX
- Wizard para crear
archivos instaladores
Estructura de una
aplicación en Visual Basic
Una Aplicación (Project)
ise compone de:
- Forms - Son
las pantallas del programa, la interfase con el usuario
- Controls - Son
gráficos dentro de las form que permiten al usuario
interactuar con el programa (text boxes, labels, scroll
bars, command buttons, etc.) (las Forms y Controls son objects.)
- Properties -
Cada característica de una form o control es
especificada por una property. Ejemplo de properties son
names, captions, size, color, position, and contents.
Visual Basic aplica default properties. Las properties
pueden cambiarse ya sea en tiempo de diseño como en
tiempo de ejecución
- Methods -
Procedimientos incorporados que pueden ser llamados para
que el object haga algo
- Event Procedures
- Código relacionado a un objeto. Es el codigo que se
ejecuta cuando ocurre un evento (click del mouse, etc.)
- General Procedures
- Codigo que no está relacionado a ningún objeto
- Modules -
Collección de procedures generales, declaración de
variables, definicón de constantes, etc.
Como se hace un
programa en Visual Basic
- Existen tres pasos
principales:
- Dibujar
las pantallas (user interface)
- Asignar
las properties a los controles
- Escribir
el código para los controles
Por ejemplo:
Dibujar la User
Interface y Asignar las Properties
· Visual Basic
funciona en tres modos:.
- Design mode -
usado para escribir la aplicación
- Run mode -
usado para ejecutar la aplicación
- Break mode -
la aplicación se detiene y el debugger queda disponible
Nos enfocaremos en el design
mode.
· Al partir
Visual Basic, la pantalla se divide en seis ventanas:
- La Main Window
consiste en la title bar, menu bar, y toolbar. La title
bar indica el nombre del proyecto, el modo actual de
operación del Visual Basic, y la form activa. La barra
de menús tiene drop-down menus con los que se controla
la operación del Visual Basic. La toolbar tiene
botonescon atajos a las opciones más usadas del menú La
main window también muestra la localización de la form
activa así como su ancho y alto

- La ventana de Form
es la central para el desarrollo de aplicaciones de
Visual Basic, pues allí es donde se dibuja y escribe la
aplicación

- La Toolbox
permite selleccionar los controles que se usarán en la
aplicación

- La ventana de Properties
se usa para establecer las propiedades iniciales de
cada objeto. La lista drop-down de la parte superior
lista todos los objetos de la form activa Las propiedades
pueden verse por orden alfabetico o listadas según
categoría

- La ventana de Form
Layout muestra en que lugar relativo de la pantalla
se ubicará la form, una vez que el programa esté
corriendo

- La ventana de Project
muestra una lista de todas las forms y módulos de la
aplicación. Las Form pueden verse gráficamente o también
el código que contienen

- Para dibujar los
controies en una form:
- Doble-click en el
control de la toolbox y aparecerá con su tamaño default
sobre la form. Luego puede ser movido o cambiado de tamaño.
- La otra
forma es dar un solo click sobre el control y luego
dibujarlo con el mouse sobre la form. Ambos métodos dan
el mismo resultado.

Ejemplo
1-1
Un Cronómetro
- Dibujando los controles
1. Parta un nuevo
proyecto. La idea de este proyecto es partir un cronómetro.
Luego detenerlo y mostrar el tiempo transcurrido en
segundos2.
Coloque tres command buttons y seis labels dentro de la
form. Mueva y dimensione los controles hasta obtener algo
así:

Colocando propiedades a
los objetos en tiempo de diseño
Cada objeto del
Visual Basic tiene sus properties asignadas por
default . Al hacer click sobre un objeto (form o control)
este pasa a ser el objeto activo y sus propiedades son
listadas en la pantalla correspondiente. En este ejemplo
vemos las propiedades de la form
Una propiedad muy
importante de cada uno de los objetos es name. El nombre
que usa el Visual Basic para referirse a ese objeto en particular
Ejemplo de nombresEn estos ejemplos se usa
una convención usual del Visual Basic, pero podemos
colocar el nombre como se nos antoje
Form frm frmWatch
Command Button cmd,
btn cmdExit, btnStart
Label lbl lblStart,
lblEnd
Text Box txt
txtTime, txtName
Menu mnu mnuExit,
mnuSave
Check box chk
chkChoice
· Los nombres de
objetos pueden tner hasta 40 caracteres, deben partir con
una letra y contener solo letras, números o guión bajo
(_)
Colocando propiedades
en Run Time
Para colocar las
propiedades en run time se deben asignar por medio de un
código, en el formato
ObjectName.Property =
NewValue
(por ejemplo form1.visible=false)
Como se usan los
nombres de los objetos
· Los nombres que
colocamos a los objetos sirven de "marco" para
los procedimientos a los que se les agrega código. El
formato para las subrutinas (todos los object procedures
en Visual Basic son subrutinas) es:
Sub ObjectName_Event (Optional
Arguments)
.
.
End Sub
· Visual Basic
coloca la linea Sub con sus argumentos (si los hay)
ay la End Sub automáticamente. Nosotros debemos
escribir el código entre ambas lineas.
Ejemplo
1-2
Cronómetro
- Colocando las Propiedades
1. Coloque las
siguientes propiedades a la form, los tres buttons, y los
seis labels (activando cada uno de los objetos con un
click y modificando el valor en la ventana de propiedades):
Form1:BorderStyle 1-Fixed
Single
Caption
Stopwatch Application
Name
frmStopWatch
Command1:
Caption
&Start Timing
Name
cmdStart
Command2:
Caption
&End Timing
Name
cmdEnd
Command3:
Caption E&xit
Name
cmdExit
Label1:
Caption
Start Time
Label2:
Caption
End Time
Label3:
Caption
Elapsed Time
Label4:
BorderStyle
1-Fixed Single
Caption [Blank]
Name
lblStart
Label5:
BorderStyle
1-Fixed Single
Caption [Blank]
Name
lblEnd
Label6:
BorderStyle
1-Fixed Single
Caption [Blank]
Name
lblElapsed
En la propiedades Caption
de los tres command buttons, note el ampersand (&).
Este sirve para fijar una access key. Esto es para
usar (además del click del mouse) el método Alt-tecla
2. Su form debe
verse ahora más o menos así:

Variables
- Ya estamos listos
para escribir el código a los distintos objetos.
Simplemente debemos agregar código a los eventos que
deseamos que ocurran (por ejemplo al hacer click sobre un
botón, etc) Antes de eso, debemos discutir algo sobre
las variables.
- Reglas usadas para
los nombres de variables:
- No más de 40
caracteres
- Pueden incluír
letras, números, y underscore (_)
- El primer caractér
debe ser una letra
- No pueden usarse
palabras reservadas (las que usa el Visual Basic)
Tipos de datos en
Visual Basic
Sufijos de tipo de
datoBoolean
Ninguno
Integer %
Long (Integer)
&
Single (Floating)
!
Double (Floating)
#
Currency @
Date Ninguno
Object Ninguno
String $
Variant Ninguno
Declaración de las
Variables
· Hay tres maneras
de declarar una variable:
- Default
- Implicit
- Explicit
· Si las variables
no son implicita o explicitamente declaradas se les
asigna el tipo variant por default. Una
variable tipo variant puede contener datos numéricos,
string o date indistintamente.· Para declarar implicitamente
una variable, se usa el correspondiente suffix, por
ejemplo,
TextValue$ = "This is
a string"
crea una variable
string
Amount% = 300
crea una variable integer.
· Hay muchas
ventajas en declarar explicitamente las variables.
Primero que nada aseguramos que los cálculos se hacen
apropiadamente y los errores de tipeo son más fáciles
de trazar, Visual Basic se cuidará de asegurar la
consistencia en las mayúsculas y minúsculas usadas en
los nombres, etc.· Para declarar explicitamente
una variable, debemos determinar su scope (alcance).
Hay cuatro niveles de alcance:
- Procedure level
- Procedure level,
static
- Form and module level
- Global level
· Dentro de un
procedure, las variables se declaran usando Dim:
Dim MyInt as Integer
Dim MyDouble as Double
Dim MyString, YourString
as String
Las variables a nivel
de Procedure declaradas de esta manera no retienen su
valor después de terminado el procedure.· Para hacer que una
variable a nivel de procedure retenga su valor al
terminar este, reemplace Dim por Static:
Static MyInt as Integer
Static MyDouble as Double
· Las variables a
nivel de Form (module) retienen su valor y están
disponibles para todos los procedures dentro de la form (module).
Las variables a este niovel se declaran en la sección declarations
del objeto general de la form (venbtanilla de código).
Se usa la sentencia Dim :
Dim MyInt as Integer
Dim MyDate as Date
· Las variables a
nivel Global retienen su valor y están disponibles para
todos los procedures de la aplicación. Se declaran en la
parte declarations del objeto general de un
módulo. (Se recomienda colocar todas las variables
globales en un mismo módulo.) Use la sentencia Global:
Global MyInt as Integer
Global MyDate as Date
Ejemplo
1-3
Cronómetro
- Agregando Código
Lo último que nos queda
es colocar código a los objetos. Escribimos código para cada
uno de los eventos que necesitamos en la aplicación. en este
ejemplo tenemos tres eventos, cada uno parte haciendo un click
sobre cada uno de los botones.
- Doble-click en
cualquier espacio desocupado sobre la form para que
aparezca la ventana donde escribiremos el código.
- En la
ventanilla superior de objetos seleccional el objeto
llamado (general). La ventanilla de Procedure
mostrará (declarations). Aquí declaramos tres
variables a nivel de form:
- Option Explicit
Dim StartTime As Variant
Dim EndTime As
Variant
Dim ElapsedTime
As Variant
Option Explicit
nos fuerza a declarar todas las variables. Las demás líneas
establecen las variables StartTime, EndTime,
yElapsedTime como globales dentro de la form.
- Selecccione
el objeto cmdStart en la Object box. Si el
procedimiento que aparece no es el Click procedure,
escoja Click de la procedure box. Tipee el
siguiente código que se ejecutará cuando presione el
botón cmdStart. Note que Sub y End Sub son
colocados por defecto por el editor:
- Sub cmdStart_Click
()
Establish
and print starting time
StartTime = Now
lblStart.Caption
= Format(StartTime, "hh:mm:ss")
lblEnd.Caption
= ""
lblElapsed.Caption
= ""
End Sub
En éste procedure,
una vez que el botón Start Timing es clickeado
con el mouse, leemos la hora actual y la mostramos en una
label box. Además borramos todas las demás label boxes.
Las líneas que comienzan con comilla simple son
comentarios (no ejecutables)
Ahora, codifique el buttom
cmdEnd
- Sub cmdEnd_Click
()
Find
the ending time, compute the elapsed time
Put both
values in label boxes
EndTime = Now
ElapsedTime =
EndTime - StartTime
lblEnd.Caption
= Format(EndTime, "hh:mm:ss")
lblElapsed.Caption
= Format(ElapsedTime, "hh:mm:ss")
End Sub
Aquí, cuando se
hace click sobre End Timing, leemos la hora actual
(End Time), calculamos el tiempo transcurrido, y
escibimos los valores en las correspondientes label boxes.
- Finalmente
para el button cmdExit
- Sub cmdExit_Click
()
End
End Sub
Esta rutina
simplemente termina el programa cuando se hace click
sobre el botón Exit .
- Notará que
el editor chequea automáticamente la sintaxis a medida
que usted escribe, esta característica es extremádamente
util como verá al codificar aplicaciones más complejas
ya que recuerda nombres de variables, completa sentencias,
etc.
- Para
ejecutar la aplicación presione F5 o el botón Run
en la toolbar (similar al "play" de una
grabadora)
- Para grabar
la aplicación use Save Project As del menú File.
Esto grabará tanto la form como los archivos del
proyecto.
- Otras cosas que podría
hacer con ésta primera aplicación:
- Pruebe cambiando los
colores de la form y las características de los fonts en
los label boxes y command buttons.
Consideraciones al
grabar un proyecto en Visual Basic:
Cuando se graba un
proyecto, deben guardarse los archivos de las (.FRM) los modules
(.BAS) y el archivo de proyecto (.VBP). Asegúrese que se están
guardando en el directorio deseado.
Existen cuarto tipos de Save
en el menú File
Save [Form Name]
Graba la form o el módulo con el nombre actual. Se graba
el archivo "activo" esto es el que está
iluminado en laventana Project.Save [Form Name] As Igual que
la anterior, le da la opción de cambiar el nombre
Save Project
Graba todas las forms y modules del proyecto usando sus
nombres actuales, además guarda el archivo project.
Save Project As
Igual que el anterior pero permite cambiar los nombres de
archivos a cada uno de los archivos que se graban. Por
eso se recomienda su uso para los proyectos nuevos
Ejercicio
1
Calendario/Reloj
Diseñe un calendario/reloj.
Juegue con las propiedades para obtener una bonita apariencia.
Ejemplo:
Form:

Properties:
Form frmCalendar:
Caption = My Calendar
BorderStyle = 1 - Fixed Single
Timer timDisplay:
Interval = 1000
Label lblDay:
Caption = Sunday
FontName = Times New Roman
FontBold = True
FontSize = 24
Label lblTime:
Caption = 00:00:00 PM
FontName = Times New Roman
FontBold = True
FontSize = 24
Label lblYear:
Alignment = 2 - Center
Caption = 1998
FontName = Times New Roman
FontBold = True
FontSize = 24
Label lblNumber:
Alignment = 2 - Center
Caption = 31
FontName = Arial
FontBold = True
FontSize = 72
Label lblMonth:
Alignment = 2 - Center
Caption = March
FontName = Times New Roman
FontBold = True
FontSize = 24
Code:
General Declarations:
Option Explicit
timDisplay Timer Event:
Private Sub timDisplay_Timer()Dim Today As Variant
Today = Now
lblDay.Caption = Format(Today,
"dddd")
lblMonth.Caption = Format(Today,
"mmmm")
lblYear.Caption = Format(Today,
"yyyy")
lblnumber.Caption = Format(Today,
"d")
lblTime.Caption = Format(Today,
"h:mm:ss ampm")
End Sub