Anda di halaman 1dari 15

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 grfica de usuario) de Windows
Visual asic es un lenguaje manejado por eventos (event!driven),
esto significa que el c"digo se ejecuta en respuesta a ciertos
eventos (clic# en un $ot"n, selecci"n en un men%, tecla enter, etc&,
&&&)& Visual asic ies manejado por un 'procesador de eventos (ada
ocurre en tanto no se detecte un evento& Una vez detectado se
ejecuta el c"digo correspondiente (event procedure)
)ste esquema presenta cierta diferencia con la programaci"n
tradiional (para interfases no graficas como *+, por ejemplo)
donde los programas son secuencias de instrucciones donde el
computador -pregunta- . va ejecutando el flujo de c"digo de
manera secuencial
/lgunas caracter0sticas de Visual asic
1onjunto de o$jetos !permiten -di$ujar- las pantallas
2osi$ilidad de insertar iconos e imgenes
3esponde a acciones de mouse . teclado
/cceso a impresora . portapapeles (clip$oard)
4unciones mat5ematicas, manejo de string, . grficas
2uede manejar arreglos de controles estticos . dinmicos
,oporte para acceso a arc5ivos secuenciales . aleatorios
*e$ugger
2oderosas 5erramientas de acceso para las principales $ases de
datos
,oporte /ctive6
Wizard para crear arc5ivos instaladores
Estructura de una aplicacin en Visual Basic
Una Aplicacin (2roject) ise compone de7
Forms ! ,on las pantallas del programa, la interfase con el usuario
Controls ! ,on grficos dentro de las form que permiten al
usuario interactuar con el programa (te8t $o8es, la$els, scroll
$ars, command $uttons, etc&) (las 4orms . 1ontrols son objects&)
Properties ! 1ada caracter0stica de una form o control es
especificada por una propert.& )jemplo de properties son names,
captions, size, color, position, and contents& Visual asic aplica
default properties& 9as properties pueden cam$iarse .a sea en
tiempo de dise:o como en tiempo de ejecuci"n
Methods ! 2rocedimientos incorporados que pueden ser llamados
para que el o$ject 5aga algo
Event Procedures ! 1"digo relacionado a un o$jeto& )s el codigo
que se ejecuta cuando ocurre un evento (clic# del mouse, etc&)
eneral Procedures ! 1odigo que no est relacionado a ning%n
o$jeto
Modules ! 1ollecci"n de procedures generales, declaraci"n de
varia$les, definic"n de constantes, etc&
Como se hace un pro!rama en Visual Basic
)8isten tres pasos principales7
1. "ibujar las pantallas (user interface)
1. Asi!nar las properties a los controles
1. Escribir el cdi!o para los controles
2or ejemplo7
"ibujar la User #nter$ace % Asi!nar las Properties
; Visual asic funciona en tres modos7&
"esi!n mode ! usado para escri$ir la aplicaci"n
&un mode ! usado para ejecutar la aplicaci"n
Brea' mode ! la aplicaci"n se detiene . el de$ugger queda
disponi$le
(os enfocaremos en el desi!n mode&
; /l partir Visual asic, la pantalla se divide en seis ventanas7
9a Main (indo) consiste en la title $ar, menu $ar, . tool$ar& 9a
title $ar indica el nom$re del pro.ecto, el modo actual de
operaci"n del Visual asic, . la form activa& 9a $arra de men%s
tiene drop!down menus con los que se controla la operaci"n del
Visual asic& 9a tool$ar tiene $otonescon atajos a las opciones ms
usadas del men% 9a main window tam$i<n muestra la localizaci"n
de la form activa as0 como su anc5o . alto
9a ventana de Form es la central para el desarrollo de
aplicaciones de Visual asic, pues all0 es donde se di$uja . escri$e
la aplicaci"n
*a +oolbo, permite selleccionar los controles que se usarn en la
aplicaci"n
9a ventana de Properties se usa para esta$lecer las propiedades
iniciales de cada o$jeto& 9a lista drop!down de la parte superior
lista todos los o$jetos de la form activa 9as propiedades pueden
verse por orden alfa$etico o listadas seg%n categor0a
9a ventana de Form *a%out muestra en que lugar relativo de la
pantalla se u$icar la form, una vez que el programa est<
corriendo
9a ventana de Project muestra una lista de todas las forms .
m"dulos de la aplicaci"n& 9as 4orm pueden verse grficamente o
tam$i<n el c"digo que contienen
2ara di$ujar los controies en una form7
1. *o$le!clic# en el control de la tool$o8 . aparecer con su tama:o
default so$re la form& 9uego puede ser movido o cam$iado de
tama:o&
9a otra forma es dar un solo clic# so$re el control . luego di$ujarlo con
el mouse so$re la form& /m$os m<todos dan el mismo resultado&
Ejemplo -.-
Un Cronmetro . "ibujando los controles
=& 2arta un nuevo pro.ecto& 9a idea de este pro.ecto es partir un
cron"metro& 9uego detenerlo . mostrar el tiempo transcurrido en
segundos
>& 1oloque tres command $uttons . seis la$els dentro de la form&
?ueva . dimensione los controles 5asta o$tener algo as07
Colocando propiedades a los objetos en tiempo de dise/o
1ada o$jeto del Visual asic tiene sus properties asignadas por
default & /l 5acer clic# so$re un o$jeto (form o control) este pasa
a ser el o$jeto activo . sus propiedades son listadas en la pantalla
correspondiente& )n este ejemplo vemos las propiedades de la
form
Una propiedad mu. importante de cada uno de los o$jetos es name& )l
nom$re que usa el Visual asic para referirse a ese o$jeto en particular
Ejemplo de nombres
)n estos ejemplos se usa una convenci"n usual del Visual asic,
pero podemos colocar el nom$re como se nos antoje
4orm frm frmWatc5
1ommand utton cmd, $tn cmd)8it, $tn,tart
9a$el l$l l$l,tart, l$l)nd
@e8t o8 t8t t8t@ime, t8t(ame
?enu mnu mnu)8it, mnu,ave
15ec# $o8 c5# c5#15oice
; 9os nom$res de o$jetos pueden tner 5asta AB caracteres, de$en
partir con una letra . contener solo letras, n%meros o gui"n $ajo
(C)
Colocando propiedades en &un +ime
2ara colocar las propiedades en run time se de$en asignar por
medio de un c"digo, en el formato
+$ject(ame&2ropert. D (ewValue
(por ejemplo form=&visi$leDfalse)
Como se usan los nombres de los objetos
; 9os nom$res que colocamos a los o$jetos sirven de -marco- para
los procedimientos a los que se les agrega c"digo& )l formato para
las su$rutinas (todos los o$ject procedures en Visual asic son
su$rutinas) es7
,u$ +$ject(ameC)vent (+ptional /rguments)
&
&
)nd ,u$
; Visual asic coloca la linea 0ub con sus argumentos (si los 5a.) a.
la End 0ub automticamente& (osotros de$emos escri$ir el
c"digo entre am$as lineas&
Ejemplo -.1
Cronmetro . Colocando las Propiedades
=& 1oloque las siguientes propiedades a la form, los tres $uttons, .
los seis la$els (activando cada uno de los o$jetos con un clic# .
modificando el valor en la ventana de propiedades)7
Form-7
order,t.le =!4i8ed ,ingle
1aption ,topwatc5 /pplication
(ame frm,topWatc5
Command-7
1aption E,tart @iming
(ame cmd,tart
Command17
1aption E)nd @iming
(ame cmd)nd
Command27
1aption )E8it
(ame cmd)8it
*abel-7
1aption ,tart @ime
*abel17
1aption )nd @ime
*abel27
1aption )lapsed @ime
*abel37
order,t.le =!4i8ed ,ingle
1aption Flan#G
(ame l$l,tart
*abel47
order,t.le =!4i8ed ,ingle
1aption Flan#G
(ame l$l)nd
*abel57
order,t.le =!4i8ed ,ingle
1aption Flan#G
(ame l$l)lapsed
)n la propiedades Caption de los tres command $uttons, note el
ampersand (6)& )ste sirve para fijar una access 'e%& )sto es para
usar (adems del clic# del mouse) el m<todo /lt!tecla
>& ,u form de$e verse a5ora ms o menos as07
Variables
Ha estamos listos para escri$ir el c"digo a los distintos o$jetos&
,implemente de$emos agregar c"digo a los eventos que deseamos
que ocurran (por ejemplo al 5acer clic# so$re un $ot"n, etc) /ntes
de eso, de$emos discutir algo so$re las variables&
3eglas usadas para los nom$res de varia$les7
(o ms de AB caracteres
2ueden inclu0r letras, n%meros, . underscore (C)
)l primer caract<r de$e ser una letra
(o pueden usarse pala$ras reservadas (las que usa el Visual asic)
+ipos de datos en Visual Basic
0u$ijos de tipo de dato
oolean (inguno
Integer I
9ong (Integer) E
,ingle (4loating) J
*ou$le (4loating) K
1urrenc. L
*ate (inguno
+$ject (inguno
,tring M
Variant (inguno
"eclaracin de las Variables
; Na. tres maneras de declarar una varia$le7
1. *efault
1. Implicit
1. )8plicit
; ,i las varia$les no son implicita o e8plicitamente declaradas se les
asigna el tipo variant por de$ault& Una varia$le tipo variant puede
contener datos num<ricos, string o date indistintamente&
; 2ara declarar implicitamente una varia$le, se usa el
correspondiente suffi8, por ejemplo,
@e8tValueM D -@5is is a string-
crea una varia$le string
/mountI D OBB
crea una varia$le integer&
; Na. muc5as ventajas en declarar e,plicitamente las varia$les&
2rimero que nada aseguramos que los clculos se 5acen
apropiadamente . los errores de tipeo son ms fciles de trazar,
Visual asic se cuidar de asegurar la consistencia en las
ma.%sculas . min%sculas usadas en los nom$res, etc&
; 2ara declarar e,plicitamente una varia$le, de$emos determinar
su scope 7alcance8& Na. cuatro niveles de alcance7
2rocedure level
2rocedure level, static
4orm and module level
Glo$al level
; *entro de un procedure, las varia$les se declaran usando "im7
*im ?.Int as Integer
*im ?.*ou$le as *ou$le
*im ?.,tring, Hour,tring as ,tring
9as varia$les a nivel de 2rocedure declaradas de esta manera no
retienen su valor despu<s de terminado el procedure&
; 2ara 5acer que una varia$le a nivel de procedure retenga su valor
al terminar este, reemplace *im por 0tatic7
,tatic ?.Int as Integer
,tatic ?.*ou$le as *ou$le
; 9as varia$les a nivel de 4orm (module) retienen su valor . estn
disponi$les para todos los procedures dentro de la form (module)&
9as varia$les a este niovel se declaran en la secci"n declarations
del o$jeto !eneral de la form (ven$tanilla de c"digo)& ,e usa la
sentencia "im 7
*im ?.Int as Integer
*im ?.*ate as *ate
; 9as varia$les a nivel Glo$al retienen su valor . estn disponi$les
para todos los procedures de la aplicaci"n& ,e declaran en la parte
declarations del o$jeto !eneral de un m"dulo& (,e recomienda
colocar todas las varia$les glo$ales en un mismo m"dulo&) Use la
sentencia lobal7
Glo$al ?.Int as Integer
Glo$al ?.*ate as *ate
Ejemplo -.2
Cronmetro . A!re!ando Cdi!o
9o %ltimo que nos queda es colocar c"digo a los o$jetos& )scri$imos
c"digo para cada uno de los eventos que necesitamos en la aplicaci"n& en
este ejemplo tenemos tres eventos, cada uno parte 5aciendo un clic#
so$re cada uno de los $otones&
1. *o$le!clic# en cualquier espacio desocupado so$re la form para
que aparezca la ventana donde escri$iremos el c"digo&
1. )n la ventanilla superior de o$jetos seleccional el o$jeto llamado
7!eneral8& 9a ventanilla de 2rocedure mostrar 7declarations8&
/qu0 declaramos tres varia$les a nivel de form7
2. 9ption E,plicit
"im 0tart+ime As Variant
"im End+ime As Variant
"im Elapsed+ime As Variant
9ption E,plicit nos fuerza a declarar todas las varia$les& 9as
dems l0neas esta$lecen las varia$les 0tart+ime, End+ime,
.Elapsed+ime como glo$ales dentro de la form&
1. ,elecccione el o$jeto cmd0tart en la +$ject $o8& ,i el
procedimiento que aparece no es el 1lic# procedure, escoja Clic'
de la procedure $o8& @ipee el siguiente c"digo que se ejecutar
cuando presione el $ot"n cmd,tart& (ote que 0ub . End 0ub son
colocados por defecto por el editor7
1. 0ub cmd0tart:Clic' 78
;Establish and print startin! time
0tart+ime < =o)
lbl0tart>Caption < Format70tart+ime? @hhAmmAss@8
lblEnd>Caption < @@
lblElapsed>Caption < @@
End 0ub
)n <ste procedure, una vez que el $ot"n 0tart +imin! es
clic#eado con el mouse, leemos la 5ora actual . la mostramos en
una la$el $o8& /dems $orramos todas las dems la$el $o8es& 9as
l0neas que comienzan con comilla simple son comentarios (no
ejecuta$les)
/5ora, codifique el $uttom cmdEnd
1. 0ub cmdEnd:Clic' 78
;Find the endin! time? compute the elapsed time
;Put both values in label bo,es
End+ime < =o)
Elapsed+ime < End+ime . 0tart+ime
lblEnd>Caption < Format7End+ime? @hhAmmAss@8
lblElapsed>Caption < Format7Elapsed+ime? @hhAmmAss@8
End 0ub
/qu0, cuando se 5ace clic# so$re End +imin!, leemos la 5ora actual
(End +ime), calculamos el tiempo transcurrido, . esci$imos los
valores en las correspondientes la$el $o8es&
=& 4inalmente para el $utton cmdE,it
>& 0ub cmdE,it:Clic' 78
End
End 0ub
)sta rutina simplemente termina el programa cuando se 5ace clic#
so$re el $ot"n E,it &
=& (otar que el editor c5equea automticamente la sinta8is a
medida que usted escri$e, esta caracter0stica es e8tremdamente
util como ver al codificar aplicaciones ms complejas .a que
recuerda nom$res de varia$les, completa sentencias, etc&
=& 2ara ejecutar la aplicaci"n presione 4P o el $ot"n &un en la
tool$ar (similar al -pla.- de una gra$adora)
=& 2ara gra$ar la aplicaci"n use 0ave Project As del menB File& )sto
gra$ar tanto la form como los arc5ivos del pro.ecto&
>& +tras cosas que podr0a 5acer con <sta primera aplicaci"n7
A. 2rue$e cam$iando los colores de la form . las caracter0sticas de
los fonts en los la$el $o8es . command $uttons&
Consideraciones al !rabar un pro%ecto en Visual BasicA
1uando se gra$a un pro.ecto, de$en guardarse los arc5ivos de las
(&43?) los modules (&/,) . el arc5ivo de pro.ecto (&V2)& /seg%rese
que se estn guardando en el directorio deseado&
)8isten cuarto tipos de 0ave en el men% File
0ave CForm =ameD Gra$a la form o el m"dulo con el nom$re
actual& ,e gra$a el arc5ivo -activo- esto es el que est iluminado
en laventana 2roject&
0ave CForm =ameD As Igual que la anterior, le da la opci"n de
cam$iar el nom$re
0ave Project Gra$a todas las forms . modules del pro.ecto
usando sus nom$res actuales, adems guarda el arc5ivo project&
0ave Project As Igual que el anterior pero permite cam$iar los
nom$res de arc5ivos a cada uno de los arc5ivos que se gra$an& 2or
eso se recomienda su uso para los pro.ectos nuevos
Ejercicio -
CalendarioE&eloj
*ise:e un calendarioQreloj& Ruegue con las propiedades para o$tener
una $onita apariencia&
EjemploA
4orm7
Properties:
Form frmCalendar:
Caption = My Calendar
BorderStyle = 1 - Fixed Single
Timer timDisplay:
Interval = 1000
Lael lblDay:
Caption = S!nday
Font"ame = Times "e# $oman
FontBold = Tr!e
FontSi%e = &'
Lael lblTime:
Caption = 00:00:00 PM
Font"ame = Times "e# $oman
FontBold = Tr!e
FontSi%e = &'
Lael lblear:
(lignment = & - Center
Caption = 1))*
Font"ame = Times "e# $oman
FontBold = Tr!e
FontSi%e = &'
Lael lbl!"mber:
(lignment = & - Center
Caption = +1
Font"ame = (rial
FontBold = Tr!e
FontSi%e = ,&
Lael lbl#$nt%:
(lignment = & - Center
Caption = Mar-.
Font"ame = Times "e# $oman
FontBold = Tr!e
FontSi%e = &'
Code:
/eneral 0e-larations:
Option Explicit
tim0isplay Timer 1vent:
Private Sub timDisplay_Timer()
Dim Today As Variant
Today = o!
lblDay"#aption = $ormat(Today% &dddd&)
lbl'ont("#aption = $ormat(Today% &mmmm&)
lbl)ear"#aption = $ormat(Today% &yyyy&)
lblnumber"#aption = $ormat(Today% &d&)
lblTime"#aption = $ormat(Today% &(*mm*ss ampm&)
End Sub

Anda mungkin juga menyukai