Está en la página 1de 421

CAPTULO 1

FUNDAMENTOS

Mi cr osof t Vi sual Basi c es un conj unt o de her r ami ent as que
posi bi l i t an el desar r ol l o de apl i caci ones par a Wi ndows de una
maner a r pi da y senci l l a, basado en el l enguaj e BASI C y en l a
pr ogr amaci n or i ent ada a obj et os.
La pal abr a Vi sual hace r ef er enci a al mt odo que se
ut i l i za par a cr ear l a i nt er f az gr f i ca de usuar i o. En l ugar de
escr i bi r numer osas l neas de cdi go par a i mpl ement ar l a
i nt er f az, si mpl ement e se ut i l i za el r at n par a agr egar obj et os
pr ef abr i cados en el l ugar deseado dent r o de l a pant al l a.
La pal abr a Basi c hace r ef er enci a al l enguaj e BASI C
( Begi nner s Al l - Pur pose Symbol i c I nst r uct i on Code) , un l enguaj e
ut i l i zado por ms pr ogr amador es que ni ngn ot r o l enguaj e en l a
hi st or i a de l a i nf or mt i ca. Vi sual Basi c ha evol uci onado a
par t i r del l enguaj e BASI C or i gi nal y ahor a cont i ene cent enar es
de i nst r ucci ones, f unci ones y pal abr as cl ave, muchas de l as
cual es est n di r ect ament e r el aci onadas con l a i nt er f az gr f i ca
de Wi ndows.
El l enguaj e de pr ogr amaci n Vi sual Basi c no es excl usi vo
de Mi cr osof t Vi sual Basi c. Est e l enguaj e es ut i l i zado t ambi n
por Mi cr osof t Excel , Mi cr osof t Access y muchas ot r as


Pg. 1
apl i caci ones Wi ndows. El l enguaj e de pr ogr amaci n Vi sual Basi c
Scr i pt par a pr ogr amar en I nt er net es un subconj unt o del
l enguaj e Vi sual Basi c. De t al f or ma, que l a i nver si n r eal i zada
en el apr endi zaj e de Vi sual Basi c l e ayudar a abar car est as
ot r as r eas.

EJECUTANDO VISUAL BASIC
Si ya t i ene i nst al ado Vi sual Basi c, par a ej ecut ar l o
pr oceda i gual que con cual qui er ot r a apl i caci n Wi ndows: hacer
cl i ck en el i cono cor r espondi ent e.
En segui da se pr esent ar una vent ana si mi l ar a l a f i gur a
si gui ent e:




Pg. 2
En l a vent ana ant er i or i ndi car el t i po de pr oyect o que
desea cr ear ( par a nuest r o caso sel ecci onar EXE est ndar ) y dar
cl i ck sobr e el bot n Abr i r . En ese i nst ant e se pr esent ar el
Ent or no I nt egr ado de Desar r ol l o ( I DE) de Vi sual Basi c:



Los el ement os que componen el I DE de Vi sual Basi c son:

Bar r a de mens Bar r a de her r ami ent as
Cuadr o de her r ami ent as Di seador de f or mul ar i os
Expl or ador de pr oyect os Vent ana de pr opi edades
Posi ci n del f or mul ar i o Mens cont ext ual es
Barra de mens


Pg. 3
Pr esent a l as r denes que se ut i l i zan par a desar r ol l ar una
apl i caci n. Las opci ones ms ut i l i zadas son: Ar chi vo, Edi ci n,
Ver , Vent ana y Ayuda. Se pr opor ci onan ot r os mens par a t ener
acceso a f unci ones espec f i cas de pr ogr amaci n como Pr oyect o,
For mat o o Depur aci n.

Barra de herramientas
Faci l i t a el acceso r pi do a l as r denes ms comnment e
ut i l i zadas. Omi t i mos el si gni f i cado de cada bot n por que l e
ser most r ado al pasar el punt er o del r at n sobr e cada uno de
el l os.



Puede vi sual i zar ot r as bar r as de her r ami ent as ej ecut ando
l a opci n Bar r a de her r ami ent as del Men Ver .

Cuadro de herramientas
Pr opor ci ona un conj unt o de her r ami ent as que per mi t en
di sear l a i nt er f az gr f i ca de usuar i o.




Pg. 4
Icono Descripcin

Punt er o

Cuadr o de i magen

Et i quet a

Cuadr o de t ext o

Mar co

Bot n de comando

Casi l l a de ver i f i caci n

Bot n de opci n

Cuadr o combi nado

Cuadr o de l i st a

Bar r a de despl azami ent o hor i zont al

Bar r a de despl azami ent o ver t i cal

Cr onmet r o

Cuadr o de l i st a de uni dades

Cuadr o de l i st a de di r ect or i os

Cuadr o de l i st a de ar chi vos

For mas

L neas

I magen

Cont enedor OLE


Pg. 5
Par a ut i l i zar al gn obj et o si mpl ement e debe hacer dobl e
cl i ck sobr e el i cono cor r espondi ent e, l uego puede cambi ar su
posi ci n y sus di mensi ones.

Diseador de formularios
Es l a vent ana sobr e l a que col ocar emos l os obj et os
( cont r ol es) de l a i nt er f az de usuar i o.



Explorador de proyectos
Cont i ene el conj unt o de ar chi vos que const i t uyen l a
apl i caci n o pr oyect o.




Pg. 6

Ventana de propiedades
Como ver emos ms adel ant e, cada obj et o l l eva asoci ado un
conj unt o de pr opi edades. Par a ver o especi f i car l os val or es de
l as pr opi edades de l os obj et os, ut i l i zar emos l a vent ana de
pr opi edades.



Posicin del formulario
Est a vent ana l e per mi t e especi f i car l a posi ci n de l os
f or mul ar i os de l a apl i caci n.


Mens contextuales


Pg. 7
Es un men emer gent e que pr esent a r denes espec f i cas
r el at i vas a un det er mi nado obj et o. Par a abr i r un men
cont ext ual , dar cl i ck der echo sobr e el obj et o. Por ej empl o, al
dar cl i ck der echo sobr e el f or mul ar i o se pr esent a el si gui ent e
men cont ext ual .



Ventana de cdigo
Se pr esent a cuando se hace dobl e cl i ck sobr e un obj et o que
se encuent r a en el Di seador de f or mul ar i os. Est a vent ana
muest r a dos cuadr os combi nados ( combos) en l a par t e super i or ,
en una apar ece el nombr e del obj et o ( i zqui er da) y en l a ot r a el
nombr e del event o ( der echa) .






Pg. 8
MI PRIMERA APLICACIN
Hay t r es pasos pr i nci pal es par a cr ear una apl i caci n en
Vi sual Basi c:

Cr ear l a i nt er f az.
Est abl ecer pr opi edades.
Escr i bi r el cdi go.

Par a ver como se r eal i za est o, si ga l os pasos del
si gui ent e ej empl o par a cr ear una apl i caci n senci l l a que
consi st e en un f or mul ar i o y un bot n de comando. Cuando haga
cl i ck en el bot n de comando apar ecer el mensaj e Vi sual Basi c
es f ci l en un cuadr o de di l ogo pr edef i ni do.

Creacin de la interfaz
Par a el desar r ol l o del pr esent e ej empl o pr oceda a cr ear
una nueva apl i caci n. En segui da aadi r un bot n de comando al
f or mul ar i o, par a el l o en el Cuadr o de her r ami ent as, dar dobl e
cl i ck sobr e el cont r ol deseado, t al como se i ndi ca en l a f i gur a
si gui ent e:





Pg. 9
La apar i enci a de l a i nt er f az debe ser si mi l ar a l a f i gur a
most r ada:



Estableciendo las propiedades
Par a ver l as pr opi edades de un obj et o, si mpl ement e debe
sel ecci onar l o y pul sar l a t ecl a F4. Por ej empl o l a f i gur a
si gui ent e muest r a l as pr opi edades del bot n de comando y
podemos ver que l a pr opi edad Capt i on t i ene el val or Command1.




Pg. 10
Puede cambi ar el val or de cual qui er pr opi edad
sel ecci onndol o de l a vent ana ant er i or y si mpl ement e
modi f i cando su val or , por ej empl o par a el caso ant er i or
est abl ezca el val or de l a pr opi edad Capt i on de Command1 a
Haga cl i ck aqu .



De maner a si mi l ar pr oceda cambi ar l a pr opi edad Capt i on del
f or mul ar i o a Mi pr i mer a apl i caci n. La apar i enci a de l a
i nt er f az debe ser si mi l ar a l a f i gur a most r ada:




Pg. 11
Escribiendo el cdigo
Par a i ngr esar el cdi go a l a apl i caci n debe dar dobl e
cl i ck sobr e el cont r ol al cual asoci ar emos di cho cdi go. Par a
nuest r o caso dar dobl e cl i ck sobr e el bot n de comando e
i ngr esar el cdi go que se i ndi ca a cont i nuaci n:



Par a guar dar l a apl i caci n que acaba de cr ear , sel ecci one
l a opci n Guar dar Pr oyect o del Men Ar chi vo.
Bueno, ahor a sl o f al t a que ej ecut e su apl i caci n. Par a
el l o si mpl ement e debe pul sar l a t ecl a F5. El r esul t ado debe ser
si mi l ar al si gui ent e:





Pg. 12
CAPTULO 2


LOS OBJETOS

Vi sual Basi c se basa en l a pr ogr amaci n or i ent ada a
obj et os ( POO) , l a cual es una f or ma de pr ogr amaci n que ut i l i za
obj et os ( si mi l ar es a l os obj et os del mundo r eal ) par a l a
sol uci n de pr obl emas. La POO per mi t e descomponer un pr obl ema
en bl oques r el aci onados. Cada bl oque pasa a ser un obj et o
aut ocont eni do que cont i ene sus pr opi os dat os e i nst r ucci ones.
De est a maner a, l a compl ej i dad se r educe y se pueden r eal i zar
pr ogr amas ms l ar gos de una maner a senci l l a.

MECANISMOS BSICOS DE LA POO
Los mecani smos bsi cos de l a pr ogr amaci n or i ent ada a
obj et os son:

Obj et os
Pr opi edades
Mt odos
Event os
Mensaj es
Cl ases



Pg. 13
Objetos
Un obj et o es una ent i dad que t i ene at r i but os par t i cul ar es
( pr opi edades) y unas f or mas de oper ar sobr e el l os ( mt odos) .
Por t ant o, un obj et o cont i ene var i abl es que especi f i can su
est ado y oper aci ones que def i nen su compor t ami ent o.
Son ej empl os de obj et os: f or mul ar i os, bot ones de comando,
cuadr os de t ext o, et i quet as, et c.

Propiedades
Las pr opi edades r epr esent an l as car act er st i cas del
obj et o. Hay pr opi edades par t i cul ar es, como Capt i on que l a
poseen l os bot ones de comando por ej empl o, y genr i cas como
Name que l a poseen t odos l o obj et os.

Mtodos
Los mt odos son pr ocedi mi ent os asoci ados a un obj et o. Se
ej ecut an como r espuest a a un event o, por ej empl o al dar cl i ck
en un bot n de comando. Tambi n pueden ser i nvocados
expl ci t ament e en el pr ogr ama.

Eventos
Un event o es l a capaci dad de un obj et o de r eacci onar
cuando ocur r e una det er mi nada acci n ( acci n y r eacci n) . Como
r espuest a a un event o se env a un mensaj e y se ej ecut a un
det er mi nado mt odo ( pr ocedi mi ent o) .



Pg. 14
Mensajes
Un mensaj e es una l l amada a un mt odo ( pr ocedi mi ent o) , de
t al f or ma que cuando un obj et o r eci be un mensaj e l a r espuest a a
ese mensaj e es ej ecut ar el pr ocedi mi ent o asoci ado.
Cuando se ej ecut a un pr ogr ama or i ent ado a obj et os, l os
obj et os est n const ant ement e r eci bi endo, i nt er pr et ando y
r espondi endo a mensaj es de ot r os obj et os.

Clases
Una cl ase es una descr i pci n par a pr oduci r obj et os de esa
cl ase o t i po. Es deci r se t r at a de una gener al i zaci n de un
t i po espec f i co de obj et os. En ot r as pal abr as, un obj et o es una
var i abl e del t i po def i ni do por una cl ase. Por ej empl o, pi ense
en un mol de par a hacer past el es, el mol de es l a cl ase y l os
past el es l os obj et os.

CARACTERSTICAS DE LA POO
Las car act er st i cas f undament al es de l a pr ogr amaci n
or i ent ada a obj et os son:

Abst r acci n
Encapsul ami ent o
Her enci a
Pol i mor f i smo



Pg. 15

Abstraccin
La abst r acci n per mi t e no det ener nos en l os det al l es
concr et os del f unci onami ent o de l as cosas, si no cent r ar nos en
l os aspect os que r eal ment e nos i mpor t an y nos son t i l es en un
det er mi nado moment o, en ci er t a medi da, se podr a deci r que es
sese el obj et o y ol v dese de como f unci ona en f or ma i nt er na.
Por ej empl o, par a manej ar una comput ador a no necesi t amos
saber como f unci onan sus ci r cui t os el ect r ni cos, en t r mi nos de
cor r i ent e, t ensi n, et c.

Encapsulamiento
Est a car act er st i ca per mi t e ver un obj et o como una caj a
negr a aut ocont eni da en l a que se ha met i do de al guna maner a
t oda l a i nf or maci n que manej a di cho obj et o. Est o per mi t e
mani pul ar l os obj et os como uni dades bsi cas, per maneci endo
ocul t a su est r uct ur a i nt er na.

Herencia
La her enci a es l a car act er st i ca que per mi t e compar t i r
aut omt i cament e pr opi edades y mt odos ent r e obj et os. Es deci r ,
se pueden cr ear nuevas cl ases de obj et os en base a cl ases
exi st ent es. Ms concr et o, un obj et o puede her edar un conj unt o
gener al de pr opi edades y mt odos a l as que puede aadi r


Pg. 16
aquel l as car act er st i cas que son espec f i cas suyas. El usuar i o
de Vi sual Basi c no di spone de est a car act er st i ca.

Polimorfismo
Pol i mor f i smo, del gr i ego cuyo si gni f i cado es muchas
f or mas, es l a car act er st i ca que per mi t e i mpl ement ar ml t i pl es
f or mas de un mi smo mt odo, dependi endo cada una de el l as de l a
cl ase sobr e l a que se r eal i za l a i mpl ement aci n. Est o hace
posi bl e que se puede acceder a una var i edad de mt odos
di st i nt os ( t odos con el mi smo nombr e) ut i l i zando exact ament e el
mi smo medi o de acceso.

LOS OBJETOS DE VISUAL BASIC
Vi sual Basi c sopor t a l a abst r acci n, l a encapsul aci n, el
pol i mor f i smo y l a r eut i l i zaci n de cdi go.
La r eut i l i zaci n de cdi go es l a capaci dad de t r asl adar
car act er st i cas de un obj et o a ot r o, l o que se l ogr a con al guna
f or ma de her enci a. Est o se consi gue medi ant e l a cr eaci n y uso
del obj et o.
Los obj et os de Vi sual Basi c est n di vi di dos en dos t i pos:
cont r ol es y cont enedor es.
Los cont r ol es son un medi o gr f i co que per mi t en a l os
usuar i os i nt er act uar con l a apl i caci n par a l a mani pul aci n de
dat os y ej ecuci n de t ar eas. Son ej empl o de cont r ol es:
et i quet as, cuadr os de t ext o, bot ones de comando, casi l l as de


Pg. 17
ver i f i caci n, bot ones de opci n, cuadr os de l i st a, cuadr os
combi nados, et c.
Los cont enedor es son obj et os que pueden i ncl ui r ot r os
obj et os y per mi t en el acceso a l os obj et os que cont i enen. Ent r e
l os ms ut i l i zados t enemos a l os f or mul ar i os, mar cos y
cuadr cul as.
El f or mul ar i o ms l os cont r ol es const i t uyen l a i nt er f az de
l a apl i caci n.

REFERENCIANDO OBJETOS
La si nt axi s par a r ef er enci ar obj et os es l a si gui ent e:

OBJ ETO. PROPI EDAD = VALOR

Por ej empl o, par a est abl ecer el t t ul o de un f or mul ar i o a
Vi sual Basi c es f ci l , l a or den ser a:

For m1. Capt i on = Vi sual Basi c es f ci l

LOS EVENTOS
Cada obj et o r esponde a un conj unt o de event os. Como
r espuest a a un event o se ej ecut a un det er mi nado pr ocedi mi ent o.
Los pr ocedi mi ent os asoci ados a un event o pr esent an l a f or ma:

Pr i vat e Sub OBJ ETO_EVENTO( )
SENTENCI AS
End Sub


Pg. 18

Par a acl ar ar est e concept o desar r ol l ar emos l a si gui ent e
apl i caci n, l a cual consi st e en un f or mul ar i o, un cuadr o de
t ext o y un bot n de comando. El usuar i o debe i ngr esar un
mensaj e en el cuadr o de t ext o y al pul sar el bot n de comando,
el mensaj e r eci ent ement e i ngr esado, se col oca como t t ul o del
f or mul ar i o.



Par a el l o pr oceda a const r ui r l a i nt er f az most r ada en l a
f i gur a ant er i or . Luego, dar dobl e cl i ck sobr e el bot n de
comando e i ngr ese el si gui ent e cdi go:

Pr i vat e Sub Command1_Cl i ck( )
For m1. Capt i on = Text 1. Text
End Sub

Segui dament e guar de y pr oceda ej ecut ar su apl i caci n. Como
puede ver i f i car , el event o Cl i ck se di spar a cada vez que el
usuar i o pul sa ( hace cl i ck) sobr e un cont r ol .

CONVENCIN DE NOMBRES PARA LOS OBJETOS


Pg. 19
La convenci n a segui r en l a pr esent e gu a - par a dar
nombr e a l os obj et os - consi st e en ut i l i zar ci er t os pr ef i j os,
l os cual es i ndi car an el t i po de obj et o del que se t r at a.
Prefijo Objeto
Fr m For mul ar i o
Fr a Mar co
Lbl Et i quet a
Txt Cuadr o de t ext o
Cmd Bot n de comando
Chk Casi l l a de ver i f i caci n
Opt Bot n de opci n
Lst Cuadr o de l i st a
Cbo Cuadr o combi nado
Ti m Cr onmet r o
HS Bar r a de despl azami ent o hor i zont al
VS Bar r a de despl azami ent o ver t i cal
Pi c Cuadr o de i magen
I mg I magen
Dr v Cuadr o de l i st a de uni dades
Di r Cuadr o de l i st a de di r ect or i os
Fi l Cuadr o de l i st a de ar chi vos
Ol e Cont enedor OLE
Gr d Cuadr cul a


Pg. 20
Gr a Gr f i co
Ct r Cont r ol ( se ut i l i za en pr ocedi mi ent os cuando
el t i po de cont r ol es desconoci do)

CAPTULO 3


EL LENGUAJE

Vi sual Basi c es un l enguaj e de pr ogr amaci n basado en el
l enguaj e BASI C, al cual i ncor por a l a f unci onal i dad de l a
pr ogr amaci n or i ent ada a obj et os.
El cdi go de Vi sual Basi c se al macena en mdul os, donde
cada mdul o est subdi vi di do en di st i nt as secci ones, una par a
cada obj et o del mdul o. Cada secci n de cdi go puede cont ener
uno o ms pr ocedi mi ent os, f or mados por decl ar aci ones de
const ant es y var i abl es, expr esi ones, sent enci as de cont r ol y
l l amadas a pr ocedi mi ent os y/ o f unci ones.
En est e cap t ul o vamos a anal i zar l os di f er ent es el ement os
que i nt er vi enen al moment o de r eal i zar el cdi go par a una
apl i caci n.

TIPOS DE DATOS


Pg. 21
Los dat os con l os que t r abaj ar emos pr obabl ement e i ncl uyan
i nf or maci n r el aci onada con nmer os, di ner o, nombr es,
descr i pci ones, f echas, et c. Cada dat o cor r esponde a un
det er mi nado t i po, es deci r , per t enece a una cat egor a de dat os
que se mani pul an de maner as si mi l ar es.
Tipo Descripcin Rango
I nt eger Ent er o ( 2 byt es) - 32768 a 32767
Long Ent er o l ar go ( 4 byt es) - 2147483648 a
2147483647
Si ngl e Punt o f l ot ant e de si mpl e
pr eci si n ( 4 byt es)
- 3. 40E+38 a
3. 40E+38
Doubl e Punt o f l ot ant e de dobl e
pr eci si n ( 8 byt es)
- 1. 79D+308 a
1. 79D+308
Cur r ency Monet ar i o ( 8 byt es) +/ -
922337203685477. 5807
Byt e Car ct er ( 1 byt e) 0 a 255
St r i ng Cadena de car act er es ( 1
byt e por car ct er )
Apr oxi madament e
hast a 64K ( 65400
car act er es)
Bool ean Lgi co ( 2 byt es) Tr ue o Fal se
Dat e Fecha/ Hor a ( 8 byt es) 01/ ENERO/ 100 a
31/ DI CI EMBRE/ 9999
Var i ant
( por omi si n)
Cual qui er t i po de dat o Con nmer os hast a el
i nt er val o de un t i po
Doubl e.
Con car act er es 22


Pg. 22
byt es + 1 byt e por
car ct er


IDENTIFICADORES
Los i dent i f i cador es son nombr es dados a l os el ement os de
una apl i caci n, t al es como const ant es, var i abl es,
pr ocedi mi ent os, f unci ones, obj et os, et c. Un i dent i f i cador es
una secuenci a de car act er es que puede ser de hast a 255
car act er es. Par a l a const r ucci n de i dent i f i cador es debemos
t ener pr esent e l as si gui ent es r egl as:

Deben comenzar con una l et r a y no puede cont ener espaci os en
bl anco.
Let r as, d gi t os y car act er es subr ayados est n per mi t i dos
despus del pr i mer car ct er .
No se puede ut i l i zar una pal abr a r eser vada como
i dent i f i cador . Una pal abr a r eser vada t i ene un si gni f i cado
especi al par a Vi sual Basi c.

CONSTANTES
Una const ant e al macena un dat o cuyo val or no cambi a
dur ant e l a ej ecuci n de un pr ogr ama. Par a decl ar ar una
const ant e ut i l i ce l a si gui ent e si nt axi s:

Const NOMBRE_CONSTANTE [ As TI PO] = VALOR


Pg. 23

Si no se decl ar a el t i po de const ant e ( ut i l i zando As TI PO)
se asi gna a l a const ant e el t i po de dat o ms apr opi ado a su
val or .
El val or de una const ant e puede ser numr i co,
al f anumr i co, car ct er o de t i po f echa y hor a. Por ej empl o:

Const MAXI T = 25
Const PI As Doubl e = 3. 141592
Const CADENA As St r i ng = Vi sual Basi c es f ci l
Const FECHA_POR_DEFECTO = #01/ 01/ 99#

VARIABLES
Una var i abl e al macena un dat o cuyo val or puede cambi ar
dur ant e l a ej ecuci n de un pr ogr ama. Par a decl ar ar una var i abl e
ut i l i ce l a si gui ent e si nt axi s:

Di mNOMBRE_VARI ABLE [ As TI PO]

Cuando se decl ar a una var i abl e y no se especi f i ca su t i po
( con As TI PO) , se asume que es de t i po Var i ant .
La i nst r ucci n Di m puede r eal i zar ms de una decl ar aci n,
t eni endo en cuent a que l a cl usul a opci onal As TI PO l e per mi t e
def i ni r el t i po de dat o de cada var i abl e que vaya a decl ar ar .
Por ej empl o:

Di mX, Y As I nt eger


Pg. 24

La sent enci a ant er i or l e puede i nduci r a pensar que X e Y
son de t i po I nt eger , l o cual no es ci er t o, pues X es de t i po
Var i ant ( por omi si n) e Y es de t i po I nt eger .
Par a asi gnar val or es a una var i abl e, ut i l i zar l a si gui ent e
si nt axi s:

NOMBRE_VARI ABLE = VALOR

A maner a de ej empl o consi der e l o si gui ent e:

Di mCANTI DAD As I nt eger , PRECI O As Doubl e, TOTAL As Doubl e
CANTI DAD = 30
PRECI O = 1. 5
TOTAL = CANTI DAD * PRECI O

OPERADORES
Los oper ador es son s mbol os que i ndi can cmo ser n
mani pul ados l os oper andos. Los oper andos son l os dat os
( const ant es y/ o var i abl es) sobr e l os que act a l os oper ador es
par a pr oduci r un det er mi nado r esul t ado.

Operadores aritmticos
Operador Significado
^ Exponenci aci n
- Menos unar i o


Pg. 25
* / Mul t i pl i caci n y di vi si n
\ Di vi si n ent er a
Mod Rest o de una di vi si n ent er a
+ - Suma y r est a
Operadores relacionales
Operador Significado
= I gual que
<>
Di f er ent e que
<
Menor que
>
Mayor que
<=
Menor o i gual que
=>
Mayor o i gual que

Operadores lgicos
Operador Significado
Not Negaci n
And Conj unci n
Or Di syunci n i ncl usi va
Xor Di syunci n excl usi va
Eqv Equi val enci a ( opuest o a Xor )
I mp I mpl i caci n ( f al so si pr i mer oper ando
ver dader o y segundo oper ando f al so)



Pg. 26
Operadores de cadenas de caracteres
Operador Significado
&
Concat enaci n
Li ke Compar a dos cadenas de car act er es
SENTENCIAS
Una sent enci a es una l nea de cdi go que i ndi ca una o ms
oper aci ones a r eal i zar . Una l nea puede i ncl ui r var i as
sent enci as, separ adas unas de ot r as por dos punt os. Por
ej empl o:

Di mCANTI DAD As I nt eger , PRECI O As Doubl e, TOTAL As Doubl e
CANTI DAD = 30 : PRECI O = 1. 5 : TOTAL = CANTI DAD * PRECI O

Una sent enci a Vi sual Basi c puede escr i bi r se en ms de una
l nea f si ca ut i l i zando el car ct er de cont i nuaci n de l nea
( un espaci o en bl anco segui do del car ct er de subr ayado) . Por
ej empl o:

Di mCH4_ENTRADA As Doubl e, CH4_SALI DA As Doubl e, _
CH4_GENERA As Doubl e, CH4_CONSUME AS Doubl e

ENTRADA Y SALIDA DE DATOS
Vi sual Basi c posee una ser i e de obj et os ( cont r ol es) que
pueden ser ut i l i zados como mecani smos de ent r ada y sal i da ( E/ S)
de dat os. Si n embar go, est os ser n est udi ados en cap t ul os
post er i or es.


Pg. 27
Ot r a posi bi l i dad de pr opor ci onar dat os o de vi sual i zar l os
dur ant e l a ej ecuci n de una apl i caci n es ut i l i zando caj as de
di l ogos pr edef i ni das. Debi do a que est a es l a f or ma ms si mpl e
de r eal i zar l a E/ S de dat os nos ocupar emos de el l a.


Entrada de datos
La ent r ada de dat os per mi t e pr opor ci onar val or es dur ant e
l a ej ecuci n de una apl i caci n. Est os val or es son i ngr esados
gener al ment e medi ant e el t ecl ado y asi gnados a var i abl es del
pr ogr ama. En Vi sual Basi c una f or ma de i ngr esar dat os a l a
apl i caci n es ut i l i zando l a caj a de di l ogo pr edef i ni da
pr ovi st a por l a f unci n I nput Box. Su si nt axi s es l a si gui ent e:

VARI ABLE = I nput Box( MENSAJ E [ , T TULO] [ , PREDETERMI NADO] )

Donde MENSAJ E es el mensaj e que i ndi ca al usuar i o el t i po
de i nf or maci n que debe i ngr esar . Por ej empl o, l as sent enci as:

Di mEDAD As I nt eger
EDAD = I nput Box( I ngr ese su edad?)

Da l ugar a que Vi sual Basi c pr esent e l a si gui ent e caj a de
di l ogo sol i ci t ando l a i nf or maci n r equer i da:



Pg. 28


Como puede obser var , el r est o de l os par met r os son
opci onal es. T TULO es el t ext o que se muest r a en l a bar r a de
t t ul o del cuadr o de di l ogo, si se omi t e T TULO, el nombr e de
l a apl i caci n es l a que se muest r a en l a bar r a de t t ul o.
PREDETERMI NADO es una expr esi n de cadena que apar ece en el
cuadr o de t ext o como r espuest a pr edet er mi nada si no se
pr opor ci ona ni ngn ot r o t ext o. Si se omi t e PREDETERMI NADO el
cuadr o de t ext o se muest r a vac o. A maner a de ej empl o consi der e
l o si gui ent e:

Di mEDAD As I nt eger
EDAD = I nput Box( I ngr ese su edad?, Fi cha de dat os, 18)

En est e caso se vi sual i za l a caj a de di l ogo que se
pr esent a en l a f i gur a si gui ent e:




Pg. 29

Salida de datos
La sal i da de dat os gener al ment e consi st e en t omar l a
i nf or maci n de l a memor i a y most r ar l a en pant al l a. Par a
r eal i zar l a oper aci n de sal i da de dat os en Vi sual Basi c,
podemos ut i l i zar el pr ocedi mi ent o MsgBox, cuya si nt axi s es como
si gue:

MsgBox MENSAJ E [ , I CONO, T TULO]
MENSAJ E es La cadena que se muest r a como sal i da en l a caj a
de di l ogo. I CONO es se r ef i er e al est i l o de i cono que se va ha
ut i l i zar y T TULO es una t ext o que se most r ar en l a bar r a de
t t ul o de l a caj a de di l ogo. Por ej empl o:

Di mEDAD As I nt eger
EDAD = I nput Box( I ngr ese su edad?)
EDAD = EDAD + 10
MsgBox Dent r o de 10 aos su edad ser : & St r ( EDAD)

Si ej ecut a el cdi go ant er i or e i ngr esa su edad ( en mi
caso 29 aos) l a sal i da debe ser si mi l ar a l a f i gur a si gui ent e:





Pg. 30
Par a que pueda ej ecut ar el cdi go ant er i or , pr oceda a
cr ear una nueva apl i caci n y haga dobl e cl i ck sobr e el
f or mul ar i o, l uego i ngr ese el cdi go ant er i or :

Pr i vat e Sub For m_Load( )
Di mEDAD As I nt eger
EDAD = I nput Box( I ngr ese su edad?)
EDAD = EDAD + 10
MsgBox Dent r o de 10 aos su edad ser : & St r ( EDAD)
End Sub
A maner a de obser vaci n cabe seal ar que l a f unci n St r ( )
se ut i l i za par a conver t i r una expr esi n numr i ca a una cadena
de car act er es.

ESTRUCTURAS DE CONTROL
Las est r uct ur as de cont r ol per mi t en t omar deci si ones y
r eal i zar un pr oceso r epet i das veces ( pr ocesos i t er at i vos) . Par a
el l o Vi sual Basi c di spone de l as si gui ent es est r uct ur as de
cont r ol : I f . . . Then . . . El se, I f . . . Then . . . El seI f ,
Sel ect Case, For . . . Next , Whi l e . . . . Wend, Do . . . Loop
y GoTo.

Estructura If . . . Then . . . Else
Est e t i po de est r uct ur a eval a una det er mi nada condi ci n y
en f unci n a el l o ej ecut a uno de ent r e dos posi bl es gr upos de
sent enci as. Su si nt axi s es l a si gui ent e:


Pg. 31

I f CONDI CI N Then
SENTENCI AS_VERDADERAS
El se
SENTENCI AS_FALSAS
End I f

Si CONDI CI N es ver dader a se ej ecut a el gr upo de
SENTENCI AS_VERDADERAS. Si CONDI CI N es f al sa se ej ecut a el
gr upo de SENTENCI AS_FALSAS.
Por ej empl o, el si gui ent e cdi go det er mi na si un ent er o A
es o no di vi si bl e por ot r o ent er o B:

Di mA As I nt eger , B As I nt eger
A = I nput Box( I ngr ese A?)
B = I nput Box( I ngr ese B?)
I f A Mod B = 0 Then
MsgBox St r ( A) & es di vi si bl e por & St r ( B)
El se
MsgBox St r ( A) & no es di vi si bl e por & St r ( B)
End I f

Estructura If . . . Then . . . ElseIf
Est e t i po de est r uct ur a se ut i l i za par a el egi r una de
ent r e ml t i pl es al t er nat i vas. Su si nt axi s es como si gue:

I f CONDI CI N_1 Then


Pg. 32
SENTENCI AS_1
El seI f CONDI CI N_2 Then
SENTENCI AS_2
.
.
.
El se
SENTENCI AS_FALSAS
End I f
Si CONDI CI N_1 es ver dader a se ej ecut a el gr upo de
SENTENCI AS_1, y si es no se cumpl e, se eval an secuenci al ment e
l as condi ci ones si gui ent es hast a El se, ej ecut ndose l as
sent enci as cor r espondi ent es al pr i mer El seI f cuya condi ci n sea
ver dader a. Si t odas l as condi ci ones son f al sas, se ej ecut an l as
SENTENCI AS_FALSAS cor r espondi ent es a El se.
Por ej empl o consi der e el si gui ent e cdi go, el cual i mpr i me
el nombr e del mes cor r espondi ent e a l os nmer os del 1 al 12.

Di mN As I nt eger
N = I nput Box( I ngr ese N?)
I f N = 1 Then
MsgBox Ener o
El seI f N = 2 Then : MsgBox Febr er o
El seI f N = 3 Then : MsgBox Mar zo
El seI f N = 4 Then : MsgBox Abr i l
El seI f N = 5 Then : MsgBox Mayo


Pg. 33
El seI f N = 6 Then : MsgBox J uni o
El seI f N = 7 Then : MsgBox J ul i o
El seI f N = 8 Then : MsgBox Agost o
El seI f N = 9 Then : MsgBox Set i embr e
El seI f N = 10 Then : MsgBox Oct ubr e
El seI f N = 11 Then : MsgBox Novi embr e
El seI f N = 12 Then : MsgBox Di ci embr e
El se : MsgBox Er r or de dat os
End I f
Estructura Select Case
Est e est r uct ur a es una al t er nat i va a l a est r uct ur a
I f . . . Then . . . El seI f , cuando l o que necesi t a es compar ar
l a mi sma expr esi n con di f er ent es val or es. Su si nt axi s es l a
si gui ent e:

Sel ect Case EXPRESI N_TEST
Case EXPRESI N_1
SENTENCI AS_1
Case EXPRESI N_2
SENTENCI AS_2
.
.
.
Case El se
SENTENCI AS_FALSAS
End Sel ect


Pg. 34

En est e caso se compr ueba el val or de EXPRESI N_TEST
f r ent e a l a l i st a expr esi ones EXPRESI N_1, EXPRESI N_2, . . . y
as sucesi vament e, y busca el pr i mer Case que i ncl uya el val or
eval uado en EXPRESI N_TEST, ej ecut ando a cont i nuaci n el bl oque
de sent enci as cor r espondi ent e. Si no exi st e un val or i gual a
EXPRESI N_TEST, ent onces se ej ecut a l as SENTENCI AS_FALSAS
cor r espondi ent es al Case El se.
A maner a de ej empl o vamos a codi f i car el pr ogr ama de l a
secci n ant er i or el cual i mpr i me el nombr e del mes
cor r espondi ent e a l os nmer os del 1 al 12. Per o en est a vez
ut i l i zar emos l a est r uct ur a Sel ect Case ( compar e con cual de
ambas est r uct ur as es ms cmodo t r abaj ar ) .

Di mN As I nt eger
N = I nput Box( I ngr ese N?)
Sel ect Case N
Case 1 : MsgBox Ener o
Case 2 : MsgBox Febr er o
Case 3 : MsgBox Mar zo
Case 4 : MsgBox Abr i l
Case 5 : MsgBox Mayo
Case 6 : MsgBox J uni o
Case 7 : MsgBox J ul i o
Case 8 : MsgBox Agost o
Case 9 : MsgBox Set i embr e


Pg. 35
Case 10 : MsgBox Oct ubr e
Case 11 : MsgBox Novi embr e
Case 12 : MsgBox Di ci embr e
Case El se
MsgBox Er r or de dat os
End Sel ect

Cabe dest acar que Sel ect Case t ambi n se puede ut i l i zar de
l a si gui ent e maner a:

Di mX As I nt eger
X = I nput Box( I ngr ese X?)
Sel ect Case X
Case 1
MsgBox X = 1
Case 2, 3
MsgBox X = 2 o X = 3
Case 4 To 10
MsgBox 4 <= X <= 10
Case El se
MsgBox X < 1 o X > 10
End Sel ect

Estructura For . . . Next


Pg. 36
Est a est r uct ur a es ut i l i zada par a ej ecut ar un bucl e un
nmer o det er mi nado de veces. El nmer o de i t er aci ones deber
ser conoci do de ant emano. Su si nt axi s es l a que se pr esent a a
cont i nuaci n:

For CONTADOR = I NI CI O To FI NAL [ St ep I NCREMENTO/ DECREMENTO]
SENTENCI AS_REPETI TI VAS
[ Exi t For ]
Next
Donde l a var i abl e CONTADOR es i ni ci al i zada con el val or de
I NI CI O y se i ncr ement a o decr ement a hast a un val or FI NAL.
I NCREMENTO/ DECREMENTO def i ne l a maner a en que cambi a el val or
de l a var i abl e CONTADOR en cada i t er aci n.
La sent enci a Exi t For per mi t e sal i r del bucl e For . . . Next
ant es de que est e f i nal i ce.
Por ej empl o, el si gui ent e cdi go i mpr i me l os cuadr ados de
l os nmer os ent er os del 1 al 25.

Di mC As I nt eger
For C = 1 To 25
Pr i nt C
Next

Par a que est e cdi go f unci one cor r ect ament e debe
est abl ecer l a pr opi edad Aut oRedr aw del f or mul ar i o a Tr ue.

Estructura While . . . Wend


Pg. 37
La est r uct ur a Whi l e . . . Wend es aquel l a en l a que el
nmer o de i t er aci ones no se conoce por ant i ci pado y el cuer po
del bucl e se r epi t e mi ent r as se cumpl e una det er mi nada
condi ci n. Su si nt axi s es l a si gui ent e:

Whi l e CONDI CI N
SENTENCI AS_REPETI TI VAS
Wend
La est r uct ur a Whi l e . . . Wend eval a l a CONDI CI N en cada
i t er aci n y si el r esul t ado es ver dader o cont i na su ej ecuci n.
El bucl e t er mi na cuando CONDI CI N es f al sa.
A maner a de ej empl o, consi der e el si gui ent e cdi go, el
cual i mpr i me en pant al l a l a suma de l os pr i mer os nmer os
nat ur al es, es deci r = 1 + 2 + 3 + 4 + . . . +
N
S N

Di mN As I nt eger , S As I nt eger
S = 0
N = I nput Box( I ngr ese N?)
Whi l e N <> 0
S = S + N
N = N - 1
Wend
MsgBox La suma es S= & St r ( S)

Estructura Do . . . Loop
Est a est r uct ur a ej ecut a un bucl e mi ent r as una condi ci n
dada sea ci er t a, o hast a que una condi ci n dada sea ci er t a. La


Pg. 38
condi ci n puede ser ver i f i cada ant es o despus de ej ecut ar se el
cuer po del bucl e. Su si nt axi s es:

Formato 1: Do [ Whi l e/ Unt i l ] CONDI CI N
SENTENCI AS_REPETI TI VAS
[ Exi t Do]
Loop
Formato 2: Do
SENTENCI AS_REPETI TI VAS
[ Exi t Do]
Loop [ Whi l e/ Unt i l ] CONDI CI N

Est a est r uct ur a ( como se puede obser var en ambos f or mat os)
per mi t e r eal i zar var i as est r uct ur as di f er ent es dependi endo si
l a condi ci n de t er mi naci n est al pr i nci pi o o al f i nal del
cuer po del bucl e.
Como ej empl o, consi der emos el si gui ent e pr ogr ama, el cual
cal cul a el f act or i al de un ent er o i ngr esado por t ecl ado: N

Di mN As I nt eger , FACT As I nt eger , C As I nt eger
FACT = 1
C = 1
N = I nput Box( I ngr ese N?)
Do
FACT = FACT * C
C = C + 1


Pg. 39
Loop Whi l e C <= N
MsgBox El f act or i al de & St r ( N) & es= & St r ( FACT)

Sentencia GoTo
Tr ansf i er e el cont r ol a una l nea espec f i ca de cdi go,
i dent i f i cada por una et i quet a o por un nmer o de l nea. Su
si nt axi s es:
GoTo ETI QUETA/ NUMERO_L NEA

Aunque el uso del GoTo se ha depr eci ado consi der abl ement e,
en el pr esent e t r abaj o no se j uzgar su val i dez. Si n embar go,
se ha est abl eci do que no hay si t uaci ones de pr ogr amaci n que
r equi er an el uso del GoTo, es deci r , no es un el ement o
necesar i o par a hacer compl et o el l enguaj e.
Si n embar go, el GoTo es un conveni o que, si su usa con
cui dado, puede ser benef i ci oso en ci er t as si t uaci ones de
pr ogr amaci n.
Por ej empl o podr a escr i bi r un bucl e par a i mpr i mi r l os
cuadr ados de l os nmer os ent er os del 1 al 25.

Di mX As I nt eger
X = 0
LABEL1:
X = X + 1
Pr i nt X ^ 2
I f X < 25 Then GoTo LABEL1



Pg. 40
Un uso abusi vo de l a sent enci a GoTo da l ugar a cdi gos
di f ci l es de i nt er pr et ar y de mant ener . Por el l o, se r ecomi enda
su uso sol ament e en ocasi ones excepci onal es. La t ar ea que vaya
a desempear una sent enci a GoTo puede supl i r se ut i l i zando
cual qui er a de l as est r uct ur as de cont r ol vi st as en l as
secci ones ant er i or es.
ARREGLOS
Un ar r egl o o mat r i z es una est r uct ur a de dat os en l a que
se al macena una col ecci n f i ni t a de dat os del mi smo t i po, que
compar t en un nombr e comn, a l os que se puede acceder por l a
posi ci n ( ndi ce) que ocupa cada uno de el l os dent r o del
ar r egl o. Cada el ement o del ar r egl o es una var i abl e que puede
cont ener un nmer o o una cadena de car act er es, dependi endo del
t i po de ar r egl o que se decl ar e.
Los ar r egl os en Vi sual Basi c se cl asi f i can en est t i cos y
di nmi cos.

Arreglos estticos
Son aquel l os ar r egl os cuyo t amao no puede cambi ar en
t i empo de ej ecuci n. La decl ar aci n de un ar r egl o est t i co se
puede r eal i zar medi ant e l a si gui ent e si nt axi s:

Di mNOMBRE_ARREGLO( DI MENSONES) As TI PO



Pg. 41
Donde DI MENSI ONES es una l i st a de nmer os, separ ados por
comas y que def i nen l as di mensi ones del ar r egl o. Est a l i st a
puede ser de l a si gui ent e f or ma:

DI MENSI N_1, DI MENSI N_2, DI MENSI N_3, . . . , DI MENSI N_ K

Par a el caso de un ar r egl o f or mado por K di mensi ones,
es deci r un ar r egl o K - di mensi onal .
A maner a de ej empl o consi der e l os si gui ent es casos que se
pueden pr esent ar :

Di mLI STA( 9) As I nt eger
Di mMATRI Z( 4, 3) As Doubl e
Di mNOMBRES( 19) As St r i ng * 30

En el pr i mer caso se decl ar a un ar r egl o uni di mensi onal de
10 el ement os de t i po ent er o ( por def ect o l os el ement os de un
ar r egl o se numer an a par t i r de 0) .
En el segundo caso se def i ne de un ar r egl o bi di mensi onal
de 20 el ement os ( 5 f i l as por 4 col umnas) de t i po punt o f l ot ant e
en dobl e pr eci si n.
En el t er cer caso se def i ne una ar r egl o uni di mensi onal de
20 el ement os de t i po cadena de car act er es ( cada el ement o t i ene
una l ongi t ud f i j a de 30 car act er es) .
Como se obser va l a numer aci n de l os el ement os de un
ar r egl o por def ect o comi enza en cer o, par a hacer que l a


Pg. 42
numer aci n comi ence en 1, debe i ngr esar l a si gui ent e or den en
l a secci n de Decl ar aci ones del mdul o de f or mul ar i o:


Luego, par a decl ar ar l os mi smos ar r egl os de l os casos
ant er i or es, l as sent enci as ser an l as si gui ent es:

Di mLI STA( 10) As I nt eger
Di mMATRI Z( 5, 4) As Doubl e
Di mNOMBRES( 20) As St r i ng * 30

Est abl ecer l a sent enci a Opt i on Base a 1 o t r abaj ar con el
val or pr edet er mi nado ( cer o) queda a consi der aci n del l ect or .

Arreglos dinmicos
Son aquel l os ar r egl os en l os que su t amao puede def i ni r se
o modi f i car se en t i empo de ej ecuci n. Par a decl ar a una ar r egl o
di nmi co ut i l i ce l a si gui ent e si nt axi s:

Di mNOMBRE_ARREGLO( ) As TI PO

Par a def i ni r el t amao del ar r egl o ut i l i zar l a si gui ent e
si nt axi s:


Pg. 43
ReDi mNOMBRE_ARREGLO( NMERO_ELEMENTOS)

Cada vez que se ej ecut a l a sent enci a ReDi m, t odos l os
val or es al macenados en el ar r egl o se pi er den. Par a def i ni r o
cambi ar el t amao del ar r egl o conser vando l os val or es del mi smo
use l a si gui ent e si nt axi s:

ReDi mPr eser ve NOMBRE_ARREGLO( NMERO_ELEMENTOS)
Par a l i ber ar el espaci o de memor i a ut i l i zado por ar r egl os
di nmi cos que ya no son t i l es, ut i l i zar l a si nt axi s:

Er ase NOMBRE_ARREGLO

La or den Er ase asi gna cer o a cada el ement o de l os ar r egl os
numr i cos y nul o ( ) a cada el ement o de l os ar r egl os de cadena
de car act er es.
A maner a de ej empl o consi der e el si gui ent e cdi go que
decl ar a y hace uso de un ar r egl o di nmi co:

Di mI As I nt eger , N As I nt eger , TEMP( ) As I nt eger
N = I nput Box( I ngr ese N?)
ReDi mTEMP( N - 1)
For I = 0 To N - 1
TEMP( I ) = I + 1
Pr i nt TEMP( I )
Next
Er ase TEMP


Pg. 44

REGISTROS
Un r egi st r o es un nuevo t i po de dat o, que se def i ne como
una col ecci n de dat os de di f er ent es t i pos, conoci dos como
campos, l os cual es se encuent r an evi dent ement e r el aci onados.
Un r egi st r o sl o se puede ser cr eado en l a secci n de
decl ar aci ones de un mdul o. La si nt axi s cor r espondi ent e es:
Pr i vat e Type NOMBRE_REGI STRO
DECLARACI ONES_DE_LOS_MI EMBROS
End Type

Por ej empl o consi der e el si gui ent e cdi go que def i ne l a
est r uct ur a ALUMNO:

Pr i vat e Type ALUMNO
I D_ALUMNO As St r i ng * 7
NOMBRE As St r i ng * 25
DI RECCI ON As St r i ng * 35
TELEFONO As St r i ng * 7
ESTADO As Bool ean
End Type

Luego, podemos decl ar ar una var i abl e t i po ALUMNO de l a
si gui ent e f or ma:

Di mX As ALUMNO



Pg. 45
Par a r ef er i r se a un det er mi nado mi embr o del r egi st r o se
ut i l i za el oper ador sel ect or de campos ( . ) , veamos:

X. I D_ALUMNO = 980976G
X. NOMBRE = Car l os Cast i l l o Per al t a
X. DI RECCI ON = J r . C. Ri char dson 412 Chor r i l l os
X. TELEFONO = 2510850
X. ESTADO = Tr ue
Las mi smas r denes del pr r af o ant er i or se pueden escr i bi r
de una maner a ms f ci l , ms l egi bl e y ms ef i ci ent e si ut i l i za
l a sent enci a Wi t h . . . End Wi t h, del si gui ent e modo:

Wi t h X
. I D_ALUMNO = 980976G
. NOMBRE = Car l os Cast i l l o Per al t a
. DI RECCI ON = J r . C. Ri char dson 412 Chor r i l l os
. TELEFONO = 2510850
. ESTADO = Tr ue
End Wi t h

FUNCIONES
Las f unci ones son uno de l os el ement os bsi cos en
pr ogr amaci n. A cont i nuaci n ser n est udi adas det al l adament e.

Declaracin de una funcin


Pg. 46
Una f unci n es un pr ocedi mi ent o que cuando se ej ecut a
devuel ve un ni co r esul t ado al pr ocedi mi ent o que l a i nvoc. La
si nt axi s cor r espondi ent e a l a decl ar aci n de una f unci n es:

Funct i on NOMBRE_FUNCI N( [ LI STA_PARMETROS] ) [ As TI PO]
SENTENCI AS
[ NOMBRE_FUNCI N = VALOR_RETORNADO]
[ Exi t Funct i on]
End Funct i on

Donde LI STA_PARMETROS es una secuenci a de var i abl es
separ adas por comas que se cor r esponden con l os ar gument os
pasados cuando es i nvocada l a f unci n.
Par a especi f i car el t i po de dat os que ser r et or nado por
l a f unci n ut i l i ce l a cl usul a opci onal As TI PO, el t i po es
Var i ant por omi si n.
El val or r et or nado por l a f unci n es al macenado en su
pr opi o nombr e, es deci r en NOMBRE_FUNCI N, que act a como
var i abl e dent r o del cuer po de l a f unci n. Si no se ef ect a est a
asi gnaci n el val or devuel t o ser cer o si l a f unci n es de t i po
numr i ca, nul o ( ) si l a f unci n es de t i po cadena, o vac o
( Empt y) si l a f unci n es de t i po Var i ant .
La cl usul a opci onal Exi t Funct i on per mi t e sal i r de una
f unci n ant es de que l a f unci n f i nal i ce, en caso sea est o
necesar i o.


Pg. 47
La si nt axi s par a l a l l amada a una f unci n es de l a
si gui ent e f or ma:

VARI ABLE = NOMBRE_FUNCI N( [ LI STA_ARGUMENTOS] )

Donde LI STA_ARGUMENTOS es una secuenci a de const ant es,
var i abl es o expr esi ones separ adas por comas. El nmer o de
ar gument os debe ser i gual al nmer o de par met r os de l a
f unci n. Los t i pos de l os ar gument os deben coi nci di r con l os
t i pos de sus cor r espondi ent es par met r os.
A maner a de ej empl o consi der e l a i mpl ement aci n de l a
si gui ent e f unci n:

3 2 ) (
2
+ + = x x x f

En l a secci n de Decl ar aci ones del mdul o de f or mul ar i o
i ngr ese el si gui ent e cdi go:

Funct i on F( X As Doubl e) As Doubl e
F = X ^ 2 + 2 * X + 3
End Funct i on

Par a i nvocar l a f unci n cr eada r eci ent ement e, codi f i que
l as si gui ent es l neas:

Di mA As Doubl e, RESP As Doubl e
A = I nput Box( I ngr ese A?)
RESP = F( A)


Pg. 48
MsgBox ( St r ( RESP) )

Paso de argumentos a una funcin
El paso de ar gument os a una f unci n es l a f or ma como se
i ngr esan l os dat os y var i abl es al i nt er i or de l a f unci n y se
pr esent a de dos f or mas:

Por r ef er enci a
Por val or
Paso de argumentos por referencia
En l as f unci ones de Vi sual Basi c, l os ar gument os se pasan
por r ef er enci a ( f or ma por def ect o) , de est e modo cual qui er
cambi o de val or que suf r a un par met r o en el cuer po de l a
f unci n, t ambi n se pr oduce en el ar gument o cor r espondi ent e de
l a l l amada a l a f unci n. Est a f or ma de pasar l os ar gument os a
una f unci n es t i l par a f unci ones que devuel ven ms de un
val or . Por ej empl o, consi der e l a si gui ent e f unci n que cal cul a
l as r a ces r eal es de una ecuaci n cuadr t i ca Ax Bx C
2
0 + + = .

Funct i on RAI Z( A As Doubl e, B As Doubl e, C As Doubl e, _
X1 As Doubl e, X2 As Doubl e) As Bool ean
Di mD As Doubl e
D = B ^ 2 - 4 * A * C
I f D >= 0 Then
X1 = ( - B - Sqr ( D) ) / ( 2 * A)
X2 = ( - B + Sqr ( D) ) / ( 2 * A)


Pg. 49
RAI Z = Tr ue ' Ver dader o si hay r a ces r eal es
El se
RAI Z = Fal se ' Fal so si no hay r a ces r eal es
End I f
End Funct i on

La l l amada a est a f unci n se puede r eal i zar de l a maner a
que se pr esent a a cont i nuaci n:
Di mA As Doubl e, B As Doubl e, C As Doubl e
Di mX1 As Doubl e, X2 As Doubl e
A = I nput Box( I ngr ese A?)
B = I nput Box( I ngr ese B?)
C = I nput Box( I ngr ese C?)
I f RAI Z( A, B, C, X1, X2) Then
MsgBox X1= & St r ( X1)
MsgBox X2= & St r ( X2)
El se
MsgBox NO EXI STEN RA CES REALES
End I f

Paso de argumentos por valor
Cuando se ej ecut a una f unci n, se podr especi f i car que el
val or de un ar gument o no sea cambi ado por est a f unci n, pasando
di cho ar gument o por val or . Par a el l o se debe ant eponer l a


Pg. 50
pal abr a r eser vada ByVal a l a decl ar aci n del par met r o en l a
cabecer a de l a f unci n. Por ej empl o:

Funct i on F( ByVal X As Doubl e) As Doubl e
F = X ^ 2 + 2 * X + 3
End Funct i on

La cabecer a de l a f unci n F especi f i ca que X ser pasado
por val or y no por r ef er enci a.
Funciones recursivas
Se di ce que una f unci n es r ecur si va si se l l ama a s
mi sma. Por ej empl o l a f unci n FACTORI AL cuyo cdi go se pr esent a
a cont i nuaci n es r ecur si va:

Funct i on FACTORI AL( N As I nt eger ) As Long
I f N 0 Then <>
FACTORI AL = FACTORI AL( N - 1) * N
El se
FACTORI AL = 1
End I f
End Funct i on

PROCEDIMIENTOS
La si nt axi s par a def i ni r un pr ocedi mi ent o es l a
si gui ent e:

Pr i vat e Sub NOMBRE_PROCEDI MI ENTO( [ LI STA_PARMETROS] )


Pg. 51
SENTENCI AS
[ Exi t Sub]
End Sub

La expl i caci n es anl oga a l a dada par a l as f unci ones.
Si n embar go, un pr ocedi mi ent o no puede ser ut i l i zado en una
expr esi n, ya que un pr ocedi mi ent o no r et or na ni ngn val or a
t r avs de su nombr e.
La l l amada a un pr ocedi mi ent o puede ser r eal i zada de
al guna de l as dos f or mas si gui ent es:

Cal l NOMBRE_PROCEDI MI ENTO( [ LI STA_ARGUMENTOS] )



NOMBRE_PROCEDI MI ENTO( [ LI STA_ARGUMENTOS] )

Por ej empl o, el si gui ent e cdi go cor r esponde a un
pr ocedi mi ent o que cal cul a e i mpr i me l a suma de l os pr i mer os
nmer os nat ur al es i mpar es, es deci r : = 1 + 3 + 5 + . . . +
N
S N

Pr i vat e Sub SUMA_I MPAR( N As I nt eger )
Di mS As I nt eger , I As I nt eger
S = 0
For I = 1 To N
I f I Mod 2 <> 0 Then
S = S + I


Pg. 52
End I f
Next
MsgBox La suma es S= & St r ( S)
End Sub

La l l amada a est e pr ocedi mi ent o podr a ser de l a f or ma:

Cal l SUMA_I MPAR( 25)



Pg. 53
CAPTULO 4


USO DE LOS CONTROLES

Los cont r ol es son aquel l os obj et os que se encuent r an
dent r o de un cont enedor y que per mi t en l a i nt er acci n ent r e el
usuar i o y l a apl i caci n, ya sea par a mani pul ar dat os y/ o
ej ecut ar t ar eas.
En Vi sual Basi c, l os cont r ol es suel en ser agr upados en
t r es cat egor as:

Cont r ol es bsi cos
Cont r ol es compl ement ar i os
Cont r ol es ext er nos

Los cont r ol es bsi cos son l as et i quet as, cuadr os de t ext o
y bot ones de comando, pues ut i l i zando est os t r es cont r ol es se
puede const r ui r cual qui er i nt er f az.
Los cont r ol es compl ement ar i os son el r est o de l os
cont r ol es, por ej empl o una casi l l a de ver i f i caci n, un cuadr o
combi nado o un cr onmet r o.
Los cont r ol es ext er nos se r ef i er en a aquel l os cont r ol es
cr eados por t er cer os. Est e t i po de cont r ol es son l l amados
Act i veX.


Pg. 54
CONTROLES BSICOS
Los cont r ol es bsi cos l o conf or man l as et i quet as, cuadr os
de t ext o y bot ones de comando, debi do a que cual qui er i nt er f az
se puede i mpl ement ar con sl o est os t r es obj et os.

Etiqueta
Una et i quet a es un cont r ol que per mi t e pr esent ar t ext o de
sol o l ect ur a. Se ut i l i za par a most r ar t t ul os y mensaj es que
por l o gener al no cambi an. Si n embar go, si l o desea, puede
escr i bi r pr ocedi mi ent os que cambi en el t ext o most r ado por una
et i quet a como r espuest a a event os en t i empo de ej ecuci n.

Propiedad Descripcin
Al i gnment Especi f i ca l a f or ma como se al i near el
t ext o.
Aut oSi ze Especi f i ca si se cambi a aut omt i cament e el
t amao del cont r ol par a que quepan sus
cont eni dos.
BackCol or ,
For eCol or
Especi f i ca el col or de f ondo y de pr i mer
pl ano empl eado par a most r ar el t ext o.
BackSt yl e Especi f i ca si el f ondo del cont r ol es
t r anspar ent e u opaco.
Capt i on Especi f i ca el t ext o que se muest r a en el
cont r ol .
Wor dWr ap Especi f i ca si l a et i quet a se ext i ende a ms
de una l nea cuando el t ext o es ampl i o.



Pg. 55
Cuadro de texto
Un cuadr o de t ext o es un cont r ol en el que el usuar i o
pueda i ngr esar dat os desde el t ecl ado o vi sual i zar un r esul t ado
gener ado por l a apl i caci n. El val or de un cuadr o de t ext o por
l o gener al se asoci a a una var i abl e de memor i a.

Propiedad Descripcin
Enabl ed Habi l i t a o deshabi l i t a el cont r ol , es deci r
si se puede o no modi f i car el cont eni do.
Locked Per mi t e bl oquear el acceso al cont r ol en
t i empo de ej ecuci n.
MaxLenght Especi f i ca l a l ongi t ud mxi ma ( en car act er es)
que puede escr i bi r se en el cont r ol .
Mul t i Li ne Especi f i ca si el cont r ol admi t i r ml t i pl es
l neas.
Passwor dChar Det er mi na si se muest r an en el cont r ol l os
car act er es escr i t os por el usuar i o o l os
car act er es de mar cador de posi ci n.
Scr ol l Bar s Especi f i ca si se muest r an l as bar r as de
despl azami ent o hor i zont al es o ver t i cal es.
Sel Lengt h Especi f i ca el nmer o de car act er es
sel ecci onados.
Sel St ar t Especi f i ca el i ni ci o del t ext o sel ecci onado.
Si su val or es 0, el t ext o sel ecci onado
comi enza por el pr i mer car ct er .
Sel Text Cont i ene el t ext o sel ecci onado.
Text Cont i ene el t ext o i nt r oduci do en el cont r ol .
Puede i ni ci al i zar el cont eni do en t i empo de
di seo.


Pg. 56
Los event os asoci ados a un cuadr o de t ext o son l os
si gui ent es:

Evento Descripcin
Change Ocur r e cuando se cambi a el cont eni do del
cont r ol ut i l i zando el t ecl ado o el r at n.
KeyPr ess Ocur r e cuando se pul sa una t ecl a.

Botn de comando
Un bot n de comando es un cont r ol que suel e empl ear se par a
ej ecut ar una acci n, como cer r ar un f or mul ar i o, i mpr i mi r un
i nf or me, et c.

Propiedad Descripcin
Cancel Especi f i ca si el cont r ol r esponder a l a
t ecl a ESC, por l o gener al par a t er mi nar l a
apl i caci n.
Capt i on Muest r a un t t ul o par a el cont r ol .
Def aul t Especi f i ca si el cont r ol r esponder a l a
t ecl a ENTRAR, si n i mpor t ar l a ubi caci n del
enf oque.
Enabl ed Per mi t e habi l i t ar o deshabi l i t ar el cont r ol .
Pi ct ur e Especi f i ca una i magen t i po i cono par a el
cont r ol .
St yl e Especi f i ca l a apar i enci a del cont r ol , ya sea
est ndar ( est i l o est ndar de Wi ndows) o
gr f i ca ( con una i magen per sonal i zada) .


Pg. 57
Los bot ones de comando suel en r esponder al event o Cl i ck,
cuya descr i pci n es:

Evento Descripcin
Cl i ck Ocur r e cuando el usuar i o hace cl i ck sobr e el
cont r ol .

A maner a de ej empl o vamos a desar r ol l ar l a si gui ent e
apl i caci n. Est a consi st e en un caj er o aut omt i co el cual
per mi t e mani pul ar ci er t a cant i dad de di ner o par a l o cual
di spone de l os si gui ent es bi l l et es: S/ . 10. 00; S/ . 20. 00;
S/ . 50. 00; S/ . 100. 00 y S/ . 200. 00. El abor ar una apl i caci n que
per mi t a l a l ect ur a de l a cant i dad a r et i r ar e i ndi que el menor
nmer o de bi l l et es a ut i l i zar .



Par a el desar r ol l o de l a pr esent e apl i caci n pr oceda a
ubi car l os si gui ent es cont r ol es en el f or mul ar i o:
6 et i quet as


Pg. 58
6 caj as de t ext o
3 bot ones de comando

Una vez ubi cados l os cont r ol es, est abl ezca l as pr opi edades
segn se i ndi ca:

Form1
Nombr e Fr mCaj er o
Bor der St yl e 3- Fi xed Di al og
Capt i on Caj er o aut omt i co

Label1
Nombr e Lbl Cant i dad
Aut oSi ze Tr ue
Capt i on Cant i dad a r et i r ar :

Label2
Nombr e Lbl B10
Aut oSi ze Tr ue
Capt i on Bi l l et es de S/ . 10

Label3
Nombr e Lbl B20
Aut oSi ze Tr ue
Capt i on Bi l l et es de S/ . 20

Label4
Nombr e Lbl B50
Aut oSi ze Tr ue
Capt i on Bi l l et es de S/ . 50

Label5


Pg. 59
Nombr e Lbl B100
Aut oSi ze Tr ue
Capt i on Bi l l et es de S/ . 100

Label6
Nombr e Lbl B200
Aut oSi ze Tr ue
Capt i on Bi l l et es de S/ . 200

Text1
Nombr e Txt Cant i dad
Text

Text2
Nombr e Txt B10
Text

Text3
Nombr e Txt B20
Text

Text4
Nombr e Txt B50
Text

Text5
Nombr e Txt B100
Text

Text6
Nombr e Txt B200
Text

Command1


Pg. 60
Nombr e CmdAcept ar
Capt i on
&Acept ar

Command2
Nombr e CmdLi mpi ar
Capt i on
&Li mpi ar

Command3
Nombr e CmdSal i r
Capt i on
&Sal i r

Par a aadi r cdi go a l a apl i caci n haga dobl e cl i ck sobr e
el bot n Acept ar e i ngr ese l o si gui ent e:

Pr i vat e Sub CmdAcept ar _Cl i ck( )
Di mC As I nt eger , B200 As I nt eger , B100 As I nt eger , _
B50 As I nt eger , B20 As I nt eger , B10 As I nt eger
C = Val ( Txt Cant i dad)
I f C Mod 10 = 0 Then
B200 = C \ 200 : C = C Mod 200
B100 = C \ 100 : C = C Mod 100
B50 = C \ 50 : C = C Mod 50
B20 = C \ 20 : B10 = C Mod 20
Txt B200 = St r ( B200)
Txt B100 = St r ( B100)
Txt B50 = St r ( B50)
Txt B20 = St r ( B20)
Txt B10 = St r ( B10)
El se


Pg. 61
MsgBox Cant i dad a r et i r ar debe ser ml t i pl o de 10
Txt Cant i dad =
Txt Cant i dad. Set Focus
End I f
End Sub

Luego, haga dobl e cl i ck sobr e el bot n Li mpi ar y aada
el si gui ent e cdi go:

Pr i vat e Sub CmdLi mpi ar _Cl i ck( )
Txt Cant i dad =
Txt B200 =
Txt B100 =
Txt B50 =
Txt B20 =
Txt B10 =
Txt Cant i dad. Set Focus
End Sub

Fi nal ment e dar dobl e cl i ck sobr e el bot n Sal i r y aada
el si gui ent e cdi go:

Pr i vat e Sub CmdSal i r _Cl i ck( )
End
End Sub


Pg. 62
l as cual es el usuar i o puede sel ecci onar t odas l as que desee a
l a vez.

Propiedad Descripcin
Capt i on Muest r a un t t ul o par a el cont r ol .
Val ue Devuel ve o est abl ece el est ado del cont r ol ,
puede ser : Desact i vado ( 0) , Act i vado ( 1) .

Las casi l l as de ver i f i caci n suel en r esponder al event o
Cl i ck.

Botn de opcin
Un bot n de opci n se ut i l i za par a al t er nar ent r e dos
posi bl es val or es ( Act i vado/ Desact i vado) , de maner a si mi l ar a
l as casi l l as de ver i f i caci n, l a di f er enci a r adi ca en que de un
gr upo de bot ones de opci n el usuar i o sl o puede sel ecci onar un
ni co bot n a l a vez.

Propiedad Descripcin
Capt i on Muest r a un t t ul o par a el cont r ol .
Val ue Devuel ve o est abl ece el est ado del cont r ol ,
puede ser : Desact i vado ( Fal so) , Act i vado
( Tr ue) .

Los bot ones de opci n t ambi n suel en r esponder al event o
Cl i ck.


Pg. 64
A maner a de ej empl o vamos a desar r ol l ar l a si gui ent e
apl i caci n, l a cual per mi t e cambi ar el aspect o de un cuadr o de
t ext o, el usuar i o debe el egi r el col or ( r oj o, ver de, azul ) y el
est i l o ( negr i t a, cur si va, subr ayado) de l a f uent e a ut i l i zar .
Adi ci onal ment e, cuando el usuar i o act i ve l a casi l l a de
ver i f i caci n Conver t i r a mayscul as, t odo el t ext o que haya
escr i t o en el cuadr o de t ext o se pr esent ar en mayscul as y
t odo t ext o que escr i ba a cont i nuaci n ( mi ent r as l a opci n est
act i vada) t ambi n deber apar ecer en mayscul as.



Par a el desar r ol l o de l a pr esent e apl i caci n pr oceda a
ubi car l os si gui ent es cont r ol es en el f or mul ar i o:

1 cuadr o de t ext o
2 mar cos
3 bot ones de opci n
4 casi l l as de ver i f i caci n


Pg. 65
Una vez ubi cados l os cont r ol es, est abl ezca l as pr opi edades
segn se i ndi ca:

Form1
Nombr e Fr mEdi t or
Bor der St yl e 3- Fi xed Di al og
Capt i on Edi t or

Text1
Nombr e Txt Mensaj e
For eCol or
&H000000FF&
Text

Frame1
Nombr e Fr aCol or
Capt i on Col or

Frame2
Nombr e Fr aEst i l o
Capt i on Est i l o

Option1
Nombr e Opt Roj o
Capt i on Roj o
For eCol or
&H000000FF&
Val ue Tr ue

Option2
Nombr e Opt Ver de
Capt i on Ver de
For eCol or
&H00008000&



Pg. 66
Option3
Nombr e Opt Azul
Capt i on Azul
For eCol or
&H00C00000&

Check1
Nombr e ChkNegr i t a
Capt i on Negr i t a
Font Ar i al ( Negr i t a)

Check2
Nombr e ChkCur si va
Capt i on Cur si va
Font Ar i al ( Cur si va)

Check3
Nombr e ChkSubr ayado
Capt i on Subr ayado
Font Ar i al ( Subr ayado)

Check4
Nombr e ChkMayuscul a
Capt i on Conver t i r a mayscul as

Una vez est abl eci das l as pr opi edades, pr oceda a i ngr esar
el cdi go que se i ndi ca a cont i nuaci n:

Pr i vat e Sub Opt Roj o_Cl i ck( )
I f Opt Roj o. Val ue Then
Txt Mensaj e. For eCol or = RGB( 255, 0, 0)
End I f


Pg. 67
End Sub
Pr i vat e Sub Opt Ver de_Cl i ck( )
I f Opt Ver de. Val ue Then
Txt Mensaj e. For eCol or = RGB( 0, 255, 0)
End I f
End Sub

Pr i vat e Sub Opt Azul _Cl i ck( )
I f Opt Azul . Val ue Then
Txt Mensaj e. For eCol or = RGB( 0, 0, 255)
End I f
End Sub

Pr i vat e Sub ChkNegr i t a_Cl i ck( )
I f ChkNegr i t a. Val ue Then
Txt Mensaj e. Font . Bol d = Tr ue
El se
Txt Mensaj e. Font . Bol d = Fal se
End I f
End Sub

Pr i vat e Sub ChkCur si va_Cl i ck( )
I f ChkCur si va. Val ue Then
Txt Mensaj e. Font . I t al i c = Tr ue
El se
Txt Mensaj e. Font . I t al i c = Fal se
End I f
End Sub


Pg. 68
Pr i vat e Sub ChkSubr ayado_Cl i ck( )
I f ChkSubr ayado. Val ue Then
Txt Mensaj e. Font . Under l i ne = Tr ue
El se
Txt Mensaj e. Font . Under l i ne = Fal se
End I f
End Sub

Pr i vat e Sub ChkMayuscul a_Cl i ck( )
I f ChkMayuscul a. Val ue Then
Txt Mensaj e = UCase( Txt Mensaj e)
End I f
End Sub

Pr i vat e Sub Txt Mensaj e_KeyPr ess( KeyAsci i As I nt eger )
Di mCAR As St r i ng * 1
I f ChkMayuscul a. Val ue Then
CAR = UCase( Chr ( KeyAsci i ) )
KeyAsci i = Asc( CAR)
End I f
End Sub

La f unci n RGB( ) especi f i ca el col or que se asi gna a l a
pr opi edad For eCol or .
La f unci n UCase( ) r et or na una cadena de car act er es en
mayscul as.


Pg. 69
Cuadro de lista
Un cuadr o de l i st a es un cont r ol que pr esent a una l i st a de
el ement os en l a que el usuar i o puede sel ecci onar uno o ms de
di chos el ement os. Si el nmer o de el ement os super a el nmer o
que puede most r ar se, se agr egar aut omt i cament e una bar r a de
despl azami ent o al cont r ol .

Propiedad Descripcin
Li st Cont i ene l os el ement os de l a l i st a. Puede
def i ni r l os en t i empo de di seo.
Li st Count Especi f i ca el nmer o de el ement os de l a
l i st a. Su val or si empr e es uno ms que el
mayor val or de Li st I ndex.
Li st I ndex Especi f i ca el nmer o de or den que ocupa el
el ement o sel ecci onado en l a l i st a. Toma el
val or de 0 par a el pr i mer el ement o, si no ha
sel ecci ona ni nguno r et or na - 1.
Mul t i Sel ect Especi f i ca si se pueden sel ecci onar var i os
el ement os de l a l i st a.
Sel Count Devuel ve el nmer o de el ement os
sel ecci onados.
Sel ect ed Especi f i ca si un el ement o de l a l i st a est
sel ecci onado.
Sor t ed Especi f i ca si l os el ement os de l a l i st a se
or denan al f abt i cament e.
Text Especi f i ca el val or del el ement o sel ecci onado
en ese i nst ant e. El val or es t r at ado como una
cadena de car act er es.



Pg. 70
Los mt odos que se pueden ut i l i zar par a un cuadr o de l i st a
son l os si gui ent es:

Mtodo Descripcin
AddI t em Agr ega un nuevo el ement o a l a l i st a.
Cl ear El i mi na t odos l os el ement os cont eni dos en l a
l i st a.
RemoveI t em El i mi na en el ement o de l a l i st a.

Cuadro combinado
Un cuadr o combi nado es una mezcl a de un cuadr o de t ext o
con una l i st a. En l no sl o se podr i ngr esar un dat o si no
t ambi n sel ecci onar l o de l a l i st a. Pr esent a l as mi smas
pr opi edades, event os y mt odos que el cuadr o de l i st a a
excepci n de l o si gui ent e:

Propiedad Descripcin
St yl e Especi f i ca si el cont r ol se compor t a como un
cuadr o de t ext o o como una l i st a despl egabl e.
Un cuadr o de t ext o per mi t e i ngr esar val or es.
Una l i st a despl egabl e sl o per mi t e
sel ecci onar val or es. El val or pr edet er mi nado
es 0- vbComboDr opDown, e i ncl uye una l i st a
despl egabl e y un cuadr o de t ext o. El val or
1- vbComboSi mpl e i ncl uye t an sol o cuadr o de
t ext o. El val or 2- Dr opdown Li st i ncl uye sl o
una l i st a despl egabl e.


Pg. 71
Como ej empl o del uso de l i st as vamos a desar r ol l ar una
apl i caci n que per mi t a i ngr esar el nombr e de un cur so, el cual
pasa a f or mar par t e de una l i st a de esper a ant es de ser
pr ogr amado par a su di ct ado. Los cur sos deben ser sel ecci onados
de l a l i st a de esper a y t r asl adados a l a l i st a de cur sos
pr ogr amados y vi cever sa.



Par a el desar r ol l o de l a pr esent e apl i caci n pr oceda a
ubi car l os si gui ent es cont r ol es en el f or mul ar i o:

3 et i quet as
1 cuadr o de t ext o
2 l i st as
5 bot ones de comando



Pg. 72
En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:

Form1
Nombr e Fr mCur sos
Bor der St yl e 3- Fi xed Di al og
Capt i on Cur sos

Label1
Nombr e Lbl Cur so
Aut oSi ze Tr ue
Capt i on I ngr ese nuevo cur so:

Label2
Nombr e Lbl Sel ecci onar
Aut oSi ze Tr ue
Capt i on Sel ecci one un cur so:

Label3
Nombr e Lbl Pr ogr amado
Aut oSi ze Tr ue
Capt i on Cur so pr ogr amado:

Text1
Nombr e Txt Cur so
Text

List1
Nombr e Lst Sel ecci onar

List2
Nombr e Lst Pr ogr amado



Pg. 73
Command1
Nombr e CmdAgr egar
Capt i on
Pi ct ur e C: \ FundVB\ Bi t maps\ AddI t em. Bmp
St yl e 1- Gr aphi cal

Command2
Nombr e CmdAgr egar Todo
Capt i on
Pi ct ur e C: \ FundVB\ Bi t maps\ AddAl l . Bmp
St yl e 1- Gr aphi cal

Command3
Nombr e CmdQui t ar
Capt i on
Pi ct ur e C: \ FundVB\ Bi t maps\ Remove. Bmp
St yl e 1- Gr aphi cal

Command4
Nombr e CmdQui t ar Todo
Capt i on
Pi ct ur e C: \ FundVB\ Bi t maps\ RemoveAl l . Bmp
St yl e 1- Gr aphi cal

Command5
Nombr e CmdAnnadi r
Capt i on
&Aadi r
Def aul t Tr ue

Segui dament e pr oceda a i ngr esar el cdi go que se i ndi ca a
cont i nuaci n:


Pg. 74
Pr i vat e Sub CmdAnnadi r _Cl i ck( )
Lst Sel ecci onar . AddI t emTxt Cur so
Txt Cur so =
Txt Cur so. Set Focus
End Sub

Pr i vat e Sub CmdAgr egar _Cl i ck( )
Di mCURSO As St r i ng, I As I nt eger
CURSO = Lst Sel ecci onar . Text
I = Lst Sel ecci onar . Li st I ndex
I f Lst Sel ecci onar . Li st I ndex >= 0 Then
Lst Pr ogr amado. AddI t emCURSO
Lst Sel ecci onar . RemoveI t emI
End I f
End Sub

Pr i vat e Sub CmdQui t ar _Cl i ck( )
Di mCURSO As St r i ng, I As I nt eger
CURSO = Lst Pr ogr amado. Text
I = Lst Pr ogr amado. Li st I ndex
I f Lst Pr ogr amado. Li st I ndex >= 0 Then
Lst Sel ecci onar . AddI t emCURSO
Lst Pr ogr amado. RemoveI t emI
End I f
End Sub
Pr i vat e Sub CmdAgr egar Todo_Cl i ck( )
Di mI As I nt eger


Pg. 75
For I = 0 To Lst Sel ecci onar . Li st Count - 1
Lst Pr ogr amado. AddI t emLst Sel ecci onar . Li st ( I )
Next
Lst Sel ecci onar . Cl ear
End Sub

Pr i vat e Sub CmdQui t ar Todo_Cl i ck( )
Di mI As I nt eger
For I = 0 To Lst Pr ogr amado. Li st Count - 1
Lst Sel ecci onar . AddI t emLst Pr ogr amado. Li st ( I )
Next
Lst Pr ogr amado. Cl ear
End Sub

Segui dament e most r ar emos un ej empl o del uso de l os cuadr os
combi nados. Par a t al f i n vamos a desar r ol l ar una apl i caci n que
per mi t a r eal i zar consul t as acer ca de un det er mi nado cur so. La
r el aci n de cur sos se pr esent ar medi ant e un cuadr o combi nado,
del cual el usuar i o debe sel ecci onar el cur so de su i nt er s y
en segui da se pr esent ar el nombr e del pr of esor encar gado del
cur so ( t eor a) , el nombr e del j ef e de pr ct i ca ( l abor at or i o) ,
as como l os hor ar i os de t eor a y de l abor at or i o,
r espect i vament e.


Pg. 76


Par a el desar r ol l o de l a pr esent e apl i caci n pr oceda a
ubi car l os si gui ent es cont r ol es en el f or mul ar i o:

1 et i quet a
1 cuadr o de t ext o
1 cuadr o combi nado
1 bot n de comando

En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:

Form1
Nombr e Fr mConsul t aCur sos
Bor der St yl e 3- Fi xed Di al og
Capt i on Consul t a de cur sos



Pg. 77
Label1
Nombr e Lbl Cur sos
Capt i on Cur sos:

Text1
Nombr e Txt Cur so
Mul t i Li ne Tr ue
Scr ol l Bar s 2- Ver t i cal
Text

Combo1
Nombr e CboCur sos
Text
St yl e 2- Dr opdown Li st

Command1
Nombr e CmdSal i r
Capt i on
&Sal i r

Segui dament e pr oceda a i ngr esar el cdi go que se i ndi ca a
cont i nuaci n:

Di mMat r i z( 5, 3) As St r i ng
Pr i vat e Sub For m_Load( )
CboCur sos. AddI t emMi cr osof t Vi sual Basi c Ni vel I
CboCur sos. AddI t emMi cr osof t Vi sual Basi c Ni vel I I
CboCur sos. AddI t emMi cr osof t Vi sual FoxPr o Ni vel I
CboCur sos. AddI t emMi cr osof t Vi sual FoxPr o Ni vel I I
CboCur sos. AddI t emMi cr osof t Vi sual C++ Ni vel I
CboCur sos. AddI t emMi cr osof t Vi sual C++ Ni vel I I


Pg. 78
Mat r i z( 0, 0) = Cast i l l o Per al t a, Car l os
Mat r i z( 1, 0) = Cast i l l o Per al t a, Car l os
Mat r i z( 2, 0) = Li nar es Al ar con, Adams
Mat r i z( 3, 0) = Cast i l l o Per al t a, Car l os
Mat r i z( 4, 0) = Cr doba Saavedr a, J avi er
Mat r i z( 5, 0) = Cast i l l o Per al t a, Car l os
Mat r i z( 0, 1) = Sa 08- 11
Mat r i z( 1, 1) = Sa 14- 17
Mat r i z( 2, 1) = Sa 08- 11
Mat r i z( 3, 1) = Do 08- 11
Mat r i z( 4, 1) = Sa 14- 17
Mat r i z( 5, 1) = Sa 17- 20
Mat r i z( 0, 2) = Cast i l l o Per al t a, Car l os
Mat r i z( 1, 2) = Li nar es Al ar con, Adams
Mat r i z( 2, 2) = Mont es Tej ada, Est el a
Mat r i z( 3, 2) = Li nar es Al ar con, Adams
Mat r i z( 4, 2) = Cr doba Saavedr a, J avi er
Mat r i z( 5, 2) = Cr doba Saavedr a, J avi er
Mat r i z( 0, 3) = Sa 11- 13
Mat r i z( 1, 3) = Do 08- 10
Mat r i z( 2, 3) = Sa 11- 13
Mat r i z( 3, 3) = Do 14- 16
Mat r i z( 4, 3) = Sa 18- 20
Mat r i z( 5, 3) = Do 08- 10
End Sub


Pg. 79
Pr i vat e Sub CboCur sos_Cl i ck( )
Di mP_TEORI A As St r i ng, H_TEORI A As St r i ng
Di mP_LAB As St r i ng, H_LAB As St r i ng
P_TEORI A = Pr of esor de t eor a: & _
Mat r i z( CboCur sos. Li st I ndex, 0)
H_TEORI A = Hor ar i o de t eor a: & _
Mat r i z( CboCur sos. Li st I ndex, 1)
P_LAB = J ef e de pr ct i ca: & _
Mat r i z( CboCur sos. Li st I ndex, 2)
H_LAB = Hor ar i o l abor at or i o: & _
Mat r i z( CboCur sos. Li st I ndex, 3)
Txt Cur so = P_TEORI A & vbCr Lf & H_TEORI A & vbCr Lf & _
P_LAB & vbCr Lf & H_LAB
End Sub

Pr i vat e Sub CmdSal i r _Cl i ck( )
End
End Sub

La const ant e vbCr Lf es una combi naci n de r et or no de car r o
y avance de l nea, es equi val ent e a Chr ( 13) + Chr ( 10) .
Par a est e ej empl o en par t i cul ar hemos al macenado l a
i nf or maci n en memor i a RAM medi ant e el uso de un ar r egl o
bi di mensi onal ( Mat r i z) .



Pg. 80
Cronmetro
Un cr onmet r o si r ve par a cont r ol ar el t i empo t r anscur r i do
desde el i ni ci o de una acci n.

Propiedad Descripcin
I nt er val Especi f i ca el nmer o de mi l i segundos que se
esper ar par a di spar ar el event o Ti mer .

El cont r ol Cr onmet r o r esponde al event o Ti mer , cuya
descr i pci n es:

Evento Descripcin
Ti mer Ocur r e cuando el nmer o de mi l i segundos
especi f i cado en l a pr opi edad I nt er val ha
t r anscur r i do.

A maner a de ej empl o vamos a desar r ol l ar l a si gui ent e
apl i caci n que si mul a el f unci onami ent o de un r el oj di gi t al .




Pg. 81
Par a el desar r ol l o de l a pr esent e apl i caci n pr oceda a
ubi car l os si gui ent es cont r ol es sobr e el f or mul ar i o:

1 et i quet a
1 cuadr o de t ext o
1 cr onmet r o
1 bot n de comando

En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:

Form1
Nombr e Fr mRel oj
Bor der St yl e 3- Fi xed Di al og
Capt i on Rel oj di gi t al

Label1
Nombr e Lbl Hor a
Capt i on Hor a

Text1
Nombr e Txt Hor a
Text

Timer1
Nombr e Ti mer 1
I nt er val 500

Command1
Nombr e CmdTer mi nar
Capt i on
&Ter mi nar


Pg. 82
Segui dament e pr oceda a i ngr esar el cdi go que se i ndi ca a
cont i nuaci n:

Pr i vat e Sub For m_Act i vat e( )
Txt Hor a = Ti me( )
End Sub

Pr i vat e Sub Ti mer 1_Ti mer ( )
I f Txt Hor a Ti me( ) Then <>
Txt Hor a = Ti me( )
End I f
End Sub

Pr i vat e Sub CmdTer mi nar _Cl i ck( )
End
End Sub

Cuadro de imagen
Un cuadr o de i magen se ut i l i za par a most r ar un ar chi vo de
i magen ( BMP, GI F o J PG) . Recor t a el gr f i co si el cont r ol no es
l o bast ant e gr ande par a most r ar l a i magen compl et a.

Propiedad Descripcin
Aut oSi ze Especi f i ca si el cont r ol aj ust a
aut omt i cament e su t amao par a most r ar un
gr f i co compl et o.
Pi ct ur e Especi f i ca el ar chi vo de i magen par a el
cont r ol .


Pg. 83
El event o que suel e manej ar se par a est e cont r ol es
MouseMove, cuya descr i pci n es:

Evento Descripcin
MouseMove Ocur r e cuando el usuar i o mueve el r at n sobr e
el cont r ol .

Imagen
Un cont r ol i magen se ut i l i zar par a most r ar un ar chi vo de
i magen ( BMP, GI F o J PG) de maner a si mi l ar a un Cuadr o de
i magen. Si n embar go, est e cont r ol ut i l i za menos r ecur sos del
si st ema y se act ual i za con ms r api dez que un cuadr o de i magen.

Propiedad Descripcin
Pi ct ur e Especi f i ca el ar chi vo de i magen par a el
cont r ol .
St r et ch Especi f i ca como se aj ust a el t amao del
ar chi vo gr f i co par a que quepa dent r o del
cont r ol i magen.

Par a est e cont r ol t ambi n se suel e manej ar el event o
MouseMove.

Barras de desplazamiento horizontal
Una bar r a de despl azami ent o hor i zont al r epr esent a un val or
ent er o, l a cual t i ene un cuadr ado que se despl aza a l o l ar go de
l a mi sma par a f i j ar un val or .


Pg. 84
La posi ci n ms a l a i zqui er da se cor r esponde con el val or
m ni mo, l a posi ci n ms a l a der echa con el val or mxi mo, y
cual qui er ot r a posi ci n es un val or ent r e el l os dos.

Propiedad Descripcin
Max Especi f i ca el val or mxi mo que puede t omar l a
pr opi edad Val ue.
Mi n Especi f i ca el val or m ni mo que puede t omar l a
pr opi edad Val ue.
Lar geChange Especi f i ca en cuant o cambi ar el val or de l a
pr opi edad Val ue cuando el usuar i o haga cl i ck
ant es o despus del cuadr ado de
despl azami ent o.
Smal l Change Especi f i ca en cuant o cambi ar el val or de l a
pr opi edad Val ue cuando el usuar i o haga cl i ck
en al guna de l as f l echas de l os ext r emos de
l a bar r a.
Val ue Especi f i ca el val or del cont r ol , est e se
encuent r a si empr e ent r e l os val or es de l as
pr opi edades Mi n y Max.

Las bar r as de despl azami ent os r esponden a l os event os:

Evento Descripcin
Change Ocur r e i nmedi at ament e despus que el cuadr ado
de despl azami ent o ha si do movi do.
Scr ol l Ocur r e mi ent r as el cuadr ado de despl azami ent o
est si endo movi do ( est e event o sl o ocur r e
cuando el cuadr ado es ar r ast r ado) .
Barras de desplazamiento vertical




Pg. 85
Una bar r a de despl azami ent o ver t i cal r epr esent a un val or
ent er o, l a cual t i ene un cuadr ado que se despl aza a l o l ar go de
l a mi sma par a f i j ar un val or .
La posi ci n ms haci a ar r i ba se cor r esponde con el val or
m ni mo, l a posi ci n ms haci a abaj o se cor r esponde con el val or
mxi mo, y cual qui er ot r a posi ci n es un val or ent r e el l os dos.
Las pr opi edades y event os de l as bar r as de despl azami ent o
hor i zont al y ver t i cal son anl ogas.
Como ej empl o, vamos a const r ui r una apl i caci n que per mi t a
cambi ar el col or de f ondo de un cuadr o de i magen, medi ant e t r es
bar r as de despl azami ent o ( r oj o, ver de y azul ) .



Par a el desar r ol l o de l a pr esent e apl i caci n pr oceda a
ubi car l os si gui ent es cont r ol es en el f or mul ar i o:
3 et i quet as


Pg. 86
3 bar r as de despl azami ent o hor i zont al
1 cuadr o de i magen

En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:

Form1
Nombr e Fr mCol or es
Bor der St yl e 3- Fi xed Di al og
Capt i on Col or es

Label1
Nombr e Lbl Roj o
Capt i on Roj o

Label2
Nombr e Lbl Ver de
Capt i on Ver de

Label3
Nombr e Lbl Azul
Capt i on Azul

HScroll1
Nombr e HSRoj o
Lar geChange 10
Max 255
Mi n 0
Smal l Change 1
Val ue 255

HScroll2


Pg. 87
Nombr e HSVer de
Lar geChange 10
Max 255
Mi n 0
Smal l Change 1
Val ue 0

HScroll3
Nombr e HSAzul
Lar geChange 10
Max 255
Mi n 0
Smal l Change 1
Val ue 0

Picture1
Nombr e Pi cFondo
BackCol or
&H000000FF&

Segui dament e pr oceda a i ngr esar el cdi go que se i ndi ca a
cont i nuaci n:

Pr i vat e Sub HSRoj o_Change( )
Pi cFondo. BackCol or = RGB( HSRoj o, HSVer de, HSAzul )
End Sub

Pr i vat e Sub HSVer de_Change( )
Pi cFondo. BackCol or = RGB( HSRoj o, HSVer de, HSAzul )
End Sub
Pr i vat e Sub HSAzul _Change( )


Pg. 88
Pi cFondo. BackCol or = RGB( HSRoj o, HSVer de, HSAzul )
End Sub

En el cdi go ant er i or se debi col ocar HSRoj o. Val ue,
HSVer de. Val ue y HSAzul . Val ue, per o debi do a que l a pr opi edad
Val ue es por def ect o se puede omi t i r .

Cuadro de lista de unidades
Un cuadr o de l i st a de uni dades per mi t e al usuar i o
sel ecci onar una uni dad de di sco vl i da en t i empo de ej ecuci n.
Ut i l i ce est e cont r ol par a pr esent ar una l i st a de t odas l as
uni dades vl i das del si st ema.

Propiedad Descripcin
Dr i ve Especi f i ca l a uni dad sel ecci onada en t i empo
de ej ecuci n.

Est e cont r ol r esponde al event o Change, cuya descr i pci n
es l a si gui ent e:

Evento Descripcin
Change Ocur r e cuando el usuar i o hace cl i ck sobr e l a
uni dad que desea sel ecci onar . El event o
Change t ambi n ocur r e si se sel ecci ona l a
uni dad medi ant e el t ecl ado.

Cuadro de lista de directorios


Pg. 89
Un cuadr o de l i st a de di r ect or i os muest r a di r ect or i os y
r ut as de acceso en t i empo de ej ecuci n. Ut i l i ce est e cont r ol
par a most r ar una l i st a j er r qui ca de di r ect or i os.

Propiedad Descripcin
Pat h Especi f i ca l a r ut a de acceso act ual .

Un cuadr o de l i st a de di r ect or i os t ambi n r esponde al
event o Change.

Cuadro de lista de archivos
Un cuadr o de l i st a de ar chi vos encuent r a y muest r a l os
ar chi vos del di r ect or i o especi f i cado por l a pr opi edad Pat h en
t i empo de ej ecuci n. Ut i l i ce est e cont r ol par a most r ar una
l i st a de l os ar chi vos sel ecci onados por t i po.

Propiedad Descripcin
Pat h Especi f i ca l a r ut a de acceso act ual .
Pat t er n Especi f i ca el t i po de ar chi vo que se desea
vi sual i zar en el cont r ol .
Li st Devuel ve l os el ement os cont eni dos en l a par t e
de l i st a del cont r ol .
Li st I ndex Especi f i ca el ndi ce del el ement o
sel ecci onado act ual ment e en el cont r ol .

Como ej empl o vamos a desar r ol l ar una apl i caci n que
per mi t a el manej o de uni dades, car pet as y ar chi vos. El usuar i o


Pg. 90
puede sel ecci onar l a uni dad act ual de t r abaj o, l a car pet a y el
ar chi vo y poder vi sual i zar su cont eni do ( en est e caso ar chi vos
gr f i cos *. J PG) .



Par a el desar r ol l o de l a pr esent e apl i caci n pr oceda a
ubi car l os si gui ent es cont r ol es en el f or mul ar i o:

4 et i quet as
1 cuadr o de l i st a de uni dades
1 cuadr o de l i st a de di r ect or i os
1 cuadr o de l i st a de ar chi vos
1 i magen

En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:

Form1
Nombr e Fr mVi sor
Capt i on Vi sor


Pg. 91

Label1
Nombr e Lbl Uni dad
Capt i on Uni dad

Label2
Nombr e Lbl Car pet a
Capt i on Car pet a

Label3
Nombr e Lbl Ar chi vo
Capt i on Ar chi vo

Label4
Nombr e Lbl Vi st a
Capt i on Vi st a pr evi a

Drive1
Nombr e Dr i ve1

Dir1
Nombr e Di r 1

File1
Nombr e Fi l e1
Pat t er n *. J PG

Image1
Nombr e I mgVi st a
St r et ch Tr ue
Segui dament e pr oceda a i ngr esar el cdi go que se i ndi ca a
cont i nuaci n:

Pr i vat e Sub Dr i ve1_Change( )


Pg. 92
On Er r or GoTo DRI VE_ERROR
Di r 1. Pat h = Dr i ve1. Dr i ve
Exi t Sub
DRI VE_ERROR:
MsgBox ERROR: Uni dad no pr epar ada, vbCr i t i cal , Er r or
Exi t Sub
End Sub

Pr i vat e Sub Di r 1_Change( )
Fi l e1. Pat h = Di r 1. Pat h
End Sub

Pr i vat e Sub Fi l e1_Cl i ck( )
Di mARCHI VO As St r i ng
ARCHI VO = Fi l e1. Pat h & \
ARCHI VO = ARCHI VO & Fi l e1. Li st ( Fi l e1. Li st I ndex)
I mgVi st a. Pi ct ur e = LoadPi ct ur e( ARCHI VO)
End Sub

La i nst r ucci n On Er r or act i va una r ut i na de cont r ol de
er r or es y especi f i ca l a ubi caci n de l a mi sma en un
pr ocedi mi ent o.
LA FUNCIN MSGBOX
A menudo habr si t uaci ones en l as cual es t endr que
pr esent ar al gn mensaj e ( por ej empl o una pr egunt a) y en f unci n


Pg. 93
de l a r espuest a del usuar i o se ej ecut ar una det er mi nada
acci n.



La f unci n MsgBox( ) muest r a un cuadr o de di l ogo
pr edef i ni do y r et or na un val or de t i po ent er o dependi endo del
bot n sel ecci onado por el usuar i o. Su si nt axi s es de l a
si gui ent e f or ma:

VALOR = MsgBox( MENSAJ E [ , BOTN + I CONO, T TULO] )

Donde MENSAJ E se r ef i er e a una expr esi n de cadena que se
muest r a como mensaj e en el cuadr o de di l ogo.
BOTN es una expr esi n numr i ca que se r ef i er e al t i po y
cant i dad de bot ones a ut i l i zar .
I CONO es una expr esi n numr i ca que se r ef i er e al est i l o
de i cono que se va ha ut i l i zar .
T TULO es una t ext o que se most r ar en l a bar r a de t t ul o
de l a caj a de di l ogo.
Tipo de botn
Valor Botn Nombre
0 Acept ar vbOKOnl y


Pg. 94
1 Acept ar y Cancel ar vbOKCancel
2 Anul ar , Rei nt ent ar , I gnor ar vbAbor t Ret r yI gnor e
3 S , No y Cancel ar vbYesNoCancel
4 S y No vbYesNo
5 Rei nt ent ar y Cancel ar vbRet r yCancel

Tipo de icono
Valor Icono Nombre
16 Mensaj e cr t i co vbCr i t i cal
32 Si gno de i nt er r ogaci n vbQuest i on
48 Si gno de excl amaci n vbExcl amat i on
64 Si gno de i nf or maci n vbI nf or mat i on

Valores retornados
Valor Botn Nombre
1 Acept ar vbOK
2 Cancel ar vbCancel
3 Anul ar vbAbor t
4 Rei nt ent ar vbRet r y
5 I gnor ar vbI gnor e
6 S vbYes
7 No vbNo
Como ej empl o vamos a const r ui r un f or mul ar i o que pr esent e
un bot n Sal i r , de t al f or ma que cuando el usuar i o pul se
di cho bot n se pr esent e el si gui ent e mensaj e:


Pg. 95



En caso de que el usuar i o el i j a l a opci n S , l a
apl i caci n debe t er mi nar . En caso cont r ar i o, es deci r si el
usuar i o el i ge l a opci n No, se debe pr osegui r con l a
apl i caci n.
Par a el desar r ol l o del pr esent e ej empl o, pr oceda a ubi car
sobr e el f or mul ar i o un bot n de comando ( CmdSal i r ) , a
cont i nuaci n i ngr esar el si gui ent e cdi go:

Pr i vat e Sub CmdSal i r _Cl i ck( )
Di mRESP As I nt eger
RESP = MsgBox( Desea t er mi nar l a apl i caci n?, _
vbQuest i on + vbYesNo, Pr egunt a)
I f RESP = vbYes Then
End
End I f
End Sub
Par a i l ust r ar mej or el uso de l a f unci n MsgBox( ) vamos a
desar r ol l ar l a si gui ent e apl i caci n que per mi t e most r ar l os
di f er ent es t i pos de bot ones e i conos gener ados por l a f unci n.



Pg. 96


Par a el l o pr oceda a ubi car l os si gui ent es cont r ol es en el
f or mul ar i o:

2 cuadr os de l i st a
1 bot n de comando

En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:

Form1
Nombr e Fr mFunci onMsgBox
Bor der St yl e 3- Fi xed Di al og
Capt i on Funci n MsgBox

List1
Nombr e Lst Bot on

List2
Nombr e Lst I cono

Command1


Pg. 97
Nombr e CmdMensaj e
Capt i on
&Mensaj e

Segui dament e pr oceda a i ngr esar el cdi go que se i ndi ca a
cont i nuaci n:

Pr i vat e Sub For m_Load( )
Lst Bot on. AddI t emAcept ar
Lst Bot on. AddI t emAcept ar y Cancel ar
Lst Bot on. AddI t emAnul ar , Rei nt ent ar , I gnor ar
Lst Bot on. AddI t emS , No y Cancel ar
Lst Bot on. AddI t emS y No
Lst Bot on. AddI t emRei nt ent ar y Cancel ar
Lst I cono. AddI t emMensaj e cr t i co
Lst I cono. AddI t emSi gno de i nt er r ogaci n
Lst I cono. AddI t emSi gno de excl amaci n
Lst I cono. AddI t emSi gno de i nf or maci n
End Sub

Pr i vat e Sub CmdMensaj e_Cl i ck( )
Di mRESP As I nt eger , BOTON As I nt eger , I CONO As I nt eger
BOTON = Lst Bot on. Li st I ndex
I CONO = ( Lst I cono. Li st I ndex + 1) * 16
RESP = MsgBox( Hol a Mundo, BOTON + I CONO, Ej empl o)
End Sub




Pg. 98
CAPTULO 5


EL FORMULARIO

Un f or mul ar i o es un obj et o cont enedor que si r ve par a
di sear l a i nt er f az de usuar i o. En el f or mul ar i o se col ocan l os
cont r ol es par a que el usuar i o pueda i nt er act uar con l a
apl i caci n de una maner a f ci l e i nt ui t i va.



Los f or mul ar i os t i enen sus pr opi as pr opi edades, event os y
mt odos con l os que se puede cont r ol ar su apar i enci a y
compor t ami ent o, muchos de l os cual es ya han si do ut i l i zados en
l as apl i caci ones de l os cap t ul os ant er i or es y que a
cont i nuaci n pasamos a descr i bi r .


Pg. 99
Propiedad Descripcin
Aut oRedr aw Especi f i ca si se act i va el r edi buj ado
aut omt i co del f or mul ar i o.
BackCol or Especi f i ca el col or de f ondo del f or mul ar i o.
Bor der St yl e Especi f i ca un est i l o de bor de par a el
f or mul ar i o.
Capt i on Especi f i ca el t ext o que se muest r a en l a
bar r a de t t ul o del f or mul ar i o.
Cont r ol Box Especi f i ca si apar ece un i cono de men
despl egabl e en el ngul o super i or i zqui er do
del f or mul ar i o.
For eCol or Especi f i ca el col or de pr i mer pl ano ut i l i zado
par a most r ar t ext o sobr e el f or mul ar i o.
Hei ght Especi f i ca el al t o del f or mul ar i o. Se mi de en
t wi ps.
I con Especi f i ca el i cono que se muest r a par a un
f or mul ar i o.
MaxBut t on Especi f i ca si el f or mul ar i o t i ene un bot n
Maxi mi zar .
Mi nBut t on Especi f i ca si el f or mul ar i o t i ene un bot n
Mi ni mi zar .
Pi ct ur e Especi f i ca el ar chi vo de i magen que se va ha
most r ar como f ondo par a el f or mul ar i o.
St ar t UpPosi t i on Especi f i ca l a posi ci n del f or mul ar i o l a
pr i mer a vez que se ej ecut a.
Vi si bl e Est abl ece si el f or mul ar i o es vi si bl e o est
ocul t o.
Wi dt h Especi f i ca el ancho del f or mul ar i o. Se mi de
en t wi ps.
Wi ndowSt at e Est abl ece el est ado del f or mul ar i o ( nor mal ,
mi ni mi zado o maxi mi zado) .


Pg. 100
Nota
Un twip es una unidad independiente de la pantalla
utilizada para asegurar que la colocacin y la proporcin de
los elementos de la pantalla de la aplicacin son los mismos en
todos los sistemas de pantallas. Un twip es igual a 1/20 de un
punto de impresora. Existen aproximadamente 1440 twips en una
pulgada o 567 twips en un centmetro.

Los event os a l os que r esponde un f or mul ar i o son l os
si gui ent es:

Evento Descripcin
Act i vat e Ocur r e cuando el f or mul ar i o se convi er t e en
vent ana act i va.
Deact i vat e Ocur r e cuando el f or mul ar i o dej a de ser l a
vent ana act i va.
Load Ocur r e cuando el f or mul ar i o se car ga en l a
memor i a.
MouseDown Ocur r e cuando el usuar i o pul sa el bot n
der echo del r at n sobr e el f or mul ar i o.
Quer yUnl oad Ocur r e ant es de i ni ci ar se el pr oceso de
descar ga del f or mul ar i o ( ant es del event o
Unl oad) .
Resi ze Ocur r e cuando se muest r a pr i mer o el
f or mul ar i o o se cambi an sus di mensi ones.
Unl oad Ocur r e cuando el f or mul ar i o se descar ga de l a
memor i a.



Pg. 101
Los mt odos que se pueden ut i l i zar con un f or mul ar i o son
l os si gui ent es:

Mtodo Descripcin
Hi de Ocul t a un f or mul ar i o.
PopupMenu Pr esent a un men popup en l a posi ci n act ual
del r at n.
Pr i nt I mpr i me un val or sobr e el f or mul ar i o.
Ref r esh Vuel ve a pi nt ar un f or mul ar i o y act ual i za
t odos l os val or es cont eni dos en l .
Show Muest r a un f or mul ar i o y det er mi na si es modal
o car ece de modo. Si el f or mul ar i o a most r ar
no est car gado Vi sual Basi c l o car ga
aut omt i cament e.

Como ej empl o vamos a desar r ol l ar una apl i caci n que
ut i l i ce dos f or mul ar i os. Desde el pr i mer f or mul ar i o el usuar i o
podr i r al segundo f or mul ar i o y vi cever sa.




Pg. 102
Par a el desar r ol l o de l a pr esent e apl i caci n pr oceda a
cr ear un nuevo pr oyect o. Segui dament e debe ubi car dos bot ones
de comando en el f or mul ar i o. Luego est abl ezca l as si gui ent es
pr opi edades:

Form1
Nombr e For m1
Capt i on Pr i mer f or mul ar i o

Command1
Nombr e CmdI r
Capt i on
&I r

Command2
Nombr e CmdSal i r
Capt i on
&Sal i r

Segui dament e pr ocede a i ngr esar el cdi go que se muest r a a
cont i nuaci n:

Pr i vat e Sub CmdI r _Cl i ck( )
For m2. Show
For m1. Hi de
End Sub

Pr i vat e Sub CmdSal i r _Cl i ck( )
End
End Sub


Pg. 103
Luego debe aadi r un f or mul ar i o adi ci onal al pr oyect o.
Par a t al f i n, sel ecci one el men Pr oyect o y el i j a l a opci n
Agr egar f or mul ar i o.



Del cuadr o de di l ogo que se pr esent a el i j a el i cono
For mul ar i o y haga cl i ck en el bot n Abr i r , t al como se i ndi ca
en l a f i gur a. En ese i nst ant e se aadi r un nuevo f or mul ar i o al
pr oyect o. Luego, pr oceda a ubi car un bot n de comandos en el
f or mul ar i o que acaba de aadi r y est abl ezca l as si gui ent es
pr opi edades:

Form2
Nombr e For m2
Capt i on Segundo f or mul ar i o
Cont r ol Box Fal se



Pg. 104
Command2
Nombr e CmdVol ver
Capt i on
&Vol ver

En segui da pr oceda a i ngr esar el cdi go que se i ndi ca a
cont i nuaci n:

Pr i vat e Sub CmdVol ver _Cl i ck( )
For m1. Show
For m2. Hi de
End Sub

ESTILOS DE FORMULARIO
Vi sual Basi c cuent a con sei s di f er ent es est i l os de
f or mul ar i o, cuya descr i pci n es l a si gui ent e:

Valor Estilo Descripcin
0 None No pr esent a ni ngn bor de.
1 Fi xed Si ngl e Puede i ncl ui r un Men de cont r ol ,
una Bar r a de t t ul o , un bot n
Maxi mi zar y un bot n Mi ni mi zar .
Sl o puede cambi ar de t amao
medi ant e l os bot ones Maxi mi zar y
Mi ni mi zar .
2 Si zabl e ( Pr edet er mi nado) . Puede cambi ar de
t amao medi ant e cual qui er a de l os
el ement os opci onal es de bor de
i ndi cados par a Fi xed Si ngl e.


Pg. 105
Valor Estilo Descripcin
3 Fi xed Di al og Puede i ncl ui r un Men de cont r ol y
una Bar r a de t t ul o, per o no l os
bot ones Maxi mi zar ni Mi ni mi zar . No
puede cambi ar de t amao.
4 Fi xed Tool Wi ndow Sl o muest r a el bot n Cer r ar y el
t ext o de l a bar r a de t t ul o apar ece
con un t amao de f uent e r educi do.
No puede cambi ar su t amao.
5 Si zabl e Tool Wi ndow Sl o muest r a el bot n Cer r ar y el
t ext o de l a bar r a de t t ul o apar ece
con un t amao de f uent e r educi do.
Puede cambi ar de t amao.

Como ej empl o vamos a desar r ol l ar una apl i caci n que
per mi t a r epr esent ar l os di f er ent es est i l os de f or mul ar i o de
Vi sual Basi c.




Pg. 106
Par a el desar r ol l o de l a pr esent e apl i caci n pr oceda a
cr ear un nuevo pr oyect o y l uego ubi que l os si gui ent es cont r ol es
en el f or mul ar i o:

1 cuadr o de l i st a
2 bot ones de comando

Luego debe est abl ecer l as pr opi edades que se i ndi can a
cont i nuaci n:

Form1
Nombr e Fr mPr i nci pal
Capt i on Est i l os de f or mul ar i o
Bor der St yl e 3- Fi xed Di al og

List1
Nombr e Lst Ti poFor m
Li st 0- None
1- Fi xed Si ngl e
2- Si zabl e
3- Fi xed Di al og
4- Fi xed Tool Wi ndow
5- Si zabl e Tool Wi ndow

Command1
Nombr e CmdMost r ar
Capt i on
&Most r ar

Command2
Nombr e CmdSal i r
Capt i on
&Sal i r


Pg. 107
Segui dament e pr ocede a i ngr esar el cdi go que se muest r a a
cont i nuaci n:

Pr i vat e Sub For m_Load( )
Load Fr mNone
Load Fr mFi xedSi ngl e
Load Fr mSi zabl e
Load Fr mFi xedDi al og
Load Fr mFi xedTool Wi ndow
Load Fr mSi zabl eTool Wi ndow
End Sub

Pr i vat e Sub CmdMost r ar _Cl i ck( )
Di mOP As I nt eger
OP = Lst Ti poFor m. Li st I ndex
Sel ect Case OP
Case 0 : Fr mNone. Show vbModal
Case 1 : Fr mFi xedSi ngl e. Show vbModal
Case 2 : Fr mSi zabl e. Show vbModal
Case 3 : Fr mFi xedDi al og. Show vbModal
Case 4 : Fr mFi xedTool Wi ndow. Show vbModal
Case 5 : Fr mSi zabl eTool Wi ndow. Show vbModal
Case El se
MsgBox Debe sel ecci onar est i l o de f or mul ar i o
End Sel ect
End Sub


Pg. 108
Pr i vat e Sub Lst Ti poFor m_Dbl Cl i ck( )
Cal l CmdMost r ar _Cl i ck
End Sub

Pr i vat e Sub CmdSal i r _Cl i ck( )
End
End Sub

Segui dament e pr oceda a aadi r l os f or mul ar i os par a l as
di f er ent es opci ones del cuadr o de l i st a. Cambi e l os nombr es de
l os f or mul ar i os segn se i ndi ca:

Formulario Nombre
For m2 Fr mNone
For m3 Fr mFi xedSi ngl e
For m4 Fr mSi zabl e
For m5 Fr mFi xedDi al og
For m6 Fr mFi xedTool Wi ndow
For m7 Fr mSi zabl eTool Wi ndow

Luego debe act i var el f or mul ar i o Fr mNone, ubi car un bot n
de comandos sobr e el mi smo y est abl ecer l as si gui ent es
pr opi edades:

Form2
Nombr e Fr mNone
Bor der St yl e 0- None
Capt i on None


Pg. 109
Command1
Nombr e CmdVol ver
Capt i on
&Vol ver

Una vez est abl eci das l as pr opi edades, pr oceda a i ngr esar
el cdi go que se muest r a a cont i nuaci n:

Pr i vat e Sub CmdVol ver _Cl i ck( )
Unl oad Me
End Sub

Par a concl ui r con el di seo de l a apl i caci n, si mpl ement e
r epi t a el pr ocedi mi ent o ant er i or par a l os dems t i pos de
f or mul ar i os.
Como habr podi do obser var , al most r ar un f or mul ar i o
medi ant e el mt odo Show podemos hacer l o de f or ma modal
( vbModal ) o no modal ( opci n por def ect o) . Un f or mul ar i o modal
es aquel que necesi t a cer r ar se ant es de pasar el enf oque a ot r o
f or mul ar i o. Un f or mul ar i o no modal no r equi er e cer r ar se par a
pasar el enf oque a ot r o f or mul ar i o.

PASANDO VALORES ENTRE FORMULARIOS
Muchas veces se r equi er en pasar val or es de un f or mul ar i o a
ot r o, est o se puede r eal i zar medi ant e el uso mdul os est ndar ,
l os cual es son cont enedor es de pr ocedi mi ent os y decl ar aci ones a
l os que t i enen acceso ot r os mdul os de l a apl i caci n.


Pg. 110
Como ej empl o vamos a const r ui r l a si gui ent e apl i caci n, l a
cual env a un mensaj e de t ext o del pr i mer f or mul ar i o haci a el
segundo f or mul ar i o.



Par a el desar r ol l o de l a pr esent e apl i caci n pr oceda a
cr ear un nuevo pr oyect o y aada un f or mul ar i o adi ci onal , de t al
f or ma que t enga l os f or mul ar i os For m1 y For m2. Segui dament e
ubi car l os si gui ent es cont r ol es:

Form1 Form2
Text 1 Txt Mensaj e1 Text 1 Txt Mensaj e2
Command1 CmdEnvi ar Command1 CmdReci bi r
Command2 CmdSal i r Command2 CmdVol ver

A cont i nuaci n pr oceda a i ngr esar el cdi go que se i ndi ca
par a el pr i mer f or mul ar i o ( For m1) :



Pg. 111
Pr i vat e Sub CmdEnvi ar _Cl i ck( )
Mensaj e = Txt Mensaj e1
For m1. Hi de
For m2. Show
End Sub

Pr i vat e Sub CmdSal i r _Cl i ck( )
End
End Sub

Par a el segundo f or mul ar i o ( For m2) pr oceda a i ngr esar el
cdi go si gui ent e:

Pr i vat e Sub CmdReci bi r _Cl i ck( )
Txt Mensaj e2 = Mensaj e
End Sub

Pr i vat e Sub CmdVol ver _Cl i ck( )
For m2. Hi de
For m1. Show
End Sub

Segui dament e debe aadi r un mdul o est ndar al pr oyect o,
par a el l o, sel ecci one el Men Pr oyect o y el i j a l a opci n
Agr egar mdul o, se debe pr esent ar un cuadr o de di l ogo si mi l ar
a l a f i gur a most r ada, en el cual debe dar cl i ck en el bot n
Abr i r .


Pg. 112


Segui dament e pr oceda a decl ar ar l a var i abl e Mensaj e como
pbl i ca en l a secci n de decl ar aci ones del mdul o que acaba
de aadi r :



Una var i abl e pbl i ca ( Publ i c) es una var i abl e que se
decl ar a a ni vel de mdul o y se l e puede acceder desde cual qui er
ot r o mdul o.



Pg. 113
FORMULARIOS MDI
Un f or mul ar i o MDI ( I nt er f az de Document os Ml t i pl es) es
una vent ana que act a como f ondo de una apl i caci n y es el
cont enedor ( vent ana padr e) de ot r os f or mul ar i os ( vent anas
hi j as) .



En una apl i caci n MDI pueden haber var i as vent anas hi j as,
per o sl o una vent ana padr e por apl i caci n. Par a que una
vent ana act e como hi j a debe t ener su pr opi edad MDI Chi l d
est abl eci da a Tr ue.
Como ej empl o vamos a desar r ol l ar una apl i caci n MDI que
i ncl uya t r es vent anas hi j as. Par a t al f i n pr oceda a cr ear un
nuevo pr oyect o y segui dament e agr egar dos f or mul ar i os ( si mpl es)
al mi smo.



Pg. 114
No ol vi de est abl ecer l a pr opi edad MDI Chi l d de l os
f or mul ar i os For m1, For m2 y For m3 a Tr ue.
Luego, debemos agr egar el f or mul ar i o MDI , par a el l o
acceder al Men Pr oyect o y el egi r l a opci n Agr egar f or mul ar i o
MDI , del cuadr o de di l ogo que se pr esent a hacer cl i ck en el
bot n Abr i r .



A cont i nuaci n dar dobl e cl i ck sobr e el f or mul ar i o MDI e
i ngr esar el si gui ent e cdi go:

Pr i vat e Sub MDI For m_Load( )
For m1. Show
For m2. Show
For m3. Show
End Sub


Pg. 115
Ahor a sl o t i ene que i ndi car l e a Vi sual Basi c que el
f or mul ar i o de ar r anque ( i ni ci al ) ser el f or mul ar i o MDI . Par a
el l o vaya al Men Pr oyect o y el i j a l a opci n Pr opi edades de
Pr oyect o. En el cuadr o combi nado Obj et o i ni ci al sel ecci onar
MDI For m1, t al como se i ndi ca en l a f i gur a:



Eso es t odo, ahor a si mpl ement e t i ene que ej ecut ar su
apl i caci n.
Cabe dest acar que en l os f or mul ar i os MDI por l o gener al no
se pueden i ncl ui r cont r ol es, debi do a el l o se suel e t r abaj ar
con mens de opci ones o bar r as de her r ami ent as par a i ndi car
al guna acci n a r eal i zar .



Pg. 116
CREACIN DE MENS
Un men es un conj unt o de opci ones que se pr esent an al
usuar i o, ent r e l as cual es debe el egi r una de el l as. Dependi endo
de l a deci si n se r eal i zar n una ser i e de acci ones.



Par a di sear un men cual qui er a dar cl i ck der echo sobr e el
f or mul ar i o y del men emer gent e que se pr esent a el egi r l a
opci n Edi t or de mens.




Pg. 117
En segui da se ha de pr esent ar el Edi t or de mens de Vi sual
Basi c.



Par a cr ear un men, t ener en cuent a l os si gui ent e
pr ocedi mi ent os:

I ngr esar el Edi t or de mens.
I nt r oduci r el t t ul o del men en el cuadr o de t ext o Capt i on,
el cual apar ecer en l a bar r a de mens.
I nt r oduci r un nombr e par a el men en el cuadr o de t ext o Name,
el cual ser ut i l i zado en el cdi go par a r ef er i r se al men.
I nt r oduci r l os el ement os que componen el men, par a el l o
escr i ba en l os cuadr os de t ext o Capt i on y Name el t t ul o y el
nombr e del cor r espondi ent e el ement o del men.


Pg. 118
Par a di f er enci ar un el ement o del men del pr opi o men, hay
que sangr ar el t t ul o del el ement o, par a t al f i n,
sel ecci nel o y haga cl i ck en el bot n f l echa haci a l a der echa
( ) .
Un el ement o de men puede ser una or den ( si el el ement o
si gui ent e apar ece sangr ado al mi smo ni vel ) o un submen ( si
el el ement o si gui ent e apar ece sangr ado un ni vel ms) .
Ut i l i zando separ ador es puede agr upar l as r denes en f unci n
de l o que r eal i zan. Par a i nser t ar un separ ador , escr i ba un
ni co gui n ( -) en el cuadr o Capt i on del Edi t or de mens.
Ti ene que especi f i car t ambi n un nombr e par a el separ ador .
Par a aadi r un acel er ador ( una t ecl a o combi naci n de t ecl as
que per mi t en act i var un men) , ut i l i zar l a pr opi edad
Shor t cut .
La pr opi edad Checked es t i l par a i ndi car si una or den est
act i va o no l o est . Cuando se especi f i ca est a pr opi edad
apar ece una mar ca ( 3) a l a i zqui er da del el ement o de men.
La pr opi edad Enabl ed es t i l par a desact i var una or den en un
moment o en el cual no t i ene sent i do que est act i va.
La pr opi edad Vi si bl e es t i l cuando dur ant e l a ej ecuci n se
desea ocul t ar un el ement o de men.
Cer r ar el Edi t or de mens, par a el l o una vez que haya
f i nal i zado su di seo pul se el bot n Acept ar .



Pg. 119
Como ej er ci ci o i nt ent e const r ui r el men most r ado en l a
f i gur a ant er i or .

Caption Name ShortCut
&Ar chi vo
MnuAr chi vo Ni nguno
. . . &Ar t cul o
MnuAr chi voAr t i cul o Ni nguno
. . . &Cl i ent e
MnuAr chi voCl i ent e Ni nguno
. . . &Vendedor
MnuAr chi voVendedor Ni nguno
. . . - MnuAr chi voLi nea Ni nguno
. . . &Sal i r
MnuAr chi voSal i r Ct r l + X
&Pr oceso
MnuPr oceso Ni nguno
. . . &Pedi do
MnuPr ocesoPedi do Ni nguno
. . . &Fact ur aci n
MnuPr ocesoFact ur aci on Ni nguno
&Repor t e
MnuRepor t e Ni nguno
. . . &Regi st r o de vent as
MnuRepor t eRegVent as Ni nguno
. . . Cat l ogo de &ar t cul os
Ni nguno
. . . - MnuRepor t eLi nea Ni nguno
. . . &Cl i ent e del mes
MnuRepor t eCl i ent eMes Ni nguno
. . . &Vendedor del mes
MnuRepor t eVendMes Ni nguno
Ay&uda
MnuAyuda Ni nguno
. . . &Cont eni do
MnuAyudaCont eni do Ni nguno
. . . &I ndi ce
MnuAyudaI ndi ce Ni nguno
. . . &Bsqueda
MnuAyudaBusqueda Ni nguno
. . . - MnuAyudaLi nea Ni nguno
. . . &Acer ca de
MnuAyudaAbout Ni nguno


Pg. 120
Par a pr obar el men que acaba de cr ear , i ngr ese el
si gui ent e cdi go:

Pr i vat e Sub MnuAr chi voAr t i cul o_Cl i ck( )
MsgBox Sel ecci on l a opci n Ar t cul o
End Sub

Pr i vat e Sub MnuAr chi voCl i ent e_Cl i ck( )
MsgBox Sel ecci on l a opci n Cl i ent e
End Sub

Pr i vat e Sub MnuAr chi voVendedor _Cl i ck( )
MsgBox Sel ecci on l a opci n Vendedor
End Sub

Pr i vat e Sub MnuAr chi voSal i r _Cl i ck( )
Unl oad Me
End Sub

Pr i vat e Sub MDI For m_Unl oad( Cancel As I nt eger )
Di mRESP As I nt eger
RESP = MsgBox( Desea t er mi nar l a apl i caci n?, _
vbQuest i on + vbYesNo, Pr egunt a)
I f RESP = vbYes Then
End
El se: Cancel = Tr ue
End I f
End Sub


Pg. 121
Luego al ej ecut ar su apl i caci n y sel ecci onar el men
Ar chi vo, opci n Ar t cul o, el r esul t ado ser si mi l ar a l a f i gur a
most r ada:



Hast a ahor a hemos pr ogr amado l a sal i da de una apl i caci n,
asoci ando el cdi go al bot n Sal i r . Si n embar go, cuando el
usuar i o hace cl i ck en el bot n Cer r ar de l a bar r a de t t ul o o
en l a opci n Sal i r del Men de cont r ol del f or mul ar i o, el
cdi go escr i t o par a el bot n Sal i r es i gnor ado.
Par a r emedi ar est a si t uaci n, en el ej empl o ant er i or
cuando el usuar i o pul sa el bot n Sal i r , se i nvoca al event o
Unl oad. La pal abr a r eser vada Me pr opor ci ona una f or ma de
r ef er i r se al f or mul ar i o desde donde se est ej ecut ando el
cdi go.
Recor dar que el event o Unl oad del f or mul ar i o se
desencadena cuando el usuar i o i nt ent a cer r ar el f or mul ar i o
medi ant e cual qui er a de l as f or mas descr i t as ant er i or ment e.
Par a det er mi nar si ocur r e l a descar ga del f or mul ar i o
ut i l i ce el par met r o Cancel . Si Cancel es Fal se ocur r e l a
descar ga, si Cancel es Tr ue i mpi de que el f or mul ar i o se qui t e.
CREACIN DE UNA BARRA DE HERRAMIENTAS


Pg. 122
Una bar r a de her r ami ent as cont i ene bot ones con l as
opci ones ms ut i l i zadas de un men, de t al maner a que el
usuar i o haci endo cl i ck en di cho cont r ol act i var a l a opci n
i ndi cada de una maner a ms r pi da.
Par a cr ear una bar r a de her r ami ent as debemos ut i l i zar dos
cont r ol es que no est n en l a l i st a de cont r ol es est ndar , por
t ant o debemos agr egar di chos cont r ol es que se encuent r an en el
component e Mi cr osof t Wi ndows Common Cont r ol s 6. 0, t al como se
i ndi ca a cont i nuaci n:





Pg. 123
Como ej empl o, vamos a cr ear l a bar r a de her r ami ent as de l a
f i gur a most r ada:



Par a el l o, ubi car un cont r ol I mageLi st sobr e el
f or mul ar i o, par a est abl ecer sus pr opi edades dar cl i ck der echo
sobr e el cont r ol y el i j a l a opci n Pr opi edades.




Pg. 124
Se ha de pr esent ar un cuadr o de di l ogo si mi l ar a l a
f i gur a most r ada:



Act i var l a f i cha I mgenes y pul sar el bot n I nser t ar
i magen par a sel ecci onar l as i mgenes que se i ncl ui r n en el
cont r ol I mageLi st .
Par a el ej empl o, debe i ncl ui r ocho i mgenes que
cor r esponden a cada uno de l os bot ones de l a bar r a de
her r ami ent as.
Concl ui do el pr oceso ant er i or , pr oceda a ubi car un cont r ol
Tool bar sobr e el f or mul ar i o. Luego hacer cl i ck der echo sobr e
di cho cont r ol y del men emer gent e que se pr esent a sel ecci onar
l a opci n Pr opi edades. Del cuadr o de di l ogo que se pr esent a en
l a f i cha Gener al est abl ecer l as si gui ent es pr opi edades:


Pg. 125


Luego, en l a f i cha Bot ones pul se el bot n I nser t ar
bot n. En el cuadr o de t ext o I mage se debe i ndi car un nmer o
que cor r esponde al or den de i magen a most r ar .




Pg. 126
El l ect or debe cont i nuar con est e pr oceso hast a compl et ar
l os bot ones r est ant es, segn:

Index ToolTipText Image
1 Ar t cul o 1
2 Cl i ent e 2
3 Vendedor 3
4 Pedi do 4
5 Fact ur aci n 5
6 Regi st r o de vent as 6
7 Cat l ogo de ar t cul os 7
8 Ayuda 8

Como el cdi go a ej ecut ar t i ene que ser el mi smo cuando el
usuar i o el i j a una opci n del men o de un cl i ck sobr e un bot n
de l a bar r a de her r ami ent as se pueden pr ogr amar pr ocedi mi ent os
de usuar i o que r eal i cen di chas t ar eas, l uego se deben i nvocar a
est os pr ocedi mi ent os t ant o par a l as opci ones del men como par a
l a bar r a de her r ami ent as.
Si n embar go, par a el ej empl o el cdi go es muy senci l l o, ya
que sl o muest r a un mensaj e con l a opci n sel ecci onada ( est o
por r azones de si mpl i ci dad) . Par a pr obar l a f unci onal i dad de l a
bar r a de her r ami ent as que acaba de cr ear i ngr ese el si gui ent e
cdi go:
Pr i vat e Sub Tool bar 1_But t onCl i ck( ByVal But t on As MSComct l Li b. But t on)


Pg. 127
Sel ect Case But t on. I ndex
Case 1: MsgBox Sel ecci on l a opci n Ar t cul o
Case 2: MsgBox Sel ecci on l a opci n Cl i ent e
Case 3: MsgBox Sel ecci on l a opci n Vendedor
Case 4: MsgBox Sel ecci on l a opci n Pedi do
Case 5: MsgBox Sel ecci on l a opci n Fact ur aci n
Case 6: MsgBox Sel ecci on l a opci n Regi st r o de vent as
Case 7: MsgBox Sel ecci on opci n Cat l ogo de ar t cul os
Case 8: MsgBox Sel ecci on l a opci n Ayuda
End Sel ect
End Sub

El event o But t onCl i ck se di spar a cuando el usuar i o hace
cl i ck sobr e un bot n de l a bar r a de her r ami ent as. La pr opi edad
I ndex per mi t e i dent i f i car el nmer o de bot n pul sado.

CREACIN DE UNA BARRA DE ESTADO
Una bar r a de est ado es un mar co que se ubi ca en l a par t e
i nf er i or del f or mul ar i o y puede cont ener var i os panel es que
i nf or man al usuar i o acer ca del est ado de l a apl i caci n. Par a
cr ear una bar r a de est ado ut i l i zar el cont r ol St at usBar , el
cual f or ma de l os cont r ol es per sonal i zados que se encuent r an en
el component e Mi cr osof t Wi ndows Common Cont r ol s 6. 0.
Como ej empl o vamos a cr ear una bar r a de est ado si mi l ar a
l a de l a f i gur a most r ada:


Pg. 128


Par a el l o ubi car un cont r ol St at usBar sobr e el f or mul ar i o,
dar cl i ck der echo sobr e el mi smo y en l a f i cha Panel es i ncl ui r
una i magen par a l a hor a del si st ema.




Pg. 129
El r est o de pr opi edades se est abl ecer n medi ant e cdi go al
moment o de l a car ga del f or mul ar i o.

Pr i vat e Sub MDI For m_Load( )
Di mI As I nt eger
For I = 1 To 2
St at usBar 1. Panel s. Add ' Se agr egan 2 panel es ms
Next
Wi t h St at usBar 1. Panel s
. I t em( 1) . St yl e = sbr Ti me
. I t em( 2) . St yl e = sbr Caps
. I t em( 3) . St yl e = sbr I ns
End Wi t h
End Sub

La pr opi edad St yl e per mi t e most r ar el est ado de l as
t ecl as, l a hor a y l a f echa del si st ema con un m ni mo de cdi go.

Constante Valor Descripcin
sbr Text 0 ( Pr edet er mi nado) . Text o o mapa de bi t s.
sbr Caps 1 Tecl a BLOQ MAYS.
sbr Num 2 Tecl a BLOQ NM.
sbr I ns 3 Tecl a I NS.
sbr Scr l 4 Tecl a BLOQ DESPL.
sbr Ti me 5 Muest r a l a hor a act ual con el f or mat o del
si st ema.
sbr Dat e 6 Muest r a l a f echa act ual con el f or mat o
del si st ema.


Pg. 130
CREACIN DE UN MEN CONTEXTUAL
Un men cont ext ual es un men emer gent e ( f l ot ant e) que se
muest r a sobr e un f or mul ar i o, i ndependi ent e de l a bar r a de
mens. Par a most r ar un men cont ext ual el usuar i o debe pul sar
el bot n der echo del r at n sobr e el f or mul ar i o.
A menudo quer r usar un men cont ext ual par a t ener acceso
a opci ones que no se encuent r an di sponi bl es en l a bar r a de
mens. Par a cr ear un men que no se pr esent e en l a bar r a de
mens, haga i nvi si bl e un el ement o de men de ni vel super i or en
t i empo de di seo ( asegr ese de que l a casi l l a de ver i f i caci n
Vi si bl e del Edi t or de mens no est act i vada) . Cuando Vi sual
Basi c pr esent a un men emer gent e, pasa por al t o l a pr opi edad
Vi si bl e del men de ni vel super i or especi f i cado.




Pg. 131
Par a cr ear el men cont ext ual de l a f i gur a, debe i ngr esar
al Edi t or de mens y aadi r l o si gui ent e:

Caption Name Visible
&Her r ami ent as
MnuTool s
. . . Cal cul ador a MnuTool sCal c
3
. . . Cal endar i o MnuTool sCal en
3
. . . Sol i t ar i o MnuTool sSol
3

Segui dament e pr oceda a i ngr esar el cdi go que se i ndi ca a
cont i nuaci n:

Pr i vat e Sub MDI For m_MouseDown( But t on As I nt eger , _
Shi f t As I nt eger , X As Si ngl e, Y As Si ngl e)
I f But t on = vbRi ght But t on Then
PopupMenu MnuTool s
End I f
End Sub

Pr i vat e Sub MnuTool sCal c_Cl i ck( )
Di mI
I = Shel l ( C: \ WI NDOWS\ CALC. EXE, 1)
End Sub

Pr i vat e Sub MnuTool sCal en_Cl i ck( )
Fr mCal endar i o. Show


Pg. 132
End Sub
Pr i vat e Sub MnuTool sSol _Cl i ck( )
Di mI
I = Shel l ( C: \ WI NDOWS\ SOL. EXE, 1)
End Sub

En el ej empl o ant er i or se asume que exi st e ot r o f or mul ar i o
de nombr e Fr mCal endar i o. Est e puede ser const r ui do usando el
cont r ol Mont hVi ew.
La f unci n Shel l ej ecut a un pr ogr ama ej ecut abl e y devuel ve
un t i po Var i ant ( Doubl e) que r epr esent a l a i dent i f i caci n de l a
t ar ea del pr ogr ama si se ha ej ecut ado con xi t o, en caso
cont r ar i o devuel ve cer o.












Pg. 133
CAPTULO 6


CONTROLES ACTIVEX

Los cont r ol es Act i veX son obj et os que no f or man par t e del
conj unt o de cont r ol es est ndar de Vi sual Basi c, si no ms bi en
han si do desar r ol l ados por t er cer as per sonas.
Los cont r ol es Act i veX exi st en como ar chi vos i ndependi ent es
con ext ensi n . OCX y deben ser car gados ant es de ut i l i zar se.
Par a el l o i ngr esar al Men Pr oyect o y el i j a l a opci n
Component es.




Pg. 134
CONTROL ANIMATION
El cont r ol Ani mat i on per mi t e r epr oduci r ar chi vos de
ext ensi n . AVI que no t engan soni do par a cr ear ani maci ones.
Par a agr egar est e cont r ol debe sel ecci onar el component e
Mi cr osof t Wi ndows Common Cont r ol s- 2 6. 0.

Propiedad Descripcin
Aut oPl ay Especi f i ca si el ar chi vo AVI se r epr oduci r
aut omt i cament e al car gar se el cont r ol .

Mtodo Descripcin
Cl ose Ci er r a el ar chi vo AVI abi er t o act ual ment e.
Open Per mi t e abr i r el ar chi vo AVI .
Pl ay Repr oduce el ar chi vo AVI en el cont r ol
Ani mat i on.
St op Ter mi na l a r epr oducci n del ar chi vo AVI .

Como ej empl o vamos a desar r ol l ar un f or mul ar i o que per mi t a
r epr oduci r un ar chi vo AVI , t al como se muest r a en l a f i gur a:




Pg. 135
Par a el l o cr ear un nuevo f or mul ar i o y agr egar un cont r ol
Ani mat i on ( Ani mat i on1) y dos bot ones de comando ( CmdI ni ci ar y
CmdTer mi nar , r espect i vament e) . Luego i ngr ese el cdi go que se
muest r a:

Pr i vat e Sub CmdI ni ci ar _Cl i ck( )
Di mRUTA As St r i ng
RUTA = C: \ Ar chi vos de pr ogr ama\ Mi cr osof t Vi sual St udi o\
RUTA = RUTA & Common\ Gr aphi cs\ Vi deos\ Fi l enuke. avi
Ani mat i on1. Open ( RUTA)
Ani mat i on1. Pl ay
End Sub

Pr i vat e Sub CmdTer mi nar _Cl i ck( )
Ani mat i on1. Cl ose
End
End Sub

CONTROL COMMONDIALOG
El cont r ol CommonDi al og pr opor ci ona un conj unt o de cuadr os
de di l ogo est ndar que per mi t en r eal i zar l as oper aci ones ms
comnment e empl eadas en el di seo de apl i caci ones, como abr i r y
guar dar ar chi vos, sel ecci onar col or es y f uent es, i mpr i mi r , et c.
Par a agr egar est e cont r ol sel ecci onar el component e Mi cr osof t
Common Di al og Cont r ol 6. 0.


Pg. 136
Propiedad Descripcin
Col or Especi f i ca el col or sel ecci onado.
Fi l eName Especi f i ca l a r ut a y nombr e del ar chi vo
sel ecci onado.
Fi l t er Especi f i ca el t i po de ar chi vos que se han de
most r ar en un cuadr o de di l ogo Abr i r o
Guar dar como.
Fi l t er I ndex Especi f i ca el f i l t r o pr edet er mi nado par a un
cuadr o de di l ogo Abr i r o Guar dar como, en
caso se est ut i l i zando var i os f i l t r os.

Mtodo Descripcin
ShowCol or Pr esent a l a pal et a de col or es.
ShowFont Pr esent a el cuadr o de di l ogo Fuent es.
ShowHel p Pr esent a l a ayuda de Wi ndows.
ShowOpen Pr esent a el cuadr o de di l ogo Abr i r .
ShowPr i nt er Pr esent a el cuadr o de di l ogo I mpr i mi r .
ShowSave Pr esent a el cuadr o de di l ogo Guar dar como.

Como ej empl o vamos a desar r ol l ar una apl i caci n que
per mi t e cambi ar el col or de f ondo de un f or mul ar i o en t i empo de
ej ecuci n. Par a el l o el usuar i o debe dar cl i ck en el bot n
Cambi ar col or y en segui da se pr esent ar l a pal et a de col or es
de donde debe el egi r el col or deseado, t al como se muest r a en
l a f i gur a si gui ent e:


Pg. 137


Par a el l o cr ear un nuevo f or mul ar i o, agr egar l e un bot n de
comando ( CmdCambi ar Col or ) y un cont r ol CommonDi al og. Luego
i ngr esar el si gui ent e cdi go:

Pr i vat e Sub CmdCambi ar Col or _Cl i ck( )
CommonDi al og1. ShowCol or
For m1. BackCol or = CommonDi al og1. Col or
End Sub

Como si gui ent e ej empl o vamos a desar r ol l ar una apl i caci n
que per mi t a most r ar el cont eni do de un ar chi vo J PG. Est e deber
ser sel ecci onado por el usuar i o de un cuadr o de di l ogo Abr i r ,
t al como se i ndi ca en l a f i gur a:


Pg. 138


Al hacer cl i ck en el bot n Abr i r , el ar chi vo
sel ecci onado debe ser most r ado en el f or mul ar i o:



Par a el di seo de est a apl i caci n cr ear un nuevo
f or mul ar i o y ubi car un bot n de comando ( CmdAbr i r Ar chi vo) , un
cont r ol i magen y un cont r ol CommonDi al og.


Pg. 139
Segui dament e i ngr ese el cdi go que se i ndi ca a
cont i nuaci n:

Pr i vat e Sub CmdAbr i r Ar chi vo_Cl i ck( )
Di mFI LTRO As St r i ng, FI LE As St r i ng
FI LTRO = I mgenes J PEG ( *. J PG) | *. J PG
CommonDi al og1. Fi l t er = FI LTRO
CommonDi al og1. ShowOpen
FI LE = CommonDi al og1. Fi l eName
I mage1. Pi ct ur e = LoadPi ct ur e( FI LE)
End Sub

CONTROL MARCHOSO
El cont r ol Mar choso t i ene como f unci n r epr oduci r ar chi vos
GI F ani mados. Par a agr egar est e cont r ol sel ecci onar el
component e Mar choso Act i veX Cont r ol Modul e. Est e cont r ol f ue
cr eado en Vi sual Basi c y si no l o t i ene en su di sco dur o l o
puede baj ar de I nt er net .

Propiedad Descripcin
Fi l eName Especi f i ca l a r ut a y nombr e del ar chi vo GI F
ani mado.

A maner a de ej empl o vamos a di sear un f or mul ar i o que
per mi t a most r ar ar chi vos GI F ani mados.


Pg. 140


Par a el l o pr oceda a cr ear un nuevo f or mul ar i o y ubi car un
bot n de comando ( CmdVer GI FAni mado) , un cont r ol Mar choso y un
cont r ol CommonDi al og. Luego, i ngr esar el si gui ent e cdi go:

Pr i vat e Sub CmdVer GI FAni mado_Cl i ck( )
Di mFI LTRO As St r i ng, FI LE As St r i ng
FI LTRO = Ar chi vos GI F Ani mados ( *. GI F) | *. GI F
CommonDi al og1. Fi l t er = FI LTRO
CommonDi al og1. ShowOpen
FI LE = CommonDi al og1. Fi l eName
Mar choso1. Fi l eName = FI LE
End Sub

CONTROL HIERARCHICAL FLEXGRID
El cont r ol Hi er ar chi cal Fl exGr i d pr esent a una cuadr cul a
l a cual per mi t e most r ar dat os en f or ma de cel das. Una cel da es
l a r egi n f or mada por l a i nt er secci n de una f i l a y una
col umna.


Pg. 141
Par a agr egar est e cont r ol debe sel ecci onar el component e
Mi cr osof t Hi er ar chi cal Fl exGr i d Cont r ol 6. 0 ( OLEDB) .

Propiedad Descripcin
Col Especi f i ca el nmer o de col umna de l a cel da
act ual .
Col s Especi f i ca el nmer o t ot al de col umnas, f i j as
y no f i j as.
Fi xedCol s Especi f i ca el nmer o de col umnas f i j as. El
val or por def ect o es 1.
Fi xedRows Especi f i ca el nmer o de f i l as f i j as. El val or
por def ect o es 1.
Row Especi f i ca el nmer o de f i l a de l a cel da
act ual .
Rows Especi f i ca el nmer o t ot al de f i l as, f i j as y
no f i j as.
Text Especi f i ca el cont eni do de l a cel da act ual .
Text Ar r ay Especi f i ca el cont eni do de una cel da el egi da
al eat or i ament e, se debe especi f i car el ndi ce
de l a cel da a l a cual se desea acceder .
Scr ol l Bar s Especi f i ca si l a cuadr cul a pr esent a bar r as
de despl azami ent o hor i zont al es, ver t i cal es o
ambas a l a vez.

Como ej empl o vamos a desar r ol l ar una apl i caci n que
vi sual i ce un cuadr ado mgi co de or den i mpar . Un cuadr ado
mgi co se compone de nmer os ent er os compr endi dos ent r e 1 y
. La suma de l os nmer os que f i gur an en cada f i l a, cada
col umna y cada di agonal son i dnt i cos.
N
2
N


Pg. 142
Por ej empl o par a = 5 t enemos el si gui ent e ar r egl o de
nmer os:
N



Un mt odo de const r ucci n del cuadr ado consi st e en si t uar
el nmer o 1 en el cent r o de l a pr i mer a f i l a, el nmer o
si gui ent e en l a casi l l a si t uada enci ma y a l a der echa, y as
sucesi vament e. Es pr eci so consi der ar que el cuadr ado se ci er r a
sobr e s mi smo, l a f i l a enci ma de l a pr i mer a es de hecho l a
l t i ma y l a col umna a l a der echa de l a l t i ma es l a pr i mer a.
Si n embar go, cuando l a posi ci n del nmer o cai ga en una cel da
ocupada, se el i ge l a casi l l a si t uada por debaj o del nmer o que
acaba de ser si t uado.
Par a el desar r ol l o de l a pr esent e apl i caci n pr oceda a
cr ear un nuevo f or mul ar i o y ubi car una et i quet a ( N?) , un cuadr o
de t ext o ( Txt N) y un cont r ol Hi er ar chi cal Fl exGr i d.
Segui dament e debe i ngr esar el cdi go que se i ndi ca:
Pr i vat e Sub Txt N_Change( )


Pg. 143
Di mN As I nt eger , I As I nt eger
Di mFI L As I nt eger , COL As I nt eger
N = Val ( Txt N)
FI L = 1
COL = ( N \ 2) + 1
MSHFl exGr i d1. Col s = N
MSHFl exGr i d1. Rows = N
MSHFl exGr i d1. Fi xedCol s = 0
MSHFl exGr i d1. Fi xedRows = 0
For I = 1 To N ^ 2
MSHFl exGr i d1. COL = COL - 1
MSHFl exGr i d1. Row = FI L - 1
MSHFl exGr i d1. Text = St r ( I )
I f I Mod N = 0 Then
FI L = FI L + 1
I f FI L = N + 1 Then FI L = 1
El se
FI L = FI L - 1
I f FI L = 0 Then FI L = N
COL = COL + 1
I f COL = N + 1 Then COL = 1
End I f
Next
End Sub
CONTROL UPDOWN


Pg. 144
El cont r ol UpDown t i ene dos bot ones con f l echas en l os que
el usuar i o puede hacer cl i c par a i ncr ement ar o di smi nui r un
val or de un cont r ol asoci ado, denomi nado cont r ol auxi l i ar . A
menudo, al usuar i o l e par ecer que el cont r ol UpDown y su
cont r ol auxi l i ar son un ni co cont r ol . Por l o gener al se usa un
cont r ol UpDown con un cuadr o de t ext o par a sol i ci t ar al usuar i o
una ent r ada numr i ca, una combi naci n que en ocasi ones se
denomi na cont r ol Spi nner .
Par a agr egar un cont r ol UpDown debe sel ecci onar el
component e Mi cr osof t Wi ndows Common Cont r ol s- 2 6. 0.

Propiedad Descripcin
BuddyCont r ol Especi f i ca el cont r ol ut i l i zado como
auxi l i ar .
BuddyPr oper t y Especi f i ca l a pr opi edad ut i l i zada par a
si ncr oni zar el cont r ol UpDown con su
auxi l i ar .
I ncr ement Especi f i ca un val or que det er mi na l a cant i dad
en que var a l a pr opi edad Val ue cuando se
hace cl i ck en l os bot ones del cont r ol UpDown.
Max Especi f i ca el val or mxi mo del i nt er val o de
despl azami ent o del cont r ol UpDown.
Mi n Especi f i ca el val or m ni mo del i nt er val o de
despl azami ent o del cont r ol UpDown.
SyncBuddy Especi f i ca si el cont r ol UpDown si ncr oni za l a
pr opi edad Val ue con una pr opi edad del cont r ol
auxi l i ar .
Como ej empl o vamos a desar r ol l ar una apl i caci n que
per mi t a most r ar el cdi go ANSI de un car ct er especi f i cado.


Pg. 145



Par a t al f i n cr ear un nuevo f or mul ar i o y ubi car l os
si gui ent es cont r ol es: 2 et i quet as ( Cdi go ANSI , Car ct er ) , 2
cuadr os de t ext o ( Txt ANSI , Txt Car act er ) y 1 cont r ol UpDown.
Luego est abl ezca l as pr opi edades que se i ndi can:

UpDown1
Nombr e UpDown1
BuddyCont r ol Txt ANSI
BuddyPr oper t y Text
I ncr ement 1
Max 255
Mi n 0
SyncBuddy Tr ue

Segui dament e pr oceda a t r anscr i bi r el si gui ent e cdi go:

Pr i vat e Sub Txt ANSI _Change( )
Txt Car act er = Chr ( Txt ANSI )
End Sub
CONTROL MONTHVIEW


Pg. 146
El cont r ol Mont hVi ew per mi t e al usuar i o l a posi bi l i dad de
ver y est abl ecer i nf or maci n de f echas medi ant e una i nt er f az
si mi l ar a un cal endar i o. Par a agr egar est e cont r ol sel ecci onar
el component e Mi cr osof t Wi ndows Common Cont r ol s- 2 6. 0.

Propiedad Descripcin
Day Especi f i ca el nmer o de d a most r ado.
Mont h Especi f i ca el nmer o de mes most r ado.
Year Especi f i ca el nmer o de ao most r ado.
Val ue Especi f i ca l a f echa most r ada.
DayOf Week Especi f i ca el d a de l a semana
cor r espondi ent e a l a f echa most r ada.
Week Especi f i ca el nmer o de l a semana en que cae
l a f echa most r ada.
Mul t i Sel ect Especi f i ca si se puede sel ecci onar un
i nt er val o cont i guo de f echas.
MaxSel Count Especi f i ca el nmer o mxi mo de d as que
pueden sel ecci onar se medi ant e l a pr opi edad
Mul t i Sel ect .
Sel St ar t
Sel End
Especi f i ca l os l mi t e i nf er i or y super i or
r espect i vament e del i nt er val o de f echas
sel ecci onado.
Mont hCol umns
Mont hRows
Per mi t en most r ar ms de un mes
si mul t neament e. Mont hCol umns especi f i ca el
nmer o de meses que se most r ar n en sent i do
hor i zont al . Mont hRows especi f i ca el nmer o de
meses que se most r ar n en sent i do ver t i cal .
Evento Descripcin


Pg. 147
Cl i ck Ocur r e cada vez que el usuar i o hace cl i ck
sobr e el cont r ol .
Dat eCl i ck Ocur r e cada vez que el usuar i o hace cl i ck
sobr e una f echa most r ada en el cont r ol .

Como ej empl o vamos a cr ear un senci l l o cal endar i o. Cuando
el usuar i o haga cl i ck sobr e al guna f echa, est a apar ecer en el
cuadr o de t ext o. Pamel a Ander son r epr esent ar l a par t e
at r act i va de nuest r a apl i caci n.



Par a el l o cr ear un nuevo f or mul ar i o y agr egar una et i quet a
( La f echa sel ecci ona es) , un cuadr o de t ext o ( Txt Fecha) , un
cont r ol i magen ( I mgPamel a) y un cont r ol Mont hVi ew. Luego
i ngr esar el si gui ent e cdi go:

Pr i vat e Sub Mont hVi ew1_Dat eCl i ck( ByVal Dat eCl i cked As Dat e)


Pg. 148
Txt Fecha = WeekdayName( Mont hVi ew1. DayOf Week) & , _
& St r ( Mont hVi ew1. Day) & de _
& Mont hName( Mont hVi ew1. Mont h) & de _
& St r ( Mont hVi ew1. Year )
End Sub

Pr i vat e Sub Mont hVi ew1_Cl i ck( )
Cal l Mont hVi ew1_Dat eCl i ck( Mont hVi ew1. Val ue)
End Sub

Pr i vat e Sub For m_Load( )
Cal l Mont hVi ew1_Dat eCl i ck( Mont hVi ew1. Val ue)
End Sub

La f unci n WeekdayName r et or na una cadena con el nombr e
del d a de l a semana especi f i cado. Requi er e como ar gument o el
nmer o de d a de l a semana.
La f unci n Mont hName r et or na una cadena con el nombr e del
mes especi f i cado. Requi er e como ar gument o el nmer o de mes.
El event o Dat eCl i ck t i ene un par met r o Dat eCl i cked que
especi f i ca l a f echa sel ecci onada. Puede ut i l i zar est e val or
( Dat eCl i cked) par a obt ener l a f echa en l a que el usuar i o hi zo
cl i ck.

CONTROL CALENDAR


Pg. 149
El cont r ol Cal endar es si mi l ar en f unci onal i dad al cont r ol
Mont hVi ew, pues t ambi n pr esent a un cal endar i o. Par a agr egar
est e cont r ol sel ecci onar el component e Cont r ol Cal endar de
Mi cr osof t 9. 0.

Propiedad Descripcin
Day Especi f i ca el nmer o de d a most r ado.
Mont h Especi f i ca el nmer o de mes most r ado.
Year Especi f i ca el nmer o de ao most r ado.
Val ue Especi f i ca l a f echa most r ada.

Como ej empl o vamos a desar r ol l ar l a apl i caci n ant er i or ,
per o est a vez haci endo uso de un cont r ol Cal endar .




Pg. 150
Par a el l o cr ear un nuevo f or mul ar i o y agr egar una et i quet a
( La f echa sel ecci ona es) , un cuadr o de t ext o ( Txt Fecha) , un
cont r ol i magen ( I mgPamel a) y un cont r ol Cal endar . Luego
i ngr esar el si gui ent e cdi go:

Pr i vat e Sub Cal endar 1_Cl i ck( )
Txt Fecha = WeekdayName( Weekday( Cal endar 1. Val ue) ) & , _
& St r ( Cal endar 1. Day) & de _
& Mont hName( Cal endar 1. Mont h) & de _
& St r ( Cal endar 1. Year )
End Sub

La f unci n Weekday r et or na un nmer o ent er o que r epr esent a
el d a de l a semana de una f echa dada. Se ut i l i za par a supl i r a
l a pr opi edad DayOf Week l a cual no est per mi t i da par a el
cont r ol Cal endar .







Pg. 151
CAPTULO 7


ARCHIVOS

Un ar chi vo ( f i cher o) es un conj unt o de i nf or maci n
r el aci onada ent r e s , al macenada como una uni dad en un
di sposi t i vo de al macenami ent o secundar i o ( di squet e, di sco
dur o) . Los dat os al macenados en un ar chi vo son de maner a
per manent e de modo que pueden ser mani pul ados en cual qui er
moment o. Cada ar chi vo est r ef er enci ado por un i dent i f i cador ,
su nombr e.

CONCEPTO DE ARCHIVO BAJO WINDOWS/VISUAL BASIC
Un ar chi vo t i ene un nombr e al macenado en una car pet a j unt o
con ot r os ar chi vos de di sco. Los nombr es de l os ar chi vos en
Wi ndows y Vi sual Basi c r equi er en de 1 a 215 car act er es
( i ncl ui dos espaci os en bl anco) , y pueden i ncl ui r t ambi n una
ext ensi n de 1 a 3 l et r as, nor mal ment e son si gni f i cat i vas y
r el at i vas al cont eni do del mi smo. Por ej empl o:

LEAME. TXT Ar chi vo de t ext o
MI SDATOS. DAT Ar chi vo de dat os
PLANI LLA. XLS Ar chi vo de MS- Excel
SHAKI RA. BMP Ar chi vo de mapa de bi t s


Pg. 152
El nombr e de un ar chi vo par a ser r ef er enci ado
cor r ect ament e const a de:

Uni dad ( Especi f i cador de uni dad, por ej empl o A, B, C)
Cami no ( Especi f i cador de r ut a, por ej empl o \ DATA\ )
Nombr e ( Especi f i cador de ar chi vo, por ej empl o DEMO. DAT)

Como ej empl o, suponga que el ar chi vo DEMO. DAT est en l a
car pet a DATA de l a uni dad C ( di sco dur o) ; l a descr i pci n
compl et a del nombr e del ar chi vo es:

C: \ DATA\ DEMO. DAT

Ahor a, suponga que el ar chi vo CONSTANTES. DAT se encuent r a
en l a car pet a LI B, que a su vez est cont eni da en l a car pet a
DATA de l a uni dad C. La descr i pci n compl et a del nombr e de
di cho ar chi vo est dada por :

C: \ DATA\ LI B\ CONSTANTES. DAT

Desde el punt o de vi st a de Vi sual Basi c un ar chi vo
al macena l os dat os como un conj unt o de r egi st r os, cont eni endo
t odos el l os, gener al ment e, l os mi smos campos. Cada campo
al macena un dat o de t i po pr edef i ni do o de un t i po def i ni do por
el usuar i o. El el ement o de i nf or maci n ms si mpl e est ar a
f or mado por un car ct er .


Pg. 153
OPERACIONES SOBRE EL SISTEMA DE ARCHIVOS
Par a mani pul ar el si st ema de ar chi vos de un di sco, Vi sual
Basi c pr opor ci ona l as sent enci as que a cont i nuaci n se
descr i ben.

Sentencia Kill
Per mi t e el i mi nar un ar chi vo al macenado en un di sco. Su
si nt axi s es de l a f or ma:

Ki l l NOMBRE_ARCHI VO

Donde NOMBRE_ARCHI VO es una cadena de car act er es que
i dent i f i ca al ar chi vo que se desea bor r ar . Se per mi t en
car act er es comod n ( * y ?) . Si el ar chi vo no exi st e se pr oduce
un er r or . Por ej empl o:

Ki l l C: \ TEMP\ TEMPO. DAT

La i nst r ucci n ant er i or el i mi na el ar chi vo TEMPO. DAT
ubi cado en l a car pet a C: \ TEMP.

Sentencia Name
Per mi t e cambi ar el nombr e ( r enombr ar ) de un ar chi vo del
di sco y mover l o a ot r o di r ect or i o si f uer a pr eci so. Su si nt axi s
es l a si gui ent e:

Name NOMBRE_ACTUAL As NOMBRE_NUEVO



Pg. 154
Donde NOMBRE_ACTUAL es una cadena de car act er es que
especi f i ca el nombr e act ual del ar chi vo y NOMBRE_NUEVO es ot r a
cadena de car act er es que i ndi ca el nuevo nombr e que se desea
dar al ar chi vo. Est e nombr e no debe exi st i r , de l o cont r ar i o se
obt endr un er r or . Por ej empl o:

Name C: \ TEMP\ TEMPO. DAT As C: \ DATA\ CURSO. DAT

La i nst r ucci n ant er i or cambi a el nombr e del ar chi vo
TEMPO. DAT por el nombr e CURSO. DAT. El cont eni do del ar chi vo
per manece i nal t er ado y su l ocal i zaci n f si ca se cambi a de l a
car pet a C: \ TEMP a C: \ DATA.

Sentencia MkDir
Per mi t e cr ear una nueva car pet a. Su si nt axi s es:

MkDi r NUEVA_CARPETA

Donde NUEVA_CARPETA es una cadena de car act er es que
i dent i f i ca l a car pet a que se va ha cr ear . Por ej empl o:

MkDi r C: \ DATA\ TEMP

Sentencia RmDir
El i mi na una car pet a vac a exi st ent e en el di sco. Su
si nt axi s es de l a f or ma:

RmDi r NOMBRE_CARPETA

Donde NOMBRE_CARPETA es una cadena de car act er es que
i dent i f i ca l a car pet a que se desea el i mi nar . Por ej empl o:


Pg. 155

RmDi r C: \ DATA\ TEMP

Sentencia ChDir
Per mi t e cambi ar l a car pet a act ual . Su si nt axi s es:

ChDi r NOMBRE_CARPETA

Donde NOMBRE_CARPETA es una cadena de car act er es que
i dent i f i ca l a nueva r ut a de acceso pr edet er mi nada. Por ej empl o:

ChDi r C: \ DATA\ GRAFI COS
MsgBox App. Pat h

La pr opi edad Pat h del obj et o App especi f i ca l a r ut a de
acceso act ual .

Sentencia ChDrive
Per mi t e cambi ar l a uni dad de di sco act ual . Su si nt axi s es:

ChDr i ve UNI DAD

Donde UNI DAD es un car ct er que especi f i ca l a nueva uni dad
de di sco. Si el par met r o UNI DAD es una cadena de ml t i pl es
car act er es sl o se l ee l a pr i mer a l et r a. Por ej empl o:

ChDr i ve A
OPERACIONES CON ARCHIVOS


Pg. 156
Par a r eal i zar al guna oper aci n sobr e un ar chi vo hay
r ef er enci ar l o medi ant e su nombr e compl et o. Las oper aci ones
bsi cas que se pueden r eal i zar con l os ar chi vos son:

Abr i r , pr epar ar un ar chi vo par a hacer r ef er enci a a l .
Escr i bi r , i nt r oduci r un el ement o de i nf or maci n a un ar chi vo.
Leer , obt ener un el ement o de i nf or maci n de un ar chi vo.
Modi f i car , al t er ar un el ement o de i nf or maci n ya exi st ent e en
un ar chi vo.
Cer r ar , evi t ar cual qui er ot r a r ef er enci a al ar chi vo en t ant o
no se l e abr a ot r a vez.

TIPOS DE ARCHIVOS
Los t i pos de ar chi vos dependen del modo como est n
or gani zados l os r egi st r os y de l a f or ma de accesar a l a l os
dat os cont eni dos en el l os. En Vi sual Basi c exi st en t r es t i pos
de ar chi vos de dat os, est os son:

Ar chi vos secuenci al es ( acceso secuenci al ) .
Ar chi vos al eat or i os ( acceso al eat or i o) .
Ar chi vos bi nar i os ( acceso bi nar i o) .

A cont i nuaci n pasamos a descr i bi r cada uno de el l os en
f or ma det al l ada.
ARCHIVOS DE ACCESO SECUENCIAL


Pg. 157
En un ar chi vo de acceso secuenci al l os r egi st r os se
al macenan si gui endo una a ot r o, segn el or den en que son
i ngr esados. Cuando se l ee l a i nf or maci n, se empi eza por el
pr i mer r egi st r o y se cont i nua al si gui ent e hast a al canzar el
f i nal . Las sent enci as y f unci ones necesar i as par a mani pul ar
ar chi vos de t i po secuenci al se pr esent an a cont i nuaci n.

Sentencia Open
Per mi t e abr i r un ar chi vo. La si nt axi s par a est a sent enci a
es l a si gui ent e:

Open NOMBRE_ARCHI VO For MODO As #NMERO_ARCHI VO

Donde NOMBRE_ARCHI VO es una cadena que especi f i ca el
nombr e del ar chi vo que se debe ser abi er t o en MODO Out put ,
Append o I nput .

Modo Descripcin
Out put Escr i t ur a de dat os. Si el ar chi vo exi st e, su
cont eni do act ual se dest r uye. Si el ar chi vo no
exi st e, se cr ea.
Append Aadi r dat os. Los dat os son aadi dos a par t i r de
l os l t i mos exi st ent es. Si el ar chi vo no exi st e,
se cr ea.
I nput Lect ur a de dat os. La l ect ur a empi eza desde el
pr i nci pi o del ar chi vo. Si el ar chi vo no exi st e, se
pr oduce un er r or .
El par met r o NMERO_ARCHI VO es un ent er o cuyo val or debe
est ar compr endi do ent r e 1 y 511. Est e nmer o ser asoci ado al


Pg. 158
nombr e del ar chi vo mi ent r as st e per manezca abi er t o. Par a
obt ener el nmer o del si gui ent e ar chi vo di sponi bl e se ut i l i za
l a f unci n Fr eeFi l e( ) .
Como ej empl o suponga que se r equi er e abr i r el ar chi vo
DEMO. DAT ubi cado en l a car pet a C: \ DATA, l a i nst r ucci n ser a l a
si gui ent e:

Di mN1 As I nt eger
N1 = Fr eeFi l e( )
Open C: \ DATA\ DEMO. DAT For Out put As #N1

Sentencia Print
Per mi t e escr i bi r dat os secuenci al ment e en un ar chi vo. Su
si nt axi s es:

Pr i nt #NMERO_ARCHI VO, LI STA_DE_EXPRESI ONES

Donde NMERO_ARCHI VO es el nmer o ut i l i zado cuando el
ar chi vo f ue abi er t o. LI STA_DE_EXPRESI ONES es un conj unt o de
expr esi ones ( numr i cas, de cadena, de f echa, et c. ) separ adas
por punt o y coma ( ; ) que ser n escr i t as en el ar chi vo.
La sent enci a Pr i nt escr i be en el ar chi vo una i magen de l os
dat os t al y como se habr an vi sual i zado sobr e el f or mul ar i o con
l a sent enci a Pr i nt . Por ej empl o:
Di mN1 As I nt eger
N1 = Fr eeFi l e( )


Pg. 159
Open C: \ DATA\ DEMO. DAT For Out put As #N1
Pr i nt #N1, Vi sual Basi c es f ci l ; , ; Dat e( )

Al ej ecut ar se el cdi go ant er i or se escr i bi r a en el
ar chi vo l a si gui ent e i nf or maci n:

Vi sual Basi c es f ci l , 24/ 04/ 2001

Como se obser va, al ut i l i zar l a sent enci a Pr i nt se deben
del i mi t ar l os dat os par a que se i mpr i man cor r ect ament e.

Sentencia Write
Per mi t e escr i bi r dat os secuenci al ment e en un ar chi vo. Su
si nt axi s es:

Wr i t e #NMERO_ARCHI VO, LI STA_DE_EXPRESI ONES

Donde NMERO_ARCHI VO es el nmer o ut i l i zado cuando el
ar chi vo f ue abi er t o. LI STA_DE_EXPRESI ONES es un conj unt o de
expr esi ones ( numr i cas, de cadena, de f echa, et c. ) separ adas
por punt o y coma ( ; ) que ser n escr i t as en el ar chi vo.
La sent enci a Wr i t e i nser t a comas ( , ) ent r e l as expr esi ones
de l a LI STA_DE_EXPRESI ONES, por t ant o no es necesar i o poner
del i mi t ador es expl ci t ament e como en el caso de l a sent enci a
Pr i nt .
Cuando se ut i l i za l a sent enci a Wr i t e par a escr i bi r
i nf or maci n en un ar chi vo, se si guen di st i nt as convenci ones


Pg. 160
uni ver sal es, de modo que l os dat os si empr e se pueden l eer e
i nt er pr et ar cor r ect ament e, i ndependi ent ement e de l a
conf i gur aci n r egi onal , est as convenci ones son:

Los dat os numr i cos si empr e se escr i ben ut i l i zando l a coma
( , ) como separ ador deci mal .
Par a dat os de t i po Bool ean se i mpr i me #TRUE # o #FALSE #.
Los dat os de t i po Dat e se escr i ben en el ar chi vo usando el
f or mat o de f echa uni ver sal ( f echas como #aaaa- mm- dd # y hor as
como #hh: mm: ss #) .

A maner a de ej empl o consi der e el si gui ent e segment o de
cdi go:

Di mN1 As I nt eger
N1 = Fr eeFi l e( )
Open C: \ DATA\ DEMO. DAT For Out put As #N1
Wr i t e #N1, Vi sual Basi c es f ci l ; Dat e( )

La ej ecuci n de est e cdi go escr i bi r a en el ar chi vo l a
si gui ent e i nf or maci n:

Vi sual Basi c es f ci l " , #2002- 04- 11 #

Sentencia Close


Pg. 161
Ci er r a uno ar chi vo abi er t o medi ant e l a sent enci a Open. Su
si nt axi s es l a si gui ent e:

Cl ose #NMERO_ARCHI VO [ , #NMERO_ARCHI VO, . . . ]

Donde NMERO_ARCHI VO es el nmer o con el cual se abr i el
ar chi vo. Por ej empl o:

Cl ose #1, #2

La i nst r ucci n ant er i or ci er r a l os ar chi vos asoci ados con
l os nmer os 1 y 2. La si gui ent e sent enci a ci er r a t odos l os
ar chi vos abi er t os.

Cl ose

Sentencia Input
Per mi t e l eer dat os de un ar chi vo secuenci al y l os asi gna a
l as var i abl es especi f i cadas. Su si nt axi s es:

I nput #NMERO_ARCHI VO, VARI ABLE1 [ , VARI ABLE2, . . . ]

Donde NMERO_ARCHI VO es el nmer o ut i l i zado cuando el
ar chi vo f ue abi er t o. VARI ABLE1, VARI ABLE2, . . . son l os
nombr es de l as var i abl es que han de r eci bi r l os
cor r espondi ent es dat os del ar chi vo.


Pg. 162
Los dat os del ar chi vo deben apar ecer en el mi smo or den que
t i enen l as var i abl es en l a sent enci a I nput y deben coi nci di r
con var i abl es del mi smo t i po de dat os. Por ej empl o:

Di mN1 As I nt eger
N1 = Fr eeFi l e( )
Open C: \ DATA\ DEMO. DAT For I nput As #N1
Di mA As I nt eger
Di mB As Doubl e
Di mS As St r i ng
Di mF As Dat e
I nput #N1, A, B, S, F

El segment o de cdi go ant er i or esper a encont r ar en el
ar chi vo un ent er o, un r eal , una cadena y una f echa, en ese
or den ( separ ados por comas o un r et or no de car r o) .

Sentencia Line Input
Per mi t e l eer una l nea de un ar chi vo secuenci al i gnor ando
l os del i mi t ador es ( comas) y l a asi gna a una var i abl e t i po
cadena. Su si nt axi s es:

Li ne I nput #NMERO_ARCHI VO, VARI ABLE

Donde NMERO_ARCHI VO es el nmer o ut i l i zado cuando el
ar chi vo f ue abi er t o. VARI ABLE es el nombr e de una var i abl e t i po
cadena de car act er es.


Pg. 163
La sent enci a Li ne I nput se ut i l i za especi al ment e par a l eer
un ar chi vo de t ext o l nea a l nea, ya que est a sent enci a l ee
t odos l os car act er es del ar chi vo hast a que encuent r a un r et or no
de car r o, ent onces cont i nua en l a si gui ent e l nea y as
sucesi vament e. Por ej empl o:

Di mN1 As I nt eger , LI NE1 As St r i ng, LI NE2 As St r i ng
N1 = Fr eeFi l e( )
Open C: \ DATA\ DEMO. TXT For Out put As #N1
Pr i nt #N1, L nea de pr ueba 1
Pr i nt #N1, L nea de pr ueba 2
Cl ose #N1
Open C: \ DATA\ DEMO. TXT For I nput As #N1
Li ne I nput #N1, LI NE1
MsgBox LI NE1
Li ne I nput #N1, LI NE2
MsgBox LI NE2

La ej ecuci n del cdi go ant er i or pr oduce l a si gui ent e sal i da:




Pg. 164
Funcin Input
Ret or na l os si gui ent es car act er es de un ar chi vo
secuenci al y l os asi gna a una var i abl e de cadena. Su si nt axi s
es de l a f or ma:
N

VARI ABLE = I nput ( , #NMERO_ARCHI VO) N

A di f er enci a de l a sent enci a I nput , l a f unci n I nput ( )
r et or na t odos l os car act er es que l ee, i ncl uyendo comas,
r et or nos de car r o, cont i nuaci ones de l nea, et c. Por ej empl o:

Di mN1 As I nt eger , S As St r i ng
N1 = Fr eeFi l e( )
Open C: \ DATA\ DEMO. TXT For Out put As #N1
Pr i nt #N1, L nea de pr ueba 1
Pr i nt #N1, L nea de pr ueba 2
Cl ose #N1
Open C: \ DATA\ DEMO. TXT For I nput As #N1
S = I nput ( 24, #N1)
MsgBox S

La ej ecuci n del cdi go ant er i or pr oduce l a si gui ent e sal i da:


Funcin EOF


Pg. 165
Especi f i ca si se ha l l egado al f i nal de un ar chi vo. Su
si nt axi s es de l a f or ma:

VARI ABLE = EOF( NMERO_ARCHI VO)

Se ut i l i za EOF( ) par a evi t ar pr oduci r un er r or al i nt ent ar
obt ener i nf or maci n ms al l del f i nal del ar chi vo. EOF( )
r et or na un val or Tr ue si se ha al canzado el f i nal del ar chi vo y
Fal se en caso cont r ar i o. Por ej empl o:

Di mN1 As I nt eger
Di mCADENA As St r i ng
N1 = Fr eeFi l e( )
Open C: \ DATA\ DEMO. TXT For I nput As #N1
Whi l e Not EOF( N1)
Li ne I nput #N1, CADENA
Pr i nt CADENA
Wend
Cl ose #N1

Est e segment o de cdi go l ee y vi sual i za cada l nea del
ar chi vo de t ext o DEMO. TXT. El bucl e f i nal i za cuando se det ect a
el f i nal del ar chi vo. Par a que el cdi go ant er i or f unci one
cor r ect ament e, no ol vi de poner l a pr opi edad Aut oRedr aw del
f or mul ar i o a Tr ue.


Pg. 166
Como ej empl o f i nal del uso de ar chi vos secuenci al es vamos
a desar r ol l ar un senci l l o edi t or de t ext o. Est e edi t or aunque
sus pr est aci ones son bast ant e l i mi t adas va ha ser vi r par a poner
en pr ct i ca l o apr endi do r eci ent ement e.



El men que se muest r a en l a f i gur a obedece a l a si gui ent e
descr i pci n:

Caption Name ShortCut
&Ar chi vo
MnuAr chi vo Ni nguno
. . . &Nuevo
MnuAr chi voNuevo Ni nguno
. . . &Abr i r
MnuAr chi voAbr i r Ni nguno
. . . &Guar dar
MnuAr chi voGuar dar Ni nguno
. . . - MnuAr chi voLi nea Ni nguno
. . . &Sal i r
MnuAr chi voSal i r Ct r l + X
Luego pr oceda a ubi car l os si gui ent es cont r ol es sobr e el
f or mul ar i o:


Pg. 167
1 cuadr o de t ext o
1 cont r ol CommonDi al og

Segui dament e debe est abl ecer l as pr opi edades que se
i ndi can:

Form1
Nombr e Fr mEdi t or
Capt i on Edi t or

Text1
Nombr e Txt Edi t or
Mul t i Li ne Tr ue
Scr ol l Bar s 3- Bot h
Text

CommonDialog1
Nombr e CommonDi al og1
Cancel Er r or Tr ue

Una vez est abl eci das l as pr opi edades de l a i nt er f az
i ngr esar el cdi go que se muest r a:

Pr i vat e Sub For m_Resi ze( )
Txt Edi t or . Move 0, 0, Scal eWi dt h, Scal eHei ght
End Sub
Pr i vat e Sub MnuAr chi voNuevo_Cl i ck( )
Txt Edi t or =
End Sub



Pg. 168
Pr i vat e Sub MnuAr chi voAbr i r _Cl i ck( )
Di mFI LTRO As St r i ng, FI LE As St r i ng
Di mN1 As I nt eger , CADENA As St r i ng
On Er r or GoTo ERROR_ABRI R
FI LTRO = Ar chi vos de t ext o ( *. TXT) | *. TXT
CommonDi al og1. Fi l t er = FI LTRO
CommonDi al og1. ShowOpen
FI LE = CommonDi al og1. Fi l eName
N1 = Fr eeFi l e( )
CADENA =
Txt Edi t or =
Open FI LE For I nput As #N1
Whi l e Not EOF( N1)
I nput #N1, CADENA
Txt Edi t or = Txt Edi t or & CADENA & vbCr Lf
Wend
Cl ose #N1
Fr mEdi t or . Capt i on = Edi t or - & FI LE
SALI R_ABRI R:
Exi t Sub
ERROR_ABRI R:
MsgBox Er r . Descr i pt i on
Resume SALI R_ABRI R
End Sub
Pr i vat e Sub MnuAr chi voGuar dar _Cl i ck( )
Di mFI LTRO As St r i ng, FI LE As St r i ng
Di mN1 As I nt eger


Pg. 169
On Er r or GoTo ERROR_GUARDAR
FI LTRO = Ar chi vos de t ext o ( *. TXT) | *. TXT
CommonDi al og1. Fi l t er = FI LTRO
CommonDi al og1. ShowSave
FI LE = CommonDi al og1. Fi l eName
N1 = Fr eeFi l e( )
Open FI LE For Out put As #N1
Pr i nt #N1, Txt Edi t or
Cl ose #N1
Fr mEdi t or . Capt i on = Edi t or - & FI LE
SALI R_GUARDAR:
Exi t Sub
ERROR_GUARDAR:
MsgBox Er r . Descr i pt i on
Resume SALI R_GUARDAR
End Sub

La sent enci a Er r . Descr i pt i on r et or na una cadena que
cont i ene l a descr i pci n asoci ada a un er r or en t i empo de
ej ecuci n.
La sent enci a Resume cont i nua l a ej ecuci n en l a et i quet a
especi f i cada cuando t er mi na una r ut i na de gest i n de er r or es.
ARCHIVOS DE ACCESO ALEATORIO
En l os ar chi vo de acceso al eat or i o el al macenami ent o de
l os dat os se hace medi ant e r egi st r os ( t odos de l a mi sma


Pg. 170
l ongi t ud) , l o cual es son i dent i f i cados medi ant e un ni co nmer o
denomi nado ndi ce. El pr i mer r egi st r o de un ar chi vo t i ene como
ndi ce 1, el segundo t i ene ndi ce 2 y as sucesi vament e. La
i nf or maci n cont eni da en un ar chi vo de est e t i po puede ser
accedi da en cual qui er secuenci a, ya que cada r egi st r o
i ndi vi dual se asoci a con su r espect i vo ndi ce y puede ser
l e do, escr i t o o act ual i zado.
Las sent enci as y f unci ones necesar i as par a mani pul ar
ar chi vos de t i po al eat or i o se pr esent an a cont i nuaci n.

Sentencia Open
Per mi t e abr i r un ar chi vo. La si nt axi s par a acceder
al eat or i ament e a un ar chi vo es:

Open NOMBRE_ARCHI VO For RandomAs #NMERO_ARCHI VO Len = LON_REG

Donde NOMBRE_ARCHI VO es una cadena que especi f i ca el
nombr e del ar chi vo que se debe ser abi er t o en modo Random.
El par met r o NMERO_ARCHI VO es un ent er o cuyo val or est
compr endi do ent r e 1 y 511. Est e nmer o ser asoci ado con el
nombr e del ar chi vo mi ent r as per manezca abi er t o.
LON_REG es un ent er o que est abl ece l a l ongi t ud del
r egi st r o par a ar chi vos al eat or i os.
Sentencia Put
Per mi t e gr abar un r egi st r o en un ar chi vo abi er t o par a
acceso al eat or i o. Su si nt axi s es:


Pg. 171

Put #NMERO_ARCHI VO, NMERO_REG, VARI ABLE

Donde NMERO_ARCHI VO es el nmer o baj o el cual se abr i el
ar chi vo, NMERO_REG es el nmer o cor r espondi ent e al r egi st r o
que se va ha gr abar y VARI ABLE cont i ene l os dat os a escr i bi r en
el ar chi vo. Por ej empl o:

Di mN1 As I nt eger , REG As DI STRI TO
REG. I D_DI STRI TO = L09
REG. NOMBRE = Chor r i l l os
N1 = Fr eeFi l e( )
Open C: \ DATA\ RAND1. DAT For RandomAs #N1 Len = Len( REG)
Put #N1, 1, REG
Cl ose #N1

El segment o de cdi go ant er i or ut i l i za una var i abl e REG de
t i po DI STRI TO, cuya def i ni ci n es l a si gui ent e:

Pr i vat e Type DI STRI TO
I D_DI STRI TO As St r i ng * 3
NOMBRE As St r i ng * 30
End Type
Sentencia Get
Per mi t e l eer un r egi st r o pr ocedent e de un ar chi vo de
acceso al eat or i o, al macenando l os dat os en una var i abl e
espec f i ca. Su si nt axi s es de l a f or ma:


Pg. 172

Get #NMERO_ARCHI VO, NMERO_REG, VARI ABLE

Donde NMERO_ARCHI VO es el nmer o baj o el cual se abr i el
ar chi vo, NMERO_REG es el nmer o cor r espondi ent e al r egi st r o
que se va ha l eer y VARI ABLE al macena l os dat os del r egi st r o
l e do. Por ej empl o:

Di mN1 As I nt eger , I As I nt eger , REG As DI STRI TO
N1 = Fr eeFi l e( )
Open C: \ DATA\ RAND1. DAT For RandomAs #N1 Len = Len( REG)
I = 1
Whi l e Not EOF( #N1)
Get #N1, I , REG
MsgBox REG. I D_DI STRI TO & & REG. NOMBRE
I = I + 1
Wend
Cl ose #N1

Cuando EOF( ) se ut i l i za con un ar chi vo al eat or i o, r et or na
un val or Tr ue si una sent enci a Get i nt ent a l eer y no puede
por que ha al canzado el f i nal del ar chi vo.
Funcin LOF
Ret or na el nmer o de byt es ( car act er es) que ocupa un
det er mi nado ar chi vo abi er t o medi ant e l a sent enci a Open. Su
si nt axi s es:


Pg. 173

VARI ABLE = LOF( #NMERO_ARCHI VO)

Donde NMERO_ARCHI VO es el nmer o con el que se abr i el
ar chi vo.
Est a f unci n es de ut i l i dad, por que apl i cada a un ar chi vo
de acceso al eat or i o, per mi t e conocer el nmer o de r egi st r os
al macenados en el ar chi vo. Par a el l o debe di vi di r el val or
r et or nado ent r e l a l ongi t ud del r egi st r o. Como ej empl o,
consi der e l o si gui ent e:

Di mN1 As I nt eger , REG As DI STRI TO
Di mNUM_REGS As I nt eger , I As I nt eger
N1 = Fr eeFi l e( )
Open C: \ DATA\ RAND1. DAT For RandomAs #N1 Len = Len( REG)
NUM_REGS = LOF( N1) / Len( REG)
For I = 1 To NUM_REGS
Get #N1, I , REG
MsgBox REG. I D_DI STRI TO & & REG. NOMBRE
Next
Cl ose #N1
Funcin Loc
Est a f unci n r et or na l a posi ci n act ual dent r o de un
f i cher o. Su si nt axi s es:

VARI ABLE = Loc( #NMERO_ARCHI VO)


Pg. 174

La f unci n Loc( ) apl i cada a un ar chi vo de acceso al eat or i o
r et or na el nmer o del l t i mo r egi st r o l e do o gr abado en el
ar chi vo especi f i cado. Por ej empl o:

Di mN1 As I nt eger , REG As DI STRI TO
Di mNUM_REGS As I nt eger , I As I nt eger
N1 = Fr eeFi l e( )
Open C: \ DATA\ RAND1. DAT For RandomAs #N1 Len = Len( REG)
NUM_REGS = LOF( N1) / Len( REG)
I = 1
Do Whi l e Tr ue
Get #N1, I , REG
MsgBox REG. I D_DI STRI TO & & REG. NOMBRE
I = I + 1
I f Loc( N1) = NUM_REGS Then Exi t Do
Loop
Cl ose #N1

La sent enci a I f f i nal i za el bucl e si se ha al canzado el
l t i mo r egi st r o.
Como ej empl o f i nal vamos a desar r ol l ar una apl i caci n que
per mi t a r eal i zar el mant eni mi ent o de l os dat os al macenados en
el ar chi vo C: \ DATA\ CURSO. DAT.



Pg. 175


Los bot ones ubi cados en el mar co Navegador ( Pr i mer o,
Ant er i or , Si gui ent e y Ul t i mo, de i zqui er da a der echa) per mi t en
despl azar se a t r avs de l os r egi st r os del ar chi vo. Los bot ones
ubi cados en el mar co Mant eni mi ent o ( Nuevo, Edi t ar , Guar dar y
El i mi nar , de i zqui er da a der echa) per mi t en r eal i zar l as
oper aci ones bsi cas de mant eni mi ent o de l os r egi st r os.
Par a el desar r ol l o de l a pr esent e apl i caci n ubi car l os
si gui ent es cont r ol es al f or mul ar i o:

3 mar cos
4 et i quet as
4 cuadr os de t ext o
9 bot ones de comando
Segui dament e pr oceda a est abl ecer l as pr opi edades que se
i ndi can:

Form1


Pg. 176
Nombr e Fr mCur so
Capt i on Mant eni mi ent o de cur sos
Bor der St yl e 3- Fi xed Di al og
St ar UpPosi t i on 2- Cent er Scr een

Frame1
Nombr e Fr aI ngr eso
Capt i on

Frame2
Nombr e Fr aNavegador
Capt i on Navegador

Frame3
Nombr e Fr aMant eni mi ent o
Capt i on Mant eni mi ent o

Label1
Nombr e Lbl Codi go
Capt i on Cdi go:

Label2
Nombr e Lbl Nombr e
Capt i on Nombr e:

Label3
Nombr e Lbl Vacant es
Capt i on Vacant es:

Label4
Nombr e Lbl Pr of esor
Capt i on Pr of esor :



Pg. 177
Text1
Nombr e Txt Codi go
Locked Tr ue
Text

Text2
Nombr e Txt Nombr e
Locked Tr ue
Text

Text3
Nombr e Txt Vacant es
Locked Tr ue
Text

Text4
Nombr e Txt Pr of esor
Locked Tr ue
Text

Command1
Nombr e CmdPr i mer o
Capt i on
Pi ct ur e C: \ FundVB\ Bi t maps\ Fi r st . bmp
St yl e 1- Gr aphi cal


Command2
Nombr e CmdAnt er i or
Capt i on
Pi ct ur e C: \ FundVB\ Bi t maps\ Pr evi ous. bmp


Pg. 178
St yl e 1- Gr aphi cal

Command3
Nombr e CmdSi gui ent e
Capt i on
Pi ct ur e C: \ FundVB\ Bi t maps\ Next . bmp
St yl e 1- Gr aphi cal

Command4
Nombr e CmdUl t i mo
Capt i on
Pi ct ur e C: \ FundVB\ Bi t maps\ Last . bmp
St yl e 1- Gr aphi cal

Command5
Nombr e CmdNuevo
Capt i on
Pi ct ur e C: \ FundVB\ Bi t maps\ New. bmp
St yl e 1- Gr aphi cal

Command6
Nombr e CmdEdi t ar
Capt i on
Pi ct ur e C: \ FundVB\ Bi t maps\ Edi t . bmp
St yl e 1- Gr aphi cal


Command7
Nombr e CmdGuar dar
Capt i on
Pi ct ur e C: \ FundVB\ Bi t maps\ Save. bmp


Pg. 179
St yl e 1- Gr aphi cal

Command8
Nombr e CmdEl i mi nar
Capt i on
Pi ct ur e C: \ FundVB\ Bi t maps\ Del et e. bmp
St yl e 1- Gr aphi cal

Command9
Nombr e CmdSal i r
Capt i on
&Sal i r
Pi ct ur e C: \ FundVB\ Bi t maps\ Exi t . bmp
St yl e 1- Gr aphi cal

Luego, pr oceda a t r anscr i bi r el cdi go most r ado a cont i nuaci n:

Pr i vat e Type CURSO
I D_CURSO As St r i ng * 3
NOMBRE As St r i ng * 30
VACANTES As I nt eger
PROFESOR As St r i ng * 25
ESTADO As Bool ean
End Type

Di mN1 As I nt eger , POSI CI ON As I nt eger
Di mREG As CURSO
Pr i vat e Sub MODO_EDI TAR( ByVal Ok As Bool ean)
Txt Codi go. Locked = Not Ok
Txt Nombr e. Locked = Not Ok


Pg. 180
Txt Vacant es. Locked = Not Ok
Txt Pr of esor . Locked = Not Ok
CmdNuevo. Enabl ed = Not Ok
CmdEdi t ar . Enabl ed = Not Ok
CmdGuar dar . Enabl ed = Ok
CmdEl i mi nar . Enabl ed = Not Ok
CmdPr i mer o. Set Focus
I f Ok Then Txt Codi go. Set Focus
End Sub

Pr i vat e Sub ABRI R_ARCHI VO( )
On Er r or GoTo ERROR_ABRI R:
N1 = Fr eeFi l e( )
Open C: \ DATA\ CURSO. DAT For RandomAs #N1 Len = Len( REG)
SALI R_ABRI R:
Exi t Sub
ERROR_ABRI R:
MsgBox Er r . Descr i pt i on
Resume SALI R_ABRI R:
End Sub

Pr i vat e Sub For m_Load( )
Cal l ABRI R_ARCHI VO
End Sub
Pr i vat e Sub For m_Act i vat e( )
MODO_EDI TAR Fal se
Cal l CmdPr i mer o_Cl i ck


Pg. 181
End Sub

Pr i vat e Sub CmdPr i mer o_Cl i ck( )
POSI CI ON = 1
Get #N1, POSI CI ON, REG
Txt Codi go = REG. I D_CURSO
Txt Nombr e = REG. NOMBRE
Txt Vacant es = St r ( REG. VACANTES)
Txt Pr of esor = REG. PROFESOR
End Sub

Pr i vat e Sub CmdAnt er i or _Cl i ck( )
POSI CI ON = Loc( N1) - 1
I f POSI CI ON = 0 Then
Get #N1, 1, REG
MsgBox Est amos en el pr i mer r egi st r o
El se
Get #N1, POSI CI ON, REG
End I f
Txt Codi go = REG. I D_CURSO
Txt Nombr e = REG. NOMBRE
Txt Vacant es = St r ( REG. VACANTES)
Txt Pr of esor = REG. PROFESOR
End Sub
Pr i vat e Sub CmdSi gui ent e_Cl i ck( )
Di mULTI MO As I nt eger
ULTI MO = LOF( N1) / Len( REG)


Pg. 182
POSI CI ON = Loc( N1) + 1
I f POSI CI ON = ULTI MO + 1 Then
Get #N1, ULTI MO, REG
MsgBox Est amos en el l t i mo r egi st r o
El se
Get #N1, POSI CI ON, REG
End I f
Txt Codi go = REG. I D_CURSO
Txt Nombr e = REG. NOMBRE
Txt Vacant es = St r ( REG. VACANTES)
Txt Pr of esor = REG. PROFESOR
End Sub

Pr i vat e Sub CmdUl t i mo_Cl i ck( )
POSI CI ON = LOF( N1) / Len( REG)
I f POSI CI ON <> 0 Then
Get #N1, POSI CI ON, REG
Txt Codi go = REG. I D_CURSO
Txt Nombr e = REG. NOMBRE
Txt Vacant es = St r ( REG. VACANTES)
Txt Pr of esor = REG. PROFESOR
End I f
End Sub
Pr i vat e Sub CmdNuevo_Cl i ck( )
POSI CI ON = LOF( N1) / Len( REG) + 1
MODO_EDI TAR Tr ue


Pg. 183
Txt Codi go =
Txt Nombr e =
Txt Vacant es =
Txt Pr of esor =
Txt Codi go. Set Focus
End Sub

Pr i vat e Sub CmdEdi t ar _Cl i ck( )
MODO_EDI TAR Tr ue
End Sub

Pr i vat e Sub CmdGuar dar _Cl i ck( )
REG. I D_CURSO = Tr i m( Txt Codi go)
REG. NOMBRE = Tr i m( Txt Nombr e)
REG. VACANTES = Txt Vacant es
REG. PROFESOR = Tr i m( Txt Pr of esor )
REG. ESTADO = Tr ue
Put #N1, POSI CI ON, REG
MODO_EDI TAR Fal se
End Sub

Pr i vat e Sub CmdEl i mi nar _Cl i ck( )
Di mN2 As I nt eger
Di mI As I nt eger , J As I nt eger
REG. ESTADO = Fal se
Put #N1, POSI CI ON, REG
N2 = Fr eeFi l e( )


Pg. 184
Open C: \ DATA\ TEMPO. DAT For RandomAs #N2 Len = Len( REG)
I = 1
J = 1
Whi l e Not EOF( N1)
Get #N1, I , REG
I f REG. ESTADO Then
Put #N2, J , REG
J = J + 1
End I f
I = I + 1
Wend
Cl ose #N1, #N2
Ki l l C: \ DATA\ CURSO. DAT
Name C: \ DATA\ TEMPO. DAT As C: \ DATA\ CURSO. DAT
Cal l ABRI R_ARCHI VO
Cal l CmdPr i mer o_Cl i ck
End Sub

Pr i vat e Sub CmdSal i r _Cl i ck( )
Cl ose #N1
End
End Sub
ARCHIVOS DE ACCESO BINARIO


Pg. 185
Un ar chi vo bi nar i o cont i ene ms que si mpl ement e t ext o.
Puede cont ener i mgenes, soni do, hoj as de cl cul o, o document os
concebi dos par a el pr ocesami ent o de t ext o.
El acceso bi nar i o per mi t e l a posi bi l i dad de t r at ar
cual qui er ar chi vo como una secuenci a numer ada de byt es,
i ndependi ent ement e de l a est r uct ur a del mi smo. Los byt es ocupan
l as posi ci ones 1, 2, 3, et c. Por ej empl o, si se r equi er e
r ecuper ar un dat o de t i po ent er o ( I nt eger , 2 byt es) de l a
posi ci n 3 del ar chi vo, ser an r ecuper ados l os byt es 3 y 4 par a
poder f or mar el val or del ent er o. Por t ant o, ant es de t r abaj ar
con ar chi vos bi nar i os es necesar i o conocer cmo f uer on escr i t os
l os dat os que cont i ene par a poder r ecuper ar l os cor r ect ament e.

Sentencia Open
Per mi t e abr i r un ar chi vo par a acceso bi nar i o. Su si nt axi s
es de l a f or ma:

Open NOMBRE_ARCHI VO For Bi nar y As #NMERO_ARCHI VO

Donde NOMBRE_ARCHI VO es una cadena que especi f i ca el
nombr e del ar chi vo que se debe ser abi er t o en modo Bi nar y.
El par met r o NMERO_ARCHI VO es un ent er o cuyo val or est
compr endi do ent r e 1 y 511. Est e nmer o ser asoci ado con el
nombr e del ar chi vo mi ent r as per manezca abi er t o.

Sentencia Put


Pg. 186
Per mi t e gr abar en un ar chi vo bi nar i o t ant os byt es como
haya en una var i abl e. Su si nt axi s es:

Put #NMERO_ARCHI VO, POSI CI N, VARI ABLE

Donde NMERO_ARCHI VO es el nmer o baj o el cual se abr i el
ar chi vo. POSI CI N es el nmer o de byt e a par t i r del cual se han
de gr abar l os dat os cont eni dos en VARI ABLE.

Sentencia Get
Per mi t e l eer de un ar chi vo bi nar i o t ant os byt es como
quepan en una var i abl e. Su si nt axi s es de l a f or ma:

Get #NMERO_ARCHI VO, POSI CI N, VARI ABLE

Donde NMERO_ARCHI VO es el nmer o baj o el cual se abr i el
ar chi vo. POSI CI N es el nmer o de byt e a par t i r del cual se han
de l eer l os dat os al macenados en VARI ABLE.

Sentencia Seek
Per mi t e si t uar l a posi ci n de l ect ur a o de escr i t ur a en
una posi ci n det er mi nada dent r o del ar chi vo. Su si nt axi s es:

Get #NMERO_ARCHI VO, POSI CI N, VARI ABLE

Donde POSI CI N es el nmer o de byt e a par t i r del cual
quer emos l eer o escr i bi r dent r o del ar chi vo.


Pg. 187
Como ej empl o vamos a desar r ol l ar una apl i caci n que
per mi t e guar dar ci f r ados l os t ext os i ngr esados en un cuadr o
de t ext o. Par a el l o cr ear un nuevo pr oyect o y ubi car en el
f or mul ar i o un cuadr o de t ext o ( Txt Mensaj e) y un bot n de
comando ( CmdCi f r ar ) . Luego, i ngr ese el si gui ent e cdi go:

Const CLAVE As I nt eger = 3
Pr i vat e Sub CmdCi f r ar _Cl i ck( )
Di mN1 As I nt eger , I As I nt eger
Di mCAR As St r i ng * 1
N1 = Fr eeFi l e( )
Open C: \ DATA\ DEMO. BI N For Bi nar y As #N1
For I = 1 To Len( Txt Mensaj e)
CAR = Chr ( ( Asc( Mi d( Txt Mensaj e, I , 1) ) + CLAVE) Mod 256)
Put #N1, , CAR
Next
Cl ose #N1
End Sub

En el cdi go l a f unci n Mi d( ) obt i ene el car ct er I de
l a caj a de t ext o, l a f unci n Asc( ) obt i ene su cdi go ANSI , al
que sumamos el val or de CLAVE, par a despus obt ener el r est o de
l a di vi si n ent r e 256, con el f i n de mant ener nos en el r ango de
0 a 255 ( r ango de val or es de l a t abl a de car act er es ANSI ) . Por
l t i mo, l a f unci n Chr ( ) r et or na el car ct er cor r espondi ent e al
val or obt eni do, el cual es al macenado en el ar chi vo bi nar i o.


Pg. 188
Por ej empl o si i ngr esa el mensaj e HOLA se al macena en el
ar chi vo como KROD ( l o puede compr obar medi ant e el Bl oc de
not as) , ya que el val or ANSI de l a H es 72, est e car ct er al
sumar l e el val or de CLAVE ser a el 75 ( 72 + 3) , que es l a K,
y as sucesi vament e ( ver l a t abl a de car act er es ANSI ) .
El desci f r ado ser a el pr oceso i nver so, par a el l o cr ear un
nuevo f or mul ar i o y ubi car un bot n de comando ( CmdDesci f r ar ) ,
l uego i ngr esar el cdi go si gui ent e:

Const CLAVE As I nt eger = 3
Pr i vat e Sub CmdDesci f r ar _Cl i ck( )
Di mN1 As I nt eger , I As I nt eger
Di mCAR As St r i ng * 1, CADENA As St r i ng
N1 = Fr eeFi l e( )
Open C: \ DATA\ DEMO. BI N For Bi nar y As #N1
Get #N1, , CAR
Whi l e Not EOF( N1)
CAR = Chr ( ( Asc( CAR) + ( 256 - Val ( CLAVE) ) ) Mod 256)
CADENA = CADENA & CAR
Get #N1, , CAR
Wend
MsgBox CADENA
End Sub




Pg. 189
CAPTULO 8


GRFICOS

Un gr f i co t i ene por f i nal i dad f aci l i t ar l a l egi bi l i dad de
l a i nf or maci n que se pr esent a: un gr f i co val e ms que mi l
pal abr as.

LOS COLORES
En Vi sual Basi c se pueden mani pul ar l os col or es medi ant e
t r es f or mas di f er ent es: cdi go hexadeci mal , l a f unci n RGB( ) y
l a f unci n QBCol or ( ) .

Cdigo Hexadecimal
Un cdi go de col or se compone de sei s d gi t os
hexadeci mal es, cuyos val or es van desde &H000000& ( cer o) hast a
&HFFFFFF& ( 16 777 215) . De f or ma pr ct i ca podemos gui ar nos
medi ant e:

&HAAVVRR&

Donde AA r epr esent a al col or azul , VV al col or ver de y RR
al col or r oj o. Todos l os dems col or es se obt i enen mezcl ando
est os t r es col or es.


Pg. 190
Como ej empl o consi der e l os si gui ent es cdi gos de col or es
que se pr esent an a cont i nuaci n:

AZUL = &HFF0000&
VERDE = &H00FF00&
ROJ O = &H0000FF&
NEGRO = &H000000&

La funcin RGB()
La f unci n RGB( ) r et or na un nmer o de t i po ent er o l ar go
( Long) que r epr esent a el val or de un col or . Su si nt axi s es:

COLOR = RGB( nROJ O, nVERDE, nAZUL)

Donde nROJ O, nVERDE, nAZUL son ent er os compr endi dos ent r e
0 y 255. La si gui ent e t abl a muest r a al gunos col or es est ndar y
sus val or es de nROJ O, nVERDE y nAZUL:

Color nROJO nVERDE nAZUL
Negr o 0 0 0
Azul 0 0 255
Ver de 0 255 0
Ci n 0 255 255
Roj o 255 0 0
Magent a 255 0 255
Amar i l l o 255 255 0
Bl anco 255 255 255


Pg. 191
El ej empl o ant er i or ( cdi go hexadeci mal ) ut i l i zando l a
f unci n RGB( ) ser si mi l ar a:

AZUL = RGB( 0, 0, 255)
VERDE = RGB( 0, 255, 0)
ROJ O = RGB( 255, 0, 0)
NEGRO = RGB( 0, 0, 0)

La funcin QBColor()
La f unci n QBCol or ( ) r et or na un nmer o de t i po ent er o l ar go
( Long) que r epr esent a el cdi go de col or RGB cor r espondi ent e al
nmer o de col or especi f i cado. Su si nt axi s es:

COLOR = QBCol or ( nCOLOR)

Donde el ar gument o nCOLOR es un ent er o ent r e 0 y 15; l os
val or es que puede t omar se pr esent an en l a si gui ent e t abl a:

Nmero Color Nmero Color
0 Negr o 8 Gr i s
1 Azul 9 Azul cl ar o
2 Ver de 10 Ver de cl ar o
3 Ci n 11 Ci n cl ar o
4 Roj o 12 Roj o cl ar o
5 Magent a 13 Magent a cl ar o
6 Amar i l l o 14 Amar i l l o cl ar o
7 Bl anco 15 Bl anco br i l l ant e


Pg. 192


Pg. 193
El ej empl o i ni ci al ( cdi go hexadeci mal ) ut i l i zando l a
f unci n QBCol or ( ) se sol uci ona como se muest r a a cont i nuaci n:

AZUL = QBCol or ( 1)
VERDE = QBCol or ( 2)
ROJ O = QBCol or ( 4)
NEGRO = QBCol or ( 0)

EL SISTEMA DE COORDENADAS
Todas l as oper aci ones gr f i cas descr i t as en est e cap t ul o
ut i l i zan el si st ema de coor denadas del r ea de di buj o ( que
puede ser l a pant al l a, un f or mul ar i o, un cuadr o de i magen, o
cual qui er ot r o cont enedor ) .
El si st ema de coor denadas es una cuadr cul a bi di mensi onal
que def i ne ubi caci ones del r ea de di buj o. Las ubi caci ones de
est a cuadr cul a se def i nen medi ant e l as coor denadas del r ea de
di buj o:

( X , Y )

Donde el val or de X es l a ubi caci n del punt o sobr e el
ej e X, con l a ubi caci n pr edet er mi nada ( cer o) en el ext r emo
i zqui er do. El val or de Y es l a ubi caci n del punt o sobr e el
ej e Y , con l a ubi caci n pr edet er mi nada ( cer o) en el ext r emo
super i or . Est e si st ema de coor denadas se i l ust r a en l a
si gui ent e f i gur a:


El si st ema de coor denadas de Vi sual Basi c t i ene l as
si gui ent es r egl as:

El si st ema de coor denadas pr edet er mi nado de cual qui er
cont enedor empi eza por l a coor denada ( 0, 0) en l a esqui na
super i or i zqui er da del cont enedor .
Las uni dades de medi da ut i l i zadas par a def i ni r l as
ubi caci ones a l o l ar go de l os ej es se denomi nan
col ect i vament e escal a. En Vi sual Basi c, cada ej e del
si st ema de coor denadas puede t ener su pr opi a escal a.
Todos l os mt odos gr f i cos ut i l i zan el si st ema de coor denadas
del cont enedor . Por ej empl o, l as i nst r ucci ones que di buj an
dent r o de un cuadr o de i magen ut i l i zan el si st ema de
coor denadas de di cho cont r ol .

Establecer las coordenadas de dibujo
Par a est abl ecer l as coor denadas de di buj o del cont enedor
se ut i l i zan l as pr opi edades Cur r ent X y Cur r ent Y de di cho
cont enedor .


Pg. 194
Por ej empl o, l as i nst r ucci ones si gui ent es est abl ecen l as
coor denadas de di buj o a l a esqui na super i or i zqui er da de un
cuadr o de i magen:

Pi ct ur e1. Cur r ent X = 0
Pi ct ur e1. Cur r ent Y = 0

De f or ma pr edet er mi nada, l os f or mul ar i os y l os cuadr os de
i magen ut i l i zan un si st ema de coor denadas en el que cada uni dad
cor r esponde a un t wi p ( 1 440 t wi ps equi val en a una pul gada y
567 t wi ps son apr oxi madament e un cent met r o) .

Cambiar la unidad de medida del sistema de coordenadas
Par a cambi ar l a uni dad de medi da del si st ema de
coor denadas su est abl ece l a pr opi edad Scal eMode a uno de l os
val or es enumer ados en l a t abl a si gui ent e:

Valor de
ScaleMode
Descripcin
1 Twi ps
2 Punt os
3 Pi xel es
4 Car act er es
5 Pul gadas
6 Mi l met r os
7 Cent met r os


Pg. 195
Por ej empl o l a si gui ent e or den est abl ece l a escal a a
pul gadas de un cuadr o de i magen:

Pi ct ur e1. Scal eMode = 5

Crear una escala personalizada
Par a cr ear una escal a per sonal i zada se pueden ut i l i zar l as
pr opi edades Scal eLef t , Scal eTop, Scal eWi dt h y Scal eHei ght de un
det er mi nado obj et o.
Las pr opi edades Scal eLef t y Scal eTop asi gnan val or es
numr i cos a l a esqui na super i or i zqui er da de un obj et o. Por
ej empl o, l as i nst r ucci ones si gui ent es est abl ecen el val or de l a
esqui na super i or i zqui er da de un cuadr o de i magen:

Pi ct ur e1. Scal eLef t = 100
Pi ct ur e1. Scal eTop = 100

Las pr opi edades Scal eWi dt h y Scal eHei ght def i nen l as
uni dades segn el ancho y el al t o r eal del r ea de di buj o ( si
el obj et o cambi a de t amao post er i or ment e, l as uni dades si guen
si endo l as mi smas) . Por ej empl o l as i nst r ucci ones si gui ent es
def i nen l a uni dad hor i zont al como 1/ 1 000 del ancho i nt er no
act ual del cuadr o de i magen y l a uni dad ver t i cal como 1/ 500 del
al t o i nt er no act ual del cuadr o de i magen:

Pi ct ur e1. Scal eWi dt h = 1000
Pi ct ur e1. Scal eHei ght = 500


Pg. 196
A maner a de ej empl o consi der e l a escal a most r ada en l a
si gui ent e f i gur a, l a cual t i ene Scal eLef t , Scal eTop, Scal eWi dt h
y Scal eHei ght est abl eci das t odas a 100.



Una f or ma ms ef i ci ent e de per sonal i zar l a escal a de un
si st ema de coor denadas es ut i l i zando el mt odo Scal e. Su
si nt axi s es:

OBJ ETO. Scal e ( X1, Y1) ( X2, Y2)

Donde l os val or es de ( X1, Y1) det er mi nan l as coor denadas
de l a esqui na super i or i zqui er da, l os val or es de ( X2, Y2)
det er mi nan l os val or es de l a esqui na i nf er i or der echa. Par a
obt ener el mi smo si st ema de coor denadas de ej empl o ant er i or
( donde se ut i l i z l as pr opi edades Scal eLef t , Scal eTop,
Scal eWi dt h y Scal eHei ght ) l a or den ser a l a si gui ent e:

Scal e ( 100, 100) - ( 200, 200)


Pg. 197
Donde es evi dent e que l as di f er enci as ent r e l as dos
coor denadas X y l as dos coor denadas Y det er mi nan l os
val or es de Scal eWi dt h y Scal eHei ght , r espect i vament e.

MTODOS GRFICOS
Vi sual Basi c pr opor ci ona var i os mt odos par a l a cr eaci n
de gr f i cos. Los mt odos gr f i cos, r esumi dos en l a t abl a
si gui ent e, son apl i cabl es a l os f or mul ar i os y a l os cuadr os de
i magen.

Mtodo Descripcin
Cl s Bor r a t odos l os gr f i cos y el r esul t ado del
mt odo Pr i nt .
Pset Di buj a un punt o i ndi vi dual .
Poi nt Devuel ve el col or de un punt o especi f i cado.
Li ne Di buj a una l nea, un r ect ngul o o un cuadr o
r el l eno.
Ci r cl e Di buj a una c r cul o, una el i pse o un ar co.
Pai nt Pi ct ur e Di buj a gr f i cos en ubi caci ones ar bi t r ar i as.
Pr i nt I mpr i me t ext o en f or mul ar i os y cuadr os de
i magen.

Para que la mayora de los mtodos grficos funcionen
correctamente la propiedad AutoRedraw del formulario debe est
activada, caso contrario el dibujo no se visualizar.


Pg. 198
Puntos
Par a el di buj o de punt os se usar el mt odo Pset , cuya
si nt axi s es:

OBJ ETO. Pset ( X, Y) , COLOR

Donde X, Y son val or es de t i po Si ngl e que i ndi can l as
coor denadas hor i zont al ( ej e X) y ver t i cal ( ej e Y) del punt o que
se va a di buj ar . COLOR es un ent er o l ar go ( Long) que i ndi ca el
col or RGB especi f i cado par a el punt o, si se omi t e se usar el
val or act ual de l a pr opi edad For eCol or de OBJ ETO.
Como ej empl o vamos a cr ear una senci l l a apl i caci n que
per mi t a di buj ar punt os en l a posi ci n especi f i cada medi ant e el
r at n, con l a posi bi l i dad de poder sel ecci onar col or es ( t i po
Pai nt ) .




Pg. 199
Par a el desar r ol l o de l a pr esent e apl i caci n pr oceda a
cr ear un nuevo pr oyect o y agr egar al f or mul ar i o 34 cuadr os de
i magen. Luego i ngr esar el cdi go most r ado.

Objeto Nombre Descripcin
Pi ct ur e1 . . . Pi ct ur e32 Pi cCol or Opci ones de col or
Pi ct ur e33 Pi cMuest r a Col or act ual ut i l i zado
Pi ct ur e34 Pi cLi enzo Ar ea de di buj o

Di mCOLOR As Si ngl e
Pr i vat e Sub For m_Load( )
Pi cLi enzo. Scal eMode = 3
Pi cLi enzo. Dr awWi dt h = 5
COLOR = RGB( 0, 0, 0)
End Sub

Pr i vat e Sub Pi cCol or _Cl i ck( I ndex As I nt eger )
COLOR = Pi cCol or ( I ndex) . BackCol or
Pi cMuest r a. BackCol or = COLOR
End Sub

Pr i vat e Sub Pi cLi enzo_MouseDown( But t on As I nt eger , _
Shi f t As I nt eger , X As Si ngl e, Y As Si ngl e)
I f But t on = vbLef t But t on Then
Pi cLi enzo. PSet ( X, Y) , COLOR
End I f
End Sub


Pg. 200
En el ej empl o ant er i or se ut i l i za l a pr opi edad Dr awWi dt h,
l a cual si r ve par a f i j ar el t amao del punt o di buj ado.
Par a que el mt odo Pset f unci one cor r ect ament e l a
pr opi edad Scal eMode debe est ar est abl eci da a pi xel es.

Lneas, rectngulos y cuadros rellenos
Par a di buj ar l neas, r ect ngul os o cuadr os r el l enos
ut i l i ce el mt odo Li ne, cuya si nt axi s es:

OBJ ETO. Li ne ( X1, Y1) - ( X2, Y2) , COLOR, B/ BF

Donde X1, Y1 son val or es de t i po Si ngl e que i ndi can l as
coor denadas del punt o i ni ci al par a l a l nea o el r ect ngul o.
X2, Y2 son val or es de t i po Si ngl e que i ndi can l as coor denadas
del punt o f i nal par a l a l nea o el r ect ngul o que se est
di buj ando. COLOR es un ent er o l ar go ( Long) que i ndi ca el col or
RGB especi f i cado par a di buj ar l a l nea, si se omi t e se usar el
val or act ual de l a pr opi edad For eCol or de OBJ ETO. Los
par met r os B y BF son opci onal es: B hace que se di buj e un
r ect ngul o usando l as coor denadas par a especi f i car l as esqui nas
opuest as del mi smo. BF especi f i ca que el cuadr o se r el l ena con
el mi smo col or especi f i cado medi ant e el par met r o COLOR.
A maner a de ej empl o vamos a mej or ar nuest r o senci l l o
Edi t or gr f i co, de t al f or ma que adems de di buj ar punt os
per mi t a t ambi n di buj ar l neas cuando se mant enga pul sado el
bot n i zqui er do del r at n.


Pg. 201


Par a l ogr ar nuest r o comet i do aadi r el si gui ent e cdi go a
l a apl i caci n ant er i or :

Pr i vat e Sub Pi cLi enzo_MouseMove( But t on As I nt eger , _
Shi f t As I nt eger , X As Si ngl e, Y As Si ngl e)
I f But t on = vbLef t But t on Then
Pi cLi enzo. Li ne - ( X, Y) , COLOR
End I f
End Sub

Ot r o ej empl o senci l l o par a i l ust r ar como se usa el mt odo
Li ne par a di buj ar r ect ngul os y cuadr os r el l enos se pr esent a a
cont i nuaci n, consi st e en di buj ar una bander a di r ect ament e
sobr e el f or mul ar i o, en est e caso ser l a bander a de mi pa s:
Per .


Pg. 202


Par a est e ej empl o cr ear una nueva apl i caci n e i ngr esar el
cdi go most r ado:

Pr i vat e Sub For m_Cl i ck( )
Hei ght = 3 * 1440
Wi dt h = 5 * 1440
BackCol or = QBCol or ( 12)
For eCol or = QBCol or ( 15)
Li ne ( Wi dt h / 3, 0) - ( ( Wi dt h / 3) * 2, Hei ght ) , , BF
End Sub

Crculos, elipses y arcos
Par a di buj ar c r cul os, el i pses o ar cos se ut i l i za el
mt odo Ci r cl e, cuya si nt axi s es:

OBJ ETO. Ci r cl e ( X, Y) , RADI O, COLOR, I NI CI O, FI N, ASPECTO


Pg. 203
Donde X, Y son val or es de t i po Si ngl e que i ndi can l as
coor denadas par a el punt o cent r al del c r cul o, el i pse o ar co.
RADI O es un val or de t i po Si ngl e que i ndi ca el r adi o del
c r cul o, el i pse o ar co. COLOR es un val or ent er o de t i po Long
que i ndi ca el col or RGB del cont or no del c r cul o, el i pse o
ar co ( es opci onal ) . I NI CI O y FI N son val or es de t i po Si ngl e,
que especi f i can ( en r adi anes) l as posi ci ones de i ni ci o y de f i n
del ar co ( son opci onal es) . ASPECTO es un val or de t i po Si ngl e
que i ndi ca l a r el aci n de aspect o del c r cul o, el val or
pr edet er mi nado es 1. 0, l o que pr oduce un c r cul o per f ect o ( no
el pt i co) en cual qui er pant al l a ( opci onal ) .
A maner a de ej empl o vamos a mej or an ms nuest r o Edi t or
gr f i co de t al maner a que se podr di buj ar punt os, l neas,
r ect ngul os, c r cul os y el i pses.





Pg. 204
Par a el desar r ol l o de l a pr esent e apl i caci n se debe
aadi r al ej empl o ant er i or 5 bot ones de comandos y f or mar una
mat r i z de cont r ol es ( CmdFor ma) . Luego i ngr esar el si gui ent e
cdi go:

Di mCOLOR As Si ngl e
Di mFORMA As I nt eger
Di mX1 As Si ngl e, Y1 As Si ngl e, X2 As Si ngl e, Y2 As Si ngl e
Pr i vat e Sub CmdFor ma_Cl i ck( I ndex As I nt eger )
FORMA = I ndex + 1
End Sub

Pr i vat e Sub For m_Load( )
COLOR = RGB( 0, 0, 0)
FORMA = 1
Pi cLi enzo. Scal eMode = 3
Pi cLi enzo. Dr awWi dt h = 3
End Sub

Pr i vat e Sub Pi cCol or _Cl i ck( I ndex As I nt eger )
COLOR = Pi cCol or ( I ndex) . BackCol or
Pi cMuest r a. BackCol or = COLOR
End Sub

Pr i vat e Sub Pi cLi enzo_MouseDown( But t on As I nt eger , Shi f t As I nt eger , _
X As Si ngl e, Y As Si ngl e)
I f But t on = vbLef t But t on Then
X1 = X
Y1 = Y
End I f
End Sub


Pg. 205
Pr i vat e Sub Pi cLi enzo_MouseUp( But t on As I nt eger , Shi f t As I nt eger , _
X As Si ngl e, Y As Si ngl e)
I f But t on = vbLef t But t on Then
X2 = X
Y2 = Y
RADI O = Sqr ( ( X1 - X2) * ( X1 - X2) + ( Y1 - Y2) * ( Y1 - Y2) ) / 2
Sel ect Case FORMA
Case 1
Pi cLi enzo. PSet ( X, Y) , COLOR
Case 2
Pi cLi enzo. Li ne - ( X, Y) , COLOR
Case 3
Pi cLi enzo. Li ne ( X1, Y1) - ( X2, Y2) , COLOR, B
Case 4
Pi cLi enzo. Ci r cl e ( X, Y) , RADI O, COLOR
Case 5
Pi cLi enzo. Ci r cl e ( X, Y) , RADI O, COLOR, , , 0. 5
End Sel ect
End I f
End Sub

CONTROLES GRFICOS
Vi sual Basi c pr opor ci ona t r es cont r ol es gr f i cos di seados
par a cr ear ef ect os gr f i cos en l as apl i caci ones:

Cont r ol I mage ( est udi ado en el Cap t ul o 4)
Cont r ol Li ne
Cont r ol Shape


Pg. 206
Control Line
Li ne es un cont r ol gr f i co que se muest r a como una l nea
hor i zont al , ver t i cal o di agonal .
El cont r ol Li ne t i ene una f unci onal i dad l i mi t ada y est
pensado par a usos senci l l os. Par a usos ms avanzados debe usar
el mt odo Li ne.

Propiedad Descripcin
Bor der Col or Devuel ve o est abl ece el col or de l a l nea.
Bor der St yl e Devuel ve o est abl ece el est i l o de l a l nea.
Bor der Wi dt h Devuel ve o est abl ece el ancho de l a l nea.
X1, Y1, X2, Y2 Devuel ven o est abl ecen l as coor denadas del
punt o i ni ci al ( X1, Y1) y del punt o f i nal
( X2, Y2) de l a l nea.

Control Shape
Shape es un cont r ol gr f i co que se muest r a como un
r ect ngul o, un cuadr ado, una el i pse, un c r cul o, un r ect ngul o
r edondeado o un cuadr ado r edondeado.
El cont r ol Shape pr esent a pr opi edades si mi l ar es al cont r ol
Li ne ( Bor der Col or , Bor der St yl e, Bor der Wi dt h) . Adi ci onal ment e,
l a pr opi edad Shape del cont r ol Shape pr opor ci ona sei s f or mas
pr edef i ni das. En l a t abl a si gui ent e se enumer an t odas l as
f or mas pr edef i ni das, sus val or es y l as const ant es de Vi sual
Basi c equi val ent es:


Pg. 207
Forma Estilo Constante
Rect ngul o 0 vbShapeRect angl e
Cuadr ado 1 vbShapeSquar e
El i pse 2 vbShapeOval
C r cul o 3 vbShapeCi r cl e
Rect ngul o r edondeado 4 vbShapeRoundedRect angl e
Cuadr ado r edondeado 5 vbShapeRoundedSquar e

Las sei s f or mas pr edef i ni das que pr esent a el cont r ol Shape
se muest r an en el si gui ent e f or mul ar i o:



GRAFICACIN MATEMTICA
Como l a mayor par t e de l as ecuaci ones mat emt i cas expr esa
r el aci ones compl i cadas en una, dos t r es o ms di mensi ones,
t r at ar de ent ender l as si n gr f i cas es casi l o mi smo que t r at ar
de cami nar con l os oj os vendados.


Pg. 208
Funciones algebraicas
Como ej empl o de est e t i po de gr f i cas vamos a di buj ar una
par bol a, cuya ecuaci n mat emt i ca ( ecuaci n gener al de segundo
gr ado) es de l a f or ma:

2
( ) f x Ax Bx C = + +



Par a r eal i zar l a pr esent e apl i caci n cr ear un nuevo
pr oyect o y aadi r al f or mul ar i o un cuadr o de i magen ( Pi cPl ano) ,
t r es cuadr os de t ext o ( Txt A, Txt B, Txt C) y un bot n de comandos
( CmdVi sual i zar ) . Los aspect os decor at i vos ( et i quet as, mar cos,
et c. ) quedan a cr i t er i o del l ect or . Luego i ngr esar el si gui ent e
cdi go:
Di mA As Doubl e, B As Doubl e, C As Doubl e


Pg. 209
Funct i on F( ByVal X As Si ngl e) As Si ngl e
F = A * ( X * X) + B * X + C
End Funct i on

Pr i vat e Sub CmdVi sual i zar _Cl i ck( )
Di mX As Si ngl e
A = Txt A
B = Txt B
C = Txt C
Pi cPl ano. Cl s
Pi cPl ano. Scal e ( - 100, 100) - ( 100, - 100)
Pi cPl ano. Li ne ( - 100, 0) - ( 100, 0)
Pi cPl ano. Li ne ( 0, - 100) - ( 0, 100)
Pi cPl ano. Cur r ent X = - 10
Pi cPl ano. Cur r ent Y = F( - 10)
For X = - 10 To 10
Pi cPl ano. Li ne - ( X, F( X) )
Next
End Sub

Funciones trigonomtricas
Gr af i car f unci ones t r i gonomt r i cas ( seno, coseno,
t angent e, cot angent e, secant e, cosecant e) no es nada
compl i cado, si no anal i ce el si gui ent e ej empl o.


Pg. 210


Par a r eal i zar nuest r a apl i caci n de ej empl o cr ear un nuevo
pr oyect o y aadi r al f or mul ar i o un cuadr o de i magen ( Pi cPl ano)
y 6 bot ones de comandos ( CmdFunci on, es deci r se t r at a de una
mat r i z de cont r ol es) . Luego i ngr esar el cdi go si gui ent e:

Pr i vat e Sub CmdFunci on_Cl i ck( I ndex As I nt eger )
Pi cPl ano. Cl s
Di buj a ( I ndex)
End Sub

Pr i vat e Sub Di buj a( OP As I nt eger )
Pi cPl ano. Scal e ( - 5, 5) - ( 5, - 5)
Pi cPl ano. Li ne ( - 5, 0) - ( 5, 0)
Pi cPl ano. Li ne ( 0, - 5) - ( 0, 5)
DosPi = 8 * At n( 1)


Pg. 211
Di mX As Si ngl e
For X = - DosPi To DosPi St ep 0. 025
Sel ect Case OP
Case 0
Y = Si n( X)
Case 1
Y = Cos( X)
Case 2
Y = Si n( X) / Cos( X)
Case 3
I f X < - 0. 001 Or X > 0. 001 Then
Y = Cos( X) / Si n( X)
End I f
Case 4
Y = 1 / Cos( X)
Case 5
I f X < - 0. 001 Or X > 0. 001 Then
Y = 1 / Si n( X)
End I f
End Sel ect
Pi cPl ano. PSet ( X, Y)
Next
End Sub

Grficas en coordenadas polares


Pg. 212


Pg. 213
Par a el caso de l as gr f i cas de ecuaci ones pol ar es t ampoco
es compl i cado, sl o hay que t ener pr esent e l as si gui ent es
consi der aci ones.
Dado un punt o del pl ano, t al punt o se encuent r a a
una di st anci a del or i gen, y a un ngul o
( , ) P x y
r r espect o del
semi ej e hor i zont al posi t i vo.



De l a gr f i ca se t i ene que el punt o t i ene coor denadas
r ect angul ar es
P
( , ) x y ( , ) r y coor denadas pol ar es ent onces se
cumpl en l as si gui ent es r el aci ones de t r ansf or maci n:

cos x r =
sen y r

=
2 2 2
y = +


De donde: r x ; tan
y
x
=


Pg. 214
A cont i nuaci n pr esent amos al gunas ecuaci ones pol ar es
car act er st i cas:

Nombre Ecuacin
Ci r cunf er enci a de r adi o n
r n =

Tr bol de cuat r o hoj as
2cos 2 r =

Car di oi de
1 cos r = +

Li mazn
1 2 cos r = +

Lemni scat a

2
cos 2 r =

Pt al o de r osa
sen4 r =

Espi r al
2
r
n

=

Espi r al l ogar t mi ca
n
r e

=

Ast r oi de

3
(cos 2 ) r =

Nef r oi de
3cos 2 cos 6 r =

Concoi de

1
1
cos 2
r

= +

Est r of oi de

1

cos 2 2
r
tan
=
+


Par a r eal i zar una apl i caci n que per mi t a di buj ar
ecuaci ones pol ar es cr ear un nuevo pr oyect o y aadi r al
f or mul ar i o 1 cuadr o de i magen ( Pi cPl ano) , un cuadr o de l i st a
( Lst Ecuaci on) y un bot n de comandos ( CmdVi sual i zar ) . La
apar i enci a de l a i nt er f az debe ser si mi l ar a l a de l a f i gur a
most r ada:


Luego pr oceda a i ngr esar el cdi go que se pr esent a a
cont i nuaci n:

Di mOP As I nt eger
Funct i on F( ByVal THETA As Si ngl e) As Si ngl e
Sel ect Case OP
Case 0 : F = 2
Case 1 : F = 2 * Cos( 2 * THETA)
Case 2 : F = 1 + Cos( THETA)
Case 3 : F = 1 + 2 * Cos( THETA)
Case 4 : I f Cos( 2 * THETA) >= 0 Then F = Sqr ( Cos( 2 * THETA) )
Case 5 : F = Si n( 4 * THETA)
Case 6 : F = THETA / 2
Case 7 : F = Exp( THETA / 8)
Case 8 : F = Cos( 2 * THETA) * Cos( 2 * THETA) * Cos( 2 * THETA)


Pg. 215
Case 9 : F = 3 * Cos( 2 * THETA) - Cos( 6 * THETA)
Case 10: F = 1 / Cos( 2 * THETA) + 1
Case 11: I f I nt ( THETA / 45) <> THETA / 45 Or THETA <> 0 _
Then F = 1 / ( Cos( 2 * THETA) + Tan( 2 * THETA) )
End Sel ect
End Funct i on

Pr i vat e Sub Lst Ecuaci on_Cl i ck( )
OP = Lst Ecuaci on. Li st I ndex
End Sub

Pr i vat e Sub CmdVi sual i zar _Cl i ck( )
Di mX As Si ngl e, Y As Si ngl e
Di mI As Si ngl e, R As Si ngl e
DosPi = 8 * At n( 1)
Pi cPl ano. Cl s
Pi cPl ano. Scal eMode = 3
Pi cPl ano. Scal e ( - 3. 25, 3. 25) - ( 3. 25, - 3. 25)
Pi cPl ano. Li ne ( - 3. 25, 0) - ( 3. 25, 0)
Pi cPl ano. Li ne ( 0, - 3. 25) - ( 0, 3. 25)
For I = 0 To DosPi St ep 0. 01
R = F( I )
X = R * Cos( I )
Y = R * Si n( I )
Pi cPl ano. PSet ( X, Y) , QBCol or ( 1)
Next
End Sub
Fractales


Pg. 216


Pg. 217
La mat emt i ca f r act al es pr oduct o de l a i nt er acci n de un
mat emt i co geni al ( Benoi t B. Mandel br ot ) y l a comput ador a.
El ahor a ubi cuo t r mi no f r act al se debe al hecho de que l a
mat emt i ca f r act al t r abaj a con f r acci ones, l as f i gur as
gener adas no t i enen una r el aci n de ent er os ent r e sus
component es, de modo que ni nguna di mensi n es pr oduct o de ot r a
mul t i pl i cada por un ent er o. Es deci r , al di vi di r una di mensi n
ent r e ot r a nunca se obt i ene un r esul t ado exact o. Los f r act al es
gener an f i gur as y est as f i gur as r esul t an t ener una ext r aa
si mi l i t ud con al gunas f or mas que gener a l a nat ur al eza.
Ent r e l as ecuaci ones par a gener ar f r act al es Mandel br ot ha
pr oduci do una en par t i cul ar que ha r eci bi do el nombr e de
Conj unt o de Mandel br ot . Est a ecuaci n se r esuel ve en el campo
de l os nmer os compr endi dos ent r e l as l ongi t udes - 2. 0 a +0. 5 y
l as l at i t udes - 1. 25 a +1. 25, est domi nado por un gr an mar
f r act al con bah as y ent r ant es. La expr esi n mat emt i ca del
Conj unt o de Mandel br ot es:

2
1

n n
Z Z C
+
= +
C


Donde es un nmer o compl ej o const ant e y Z es un nmer o
compl ej o var i abl e que per mi t e obt ener l as r espect i vas
i t er aci ones ( l os val or es de cada punt o del pai saj e f r act al ,
l at i t ud y l ongi t ud) .


Pg. 218
Como ej empl o vamos a obt ener l as t r es pr i mer as
i t er aci ones. Par a el l o asi gnamos val or es a C de cual qui er
posi ci n ar bi t r ar i a dent r o del conj unt o, di gamos C y par a
ar r ancar l as i t er aci ones podemos comenzar con , l uego:
1 i = +
0
0 Z =
2
1
(0) (1 ) 1 Z i i = + + = +
2
2
(1 ) (1 ) 1 3

Z i i i = + + + = +
2
3
(1 3) (1 ) 7 7

Z i i i = + + + = +

Cuando se cont i nua desar r ol l ando el Conj unt o de Mandel br ot
se obt i ene una f i gur a si mi l ar a l a most r ada:



Par a el desar r ol l o de l a pr esent e apl i caci n cr ear un
nuevo pr oyect o y aadi r sobr e el f or mul ar i o un cuadr o de i magen
( Pi cPl ano) y un bot n de comandos ( CmdVi sual i zar ) , l uego
i ngr esar el cdi go si gui ent e:

Funct i on Hi pot enusa( ByVal A As Doubl e, ByVal B As Doubl e) As Doubl e
Hi pot enusa = Sqr ( A * A + B * B)
End Funct i on

Pr i vat e Sub CmdVi sual i zar _Cl i ck( )
Di mMaxX As I nt eger , MaxY As I nt eger
Di mLi mi t e As I nt eger , Pasos As I nt eger
Di mI As I nt eger , J As I nt eger
Di mPasoX As Doubl e, PasoY As Doubl e
Di mPosX As Doubl e, PosY As Doubl e
Di mOr i gX As Doubl e, Or i gY As Doubl e
Di mDi mX As Doubl e, Di mY As Doubl e
Di mI t er X As Doubl e, I t er Y As Doubl e, TempX As Doubl e
Di mTer mi nar As Bool ean
Pi cPl ano. Scal eMode = 3
MaxX = Pi cPl ano. Scal eWi dt h
MaxY = Pi cPl ano. Scal eHei ght
Li mi t e = 16
Or i gX = - 2
Or i gY = - 1. 25
Di mX = 0. 5
Di mY = 1. 25
PasoX = ( Di mX - Or i gX) / MaxX


Pg. 219
PasoY = ( Di mY - Or i gY) / MaxY
For I = 0 To MaxX
For J = 0 To MaxY
PosX = Or i gX + I * PasoX
PosY = Or i gY + J * PasoY
I t er X = 0 : I t er Y = 0
Ter mi nar = Fal se
Pasos = 0
Whi l e ( Not Ter mi nar )
TempX = ( I t er X * I t er X) - ( I t er Y * I t er Y) + PosX
I t er Y = 2 * ( I t er X * I t er Y) + PosY
I t er X = TempX
Pasos = Pasos + 1
I f Hi pot enusa( Abs( I t er X) , Abs( I t er Y) ) >= 2 Then
Ter mi nar = Tr ue
End I f
I f ( Pasos >= Li mi t e) Then
Ter mi nar = Tr ue
End I f
Wend
I f ( Pasos < Li mi t e) Then
Pi cPl ano. PSet ( I , J ) , QBCol or ( Pasos)
End I f
Next
Next
End Sub


Pg. 220
En est e cap t ul o, debi do a l as l i mi t aci ones de espaci o y
mat er i a, t an sl o se of r ece el cami no de acceso a unos pocos de
l os di ver sos t emas que abar ca el f asci nant e mundo de l a
pr ogr amaci n de gr f i cos por comput ador a.
Muchos de est os t emas si guen si endo mat er i a de
i nvest i gaci n ( como el caso de l os f r act al es) , por l o que si
Ud. desea pr of undi zar en est e l aber i nt o de f asci naci n, no hay
l a gar ant a de un r et or no sano y sal vo a nuest r o uni ver so
mundano.






Pg. 221








GUA DE LABORATORIO
Parte I


ELABORADO POR
CARLOS CASTILLO PERALTA
cc_peralta@hotmail.com





INTRODUCCIN


Pg. 222

La pr esent e Gu a de Labor at or i o de Mi cr osof t Vi sual Basi c,
se el abor con l a f i nal i dad de compl ement ar l a par t e t er i ca
con l a par t e pr ct i ca del cur so. Los pr obl emas pr esent an un
gr ado de di f i cul t ad gr adual , es deci r , en cada pr ct i ca pr i mer o
se comi enzan con pr obl emas muy senci l l os con l a f i nal i dad de
que el est udi ant e escl ar ezca dudas y quede cl ar o en l os
concept os asi mi l ados en l a t eor a, y l uego en l os pr obl emas
post er i or es se va i ncr ement ando el ni vel de di f i cul t ad.
Est a gu a expl or a una gr an var i edad de mat er i as y cont i ene
muchos pr obl emas r ecopi l ados a l o l ar go de var i os aos de
exper i enci a. Esper o que sat i sf aga l as necesi dades de l os
est udi ant es y col egas, ya que ha si do el abor ada t eni endo en
cuent a l os obj et i vos de apr endi zaj e del cur so.
Si desean compar t i r l a con ot r os col egas, me agr adar a
mucho que l o hi ci er an, con l a ni ca condi ci n de que si empr e se
r espet e el der echo del aut or .
Desde ya l es deseo l a mej or de l as suer t es en el
apr endi zaj e de Mi cr osof t Vi sual Basi c.

Li ma, Di ci embr e del 2000

Carlos Castillo Peralta
Microsoft Vi sual Basi c


Pg. 223
GUA DE LABORATORIO N 1

Objetivos
Luego de compl et ar est e l abor at or i o, el est udi ant e ser
capaz de:

I dent i f i car l os el ement os del ent or no i nt egr ado de
desar r ol l o de Mi cr osof t Vi sual Basi c 6. 0.
Aadi r cont r ol es a un f or mul ar i o.
Est abl ecer l as pr opi edades de l os cont r ol es.
Tr abaj ar con pr ocedi mi ent os de event os.
Cr ear una apl i caci n si mpl e con Mi cr osof t Vi sual Basi c.

Consideraciones
Par a el desar r ol l o del pr esent e l abor at or i o Ud. deber
cr ear una car pet a C:\FundVB\Lab1, par a guar dar sus t r abaj os
cor r espondi ent es a est e l abor at or i o.

Aplicacin N 1
El abor ar una apl i caci n que per mi t a cal cul ar el sal ar i o
net o de un t r abaj ador en f unci n del nmer o de hor as
t r abaj adas, pago por hor a de t r abaj o y un descuent o f i j o al
suel do br ut o del 20 por 100. Los cl cul os a ef ect uar par a
obt ener el sal ar i o net o de un t r abaj ador se muest r an a
cont i nuaci n:

Sal ar i oBr ut o = Hor asTr abaj adas * PagoPor Hor a

Descuent o = 0. 2 * Sal ar i oBr ut o

Sal ar i oNet o = Sal ar i oBr ut o - Descuent o

El di seo de l a i nt er f az debe ser si mi l ar a l a f i gur a
most r ada:


Pg. 224



Par a el desar r ol l o de est a apl i caci n, pr oceda a ubi car
l os si gui ent es cont r ol es en el f or mul ar i o:

2 mar cos
6 et i quet as
6 caj as de t ext o
3 bot ones de comando

Una vez ubi cados l os cont r ol es, est abl ezca l as pr opi edades
segn se i ndi ca:

Form1
Nombr e Fr mSal ar i oNet o
Bor der St yl e 3- Fi xed Di al og
Capt i on Cl cul o del sal ar i o net o
Moveabl e Fal se
St ar t UpPosi t i on 2- Cent er Scr een

Frame1
Nombr e Fr aI ngr eso


Pg. 225
Capt i on I ngr eso de dat os:

Frame2
Nombr e Fr aSal i da
Capt i on Sal i da de dat os:

Label1
Nombr e Lbl Apel l i dosNombr es
Aut oSi ze Tr ue
Capt i on Apel l i dos y nombr es:

Label2
Nombr e Lbl Hor asTr abaj adas
Aut oSi ze Tr ue
Capt i on Hor as t r abaj adas:

Label3
Nombr e Lbl PagoPor Hor a
Aut oSi ze Tr ue
Capt i on Pago por hor a S/ .

Label4
Nombr e Lbl Sal ar i oBr ut o
Aut oSi ze Tr ue
Capt i on Sal ar i o br ut o S/ .

Label5
Nombr e Lbl Descuent o
Aut oSi ze Tr ue
Capt i on Descuent o S/ .

Label6
Nombr e Lbl Sal ar i oNet o


Pg. 226
Aut oSi ze Tr ue
Capt i on Sal ar i o net o S/ .

Text1
Nombr e Txt Apel l i dosNombr es
Text

Text2
Nombr e Txt Hor asTr abaj adas
Text

Text3
Nombr e Txt PagoPor Hor a
Text

Text4
Nombr e Txt Sal ar i oBr ut o
Text

Text5
Nombr e Txt Descuent o
Text

Text6
Nombr e Txt Sal ar i oNet o
Text

Command1
Nombr e CmdAcept ar
Capt i on
&Acept ar

Command2
Nombr e CmdLi mpi ar


Pg. 227
Capt i on
&Li mpi ar

Command3
Nombr e CmdSal i r
Capt i on
&Sal i r

Luego de est abl ecer l as pr opi edades par a l os cont r ol es,
debe aadi r cdi go a l a apl i caci n. Par a el l o haga dobl e cl i ck
sobr e el bot n Acept ar e i ngr ese el si gui ent e cdi go:

Pr i vat e Sub CmdAcept ar _Cl i ck( )
Di mHor asTr abaj adas As I nt eger , PagoPor Hor a As Doubl e
Di mSal ar i oBr ut o As Doubl e
Di mDescuent o As Doubl e
Di mSal ar i oNet o As Doubl e
Hor asTr abaj adas = Val ( Txt Hor asTr abaj adas)
PagoPor Hor a = Val ( Txt PagoPor Hor a)
Sal ar i oBr ut o = Hor asTr abaj adas * PagoPor Hor a
Descuent o = 0. 2 * Sal ar i oBr ut o
Sal ar i oNet o = Sal ar i oBr ut o - Descuent o
Txt Sal ar i oBr ut o = St r ( Sal ar i oBr ut o)
Txt Descuent o = St r ( Descuent o)
Txt Sal ar i oNet o = St r ( Sal ar i oNet o)
End Sub

A cont i nuaci n haga dobl e cl i ck sobr e el bot n Sal i r y
aada el si gui ent e cdi go:

Pr i vat e Sub CmdSal i r _Cl i ck( )
End
End Sub
Guar de y l uego ej ecut e l a apl i caci n que acaba de cr ear .
Pr uebe i ngr esando di f er ent es val or es.


Pg. 228
Luego, haga dobl e cl i ck sobr e el bot n Li mpi ar y aada el
si gui ent e cdi go:

Pr i vat e Sub CmdLi mpi ar _Cl i ck( )
Txt Apel l i dosNombr es =
Txt Hor asTr abaj adas =
Txt PagoPor Hor a =
Txt Sal ar i oBr ut o =
Txt Descuent o =
Txt Sal ar i oNet o =
Txt Apel l i dosNombr es. Set Focus
End Sub

Guar de y ej ecut e su apl i caci n. Cmo af ect a el cdi go
aadi do en el bot n Li mpi ar a l a apl i caci n?. Anot e sus
obser vaci ones.

Aplicacin N 2
El men de un r est aur ant e r pi do se muest r a a
cont i nuaci n:

MEN PRECIO (S/.)
Hambur guesa 2. 50
Cer veza 4. 00
Gaseosa 3. 00
Ensal ada 1. 50
Sal chi chas 2. 00
Ref r esco 1. 00
Sopa 1. 50
Post r e 1. 50
Se desea const r ui r una
apl i caci n que cal cul e l as
vent as t ot al es al f i nal del
d a, as como l os i mpuest os
a pagar ( 18 por 100) .

La i nt er f az de ent r ada
y sal i da deber ser si mi l ar
a l a f i gur a most r ada a
cont i nuaci n:


Pg. 229


Par a el di seo del cuadr o de men ut i l i zar emos el cont r ol
Mi cr osof t Hi er ar chi cal Fl exGr i d. Par a t al f i n, sel ecci one el
Men Pr oyect o y el i j a l a opci n Component es:




Pg. 230
A cont i nuaci n act i ve l a casi l l a de ver i f i caci n Mi cr osof t
Hi er ar chi cal Fl exGr i d Cont r ol 6. 0 OLEDB y haga cl i ck sobr e el
bot n Acept ar . En segui da est e cont r ol se aadi r al Cuadr o de
Her r ami ent as.

Par a el desar r ol l o de est a apl i caci n, pr oceda a ubi car
l os si gui ent es cont r ol es en el f or mul ar i o:

10 et i quet as
10 caj as de t ext o
1 cont r ol MSHFl exGr i d
3 bot ones de comando

En segui da, el abor e el di seo de ent r ada y sal i da. Par a
el l o pr oceda a est abl ecer l as pr opi edades segn se i ndi ca a
cont i nuaci n:

Form1
Nombr e Fr mRest aur ant e
Bor der St yl e 3- Fi xed Di al og
Capt i on Rest aur ant e
Moveabl e Fal se
St ar t UpPosi t i on 2- Cent er Scr een

Label1
Nombr e Lbl Hambur guesa
Aut oSi ze Tr ue
Capt i on Hambur guesa:

Label2
Nombr e Lbl Cer veza
Aut oSi ze Tr ue
Capt i on Cer veza:



Pg. 231
Label3
Nombr e Lbl Gaseosa
Aut oSi ze Tr ue
Capt i on Gaseosa:

Label4
Nombr e Lbl Ensal ada
Aut oSi ze Tr ue
Capt i on Ensal ada:

Label5
Nombr e Lbl Sal chi chas
Aut oSi ze Tr ue
Capt i on Sal chi chas:

Label6
Nombr e Lbl Ref r esco
Aut oSi ze Tr ue
Capt i on Ref r esco:

Label7
Nombr e Lbl Sopa
Aut oSi ze Tr ue
Capt i on Sopa:

Label8
Nombr e Lbl Post r e
Aut oSi ze Tr ue
Capt i on Post r e:

Label9
Nombr e Lbl Vent aTot al
Capt i on Vent a t ot al S/ .


Pg. 232
Label10
Nombr e Lbl I mpuest o
Capt i on I mpuest o S/ .

MSHFlexGrid1
Nombr e Gr dMenu
Font Ar i al ( Negr i t a 10)
Font Fi xed Ar i al ( Negr i t a 10)

Text1
Nombr e Txt Hambur guesa
Text

Text2
Nombr e Txt Cer veza
Text

Text3
Nombr e Txt Gaseosa
Text

Text4
Nombr e Txt Ensal ada
Text

Text5
Nombr e Txt Sal chi chas
Text

Text6
Nombr e Txt Ref r esco
Text



Pg. 233
Text7
Nombr e Txt Sopa
Text

Text8
Nombr e Txt Post r e
Text

Text9
Nombr e Txt Vent aTot al
Locked Tr ue
Text

Text10
Nombr e Txt I mpuest o
Locked Tr ue
Text

Command1
Nombr e CmdAcept ar
Capt i on
&Acept ar

Command2
Nombr e CmdLi mpi ar
Capt i on
&Li mpi ar

Command3
Nombr e CmdSal i r
Capt i on
&Sal i r
Pi ct ur e C: \ Ar chi vos de pr ogr ama\ Mi cr osof t Vi sual
St udi o\ Common\ Gr aphi cs\ I cons\ Ar r ows\ Poi nt 04. i co
St yl e 1- Gr aphi cal



Pg. 234
En pr i mer l ugar debemos car gar l os dat os a l a cuadr cul a.
Est o l o vamos a r eal i zar en t i empo de ej ecuci n al moment o de
car gar se en memor i a el f or mul ar i o. Par a el l o, haga dobl e cl i ck
sobr e el f or mul ar i o y aada el si gui ent e cdi go:

Pr i vat e Sub For m_Load( )
Gr dMenu. Col s = 2
Gr dMenu. Rows = 9
Gr dMenu. Fi xedCol s = 0
Gr dMenu. Fi xedRows = 1
Gr dMenu. Text Ar r ay( 0) = Men
Gr dMenu. Text Ar r ay( 1) = Pr eci o
Gr dMenu. Text Ar r ay( 2) = Hambur guesa
Gr dMenu. Text Ar r ay( 3) = 2. 50
Gr dMenu. Text Ar r ay( 4) = Cer veza
Gr dMenu. Text Ar r ay( 5) = 4. 00
Gr dMenu. Text Ar r ay( 6) = Gaseosa
Gr dMenu. Text Ar r ay( 7) = 3. 00
Gr dMenu. Text Ar r ay( 8) = Ensal ada
Gr dMenu. Text Ar r ay( 9) = 1. 50
Gr dMenu. Text Ar r ay( 10) = Sal chi chas
Gr dMenu. Text Ar r ay( 11) = 2. 00
Gr dMenu. Text Ar r ay( 12) = Ref r esco
Gr dMenu. Text Ar r ay( 13) = 1. 00
Gr dMenu. Text Ar r ay( 14) = Sopa
Gr dMenu. Text Ar r ay( 15) = 1. 50
Gr dMenu. Text Ar r ay( 16) = Post r e
Gr dMenu. Text Ar r ay( 17) = 1. 50
End Sub

Luego debemos aadi r el cdi go que se encar gar de
r eal i zar l os cl cul os. Par a t al f i n haga dobl e cl i ck sobr e el
bot n Acept ar y pr oceda a i ngr esar l o si gui ent e:


Pg. 235
Pr i vat e Sub CmdAcept ar _Cl i ck( )
Di mHambur guesa As I nt eger , Cer veza As I nt eger
Di mGaseosa As I nt eger , Ensal ada As I nt eger
Di mSal chi chas As I nt eger , Ref r esco As I nt eger
Di mSopa As I nt eger , Post r e As I nt eger
Di mVent aTot al As Doubl e, I mpuest o As Doubl e
Hambur guesa = Val ( Txt Hambur guesa)
Cer veza = Val ( Txt Cer veza)
Gaseosa = Val ( Txt Gaseosa)
Ensal ada = Val ( Txt Ensal ada)
Sal chi chas = Val ( Txt Sal chi chas)
Ref r esco = Val ( Txt Ref r esco)
Sopa = Val ( Txt Sopa)
Post r e = Val ( Txt Post r e)
Vent aTot al = Hambur guesa * 2. 5 + Cer veza * 4. 0 _
+ Gaseosa * 3. 0 + Ensal ada * 1. 5 + Sal chi chas * 2. 0 _
+ Ref r esco * 1. 0 + Sopa * 1. 5 + Post r e * 1. 5
I mpuest o = 0. 18 * Vent aTot al
Txt Vent aTot al = St r ( Vent aTot al )
Txt I mpuest o = St r ( I mpuest o)
End Sub

Luego, haga dobl e cl i ck sobr e el bot n Li mpi ar y aada el
si gui ent e cdi go:

Pr i vat e Sub CmdLi mpi ar _Cl i ck( )
Txt Hambur guesa = : Txt Cer veza =
Txt Gaseosa = : Txt Ensal ada =
Txt Sal chi chas = : Txt Ref r esco =
Txt Sopa = : Txt Post r e =
Txt Vent aTot al = : Txt I mpuest o =
Txt Hambur guesa. Set Focus
End Sub


Pg. 236
A cont i nuaci n haga dobl e cl i ck sobr e el bot n Sal i r y
aada el si gui ent e cdi go:

Pr i vat e Sub CmdSal i r _Cl i ck( )
End
End Sub

Aplicacin N 3
El abor ar una apl i caci n que per mi t a cal cul ar l a edad de
una per sona a par t i r de su f echa de naci mi ent o. El di seo de l a
i nt er f az debe ser si mi l ar a l a f i gur a most r ada:



Par a el desar r ol l o de est a apl i caci n, pr oceda a ubi car
l os si gui ent es cont r ol es en el f or mul ar i o:

2 et i quet as
2 caj as de t ext o
3 bot ones de comando

Luego, pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca a cont i nuaci n:

Form1
Nombr e Fr mEdad
Bor der St yl e 3- Fi xed Di al og
Capt i on Cal cul a l a edad de una per sona


Pg. 237
Label1
Nombr e Lbl FecNac
Aut oSi ze Tr ue
Capt i on Fecha de naci mi ent o:

Label2
Nombr e Lbl Edad
Aut oSi ze Tr ue
Capt i on Su edad es:

Text1
Nombr e Txt FecNac
Text

Text2
Nombr e Txt Edad
Locked Tr ue
Text

Command1
Nombr e CmdAcept ar
Capt i on
&Acept ar
Def aul t Tr ue

Command2
Nombr e CmdLi mpi ar
Capt i on
&Li mpi ar

Command3
Nombr e CmdSal i r
Cancel Tr ue
Capt i on
&Sal i r


Pg. 238
En segui da pr oceda a i ngr esar el si gui ent e cdi go:

Pr i vat e Sub CmdAcept ar _Cl i ck( )
Di mFecNac As Dat e, Edad As I nt eger
FecNac = CDat e( Txt FecNac)
Edad = CI nt ( ( Dat e - FecNac) / 365)
Txt Edad = St r ( Edad) & aos
End Sub

Se dej a como ej er ci ci o par a el est udi ant e el cdi go
asoci ado con l os bot ones Li mpi ar y Sal i r , r espect i vament e.

Aplicacin N 4
Se t i ene un caj er o aut omt i co el cual per mi t e mani pul ar
ci er t a cant i dad de di ner o par a l o cual di spone de l os
si gui ent es bi l l et es: S/ . 10. 00, S/ . 20. 00, S/ . 50. 00,
S/ . 100. 00 y S/ . 200. 00. El abor ar una apl i caci n que per mi t a l a
l ect ur a de l a cant i dad a r et i r ar e i ndi que el menor nmer o de
bi l l et es a ut i l i zar .



Cr eo que a est as al t ur as Ud. ya ent endi como f unci ona
est o. Por el l o, est a apl i caci n se dej a como ej er ci ci o par a el
est udi ant e.


Pg. 239
Microsoft Vi sual Basi c
GUA DE LABORATORIO N 2

Objetivos
Luego de compl et ar est e l abor at or i o, el est udi ant e ser
capaz de:

I mpl ement ar apl i caci ones ut i l i zando est r uct ur as de cont r ol
sel ect i vas.
Usar casi l l as de ver i f i caci n y bot ones de opci n par a
al t er nar ent r e uno o ms val or es.
Ut i l i zar caj as de di l ogo pr edef i ni das par a vi sual i zar
mensaj es.

Consideraciones
Par a el desar r ol l o del pr esent e l abor at or i o Ud. deber
cr ear una car pet a C:\FundVB\Lab2, par a guar dar sus t r abaj os
cor r espondi ent es a est e l abor at or i o.

Aplicacin N 1
Se desea el abor ar l a bol et a de pago de l os t r abaj ador es de
una f br i ca. Par a el l o se cuent a con l os si gui ent es dat os de
ent r ada:

Apel l i dos y nombr es del t r abaj ador
Suel do bsi co
Hor as ext r as t r abaj adas

Adems, se sabe que l os t r abaj ador es l abor an en dos
t ur nos: di ur no y noct ur no. Y que l a t ar i f a por l as hor as ext r as
di ur nas es de 10 sol es y por l as hor as ext r as noct ur nas es de
15 sol es.


Pg. 240
Los descuent os a apl i car son sobr e el suel do bsi co y se
obt i enen de l a si gui ent e maner a:

Rent a = Suel doBasi co * 0. 1

Fonavi = Suel doBasi co * 0. 07

AFP = Suel doBasi co * 0. 03

Fi nal ment e el suel do net o del t r abaj ador se cal cul a
medi ant e l as si gui ent es expr esi ones:

I ngr esos = Suel doBasi co + Hor asExt r as * PagoHor aExt r a

Egr esos = Rent a + Fonavi + AFP

Suel doNet o = I ngr esos - Egr esos

El di seo de l a i nt er f az deber ser si mi l ar a l a f i gur a
most r ada:




Pg. 241
Par a el desar r ol l o de est a apl i caci n, pr oceda a ubi car
l os si gui ent es cont r ol es en el f or mul ar i o:

2 mar cos
5 et i quet as
8 caj as de t ext o
2 bot ones de opci n
3 casi l l as de ver i f i caci n
3 bot ones de comando

Luego, pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca a cont i nuaci n:

Form1
Nombr e Fr mBol et aDePago
Bor der St yl e 3- Fi xed Di al og
Capt i on Bol et a de pago
Moveabl e Fal se

Label1
Nombr e Lbl Tr abaj ador
Aut oSi ze Tr ue
Capt i on Tr abaj ador :

Label2
Nombr e Lbl Suel doBasi co
Aut oSi ze Tr ue
Capt i on Suel do Br ut o S/ .

Label3
Nombr e Lbl Hor asExt r as
Aut oSi ze Tr ue
Capt i on Hor as ext r as:



Pg. 242
Label4
Nombr e Lbl PagoHor aExt r a
Aut oSi ze Tr ue
Capt i on Pago hor a ext r a S/ .

Label5
Nombr e Lbl Suel doNet o
Aut oSi ze Tr ue
Capt i on Suel do net o S/ .

Text1
Nombr e Txt Tr abaj ador
Text

Text2
Nombr e Txt Suel doBasi co
Text

Text3
Nombr e Txt Hor asExt r as
Text

Text4
Nombr e Txt PagoHor aExt r a
BackCol or
&H80000004&
Text

Text5
Nombr e Txt Rent a
BackCol or
&H80000004&
Locked Tr ue
Text



Pg. 243
Text6
Nombr e Txt Fonavi
BackCol or
&H80000004&
Locked Tr ue
Text

Text7
Nombr e Txt AFP
BackCol or
&H80000004&
Locked Tr ue
Text

Text8
Nombr e Txt Suel doNet o
BackCol or
&H80000004&
Locked Tr ue
Text

Option1
Nombr e Opt Di ur no
Capt i on Di ur no
Val ue Tr ue

Option2
Nombr e Opt Noct ur no
Capt i on Noct ur no
Val ue Fal se

Check1
Nombr e ChkRent a
Capt i on Rent a

Check2


Pg. 244
Nombr e ChkFonavi
Capt i on Fonavi

Check3
Nombr e ChkAFP
Capt i on AFP

Command1
Nombr e CmdAcept ar
Capt i on
&Acept ar
Def aul t Tr ue

Command2
Nombr e CmdLi mpi ar
Capt i on
&Li mpi ar

Command3
Nombr e CmdSal i r
Cancel Tr ue
Capt i on
&Sal i r

Una vez est abl eci das l as pr opi edades, pr oceda a i ngr esar
el cdi go que se i ndi ca a cont i nuaci n:

Pr i vat e Sub CmdAcept ar _Cl i ck( )
Di mSuel doBasi co As Doubl e
Di mHor asExt r as As I nt eger , PagoHor aExt r a As Doubl e
Di mRent a As Doubl e, Fonavi As Doubl e, AFP As Doubl e
Di mI ngr esos As Doubl e, Egr esos As Doubl e
Di mSuel doNet o As Doubl e
Suel doBasi co = Val ( Txt Suel doBasi co)
Hor asExt r as = Val ( Txt Hor asExt r as)
I f Opt Di ur no Then


Pg. 245
PagoHor aExt r a = 10
End I f
I f Opt Noct ur no Then
PagoHor aExt r a = 15
End I f
I f ChkRent a. Val ue Then
Rent a = Suel doBasi co * 0. 1
El se
Rent a = 0
End I f
I f ChkFonavi . Val ue Then
Fonavi = Suel doBasi co * 0. 07
El se
Fonavi = 0
End I f
I f ChkAFP. Val ue Then
AFP = Suel doBasi co * 0. 03
El se
AFP = 0
End I f
I ngr esos = Suel doBasi co + Hor asExt r as * PagoHor aExt r a
Egr esos = Rent a + Fonavi + AFP
Suel doNet o = I ngr esos - Egr esos
Txt PagoHor aExt r a = St r ( PagoHor aExt r a)
Txt Rent a = St r ( Rent a)
Txt Fonavi = St r ( Fonavi ) : Txt AFP = St r ( AFP)
Txt Suel doNet o = St r ( Suel doNet o)
End Sub

Pr i vat e Sub CmdSal i r _Cl i ck( )
End
End Sub
Aplicacin N 2


Pg. 246
Cuat r o not as ent r e 0 y 20 r epr esent an l as cal i f i caci ones
de un est udi ant e de un cur so de pr ogr amaci n. El abor ar una
apl i caci n par a obt ener el pr omedi o de esas cal i f i caci ones y
vi sual i zar su punt uaci n de acuer do al si gui ent e cuadr o:

Promedio Puntuacin
19- 20 A
16- 18 B
11- 15 C
6- 10 D
0- 5 E

El di seo de l a i nt er f az deber ser si mi l ar a l a f i gur a
most r ada:



Par a el desar r ol l o de est a apl i caci n, pr oceda a ubi car
l os si gui ent es cont r ol es en el f or mul ar i o:

7 et i quet as
7 caj as de t ext o
3 bot ones de comando


Pg. 247
Luego, pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca a cont i nuaci n:

Form1
Nombr e Fr mNot as
Bor der St yl e 3- Fi xed Di al og
Capt i on Punt uaci n de un est udi ant e

Label1
Nombr e Lbl Al umno
Aut oSi ze Tr ue
Capt i on Al umno:

Label2
Nombr e Lbl N1
Aut oSi ze Tr ue
Capt i on Not a 1:

Label3
Nombr e Lbl N2
Aut oSi ze Tr ue
Capt i on Not a 2:

Label4
Nombr e Lbl N3
Aut oSi ze Tr ue
Capt i on Not a 3:

Label5
Nombr e Lbl N4
Aut oSi ze Tr ue
Capt i on Not a 4:




Pg. 248
Label6
Nombr e Lbl Pr omedi o
Aut oSi ze Tr ue
Capt i on Pr omedi o:

Label7
Nombr e Lbl Punt uaci on
Aut oSi ze Tr ue
Capt i on Punt uaci n:

Text1
Nombr e Txt Al umno
Text

Text2
Nombr e Txt N1
Text

Text3
Nombr e Txt N2
Text

Text4
Nombr e Txt N3
Text

Text5
Nombr e Txt N4
Text




Pg. 249
Text6
Nombr e Txt Pr omedi o
BackCol or
&H80000004&
Locked Tr ue
Text

Text7
Nombr e Txt Punt uaci on
BackCol or
&H80000004&
Locked Tr ue
Text

Command1
Nombr e CmdAcept ar
Capt i on
&Acept ar
Def aul t Tr ue

Command2
Nombr e CmdLi mpi ar
Capt i on
&Li mpi ar

Command3
Nombr e CmdSal i r
Cancel Tr ue
Capt i on
&Sal i r

Una vez est abl eci das l as pr opi edades, pr oceda a i ngr esar
el cdi go que se i ndi ca:

Pr i vat e Sub CmdAcept ar _Cl i ck( )
Di mN1 As Doubl e, N2 As Doubl e, N3 As Doubl e, N4 As Doubl e
Di mPr omedi o As I nt eger


Pg. 250
N1 = Val ( Txt N1) : N2 = Val ( Txt N2)
N3 = Val ( Txt N3) : N4 = Val ( Txt N4)
Pr omedi o = CI nt ( ( N1 + N2 + N3 + N4) / 4)
Txt Pr omedi o = St r ( Pr omedi o)
I f Pr omedi o >= 19 And Pr omedi o <= 20 Then
Txt Punt uaci on = A
El seI f Pr omedi o >= 16 And Pr omedi o <= 18 Then
Txt Punt uaci on = B
El seI f Pr omedi o >= 11 And Pr omedi o <= 15 Then
Txt Punt uaci on = C
El seI f Pr omedi o >= 6 And Pr omedi o <= 10 Then
Txt Punt uaci on = D
El seI f Pr omedi o >= 0 And Pr omedi o <= 5 Then
Txt Punt uaci on = B
El se: MsgBox Er r or de dat os, vbCr i t i cal , Mensaj e
End I f
End Sub

Aplicacin N 3
Escr i bi r un apl i caci n que acept e f echas como t r es nmer os
( dd, mm, aaaa) y l as vi sual i ce del modo usual . A maner a de
ej empl o consi der e l o si gui ent e:




Pg. 251
En caso de que el usuar i o i ngr ese al gn dat o i ncor r ect o
( por ej empl o 13 como un nmer o de mes) , se debe vi sual i zar el
si gui ent e mensaj e:



Cuando el usuar i o haga cl i ck en el bot n Sal i r , se debe
obser var el si gui ent e mensaj e:



En caso de que el usuar i o el i j a l a opci n Si , l a
apl i caci n debe t er mi nar . En caso cont r ar i o, es deci r si el
usuar i o el i ge l a opci n No, se debe pr osegui r con l a
apl i caci n.

Par a el desar r ol l o de est a apl i caci n, pr oceda a ubi car
l os si gui ent es cont r ol es en el f or mul ar i o:

4 et i quet as
3 caj as de t ext o
1 mar co
3 bot ones de comando

En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:



Pg. 252
Form1
Nombr e Fr mFecha
Bor der St yl e 3- Fi xed Di al og
Capt i on Fecha en l et r as

Label1
Nombr e Lbl Di a
Aut oSi ze Tr ue
Capt i on D a:

Label2
Nombr e Lbl Mes
Aut oSi ze Tr ue
Capt i on Mes:

Label3
Nombr e Lbl Anno
Aut oSi ze Tr ue
Capt i on Ao:

Label4
Nombr e Lbl Fecha
Aut oSi ze Tr ue
Capt i on

Text1
Nombr e Txt Di a
Text

Text2
Nombr e Txt Mes
Text



Pg. 253
Text3
Nombr e Txt Anno
Text

Command1
Nombr e CmdAcept ar
Capt i on
&Acept ar
Def aul t Tr ue

Command2
Nombr e CmdLi mpi ar
Capt i on
&Li mpi ar

Command3
Nombr e CmdSal i r
Capt i on
&Sal i r

Una vez est abl eci das l as pr opi edades de l a i nt er f az
pr oceda a i ngr esar el si gui ent e cdi go:

Pr i vat e Sub CmdAcept ar _Cl i ck( )
Di mCadMes As St r i ng, Mes As I nt eger
Mes = Val ( Txt Mes)
Sel ect Case Mes
Case 1: CadMes = Ener o
Case 2: CadMes = Febr er o
Case 3: CadMes = Mar zo
Case 4: CadMes = Abr i l
Case 5: CadMes = Mayo
Case 6: CadMes = J uni o
Case 7: CadMes = J ul i o
Case 8: CadMes = Agost o
Case 9: CadMes = Set i embr e


Pg. 254
Case 10: CadMes = Oct ubr e
Case 11: CadMes = Novi embr e
Case 12: CadMes = Di ci embr e
Case El se
MsgBox Er r or de dat os. . . , vbCr i t i cal , Mensaj e
Cal l CmdLi mpi ar _Cl i ck
Exi t Sub
End Sel ect
Lbl Fecha = Txt Di a & de & CadMes & de & Txt Anno
End Sub

Pr i vat e Sub CmdLi mpi ar _Cl i ck( )
Txt Di a = : Txt Mes = : Txt Anno =
Txt Di a. Set Focus
End Sub

Pr i vat e Sub CmdSal i r _Cl i ck( )
I f MsgBox( Desea t er mi nar l a apl i caci n?, _
vbQuest i on + vbYesNo, Pr egunt a) = vbYes Then
End
El se: Cal l CmdLi mpi ar _Cl i ck
End I f
End Sub

Aplicacin N 4
Un r est aur ant e of r ece un descuent o del 10% par a consumos
ent r e S/ . 30. 00 y S/ . 50. 00; un descuent o del 20% par a
consumos mayor es a S/ . 50. 00 nuevos sol es; par a t odos l os dems
casos no se apl i ca ni ngn t i po de descuent o. El abor ar una
apl i caci n que per mi t a det er mi nar el i mpor t e a pagar por el
consumi dor . El di seo de l a i nt er f az y ot r as consi der aci ones se
dej an a su cr i t er i o.



Pg. 255
Microsoft Vi sual Basi c
GUA DE LABORATORIO N 3

Objetivos
Luego de compl et ar est e l abor at or i o, el est udi ant e ser
capaz de:

I mpl ement ar apl i caci ones ut i l i zando est r uct ur as de cont r ol
r epet i t i vas.
Cambi ar l as pr opi edades de l os cont r ol es en t i empo de
ej ecuci n.

Consideraciones
Par a el desar r ol l o del pr esent e l abor at or i o Ud. deber
cr ear una car pet a C:\FundVB\Lab3, par a guar dar sus t r abaj os
cor r espondi ent es a est e l abor at or i o.

Aplicacin N 1
Escr i bi r una apl i caci n que l ea un nmer o ent er o y muest r e
l a t abl a de mul t i pl i car de di cho nmer o. El di seo de ent r ada y
sal i da debe ser si mi l ar al si gui ent e:





Pg. 256
Par a el desar r ol l o de est a apl i caci n, pr oceda a ubi car
l os si gui ent es cont r ol es en el f or mul ar i o:

1 et i quet a
2 caj as de t ext o
1 bot n de comando

En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:

Form1
Nombr e Fr mTabl a
Bor der St yl e 3- Fi xed Di al og
Capt i on Tabl a de mul t i pl i car

Label1
Nombr e Lbl Numer o
Capt i on I ngr ese un nmer o:

Text1
Nombr e Txt Numer o
Text

Text2
Nombr e Txt Tabl a
Mul t i Li ne Tr ue
Locked Tr ue
Scr ol l Bar s 2- Ver t i cal
Text

Command1
Nombr e CmdLi mpi ar
Capt i on
&Li mpi ar


Pg. 257
Una vez di seada l a i nt er f az, pr oceda a i ngr esar el cdi go
que se i ndi ca a cont i nuaci n:

Pr i vat e Sub Txt Numer o_Change( )
I f I sNumer i c( Txt Numer o) Then
Di mN As I nt eger , P As I nt eger , I As I nt eger
Di mS As St r i ng
N = Val ( Txt Numer o)
S =
For I = 0 To 12
P = N * I
S = S & N & * & I & = & P & vbCr Lf
Next I
Txt Tabl a = S
El seI f Txt Numer o = Then
Exi t Sub
El se: MsgBox I ngr ese un nmer o, vbCr i t i cal , Mensaj e
Txt Tabl a =
End I f
End Sub

Pr i vat e Sub CmdLi mpi ar _Cl i ck( )
Txt Numer o = : Txt Tabl a =
Txt Numer o. Set Focus
End Sub

Aplicacin N 2
Un nmer o per f ect o es un ent er o posi t i vo, que es i gual a
l a suma de t odos l os ent er os posi t i vos ( excl ui do el mi smo) que
son di vi sor es del nmer o. El pr i mer nmer o per f ect o es 6, ya
que l os di vi sor es de 6 son 1, 2, 3 y 1 + 2 + 3 = 6. Escr i bi r
una apl i caci n que encuent r e l os t r es pr i mer os nmer os
per f ect os.


Pg. 258
El di seo de l a i nt er f az debe ser si mi l ar a l a f i gur a
most r ada:



Par a el desar r ol l o de est a apl i caci n, pr oceda a ubi car
l os si gui ent es cont r ol es en el f or mul ar i o:

1 mar co
1 caj a de t ext o

En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:

Form1
Nombr e Fr mNumer oPer f ect o
Bor der St yl e 3- Fi xed Di al og
Capt i on Los 3 pr i mer os nmer os per f ect os

Frame1
Nombr e Fr aPer f ect o
Capt i on Nmer o per f ect o

Text1
Nombr e Txt Per f ect o
Mul t i Li ne Tr ue
Text


Pg. 259
Una vez est abl eci das l as pr opi edades pr oceda a i ngr esar el
cdi go que se i ndi ca a cont i nuaci n:

Pr i vat e Sub For m_Load( )
Di mN As Long, I As Long, S As Long
Di mK As I nt eger , Cad As St r i ng
N = 1 : K = 0 : Cad =
Whi l e Tr ue
S = 0
For I = 1 To ( N - 1)
I f N Mod I = 0 Then S = S + I
Next I
I f N = S Then
Cad = Cad & N & vbCr Lf
K = K + 1
End I f
I f K = 3 Then
Txt Per f ect o = Cad
Exi t Sub
End I f
N = N + 1
Wend
End Sub

Aplicacin N 3
Const r uya una apl i caci n que per mi t a el i ngr eso de un
nmer o ent er o y muest r e en pant al l a l a si gui ent e i nf or maci n:
1) Cant i dad de ci f r as, 2) Suma de ci f r as i mpar es, 3) Suma de
ci f r as par es, 4) Suma t ot al de ci f r as, 5) Ci f r a mayor , 6) Ci f r a
menor y 7) Di vi sor es de di cho nmer o.

El di seo de l a i nt er f az debe ser si mi l ar a l a f i gur a
si gui ent e:


Pg. 260



Par a el desar r ol l o de est a apl i caci n, pr oceda a ubi car
l os si gui ent es cont r ol es en el f or mul ar i o:

4 mar cos
7 et i quet as
8 caj as de t ext o
1 bot n de comando

En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:

Form1
Nombr e Fr mNumer oPer f ect o
Bor der St yl e 3- Fi xed Di al og
Capt i on Los 3 pr i mer os nmer os per f ect os
Moveabl e Fal se
St ar t UpPosi t i on 2- Cent er Scr een




Pg. 261
Frame1
Nombr e Fr aEnt r ada
Capt i on

Frame2
Nombr e Fr aSal i da
Capt i on

Frame3
Nombr e Fr aDi vi sor es
Capt i on Di vi sor es

Frame4
Nombr e Fr aSal i r
Capt i on

Label1
Nombr e Lbl Numer o
Aut oSi ze Tr ue
Capt i on I ngr ese un nmer o:

Label2
Nombr e Lbl Cant Ci f r as
Aut oSi ze Tr ue
Capt i on Cant i dad de ci f r as:

Label3
Nombr e Lbl SumI mpar es
Aut oSi ze Tr ue
Capt i on Suma de ci f r as i mpar es:



Pg. 262
Label4
Nombr e Lbl SumPar es
Aut oSi ze Tr ue
Capt i on Suma de ci f r as par es:

Label5
Nombr e Lbl SumTot al
Aut oSi ze Tr ue
Capt i on Suma t ot al de ci f r as:

Label6
Nombr e Lbl Ci f r aMayor
Aut oSi ze Tr ue
Capt i on Ci f r a mayor :

Label7
Nombr e Lbl Ci f r aMenor
Aut oSi ze Tr ue
Capt i on Ci f r a menor :

Text1
Nombr e Txt Numer o
Text

Text2
Nombr e Txt Cant Ci f r as
Locked Tr ue
Text

Text3
Nombr e Txt SumI mpar es
Locked Tr ue
Text
Text4


Pg. 263
Nombr e Txt SumPar es
Locked Tr ue
Text

Text5
Nombr e Txt SumTot al
Locked Tr ue
Text

Text6
Nombr e Txt Ci f r aMayor
Locked Tr ue
Text

Text7
Nombr e Txt Ci f r aMenor
Locked Tr ue
Text

Text8
Nombr e Txt Di vi sor es
Mul t i Li ne Tr ue
Locked Tr ue
Scr ol l Bar s 2- Ver t i cal
Text

Command3
Nombr e CmdSal i r
Capt i on
&Sal i r
Pi ct ur e C: \ FundVB\ Bi t maps\ Exi t . bmp
St yl e 1- Gr aphi cal



Pg. 264
Una vez est abl eci das l as pr opi edades pr oceda ha i ngr esar
el cdi go que se i ndi ca a cont i nuaci n:

Pr i vat e Sub CmdAcept ar _Cl i ck( )
I f I sNumer i c( Txt Numer o) Then
Di mS As I nt eger , SI As I nt eger , SP As I nt eger
Di mMay As I nt eger , Mi n As I nt eger
Di mCad As St r i ng
Di mI As I nt eger , J As I nt eger
N = CLng( Txt Numer o)
M = CLng( Txt Numer o)
Cad =
I = 0
J = 1
S = SP = SI = 0
For J = 1 To N
I f ( N Mod J = 0) Then
Cad = Cad & J & vbCr Lf
End I f
Next J
Whi l e ( N > 0)
I f ( ( N Mod 10) Mod 2) = 0 Then
SP = SP + ( N Mod 10)
El se
SI = SI + ( N Mod 10)
End I f
S = S + ( N Mod 10)
N = N \ 10
I = I + 1
Wend
May = Mi d( Txt Numer o, 1, 1)
Men = May
Whi l e ( M > 0)


Pg. 265
I f May < ( M Mod 10) Then
May = M Mod 10
End I f
I f Men > ( M Mod 10) Then
Men = M Mod 10
End I f
M = M \ 10
Wend
Txt Cant Ci f r as = St r ( I )
Txt SumI mpar es = St r ( SI )
Txt SumPar es = St r ( SP)
Txt SumTot al = St r ( S)
Txt Ci f r aMayor = St r ( May)
Txt Ci f r aMenor = St r ( Men)
Txt Di vi sor es = Cad
El se
MsgBox Debe i ngr esar un nmer o, vbCr i t i cal , Mensaj e
Txt Numer o. Set Focus
End I f
End Sub

Pr i vat e Sub CmdSal i r _Cl i ck( )
I f MsgBox( Desea t er mi nar l a apl i caci n?, _
vbQuest i on + vbYesNo, " Pr egunt a" ) = vbYes Then
End
El se
Cancel = Tr ue
Txt Numer o. Set Focus
End I f
End Sub

Aplicacin N 4


Pg. 266
Un cent r o numr i co es un nmer o que separ a una l i st a de
nmer os ent er os ( comenzando en 1) en dos gr upos de nmer os,
cuyas sumas son i gual es. El pr i mer cent r o numr i co es el 6, el
cual separ a l a l i st a ( 1 a 8) en l os gr upos: ( 1; 2; 3; 4; 5) y
( 7; 8) cuyas sumas son ambas i gual es a 15. El segundo cent r o
numr i co es el 35, el cual separ a l a l i st a ( 1 a 49) en l os
gr upos: ( 1 a 34) y ( 36 a 49) cuyas sumas son ambas i gual es a
595. Se pi de el abor ar una apl i caci n que cal cul e l os cent r os
numr i cos ent r e 1 y N.

El di seo de l a i nt er f az y ot r as consi der aci ones se dej an
a su cr i t er i o.






















Pg. 267
Microsoft Vi sual Basi c
GUA DE LABORATORIO N 4

Objetivos
Luego de compl et ar est e l abor at or i o, el est udi ant e ser
capaz de:

Mani pul ar y r eal i zar oper aci ones con ar r egl os.
Cr ear una est r uct ur a y r eal i zar oper aci ones con l os campos de
l a mi sma.
I mpl ement ar ar r egl os de est r uct ur as.
Tr abaj ar con l i st as despl egabl es y cuadr os combi nados.

Consideraciones
Par a el desar r ol l o del pr esent e l abor at or i o Ud. deber
cr ear una car pet a C:\FundVB\Lab4 par a guar dar sus t r abaj os
cor r espondi ent es a est e l abor at or i o.

Aplicacin N 1
El abor e una apl i caci n que per mi t a l eer N nmer os de t i po
ent er o, y a cont i nuaci n l os vi sual i ce or denados en f or ma
ascendent e o descendent e.




Pg. 268
Par a el desar r ol l o de est a apl i caci n, pr oceda a ubi car
l os si gui ent es cont r ol es en el f or mul ar i o:

3 mar cos
1 caj a de t ext o
1 cont r ol l i st a
2 bot ones de opci n
3 bot ones de comando

En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:

Form1
Nombr e Fr mBur buj a
Bor der St yl e 3- Fi xed Di al og
Capt i on Or denaci n por bur buj a
Moveabl e Fal se

Frame1
Nombr e Fr aNumer o
Capt i on I ngr ese un nuevo nmer o:

Frame2
Nombr e Fr aLi st a
Capt i on Li st a de nmer os:

Frame3
Nombr e Fr aOr den
Capt i on Or den:

Text1
Nombr e Txt Numer o
Text



Pg. 269
List1
Nombr e Lst Numer o
Li st

Option1
Nombr e Opt Ascendent e
Capt i on Ascendent e
Val ue Tr ue

Option2
Nombr e Opt Descendent e
Capt i on Descendent e
Val ue Fal se

Command1
Nombr e CmdAnnadi r
Capt i on
&Aadi r
Def aul t Tr ue

Command2
Nombr e CmdOr denar
Capt i on
&Or denar

Command3
Nombr e CmdSal i r
Capt i on
&Sal i r
Pi ct ur e C: \ Ar chi vos de pr ogr ama\ Mi cr osof t Vi sual
St udi o\ Common\ Gr aphi cs\ I cons\ Ar r ows\
Poi nt 04. i co
St yl e 1- Gr aphi cal

Una vez est abl eci das l as pr opi edades pr oceda a i ngr esar el
cdi go que se i ndi ca a cont i nuaci n:


Pg. 270
Pr i vat e Sub CmdAcept ar _Cl i ck( )
I f I sNumer i c( Txt Numer o. Text ) Then
Lst Numer o. AddI t emTxt Numer o. Text
Txt Numer o. Text =
Txt Numer o. Set Focus
El se
MsgBox I ngr ese un nmer o, vbCr i t i cal , Mensaj e
Txt Numer o. Sel St ar t = 0
Txt Numer o. Sel Lengt h = Len( Txt Numer o. Text )
Txt Numer o. Set Focus
End I f
End Sub

Pr i vat e Sub CmdOr denar _Cl i ck( )
Di mI As I nt eger , J As I nt eger , T As I nt eger , N As I nt eger
Di mA( ) As I nt eger
N = Lst Numer o. Li st Count
ReDi mA( N)
For I = 0 To N - 1
A( I ) = Lst Numer o. Li st ( I )
Next I
I f Opt Ascendent e. Val ue Then
For I = 0 To N - 2
For J = I + 1 To N - 1
I f A( I ) > A( J ) Then
T = A( I )
A( I ) = A( J )
A( J ) = T
End I f
Next J
Next I
End I f



Pg. 271
I f Opt Descendent e. Val ue Then
For I = 0 To N - 2
For J = I + 1 To N - 1
I f A( I ) < A( J ) Then
T = A( I )
A( I ) = A( J )
A( J ) = T
End I f
Next J
Next I
End I f
Lst Numer o. Cl ear
For I = 0 To N - 1
Lst Numer o. Li st ( I ) = A( I )
Next I
End Sub

Pr i vat e Sub For m_Unl oad( Cancel As I nt eger )
I f MsgBox( Desea t er mi nar l a apl i caci n?, _
vbQuest i on + vbYesNo, Pr egunt a) = vbYes Then
End
El se: Cancel = Tr ue : Txt Numer o. Set Focus
End I f
End Sub

Pr i vat e Sub CmdSal i r _Cl i ck( )
Unl oad Me
End Sub

Aplicacin N 2


Pg. 272
El abor ar una apl i caci n que per mi t a sel ecci onar un
ar t cul o de un cuadr o combi nado ( Combo) . Apenas el usuar i o
sel ecci one un ar t cul o se debe most r ar el pr eci o del mi smo, el
i nt er s es f i j o par a est a ocasi n.
El di seo de l a i nt er f az debe ser si mi l ar a l a si gui ent e
f i gur a:



La vent a ha r eal i zar se es a pl azos, el l o condi ci ona l a
cuot a mensual a pagar se. Cuando se haga cl i ck sobr e el bot n
Cuot a mensual debe most r ar se un cuadr o de di l ogo con l os dat os
pr opuest os:



De maner a si mi l ar al hacer cl i ck sobr e el bot n Tot al nos
debe most r ar l a cant i dad t ot al a pagar .




Pg. 273
Par a el desar r ol l o de est a apl i caci n, pr oceda a ubi car
l os si gui ent es cont r ol es en el f or mul ar i o:

1 mar co
3 et i quet as
1 cuadr o combi nado
2 caj as de t ext o
3 bot ones de opci n
2 bot ones de comando

En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:

Form1
Nombr e Fr mCot i zaci on
Bor der St yl e 3- Fi xed Di al og
Capt i on Pedi do de cot i zaci ones

Frame1
Nombr e Fr aPl azo
Capt i on Pl azo:

Label1
Nombr e Lbl Ar t i cul o
Capt i on Ar t cul o:

Label2
Nombr e Lbl Pr eci o
Capt i on Pr eci o US$

Label3
Nombr e Lbl I nt er es
Capt i on I nt er s:



Pg. 274
Combo1
Nombr e CboAr t i cul o
Text

Text1
Nombr e Txt Pr eci o
Locked Tr ue
Text

Text2
Nombr e Txt I nt er es
Locked Tr ue
Text

Option1
Nombr e Opt Pl azo
Capt i on 6 meses
Val ue Tr ue

Option2
Nombr e Opt Pl azo
Capt i on 12 meses
Val ue Fal se

Option3
Nombr e Opt Pl azo
Capt i on 24 meses
Val ue Fal se

Command1
Nombr e CmdCuot aMensual
Capt i on
&Cuot a mensual



Pg. 275
Command2
Nombr e CmdTot al
Capt i on
&Tot al

Una vez est abl eci das l as pr opi edades de l a i nt er f az, haga
dobl e cl i ck sobr e el f or mul ar i o e i ngr ese l as si gui ent es
decl ar aci ones en l a secci n Gener al del mdul o de f or mul ar i o:

Pr i vat e Type Ar t i cul o
Nombr e As St r i ng * 30
Pr eci o As Doubl e
End Type
Di mA( 4) As Ar t i cul o, Pl azo As I nt eger
Const I nt er es = 0. 12

Recuer de que un dat o decl ar ado en l a secci n Gener al de un
mdul o puede ser accedi do por t odos l os pr ocedi mi ent os de di cho
mdul o. Luego, cont i ne i ngr esando el cdi go que se muest r a a
cont i nuaci n:

Pr i vat e Sub For m_Load( )
A( 0) . Nombr e = Moni t or SAMSUNG SyncMast er 3
A( 1) . Nombr e = I mpr esor a Hewl et t Packar d DeskJ et 930C
A( 2) . Nombr e = I mpr esor a Epson St yl us Col or 740
A( 3) . Nombr e = Mi cr opr ocesador Pent i umI 233 MHZ
A( 0) . Pr eci o = 150 : A( 1) . Pr eci o = 275
A( 2) . Pr eci o = 145 : A( 3) . Pr eci o = 80
Di mI As I nt eger
For I = 1 To 4
CboAr t i cul o. AddI t emA( I - 1) . Nombr e
Next I
Txt I nt er es = I nt er es : Pl azo = 6
End Sub


Pg. 276
Pr i vat e Sub CboAr t i cul o_Cl i ck( )
Di mI As I nt eger
I = CboAr t i cul o. Li st I ndex
Txt Pr eci o = A( I ) . Pr eci o
End Sub

Pr i vat e Sub Opt Pl azo_Cl i ck( I ndex As I nt eger )
Sel ect Case I ndex
Case 0: Pl azo = 6
Case 1: Pl azo = 12
Case 2: Pl azo = 24
End Sel ect
End Sub

Pr i vat e Sub CmdCuot aMensual _Cl i ck( )
Di mTot al As Doubl e, Cuot aMensual As Doubl e, I As I nt eger
I = CboAr t i cul o. Li st I ndex
Tot al = A( I ) . Pr eci o * ( 1 + I nt er es)
Cuot aMensual = Tot al / Pl azo
MsgBox Cuot a Mensual US$ & St r ( Cuot aMensual )
End Sub

Pr i vat e Sub CmdTot al _Cl i ck( )
Di mTot al As Doubl e, I As I nt eger
I = CboAr t i cul o. Li st I ndex
Tot al = A( I ) . Pr eci o * ( 1 + I nt er es)
MsgBox Tot al US$ & St r ( Tot al )
End Sub

Aplicacin N 3
Se desea el abor ar una apl i caci n que per mi t a cont r ol ar el
pr oceso de mat r cul a en un cur so de comput aci n. Par a el l o se
deben r ecabar l os si gui ent es dat os: 1) Cur so en que se


Pg. 277
mat r i cul a el al umno, 2) Fecha de mat r cul a, 3) Apel l i dos y
nombr es, 4) Sexo, 5) Di r ecci n, y 6) Di st r i t o de r esi denci a.



Par a el desar r ol l o de est a apl i caci n pr oceda a ubi car l os
si gui ent es cont r ol es en el f or mul ar i o:

4 mar cos
6 et i quet as
5 caj as de t ext o
1 cuadr o combi nado
2 cont r ol es de l i st a
4 bot ones de comando

En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:


Pg. 278
Form1
Nombr e Fr mFi chaMat r i cul a
Bor der St yl e 3- Fi xed Di al og
Capt i on Fi cha de mat r cul a

Frame1
Nombr e Fr aI ngr eso
Capt i on I ngr eso de dat os:

Frame2
Nombr e Fr aOpci ones
Capt i on Opci ones:

Frame3
Nombr e Fr aCur sos
Capt i on Cur sos:

Frame4
Nombr e Fr aDi st r i t os
Capt i on Di st r i t os:

Label1
Nombr e Lbl Cur so
Capt i on Cur so:

Label2
Nombr e Lbl FechaMat
Capt i on Fecha de mat r cul a:

Label3
Nombr e Lbl Al umno
Capt i on Al umno:



Pg. 279
Label4
Nombr e Lbl Sexo
Capt i on Sexo:

Label5
Nombr e Lbl Di r ecci n
Capt i on Di r ecci n:

Label6
Nombr e Lbl Di st r i t o
Capt i on Di st r i t o:

Combo1
Nombr e CboSexo
Text

List1
Nombr e Lst Cur sos
Text

List2
Nombr e Lst Di st r i t o
Text

Text1
Nombr e Txt Cur so
Text

Text2
Nombr e Txt FechaMat
Text


Pg. 280
Text3
Nombr e Txt Al umno
Text

Text4
Nombr e Txt Di r ecci on
Text

Text5
Nombr e Txt Di st r i t o
Text

Command1
Nombr e CmdGuar dar
Capt i on
&Guar dar

Command2
Nombr e CmdCancel ar
Capt i on
&Cancel ar

Command3
Nombr e CmdLi mpi ar
Capt i on
&Li mpi ar

Command4
Nombr e CmdSal i r
Capt i on
&Sal i r
Pi ct ur e C: \ FundVB\ Bi t maps\ Exi t . bmp
St yl e 1- Gr aphi cal

Una vez est abl eci das l as pr opi edades de l a i nt er f az,
pr oceda a i ngr esar el cdi go que se i ndi ca a cont i nuaci n:



Pg. 281
Pr i vat e Sub For m_Load( )
Lst Cur sos. AddI t emBor l and C++ Ni vel I
Lst Cur sos. AddI t emBor l and C++ Ni vel I I
Lst Cur sos. AddI t emMi cr osof t Vi sual Basi c Ni vel I
Lst Cur sos. AddI t emMi cr osof t Vi sual Basi c Ni vel I I
Lst Cur sos. AddI t emMi cr osof t Vi sual FoxPr o Ni vel I
Lst Cur sos. AddI t emMi cr osof t Vi sual FoxPr o Ni vel I I
Lst Cur sos. AddI t emMi cr osof t Vi sual C++ Ni vel I
Lst Cur sos. AddI t emMi cr osof t Vi sual C++ Ni vel I I
Lst Cur sos. AddI t emMi cr osof t Vi sual J ++ Ni vel I
Lst Cur sos. AddI t emMi cr osof t Vi sual J ++ Ni vel I I
Lst Cur sos. AddI t emMi cr osof t SQL Ser ver Ni vel I
Lst Cur sos. AddI t emMi cr osof t SQL Ser ver Ni vel I I
Lst Cur sos. AddI t emMi cr osof t Power Bui l der Ni vel I
Lst Cur sos. AddI t emMi cr osof t Power Bui l der Ni vel I I
Lst Di st r i t o. AddI t emCal l ao
Lst Di st r i t o. AddI t emBel l avi st a
Lst Di st r i t o. AddI t emCar men de l a Legua
Lst Di st r i t o. AddI t emLa Per l a
Lst Di st r i t o. AddI t emLa Punt a
Lst Di st r i t o. AddI t emVent ani l l a
Lst Di st r i t o. AddI t emCer cado de Li ma
Lst Di st r i t o. AddI t emAncn
Lst Di st r i t o. AddI t emAt e
Lst Di st r i t o. AddI t emBar r anco
Lst Di st r i t o. AddI t emBr ea
Lst Di st r i t o. AddI t emCar abayl l o
Lst Di st r i t o. AddI t emComas
Lst Di st r i t o. AddI t emChacl acayo
Lst Di st r i t o. AddI t emChor r i l l os
Lst Di st r i t o. AddI t emEl Agust i no
Lst Di st r i t o. AddI t emJ ess Mar a
Lst Di st r i t o. AddI t emLa Mol i na


Pg. 282
Lst Di st r i t o. AddI t emLa Vi ct or i a
Lst Di st r i t o. AddI t emLi nce
Lst Di st r i t o. AddI t emLur i gancho
Lst Di st r i t o. AddI t emLur n
Lst Di st r i t o. AddI t emMagdal ena del Mar
Lst Di st r i t o. AddI t emMi r af l or es
Lst Di st r i t o. AddI t emPachacamac
Lst Di st r i t o. AddI t emPucusana
Lst Di st r i t o. AddI t emPuebl o Li br e
Lst Di st r i t o. AddI t emPuent e Pi edr a
Lst Di st r i t o. AddI t emPunt a Negr a
Lst Di st r i t o. AddI t emRi mac
Lst Di st r i t o. AddI t emSan Bar t ol o
Lst Di st r i t o. AddI t emSan I si dr o
Lst Di st r i t o. AddI t emI ndependenci a
Lst Di st r i t o. AddI t emSan J uan de Mi r af l or es
Lst Di st r i t o. AddI t emSan Lui s
Lst Di st r i t o. AddI t emSan Mar t n de Por r es
Lst Di st r i t o. AddI t emSan Mi guel
Lst Di st r i t o. AddI t emSant i ago de Sur co
Lst Di st r i t o. AddI t emVi l l a Mar a del Tr i unf o
Lst Di st r i t o. AddI t emSan J uan de Lur i gancho
Lst Di st r i t o. AddI t emSant a Mar a del Mar
Lst Di st r i t o. AddI t emSant a Rosa
Lst Di st r i t o. AddI t emLos Ol i vos
Lst Di st r i t o. AddI t emCi enegui l l a
Lst Di st r i t o. AddI t emSan Bor j a
Lst Di st r i t o. AddI t emVi l l a el Sal vador
Lst Di st r i t o. AddI t emSant a Ani t a
CboSexo. AddI t emMascul i no : CboSexo. AddI t emFemeni no
End Sub
Pr i vat e Sub For m_Unl oad( Cancel As I nt eger )
I f MsgBox( Desea t er mi nar l a apl i caci n?, _


Pg. 283
vbQuest i on + vbYesNo, Pr egunt a) = vbYes Then
End
El se
Cancel = Tr ue
Cal l CmdLi mpi ar _Cl i ck
End I f
End Sub

Pr i vat e Sub Lst Cur sos_Cl i ck( )
Txt Cur sos = Lst Cur sos
End Sub

Pr i vat e Sub Lst Di st r i t o_Cl i ck( )
Txt Di st r i t o = Lst Di st r i t o
End Sub

Pr i vat e Sub CmdGuar dar _Cl i ck( )
Lst Cur sos. Enabl ed = Fal se
Lst Di st r i t o. Enabl ed = Fal se
Txt Cur sos. Locked = Tr ue
Txt FechaMat . Locked = Tr ue
Txt Al umno. Locked = Tr ue
CboSexo. Locked = Tr ue
Txt Di r ecci on. Locked = Tr ue
Txt Di st r i t o. Locked = Tr ue
MsgBox Al umno mat r i cul ado, vbI nf or mat i on, Mensaj e
End Sub

Pr i vat e Sub CmdLi mpi ar _Cl i ck( )
Lst Cur sos. Enabl ed = Tr ue
Lst Di st r i t o. Enabl ed = Tr ue
Txt Cur sos. Locked = Fal se
Txt FechaMat . Locked = Fal se
Txt Al umno. Locked = Fal se


Pg. 284
CboSexo. Locked = Fal se
Txt Di r ecci on. Locked = Fal se
Txt Di st r i t o. Locked = Fal se
Txt Cur sos =
Txt FechaMat =
Txt Al umno =
CboSexo =
Txt Di r ecci on =
Txt Di st r i t o =
Txt Cur sos. Set Focus
End Sub

Pr i vat e Sub CmdCancel ar _Cl i ck( )
I f MsgBox( Desea modi f i car al gn dat o?, _
vbQuest i on + vbYesNo, Mensaj e) = vbYes Then
Lst Cur sos. Enabl ed = Tr ue
Lst Di st r i t o. Enabl ed = Tr ue
Txt Cur sos. Locked = Fal se
Txt FechaMat . Locked = Fal se
Txt Al umno. Locked = Fal se
CboSexo. Locked = Fal se
Txt Di r ecci on. Locked = Fal se
Txt Di st r i t o. Locked = Fal se
End I f
End Sub

Pr i vat e Sub CmdSal i r _Cl i ck( )
Unl oad Me
End Sub


Aplicacin N 4


Pg. 285
Desar r ol l ar una apl i caci n que per mi t a r eal i zar consul t as
acer ca de un det er mi nado cur so, l os cual es se most r ar an en una
l i st a. El usuar i o debe sel ecci onar un cur so y en segui da se
debe pr esent ar el nombr e del pr of esor encar gado del cur so
( t eor a) , el nombr e del j ef e de pr ct i ca ( l abor at or i o) , as
como l os hor ar i os de t eor a y de l abor at or i o. El di seo de l a
i nt er f az deber ser si mi l ar al si gui ent e:












Pg. 286
Microsoft Vi sual Basi c
GUA DE LABORATORIO N 5

Objetivos
Luego de compl et ar est e l abor at or i o, el est udi ant e ser
capaz de:

Cr ear pr ocedi mi ent os y f unci ones def i ni dos por el usuar i o.
Aadi r f or mul ar i os cr eados ant er i or ment e a un pr oyect o.
Cambi ar el f or mul ar i o de ar r anque de un pr oyect o.
Ut i l i zar f or mul ar i os MDI .
Manej ar di f er ent es mt odos y pr opi edades de l os f or mul ar i os.
Cr ear y ut i l i zar mens en una apl i caci n.

Consideraciones
Par a el desar r ol l o del pr esent e l abor at or i o Ud. deber
cr ear una car pet a C:\FundVB\Lab5, par a guar dar sus t r abaj os
cor r espondi ent es a est e l abor at or i o.

Aplicacin N 1
Escr i ba una f unci n que r eci ba como ar gument o una cadena
de car act er es y l a devuel va en f or ma i nver sa, por ej empl o si se
i ngr esa l a cadena CORAZON deber r et or nar NOZAROC.





Pg. 287
Par a el desar r ol l o de est a apl i caci n, pr oceda a ubi car
l os si gui ent es cont r ol es en el f or mul ar i o:

2 et i quet as
2 caj as de t ext o
3 bot ones de comando

En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:

Form1
Nombr e Fr mCadI nver t i da
Capt i on Cadena i nver t i da
Bor der St yl e 3- Fi xed Di al og

Label1
Nombr e Lbl Cadena
Aut osi ze Tr ue
Capt i on I ngr esa una cadena:

Label2
Nombr e Lbl I nver t i da
Aut osi ze Tr ue
Capt i on Cadena i nver t i da:

Text1
Nombr e Txt Cadena
Text

Text2
Nombr e Txt I nver t i da
Locked Tr ue
Text



Pg. 288
Command1
Nombr e CmdAcept ar
Capt i on
&Acept ar

Command2
Nombr e CmdLi mpi ar
Capt i on
&Li mpi ar

Command3
Nombr e CmdSal i r
Capt i on
&Sal i r

Una vez est abl eci das l as pr opi edades de l a i nt er f az,
pr oceda a i ngr esar el si gui ent e cdi go:

Funct i on CadI nver t i da( Cadena As St r i ng) As St r i ng
Di mI nver t i da( ) As St r i ng * 1
Di mI As I nt eger
Di mJ As I nt eger
N = Len( Cadena)
ReDi mI nver t i da( N)
For I = 1 To N
I nver t i da( I - 1) = Mi d( Cadena, I , 1)
Next I
For J = ( N - 1) To 0 St ep - 1
CadI nver t i da = CadI nver t i da & I nver t i da( J )
Next J
End Funct i on

Pr i vat e Sub CmdI nver t i r _Cl i ck( )
Txt I nver t i da = CadI nver t i da( Txt Cadena)
End Sub



Pg. 289
Pr i vat e Sub CmdLi mpi ar _Cl i ck( )
Txt Cadena =
Txt I nver t i da =
Txt Cadena. Set Focus
End Sub

Pr i vat e Sub CmdSal i r _Cl i ck( )
End
End Sub

Aplicacin N 2
Se desea el abor ar una apl i caci n que per mi t a cont r ol ar el
pr oceso de mat r cul a en un cur so de comput aci n. Par a el l o se
deben r ecabar l os si gui ent es dat os: 1) Cur so en que se
mat r i cul a el al umno, 2) Fecha de mat r cul a, 3) Apel l i dos y
nombr es, 4) Sexo, 5) Di r ecci n, y 6) Di st r i t o de r esi denci a. El
di seo de l a i nt er f az debe ser si mi l ar a l a f i gur a most r ada:



Par a sel ecci onar un cur so el usuar i o deber hacer cl i ck en
el bot n punt eado que se encuent r a al l ado de l a caj a de t ext o.
En segui da se pr esent ar un men de sel ecci n por r eal ce en el
cual se pr esent a l a r el aci n de t odos l os cur sos di sponi bl es.


Pg. 290
El cur so quedar sel ecci onado al hacer cl i ck en el bot n
Acept ar .



El mi smo t i po de sel ecci n deber r eal i zar se al moment o de
i ngr esar el nombr e del di st r i t o.



Par a el desar r ol l o de est a apl i caci n necesi t amos t r es
f or mul ar i os y un mdul o. En pr i mer l ugar pr oceda a aadi r un
mdul o de cdi go al pr oyect o. Sel ecci one el Men Pr oyect o y


Pg. 291
el i j a l a opci n Agr egar mdul o, se debe pr esent ar un cuadr o de
di l ogo si mi l ar a l a si gui ent e f i gur a:



Del cuadr o de di l ogo Agr egar mdul o, en l a f i cha Nuevo,
haga cl i ck en el bot n Abr i r . Luego i ngr ese el si gui ent e cdi go
en l a secci n de Decl ar aci ones del mdul o que acabamos de
aadi r :

Publ i c Cur so As St r i ng
Publ i c Di st r i t o As St r i ng

En segui da pr oceda a cambi ar el nombr e f or mul ar i o
pr i nci pal por Fr mFi chaMat r i cul a. Luego debe aadi r l os dems
f or mul ar i os necesar i os par a const r ui r l a apl i caci n. Par a t al
f i n, sel ecci one el men Pr oyect o y el i j a l a opci n Agr egar
f or mul ar i o. Del cuadr o de di l ogo Agr egar f or mul ar i o, en l a
f i cha Nuevo, el i j a l a opci n For mul ar i o y haga cl i ck en el
bot n Abr i r . Se debe pr esent ar un cuadr o de di l ogo si mi l ar a
l a si gui ent e f i gur a:



Pg. 292


En ese i nst ant e se aadi r un nuevo f or mul ar i o al
pr oyect o. Cambi e el nombr e del nuevo f or mul ar i o por Fr mCur so.
Repi t a el pr ocedi mi ent o ant er i or par a aadi r el f or mul ar i o
Fr mDi st r i t o.

A cont i nuaci n copi e l os pasos de l a pg. 55 a l a pg. 62
de l a Gu a de Labor at or i o N 4 ( Apl i caci n N 3) con l os
si gui ent es cambi os:

En l a pg. 55, aadi r sl o 2 mar cos. No aadi r ni ngn
cont r ol de l i st a. En vez de 4 bot ones de comando, aadi r 6
bot ones de comando. Luego, est abl ecer l as si gui ent es
pr opi edades par a l os dos nuevos bot ones:

Command5
Nombr e CmdCur so
Capt i on . . .

Command6


Pg. 293
Nombr e CmdDi st r i t o
Capt i on . . .

En l a pg. 59, r eempl azar el cdi go del event o Load del
f or mul ar i o por el si gui ent e:

Pr i vat e Sub For m_Load( )
CboSexo. AddI t em" Mascul i no"
CboSexo. AddI t em" Femeni no"
End Sub

En l a pg. 61, supr i mi r el cdi go asoci ado al event o Cl i ck
de l os cont r ol es de l i st a Lst Cur sos y Lst Di st r i t o. En su l ugar
aadi r l o si gui ent e:

Pr i vat e Sub CmdCur so_Cl i ck( )
Load Fr mCur so
Fr mCur so. Show vbModal
Txt Cur so = Cur so
End Sub

Pr i vat e Sub CmdDi st r i t o_Cl i ck( )
Load Fr mDi st r i t o
Fr mDi st r i t o. Show vbModal
Txt Di st r i t o = Di st r i t o
End Sub

A cont i nuaci n act i ve el f or mul ar i o Fr mCur so, par a el l o
haga cl i ck sobr e el mi smo. En segui da pr oceda a ubi car l os
si gui ent es cont r ol es en el f or mul ar i o:

1 cont r ol de l i st a
1 bot ones de comando


Pg. 294
Luego pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:

Form2
Nombr e Fr mCur so
Bor der St yl e 3- Fi xed Di al og
Capt i on Cur sos

List1
Nombr e Lst Cur sos
Text

Command1
Nombr e CmdAcept ar
Capt i on
&Acept ar

Una vez est abl eci das l as pr opi edades pr oceda a i ngr esar el
cdi go que se i ndi ca a cont i nuaci n:

Pr i vat e Sub For m_Load( )
Lst Cur sos. AddI t emBor l and C++ Ni vel I
Lst Cur sos. AddI t emBor l and C++ Ni vel I I
Lst Cur sos. AddI t emMi cr osof t Vi sual Basi c Ni vel I
Lst Cur sos. AddI t emMi cr osof t Vi sual Basi c Ni vel I I
Lst Cur sos. AddI t emMi cr osof t Vi sual FoxPr o Ni vel I
Lst Cur sos. AddI t emMi cr osof t Vi sual FoxPr o Ni vel I I
Lst Cur sos. AddI t emMi cr osof t Vi sual C++ Ni vel I
Lst Cur sos. AddI t emMi cr osof t Vi sual C++ Ni vel I I
Lst Cur sos. AddI t emMi cr osof t SQL Ser ver Ni vel I
Lst Cur sos. AddI t emMi cr osof t SQL Ser ver Ni vel I I
Lst Cur sos. AddI t emMi cr osof t Power Bui l der Ni vel I
Lst Cur sos. AddI t emMi cr osof t Power Bui l der Ni vel I I
End Sub


Pg. 295
Pr i vat e Sub CmdAcept ar _Cl i ck( )
Cur so = Lst Cur sos. Text
Fr mCur so. Hi de
End Sub

Por l t i mo, pr oceda Ud. a desar r ol l ar el cdi go r espect i vo
par a el f or mul ar i o Fr mDi st r i t o.

Aplicacin N 3
El abor ar una apl i caci n que per mi t a pr esent ar l os
di f er ent es t i pos de f or mul ar i os de Vi sual Basi c. Ut i l i ce como
cont enedor pr i nci pal un f or mul ar i o MDI , t al como se muest r a en
l a f i gur a:



Par a el desar r ol l o de est a apl i caci n necesi t amos ut i l i zar
un f or mul ar i o MDI ( i nt er f az de ml t i pl es document os) . Par a el l o
sel ecci one el Men Pr oyect o y el i j a l a opci n Agr egar
f or mul ar i o MDI , se debe pr esent ar un cuadr o de di l ogo si mi l ar
a l a si gui ent e f i gur a:



Pg. 296



Del cuadr o de di l ogo Agr egar f or mul ar i o MDI , en l a f i cha
Nuevo, haga cl i ck en el bot n Abr i r . En segui da cambi e el
nombr e del f or mul ar i o MDI por MDI Pr i nci pal .

A cont i nuaci n pr oceda a aadi r l os f or mul ar i os par a l as
di f er ent es opci ones del men. Cambi e l os nombr es de l os
f or mul ar i os segn se i ndi ca:

Formulario Nombre
For m1 Fr mNone
For m2 Fr mFi xedSi ngl e
For m3 Fr mSi zabl e
For m4 Fr mFi xedDi al og
For m5 Fr mFi xedTool Wi ndow
For m6 Fr mSi zabl eTool Wi ndow
For m7 Fr mAcer caDe




Pg. 297
Luego pr oceda a di sear el men de opci ones. Par a el l o
haga cl i ck der echo sobr e el f or mul ar i o MDI y el i j a l a opci n
Edi t or de mens. Est abl ezca l as pr opi edades segn:

Caption Name ShortCut

&Men Pr i nci pal
MnuPr i nci pal Ni nguno

&0- None
MnuNone Ni nguno
MnuFi xedSi ngl e Ni nguno
&1- Fi xed Si ngl e

&2- Si zabl e
MnuSi zabl e Ni nguno
MnuFi xedDi al og Ni nguno
&3- Fi xed Di al og

&4- Fi xed Tool Wi ndow
MnuFi xedTool Wi ndow Ni nguno
MnuSi zabl eTool Wi ndow Ni nguno
&5- Si zabl e Tool Wi ndow
- MnuLi nea Ni nguno

&Acer ca del aut or
MnuAcer caDe Ni nguno

&Sal i r
MnuSal i r Ct r l + X

A cont i nuaci n haga cl i ck en el bot n Acept ar del Edi t or
de mens. Luego pr oceda a i ngr esar el si gui ent e cdi go par a el
f or mul ar i o MDI :

Pr i vat e Sub MDI For m_Unl oad( Cancel As I nt eger )
I f MsgBox( Desea t er mi nar l a apl i caci n?, _
vbQuest i on + vbYesNo, Mensaj e) = vbYes Then
End
El se: Cancel = Tr ue
End I f
End Sub

Pr i vat e Sub MnuNone_Cl i ck( )
Load Fr mNone
Fr mNone. Show
End Sub


Pg. 298
Pr i vat e Sub MnuFi xedSi ngl e_Cl i ck( )
Load Fr mFi xedSi ngl e
Fr mFi xedSi ngl e. Show
End Sub

Pr i vat e Sub MnuSi zabl e_Cl i ck( )
Load Fr mSi zabl e
Fr mSi zabl e. Show
End Sub

Pr i vat e Sub MnuFi xedDi al og_Cl i ck( )
Load Fr mFi xedDi al og
Fr mFi xedDi al og. Show
End Sub

Pr i vat e Sub MnuFi xedTool Wi ndow_Cl i ck( )
Load Fr mFi xedTool Wi ndow
Fr mFi xedTool Wi ndow. Show
End Sub

Pr i vat e Sub MnuSi zabl eTool Wi ndow_Cl i ck( )
Load Fr mSi zabl eTool Wi ndow
Fr mSi zabl eTool Wi ndow. Show
End Sub

Pr i vat e Sub MnuAcer caDe_Cl i ck( )
Load Fr mAcer caDe
Fr mAcer caDe. Show
End Sub

Pr i vat e Sub MnuSal i r _Cl i ck( )
Unl oad Me
End Sub



Pg. 299
A cont i nuaci n pr oceda a act i var el f or mul ar i o Fr mNone y
ubi que un bot n de comandos sobr e el mi smo. En segui da
est abl ezca l as pr opi edades segn se i ndi ca a cont i nuaci n:

Form1
Nombr e Fr mNone
Bor der St yl e 0- None
Capt i on None
MDI Chi l d Tr ue

Command1
Nombr e CmdVol ver
Capt i on
&Vol ver

Una vez est abl eci das l as pr opi edades, pr oceda a i ngr esar
el cdi go que se muest r a a cont i nuaci n:

Pr i vat e Sub CmdVol ver _Cl i ck( )
Unl oad Me
End Sub

Repi t a el pr ocedi mi ent o ant er i or par a l os dems t i pos de
f or mul ar i os.

Aplicacin N 4
El abor ar una apl i caci n que acept e como ent r ada l a r eser va
de agua de un depsi t o y l os l i t r os que se consumen a l a
semana. Ut i l i zando una f unci n def i ni da por el usuar i o
det er mi nar como r esul t ado l as cant i dades de agua que quedan al
f i nal de cada semana. El pr oceso f i nal i zar cuando no quede
agua suf i ci ent e par a una semana. Ut i l i zar ot r o f or mul ar i o par a
most r ar l a sal i da.
FIN PARTE I


Pg. 300








GUA DE LABORATORIO
Parte II


ELABORADO POR
CARLOS CASTILLO PERALTA
cc_peralta@hotmail.com





INTRODUCCIN


Pg. 301

La pr esent e Gu a de Labor at or i o de Mi cr osof t Vi sual Basi c,
se el abor con l a f i nal i dad de compl ement ar l a par t e t er i ca
con l a par t e pr ct i ca del cur so. Los pr obl emas pr esent an un
gr ado de di f i cul t ad gr adual , es deci r , en cada pr ct i ca pr i mer o
se comi enzan con pr obl emas muy senci l l os con l a f i nal i dad de
que el est udi ant e escl ar ezca dudas y quede cl ar o en l os
concept os asi mi l ados en l a t eor a, y l uego en l os pr obl emas
post er i or es se va i ncr ement ando el ni vel de di f i cul t ad.
Est a gu a expl or a una gr an var i edad de mat er i as y cont i ene
muchos pr obl emas r ecopi l ados a l o l ar go de var i os aos de
exper i enci a. Esper o que sat i sf aga l as necesi dades de l os
est udi ant es y col egas, ya que ha si do el abor ada t eni endo en
cuent a l os obj et i vos de apr endi zaj e del cur so.
Si desean compar t i r l a con ot r os col egas, me agr adar a
mucho que l o hi ci er an, con l a ni ca condi ci n de que si empr e se
r espet e el der echo del aut or .
Desde ya l es deseo l a mej or de l as suer t es en el
apr endi zaj e de Mi cr osof t Vi sual Basi c.

Li ma, Di ci embr e del 2000

Car l os Cast i l l o Per al t a
Microsoft Vi sual Basi c


Pg. 302
GUA DE LABORATORIO N 6

Objetivos
Luego de compl et ar est e l abor at or i o, el est udi ant e ser
capaz de:

Cr ear y mani pul ar bases de dat os ut i l i zando Mi cr osof t Access.
Adi ci onar un ent or no de dat os a un pr oyect o.
Conect ar un or i gen de dat os a un obj et o Connect i on.
Ut i l i zar un obj et o Command par a r ecuper ar r egi st r os de un
or i gen de dat os.
Cr ear f or mul ar i os con dat os enl azados.
Real i zar consul t as ut i l i zando sent enci as SQL.

Consideraciones
Par a el desar r ol l o del pr esent e l abor at or i o Ud. deber
cr ear una car pet a C:\FundVB\Lab6, par a guar dar sus t r abaj os
cor r espondi ent es a est e l abor at or i o.

Creacin de la base de datos con Microsoft Access 2000
Par a desar r ol l ar nuest r as pr ct i cas de l abor at or i o debemos
cr ear una base de dat os cuyo nombr e es Cur sosLi br es. MDB, l a
cual cont endr l as t abl as Cur so y Labor at or i o. La t ar ea de
cr ear una base de dat os con Mi cr osof t Access 2000 es muy
senci l l a. Par a t al f i n debe r eal i zar l o si gui ent e:

Ar r ancar Mi cr osof t Access 2000.
Sel ecci onar l a or den Nueva. . . del Men Ar chi vo.
Dent r o del cuadr o de di l ogo Nueva, en l a f i cha Gener al ,
sel ecci onar Base de dat os y hacer cl i ck en el bot n Acept ar .
I ngr esar un nombr e par a l a base de dat os, par a nuest r o caso
i ngr ese Cur sosLi br es. En segui da se most r ar una vent ana
si mi l ar a l a si gui ent e:


Pg. 303



Pr oceda a cr ear una nueva t abl a. Par a el l o sel ecci onar l a
opci n Tabl as y haga dobl e cl i ck en Cr ear una t abl a en vi st a
Di seo.
I nt r oduci r el nombr e, el t i po y l as pr opi edades par a cada uno
de l os campos. Par a nuest r o caso i ngr ese l o si gui ent e:

Tabla Curso
Nombre del
Campo
Tipo Ancho Descripcin
Cur Codi go T 03
Cdi go del cur so
Cur Nombr e T 30
Nombr e del cur so
Cur Vacant es N 03
Nmer o de vacant es di sponi bl es
Cur Pr of e T 50
Nombr e del pr of esor de t eor a
Cur Si l abo M 50
S l abo de cada cur so
Luego, debe asi gnar un nombr e a l a t abl a al moment o de
cer r ar l a. Par a nuest r o caso as gnel e el nombr e de Cur so.
Por l t i mo, pr oceda a abr i r l a t abl a e i nt r oduci r dat os. Par a
nuest r o caso, i ngr ese l a si gui ent e i nf or maci n:


Pg. 304

CurCodigo CurNombre CurProfe
BC1 Bor l and C++ Ni vel I Li nar es Al ar con, Adams
BC2 Bor l and C++ Ni vel I I Cr doba Saavedr a, J avi er
BC3 Bor l and C++ Ni vel I I I Cast i l l o Per al t a, Car l os
VB1 MS Vi sual Basi c Ni vel I Li nar es Al ar con, Adams
VB2 MS Vi sual Basi c Ni vel I I Li nar es Al ar con, Adams
VB3 MS Vi sual Basi c Ni vel I I I Cast i l l o Per al t a, Car l os
VC1 MS Vi sual C++ Ni vel I Cr doba Saavedr a, J avi er
VC2 MS Vi sual C++ Ni vel I I Cast i l l o Per al t a, Car l os
VJ 1 MS Vi sual J ++ Ni vel I Cast i l l o Per al t a, Car l os
VJ 2 MS Vi sual J ++ Ni vel I I Cast i l l o Per al t a, Car l os
VF1 MS Vi sual FoxPr o Ni vel I Li nar es Al ar con, Adams
VF2 MS Vi sual FoxPr o Ni vel I I Cast i l l o Per al t a, Car l os
VF3 MS Vi sual FoxPr o Ni vel I I I Cast i l l o Per al t a, Car l os
PB1 Power Bui l der Ni vel I Cr doba Saavedr a, J avi er
PB2 Power Bui l der Ni vel I I Cr doba Saavedr a, J avi er
SQ1 MS SQL Ser ver Ni vel I Cr doba Saavedr a, J avi er
SQ2 MS SQL Ser ver Ni vel I I Cr doba Saavedr a, J avi er
WI N MS Wi ndows 98 Mont es Tej ada, Est el a

A menudo, el pr oceso de di seo de l a base de dat os es
bast ant e compl ej o. Par a nosot r os ha si do f ci l , pues se nos
br i nda l a est r uct ur a de l as t abl as.

De maner a anl oga, pr oceda a cr ear l a si gui ent e t abl a
segn se i ndi ca a cont i nuaci n:

Tabla Laboratorio
Nombre del
Campo
Tipo Ancho Descripcin
LabCodi go T 03
Cdi go del cur so


Pg. 305
LabHor a T 08
Hor ar i o de l abor at or i o
LabPr of e T 50
Nombr e del pr of esor de l abor at or i o

Al moment o de cer r ar l a t abl a que acaba de cr ear , as gnel e
el nombr e de Labor at or i o. Luego, pr oceda a i ngr esar l a
si gui ent e i nf or maci n:

LabCodigo LabHora LabProfe
BC1 SA 08- 10 Cast i l l o Per al t a, Car l os
BC2 SA 10- 12 Li nar es Al ar con, Adams
BC3 DO 10- 12 Cast i l l o Per al t a, Car l os
VB1 SA 08- 10 Mont es Tej ada, Est el a
VB2 DO 10- 12 Li nar es Al ar con, Adams
VB3 DO 08- 10 Cast i l l o Per al t a, Car l os
VC1 DO 08- 10 Li nar es Al ar con, Adams
VC2 DO 10- 12 Cr doba Saavedr a, J avi er
VJ 1 SA 16- 18 Cast i l l o Per al t a, Car l os
VJ 2 SA 18- 20 Cast i l l o Per al t a, Car l os
VF1 SA 08- 10 Li nar es Al ar con, Adams
VF2 DO 08- 10 Cr doba Saavedr a, J avi er
VF3 DO 14- 16 Li nar es Al ar con, Adams
PB1 VI 16- 18 Cr doba Saavedr a, J avi er
PB2 VI 14- 16 Cr doba Saavedr a, J avi er
SQ1 SA 16- 18 Cr doba Saavedr a, J avi er
SQ2 SA 18- 20 Cr doba Saavedr a, J avi er
WI N SA 10- 12 Mont es Tej ada, Est el a


Aplicacin N 1
El abor ar una apl i caci n que per mi t a r eal i zar el
mant eni mi ent o de l a i nf or maci n al macenada en l a t abl a Cur so de


Pg. 306
l a base de dat os Cur sosLi br es. MDB. El di seo de l a i nt er f az
debe ser si mi l ar a l a f i gur a most r ada:



Los bot ones ubi cados en el mar co Navegador ( Pr i mer o,
Ant er i or , Si gui ent e y Ul t i mo, de i zqui er da a der echa) per mi t en
despl azar se a t r avs de l a t abl a. Los bot ones ubi cados en el
mar co Mant eni mi ent o ( Nuevo, Edi t ar , Guar dar y El i mi nar , de
i zqui er da a der echa) per mi t en r eal i zar l as oper aci ones bsi cas
de mant eni mi ent o de l a t abl a.

Par a desar r ol l ar nuest r a apl i caci n, l o pr i mer o que
debemos hacer es conect ar nos a l a base de dat os
Cur sosLi br es. MDB. Par a el l o i ngr ese a Vi sual Basi c de maner a
habi t ual , a cont i nuaci n en el men Pr oyect o sel ecci one l a
opci n Agr egar Dat a Envi r onment y se cr ear una nueva conexi n
par a l a que debe est abl ecer pr opi edades de v ncul o de dat os. En
l a vent ana Dat a Envi r onment cambi e el nombr e del obj et o
Dat aEnvi r onment por DeCur sosLi br es y el de l a conexi n por
CnCur sosLi br es. El aspect o de l a vent ana Dat a Envi r onment
deber ser si mi l ar a l a si gui ent e f i gur a:



Pg. 307


Luego haga cl i ck con el bot n der echo del r at n en
CnCur sosLi br es y sel ecci one l a opci n Pr opi edades. Deber
pr esent ar se un cuadr o de di l ogo si mi l ar al si gui ent e:


En l a f i cha Pr oveedor del cuadr o de di l ogo ant er i or ,
sel ecci one Mi cr osof t J et 4. 0 OLE DB Pr ovi der y haga cl i ck en el


Pg. 308
bot n Si gui ent e. En segui da apar ecer un cuadr o de di l ogo
si mi l ar al most r ado:



En l a f i cha Conexi n del cuadr o de di l ogo Pr opi edades de
Dat a Li nk escr i ba el nombr e de l a base de dat os
Cur sosLi br es. MDB y haga cl i ck en el bot n Pr obar conexi n.
Luego si l a conexi n es sat i sf act or i a haga cl i ck en el bot n
Acept ar .

En segui da en l a bar r a de her r ami ent as de l a vent ana Dat a
Envi r onment haga cl i ck en el bot n Agr egar Comando y denomi ne
al comando CmCur so. Luego haga cl i ck der echo sobr e el comando y
sel ecci one Pr opi edades:



Pg. 309


Compr uebe que est e comando ut i l i za l a conexi n
CnCur sosLi br es, l uego est abl ezca el nombr e de l a t abl a a
ut i l i zar , en est e caso Cur so y haga cl i ck en el bot n Acept ar .

A cont i nuaci n sel ecci one el comando CmCur so y ar r st r el o
haci a el f or mul ar i o. Fi nal ment e agr egue l os si gui ent es
cont r ol es al f or mul ar i o:

3 mar cos
9 bot ones de comandos

En segui da pr oceda a est abl ecer l as pr opi edades
r equer i das:

Form1
Nombr e Fr mMant enCur so
Capt i on Mant eni mi ent o de cur sos
Bor der St yl e 3- Fi xed Di al og

Frame1


Pg. 310
Nombr e Fr aI ngr eso
Capt i on

Frame2
Nombr e Fr aNavegador
Capt i on Navegador

Frame3
Nombr e Fr aMant eni mi ent o
Capt i on Mant eni mi ent o

LblFieldLabel(0)
Nombr e Lbl Fi el dLabel
Capt i on Cdi go:

LblFieldLabel(1)
Nombr e Lbl Fi el dLabel
Capt i on Nombr e:

LblFieldLabel(2)
Nombr e Lbl Fi el dLabel
Capt i on Vacant es:

LblFieldLabel(3)
Nombr e Lbl Fi el dLabel
Capt i on Pr of esor :

TxtCurCodigo
Nombr e Txt Cur Codi go
Locked Tr ue
Text


TxtCurNombre


Pg. 311
Nombr e Txt Cur Nombr e
Locked Tr ue
Text

TxtCurVacantes
Nombr e Txt Cur Vacant es
Locked Tr ue
Text

TxtCurProfe
Nombr e Txt Cur Pr of e
Locked Tr ue
Text

Command1
Nombr e CmdPr i mer o
Capt i on
Pi ct ur e C: \ FundVB\ Bi t maps\ Fi r st . bmp
St yl e 1- Gr aphi cal

Command2
Nombr e CmdAnt er i or
Capt i on
Pi ct ur e C: \ FundVB\ Bi t maps\ Pr evi ous. bmp
St yl e 1- Gr aphi cal

Command3
Nombr e CmdSi gui ent e
Capt i on
Pi ct ur e C: \ FundVB\ Bi t maps\ Next . bmp
St yl e 1- Gr aphi cal




Pg. 312
Command4
Nombr e CmdUl t i mo
Capt i on
Pi ct ur e C: \ FundVB\ Bi t maps\ Last . bmp
St yl e 1- Gr aphi cal

Command5
Nombr e CmdNuevo
Capt i on
Pi ct ur e C: \ FundVB\ Bi t maps\ New. bmp
St yl e 1- Gr aphi cal

Command6
Nombr e CmdEdi t ar
Capt i on
Pi ct ur e C: \ FundVB\ Bi t maps\ Edi t . bmp
St yl e 1- Gr aphi cal

Command7
Nombr e CmdGuar dar
Capt i on
Pi ct ur e C: \ FundVB\ Bi t maps\ Save. bmp
St yl e 1- Gr aphi cal

Command8
Nombr e CmdEl i mi nar
Capt i on
Pi ct ur e C: \ FundVB\ Bi t maps\ Del et e. bmp
St yl e 1- Gr aphi cal


Command9
Nombr e CmdSal i r


Pg. 313
Capt i on
&Sal i r
Pi ct ur e C: \ FundVB\ Bi t maps\ Exi t . bmp
St yl e 1- Gr aphi cal

El cdi go asoci ado a l a apl i caci n se muest r a a
cont i nuaci n:

Pr i vat e Sub CmdPr i mer o_Cl i ck( )
DeCur sosLi br es. r sCmCur so. MoveFi r st
End Sub

Pr i vat e Sub CmdUl t i mo_Cl i ck( )
DeCur sosLi br es. r sCmCur so. MoveLast
End Sub

Pr i vat e Sub CmdAnt er i or _Cl i ck( )
DeCur sosLi br es. r sCmCur so. MovePr evi ous
I f DeCur sosLi br es. r sCmCur so. BOF Then
DeCur sosLi br es. r sCmCur so. MoveFi r st
MsgBox Est amos en el pr i mer r egi st r o
End I f
End Sub

Pr i vat e Sub CmdSi gui ent e_Cl i ck( )
DeCur sosLi br es. r sCmCur so. MoveNext
I f DeCur sosLi br es. r sCmCur so. EOF Then
DeCur sosLi br es. r sCmCur so. MoveLast
MsgBox Est amos en el l t i mo r egi st r o
End I f
End Sub


Pr i vat e Sub CmdNuevo_Cl i ck( )
DeCur sosLi br es. r sCmCur so. AddNew


Pg. 314
ModoEdi t ar Tr ue
End Sub

Pr i vat e Sub CmdEdi t ar _Cl i ck( )
ModoEdi t ar Tr ue
End Sub

Pr i vat e Sub CmdGuar dar _Cl i ck( )
DeCur sosLi br es. r sCmCur so. Updat e
ModoEdi t ar Fal se
End Sub

Pr i vat e Sub CmdEl i mi nar _Cl i ck( )
DeCur sosLi br es. r sCmCur so. Del et e
DeCur sosLi br es. r sCmCur so. MoveNext
I f DeCur sosLi br es. r sCmCur so. EOF Then
DeCur sosLi br es. r sCmCur so. MoveLast
End I f
End Sub

Pr i vat e Sub CmdSal i r _Cl i ck( )
Unl oad Me
End

Pr i vat e Sub For m_Unl oad( Cancel As I nt eger )
I f MsgBox( Desea t er mi nar l a apl i caci n?, _
vbQuest i on + vbYesNo, Pr egunt a) = vbYes Then
End
El se
Cancel = Tr ue
End I f
End Sub
Pr i vat e Sub For m_Act i vat e( )
ModoEdi t ar Fal se


Pg. 315
End Sub

Pr i vat e Sub ModoEdi t ar ( ByVal Ok As Bool ean)
Txt Cur Codi go. Locked = Not Ok: Txt Cur Nombr e. Locked = Not Ok
Txt Cur Vacant es. Locked = Not Ok: Txt Cur Pr of e. Locked = Not Ok
CmdNuevo. Enabl ed = Not Ok: CmdEdi t ar . Enabl ed = Not Ok
CmdGuar dar . Enabl ed = Ok: CmdEl i mi nar . Enabl ed = Not Ok
CmdPr i mer o. Set Focus: I f Ok Then Txt Cur Codi go. Set Focus
End Sub

Fi nal ment e ant es de ej ecut ar l a apl i caci n debemos
asegur ar nos de el egi r el t i po de bl oqueo adecuado. Par a el l o
haga cl i ck der echo sobr e el comando CmCur so y el i j a l a opci n
Pr opi edades y en l a f i cha Avanzadas sel ecci ones el t i po de
bl oqueo 3- Opt i mi st i c, t al como se muest r a en l a f i gur a
si gui ent e:



Aplicacin N 2


Pg. 316
Desar r ol l ar una apl i caci n que per mi t a most r ar en una
gr i l l a el cont eni do de l a t abl a Cur so. El di seo de l a i nt er f az
se muest r a a cont i nuaci n:



Par a desar r ol l ar l a apl i caci n, l o pr i mer o que debemos
hacer es conect ar nos a l a base de dat os Cur sosLi br es. MDB.
Luego, aada un Comando y denom nel o CmConsul t aCur so. Haga
cl i ck der echo sobr e el comando y sel ecci one Pr opi edades:




Pg. 317
Compr uebe que est e comando ut i l i za l a conexi n
CnCur sosLi br es. Luego sel ecci one l a opci n I nst r ucci n SQL
( St r uct ur ed Quer y Language, Lenguaj e de Est r uct ur as de
Consul t as) e i ngr ese el si gui ent e cdi go:

Sel ect Cur Codi go As Cdi go, Cur Nombr e As Nombr e,
Cur Vacant es As Vacant es, Cur Pr of e As Pr of esor Fr omCur so

Luego, haga cl i ck en el bot n Acept ar . La vent ana
Dat aEnvi r onment debe pr esent ar el si gui ent e aspect o:



A cont i nuaci n sel ecci one el comando CmConsul t aCur so y
ar r st r el o con el bot n der echo del r at n haci a el f or mul ar i o.
Del men despl egabl e que se pr esent a, sel ecci one l a opci n
Cuadr cul a de dat os.



Luego, cambi e l as di mensi ones de l a gr i l l a de t al f or ma
que ocupe l a t ot al i dad del f or mul ar i o. Fi nal ment e guar de y
pr uebe su apl i caci n.

Aplicacin N 3


Pg. 318
Desar r ol l ar una apl i caci n que per mi t a sel ecci onar de un
cont r ol Dat aCombo el nombr e de un pr of esor y vi sual i zar l os
cur sos que di ct a di cho pr of esor .



Lo pr i mer o que debe hacer es conect ar se a l a base de dat os
Cur sosLi br es. MDB. En segui da aada un comando y denom nel o
CmConsul t aPr of e. Luego haga cl i ck der echo sobr e el comando y
sel ecci one Pr opi edades. Compr uebe que est e comando ut i l i za l a
conexi n CnCur sosLi br es. Luego sel ecci one l a opci n I nst r ucci n
SQL e i ngr ese el si gui ent e cdi go:

Sel ect Cur Codi go As Cdi go, Cur Nombr e As Nombr e,
Cur Pr of e As Pr of esor Fr omCur so Wher e ( Cur Pr of e = ?)

A cont i nuaci n pr oceda a aadi r ot r o comando y denom nel o
CmPr of e. Compr uebe que est e comando ut i l i za l a conexi n
CnCur sosLi br es. Sel ecci one l a opci n I nst r ucci n SQL e i ngr ese
el si gui ent e cdi go:

Sel ect Di st i nct Cur Pr of e Fr omCur so

Luego pr oceda ha ubi car l os si gui ent es cont r ol es en el
f or mul ar i o:
1 cont r ol Dat aCombo
1 cont r ol Dat aGr i d


Pg. 319
1 bot n de comandos

En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:

Form1
Nombr e Fr mConsul t aPr of e
Capt i on Consul t a de pr of esor es
Bor der St yl e 3- Fi xed Di al og

DataCombo1
Nombr e DbcPr of e
Li st Fi el d Cur Pr of e
RowMember CmPr of e
RowSour ce DeCur sosLi br es

DataGrid1
Nombr e Dbgr dCur sos
Font Ar i al ( Negr i t a 10)
HeadFont Ar i al ( Negr i t a 10)

Command1
Nombr e CmdBuscar
Capt i on
&Buscar

A cont i nuaci n i ngr ese el si gui ent e cdi go:

Pr i vat e Sub CmdBuscar _Cl i ck( )
I f DeCur sosLi br es. r sCmConsul t aPr of e. St at e = adSt at eOpen Then
DeCur sosLi br es. r sCmConsul t aPr of e. Cl ose
End I f
DeCur sosLi br es. CmConsul t aPr of e ( DbcPr of e. Text )
Set Dbgr dCur sos. Dat aSour ce = DeCur sosLi br es. r sCmConsul t aPr of e


Pg. 320
End Sub

Aplicacin N 4
Desar r ol l ar una apl i caci n que per mi t a most r ar el
cont eni do de l a t abl a Labor at or i o, r el aci onada con l a t abl a
Cur so, t al como se muest r a a cont i nuaci n:



Obser var que l a t abl a Labor at or i o sl o cuent a con t r es
campos. El campo que cont i ene el nombr e del cur so per t enece a
l a t abl a Cur so.

La sent enci a SQL que per mi t e obt ener consul t as a par t i r de
ml t i pl es t abl as ( par a nuest r o caso Cur so y Labor at or i o) , se
i ndi ca a cont i nuaci n:

Sel ect Labor at or i o. LabCodi go As Cdi go,
Cur so. Cur Nombr e As Nombr e,
Labor at or i o. LabHor a As Hor ar i o,
Labor at or i o. LabPr of e As [ J ef e de pr ct i ca]
Fr omLabor at or i o, Cur so
Wher e Labor at or i o. LabCodi go = Cur so. Cur Codi go


Microsoft Vi sual Basi c


Pg. 321
GUA DE LABORATORIO N 7

Objetivos
Luego de compl et ar est e l abor at or i o, el est udi ant e ser
capaz de:

Ut i l i zar el obj et o ADO Connect i on par a cr ear una conexi n a
una base de dat os.
Cr ear un obj et o ADO Recor dset par a r ecuper ar i nf or maci n de
una base de dat os.
Ut i l i zar el mt odo Execut e de una conexi n par a act ual i zar l a
i nf or maci n de una base de dat os.

Consideraciones
Par a el desar r ol l o del pr esent e l abor at or i o Ud. deber
cr ear una car pet a C:\FundVB\Lab7, par a guar dar sus t r abaj os
cor r espondi ent es a est e l abor at or i o.

Aplicacin N 1
El abor ar una apl i caci n que per mi t a r eal i zar el
mant eni mi ent o de l a i nf or maci n cont eni da en l a t abl a Cur so.


En est a apl i caci n Ud. debe di sear l a i nt er f az y l uego
escr i bi r cdi go par a conect ar se y r ecuper ar i nf or maci n de l a
base de dat os.



Pg. 322
Par a el di seo de l a i nt er f az, pr oceda a ubi car l os
si gui ent es cont r ol es en el f or mul ar i o:

3 mar cos
4 et i quet as
4 caj as de t ext o
8 bot ones de comando

En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:

Form1
Nombr e Fr mMant enCur sos
Capt i on Mant eni mi ent o de cur sos
Bor der St yl e 3- Fi xed Di al og
Moveabl e Fal se
St ar t UpPosi t i on 2- Cent er Scr een

Frame1
Nombr e Fr aI ngr eso
Capt i on

Frame2
Nombr e Fr aNavegador
Capt i on Navegador

Frame3
Nombr e Fr aMant eni mi ent o
Capt i on Mant eni mi ent o


Label1
Nombr e Lbl Codi go
Capt i on Cdi go:


Pg. 323

Label2
Nombr e Lbl Nombr e
Capt i on Nombr e:

Label3
Nombr e Lbl Vacant es
Capt i on Vacant es:

Label4
Nombr e Lbl Pr of esor
Capt i on Pr of esor :

Text1
Nombr e Txt Cur Codi go
Locked Tr ue
Text

Text2
Nombr e Txt Cur Nombr e
Locked Tr ue
Text

Text3
Nombr e Txt Cur Vacant es
Locked Tr ue
Text


Text4
Nombr e Txt Cur Pr of e
Locked Tr ue


Pg. 324
Text

Par a est abl ecer l as pr opi edades de l os bot ones de comando
Command1, Command2, . . . , Command8, copi ar l os pasos de l a
pg. 87 a l a pg. 88 de l a Gu a de Labor at or i o N 6 ( Apl i caci n
N 1) .

Ant es de i ngr esar cdi go a l a apl i caci n, debemos t ener en
cuent a que par a poder ut i l i zar l os obj et os ADO es una
apl i caci n Vi sual Basi c es necesar i o car gar l a l i br er a
cor r espondi ent e. Par a el l o sel ecci ones el men Pr oyect o y el i j a
l a opci n Ref er enci as. En el cuadr o de di l ogo Ref er enci as
sel ecci one l a opci n Mi cr osof t Act i veX Dat a Obj ect s 2. 1
Li br ar y, t al como se i ndi ca en l a f i gur a si gui ent e:



Luego de hacer cl i ck en el bot n Acept ar est ar en
condi ci ones de ut i l i zar l os obj et os ADO en su apl i caci n.



Pg. 325
El cdi go necesar i o par a r eal i zar l a conexi n y ef ect uar
el mant eni mi ent o de l a t abl a se muest r a a cont i nuaci n.
Obser var l a anal og a cuando se ut i l i za Dat a Envi r onment .

Di mCn As ADODB. Connect i on
Di mRs As ADODB. Recor dset

Pr i vat e Sub ModoEdi t ar ( ByVal Ok As Bool ean)
Txt Cur Codi go. Locked = Not Ok
Txt Cur Nombr e. Locked = Not Ok
Txt Cur Vacant es. Locked = Not Ok
Txt Cur Pr of e. Locked = Not Ok
CmdNuevo. Enabl ed = Not Ok
CmdEdi t ar . Enabl ed = Not Ok
CmdGuar dar . Enabl ed = Ok
CmdEl i mi nar . Enabl ed = Not Ok
I f Ok Then Txt Cur Codi go. Set Focus
End Sub

Pr i vat e Sub For m_Load( )
ModoEdi t ar Fal se
Set Cn = New ADODB. Connect i on
Set Rs = New ADODB. Recor dset
Cn. Open Pr ovi der =Mi cr osof t . J et . OLEDB. 4. 0; & _
Dat a Sour ce=C: \ FundVB\ Dat a\ Cur sosLi br es. MDB; & _
Per si st Secur i t y I nf o=Fal se
Rs. Act i veConnect i on = Cn
Rs. Cur sor Type = adOpenKeyset
Rs. LockType = adLockOpt i mi st i c
Rs. Open Sel ect * Fr omCur so
Set Txt Cur Codi go. Dat aSour ce = Rs
Txt Cur Codi go. Dat aFi el d = Cur Codi go
Set Txt Cur Nombr e. Dat aSour ce = Rs


Pg. 326
Txt Cur Nombr e. Dat aFi el d = Cur Nombr e
Set Txt Cur Vacant es. Dat aSour ce = Rs
Txt Cur Vacant es. Dat aFi el d = Cur Vacant es
Set Txt Cur Pr of e. Dat aSour ce = Rs
Txt Cur Pr of e. Dat aFi el d = Cur Pr of e
End Sub

Pr i vat e Sub CmdPr i mer o_Cl i ck( )
Rs. MoveFi r st
End Sub

Pr i vat e Sub CmdAnt er i or _Cl i ck( )
Rs. MovePr evi ous
I f Rs. BOF Then
Rs. MoveFi r st
MsgBox Est amos en el pr i mer r egi st r o
End I f
End Sub

Pr i vat e Sub CmdSi gui ent e_Cl i ck( )
Rs. MoveNext
I f Rs. EOF Then
Rs. MoveLast
MsgBox Est amos en el l t i mo r egi st r o
End I f
End Sub

Pr i vat e Sub CmdUl t i mo_Cl i ck( )
Rs. MoveLast
End Sub

Pr i vat e Sub CmdNuevo_Cl i ck( )
Rs. AddNew
ModoEdi t ar Tr ue


Pg. 327
End Sub

Pr i vat e Sub CmdEdi t ar _Cl i ck( )
ModoEdi t ar Tr ue
End Sub

Pr i vat e Sub CmdGuar dar _Cl i ck( )
Rs. Updat e
ModoEdi t ar Fal se
End Sub

Pr i vat e Sub CmdEl i mi nar _Cl i ck( )
Rs. Del et e
Rs. MoveNext
I f Rs. EOF Then
Rs. MoveLast
End I f
End Sub

Pr i vat e Sub For m_Unl oad( Cancel As I nt eger )
Cn. Cl ose
Set Cn = Not hi ng
End Sub

Aplicacin N 2
Desar r ol l ar una apl i caci n que per mi t a r eal i zar una
consul t a a l a t abl a Cur so. Par a el l o el usuar i o debe
sel ecci onar de un cuadr o combi nado ( combo) el nombr e de un
pr of esor y a cont i nuaci n se deben vi sual i zar l os cur sos a su
car go. El di seo de l a i nt er f az debe ser si mi l ar a l a f i gur a
most r ada:


Pg. 328


Par a el desar r ol l o de est a apl i caci n, pr oceda ha ubi car
l os si gui ent es cont r ol es en el f or mul ar i o:

1 cont r ol ComboBox
1 cont r ol Dat aGr i d
1 bot n de comandos

En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:

Form1
Nombr e Fr mConsul t aPr of e
Capt i on Consul t a de pr of esor es
Bor der St yl e 3- Fi xed Di al og

Combo1
Nombr e CboPr of e
Text

DataGrid1
Nombr e Dbgr dCur sos
Font Ar i al ( Negr i t a 10)
HeadFont Ar i al ( Negr i t a 10)



Pg. 329
Command1
Nombr e CmdBuscar
Capt i on
&Buscar
Def aul t Tr ue

A cont i nuaci n debe i ngr esar el cdi go que se muest r a en
segui da:

Di mCn As ADODB. Connect i on
Di mRsCur so As ADODB. Recor dset
Di mRsPr of e As ADODB. Recor dset

Pr i vat e Sub For m_Load( )
Set Cn = New ADODB. Connect i on
Set RsPr of e = New ADODB. Recor dset
Cn. Open Pr ovi der =Mi cr osof t . J et . OLEDB. 4. 0; & _
Dat a Sour ce=C: \ FundVB\ Dat a\ Cur sosLi br es. MDB; & _
Per si st Secur i t y I nf o=Fal se
RsPr of e. Act i veConnect i on = Cn
RsPr of e. Cur sor Type = adOpenSt at i c
RsPr of e. LockType = adLockOpt i mi st i c
RsPr of e. Cur sor Locat i on = adUseCl i ent
RsPr of e. Open Sel ect Di st i nct Cur Pr of e Fr omCur so
Do Whi l e Not RsPr of e. EOF( )
CboPr of e. AddI t emRsPr of e( Cur Pr of e)
RsPr of e. MoveNext
Loop
End Sub

Pr i vat e Sub CmdBuscar _Cl i ck( )
Set RsCur so = New ADODB. Recor dset
RsCur so. Act i veConnect i on = Cn
RsCur so. Cur sor Type = adOpenSt at i c


Pg. 330
RsCur so. LockType = adLockReadOnl y
RsCur so. Cur sor Locat i on = adUseCl i ent
RsCur so. Open Sel ect Cur Codi go As Cdi go, & _
Cur Nombr e As Nombr e, Cur Pr of e As Pr of esor & _
Fr omCur so Wher e Cur Pr of e = ' & CboPr of e. Text & '
Set Dbgr dCur sos. Dat aSour ce = RsCur so
End Sub

Pr i vat e Sub For m_Unl oad( Cancel As I nt eger )
Cn. Cl ose
Set Cn = Not hi ng
End Sub

Aplicacin N 3
Desar r ol l ar una apl i caci n que per mi t a r eal i zar el
mant eni mi ent o de l as t abl as de l a base de dat os
Cur sosLi br es. MDB ( est as t abl as l e ser n pr opor ci onadas con
dat os suf i ci ent es, por el J ef e de Pr ct i ca) .

El di seo de l a i nt er f az debe ser si mi l ar a l a si gui ent e
f i gur a:




Pg. 331
Por ej empl o par a r eal i zar el mant eni mi ent o de l a t abl a
Cur so debemos pr epar ar l os si gui ent es f or mul ar i os:








Pg. 332
Par a desar r ol l ar nuest r a apl i caci n debe agr egar un mdul o
de cdi go al pr oyect o. Luego i ngr ese l o si gui ent e:

Publ i c Cn As ADODB. Connect i on

Tambi n ser necesar i o agr egar un f or mul ar i o MDI . Luego,
cambi e el nombr e del f or mul ar i o por el de MDI Cur sosLi br es. En
segui da, di see el men par a l a apl i caci n segn se i ndi ca:

Caption Name ShortCut
MnuMant en Ni nguno
&Mant eni mi ent o

&Al umnos
MnuMant enAl umno Ni nguno
MnuMant enAl umnoNuevo Ni nguno
&Nuevo

&Edi t ar
MnuMant enAl umnoEdi t ar Ni nguno
MnuMant enAl umnoEl i mi nar Ni nguno
&El i mi nar

&Cur sos
MnuMant enCur so Ni nguno
MnuMant enCur soNuevo Ni nguno
&Nuevo
MnuMant enCur soEdi t ar
&Edi t ar
Ni nguno
MnuMant enCur soEl i mi nar Ni nguno
&El i mi nar

&Labor at or i o
MnuMant enLabor at or i o Ni nguno
MnuMant enLabor at or i oNuevo Ni nguno
&Nuevo
&Edi t ar
MnuMant enLabor at or i oEdi t ar Ni nguno

&El i mi nar
MnuMant enLabor at or i oEl i mi nar Ni nguno

&Di st r i t o
MnuMant enDi st r i t o Ni nguno

&Nuevo
MnuMant enDi st r i t oNuevo Ni nguno

&Edi t ar
MnuMant enDi st r i t oEdi t ar Ni nguno

&El i mi nar
MnuMant enDi st r i t oEl i mi nar Ni nguno
- MnuMant Li nea Ni nguno

&Sal i r
MnuMant Sal i r Ct r l + X



Pg. 333
Luego, haga dobl e cl i ck sobr e el f or mul ar i o e i ngr ese el
si gui ent e cdi go:

Pr i vat e Sub MDI For m_Load( )
Set Cn = New ADODB. Connect i on
Cn. Open Pr ovi der =Mi cr osof t . J et . OLEDB. 4. 0; & _
Dat a Sour ce=C: \ FundVB\ Dat a\ Cur sosLi br es. MDB; & _
Per si st Secur i t y I nf o=Fal se
End Sub

Pr i vat e Sub MnuMant enCur sosNuevo_Cl i ck( )
Load Fr mNuevoCur so
Fr mNuevoCur so. Show
End Sub

Pr i vat e Sub MnuMant enCur sosEdi t ar _Cl i ck( )
Load Fr mEdi t ar Cur so
Fr mEdi t ar Cur so. Show
End Sub

Pr i vat e Sub MnuMant enCur sosEl i mi nar _Cl i ck( )
Load Fr mEl i mi nar Cur so
Fr mEl i mi nar Cur so. Show
End Sub

Par a desar r ol l ar l a opci n Nuevo de l a t abl a Cur so, aada
un nuevo f or mul ar i o al pr oyect o. Luego, ubi que l os si gui ent es
cont r ol es en el f or mul ar i o:

4 et i quet as
4 caj as de t ext o
3 bot ones de comando

Luego pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:


Pg. 334
Form1
Nombr e Fr mMant enCur sos
Capt i on Nuevo cur so
Bor der St yl e 3- Fi xed Di al og
MDI Chi l d Tr ue

Label1
Nombr e Lbl Codi go
Capt i on Cdi go:

Label2
Nombr e Lbl Nombr e
Capt i on Nombr e:

Label3
Nombr e Lbl Vacant es
Capt i on Vacant es:

Label4
Nombr e Lbl Pr of esor
Capt i on Pr of esor :

Text1
Nombr e Txt Cur Codi go
Text

Text2
Nombr e Txt Cur Nombr e
Text

Text3
Nombr e Txt Cur Vacant es
Text


Pg. 335
Text4
Nombr e Txt Cur Pr of e
Text

Command1
Nombr e CmdGr abar
Capt i on
&Gr abar

Command2
Nombr e CmdNuevo
Capt i on
&Nuevo

Command3
Nombr e CmdCer r ar
Capt i on
&Cer r ar

Una vez est abl eci das l as pr opi edades, pr oceda a i ngr esar
el si gui ent e cdi go:

Pr i vat e Sub For m_Load( )
CmdGr abar . Enabl ed = Tr ue
CmdNuevo. Enabl ed = Fal se
End Sub

Pr i vat e Sub CmdGr abar _Cl i ck( )
Cn. Execut e I nser t I nt o Cur so( Cur Codi go, Cur Nombr e, & _
Cur Vacant es, Cur Pr of e) Val ues ( ' & Txt Cur Codi go & _
' , & ' & Txt Cur Nombr e & ' , & _
Val ( Txt Cur Vacant es) & , & ' & Txt Cur Pr of e & ' )
CmdGr abar . Enabl ed = Fal se
CmdNuevo. Enabl ed = Tr ue
End Sub



Pg. 336
Pr i vat e Sub CmdNuevo_Cl i ck( )
Txt Cur Codi go =
Txt Cur Nombr e =
Txt Cur Vacant es =
Txt Cur Pr of e =
CmdGr abar . Enabl ed = Tr ue: CmdNuevo. Enabl ed = Fal se
Txt Cur Codi go. Set Focus
End Sub

Pr i vat e Sub CmdCer r ar _Cl i ck( )
Unl oad Me
End Sub

Par a desar r ol l ar l a opci n Edi t ar de l a t abl a Cur so, aada
un nuevo f or mul ar i o al pr oyect o. Luego, ubi que l os si gui ent es
cont r ol es en el f or mul ar i o:

1 mar co
4 et i quet as
4 caj as de t ext o
4 bot ones de comando

En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:

Form1
Nombr e Fr mMant enCur sos
Capt i on Edi t ar cur so
Bor der St yl e 3- Fi xed Di al og
MDI Chi l d Tr ue

Frame1
Nombr e Fr aCodi go
Capt i on


Pg. 337
Label1
Nombr e Lbl Codi go
Capt i on Cdi go:

Label2
Nombr e Lbl Nombr e
Capt i on Nombr e:

Label3
Nombr e Lbl Vacant es
Capt i on Vacant es:

Label4
Nombr e Lbl Pr of esor
Capt i on Pr of esor :

Text1
Nombr e Txt Cur Codi go
Text

Text2
Nombr e Txt Cur Nombr e
Text

Text3
Nombr e Txt Cur Vacant es
Text

Text4
Nombr e Txt Cur Pr of e
Text



Pg. 338
Command1
Nombr e CmdAcept ar
Capt i on
&Acept ar

Command2
Nombr e CmdGr abar
Capt i on
&Gr abar

Command3
Nombr e CmdNuevo
Capt i on
&Nuevo

Command4
Nombr e CmdCer r ar
Capt i on
&Cer r ar

Una vez est abl eci das l as pr opi edades, pr oceda a i ngr esar
el si gui ent e cdi go:

Pr i vat e Sub For m_Load( )
CmdAcept ar . Enabl ed = Tr ue
CmdGr abar . Enabl ed = Fal se
CmdNuevo. Enabl ed = Fal se
End Sub

Pr i vat e Sub CmdAcept ar _Cl i ck( )
Di mRs As New ADODB. Recor dset
Set Rs = Cn. Execut e( Sel ect Cur Nombr e, & _
Cur Vacant es, Cur Pr of e Fr omCur so & _
Wher e Cur Codi go = ' & Txt Cur Codi go & ' )
I f ( Rs. EOF And Rs. BOF) Then
MsgBox No exi st e ni ngn cur so con est e cdi go
Txt Cur Codi go. Set Focus


Pg. 339
Txt Cur Codi go. Sel St ar t = 0
Txt Cur Codi go. Sel Lengt h = Len( Txt Cur Codi go)
Exi t Sub
End I f
Txt Cur Nombr e = Rs! Cur Nombr e
Txt Cur Vacant es = Rs! Cur Vacant es
Txt Cur Pr of e = Rs! Cur Pr of e
Rs. Cl ose
Set Rs = Not hi ng
Txt Cur Codi go. Enabl ed = Fal se
CmdAcept ar . Enabl ed = Fal se
CmdGr abar . Enabl ed = Tr ue
CmdNuevo. Enabl ed = Tr ue
End Sub

Pr i vat e Sub CmdGr abar _Cl i ck( )
Cn. Execut e Updat e Cur so Set Cur Nombr e = ' & _
Txt Cur Nombr e & ' , & Cur Vacant es = & _
Val ( Txt Cur Vacant es) & , & Cur Pr of e = ' & _
Txt Cur Pr of e & ' & Wher e Cur Codi go = ' & _
Txt Cur Codi go & '
End Sub

Pr i vat e Sub CmdNuevo_Cl i ck( )
Txt Cur Codi go =
Txt Cur Nombr e =
Txt Cur Vacant es =
Txt Cur Pr of e =
CmdAcept ar . Enabl ed = Tr ue
CmdGr abar . Enabl ed = Fal se
CmdNuevo. Enabl ed = Fal se
Txt Cur Codi go. Enabl ed = Tr ue
Txt Cur Codi go. Set Focus


Pg. 340
End Sub

Pr i vat e Sub CmdCer r ar _Cl i ck( )
Unl oad Me
End Sub

Par a desar r ol l ar l a opci n El i mi nar de l a t abl a Cur sos,
aada un nuevo f or mul ar i o al pr oyect o. Luego, ubi que l os
si gui ent es cont r ol es en el f or mul ar i o:

1 mar co
4 et i quet as
4 caj as de t ext o
4 bot ones de comando

En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:

Form1
Nombr e Fr mMant enCur sos
Capt i on El i mi nar cur so
Bor der St yl e 3- Fi xed Di al og
MDI Chi l d Tr ue

Frame1
Nombr e Fr aCodi go
Capt i on

Label1
Nombr e Lbl Codi go
Capt i on Cdi go:

Label2
Nombr e Lbl Nombr e


Pg. 341
Capt i on Nombr e:

Label3
Nombr e Lbl Vacant es
Capt i on Vacant es:

Label4
Nombr e Lbl Pr of esor
Capt i on Pr of esor :

Text1
Nombr e Txt Cur Codi go
Text

Text2
Nombr e Txt Cur Nombr e
Text

Text3
Nombr e Txt Cur Vacant es
Text

Text4
Nombr e Txt Cur Pr of e
Text

Command1
Nombr e CmdAcept ar
Capt i on
&Acept ar

Command2
Nombr e CmdEl i mi nar


Pg. 342
Capt i on
&El i mi nar

Command3
Nombr e CmdNuevo
Capt i on
&Nuevo

Command4
Nombr e CmdCer r ar
Capt i on
&Cer r ar

Una vez est abl eci das l as pr opi edades, pr oceda a i ngr esar
el si gui ent e cdi go:

Pr i vat e Sub For m_Load( )
CmdAcept ar . Enabl ed = Tr ue
CmdEl i mi nar . Enabl ed = Fal se
CmdNuevo. Enabl ed = Fal se
End Sub

Pr i vat e Sub CmdEl i mi nar _Cl i ck( )
Cn. Execut e Del et e Fr omCur so & _
Wher e Cur Codi go = ' & Txt Cur Codi go & '
Cal l CmdNuevo_Cl i ck
End Sub

Pr i vat e Sub CmdNuevo_Cl i ck( )
Txt Cur Codi go =
Txt Cur Nombr e =
Txt Cur Vacant es =
Txt Cur Pr of e =
CmdAcept ar . Enabl ed = Tr ue
CmdEl i mi nar . Enabl ed = Fal se
CmdNuevo. Enabl ed = Fal se


Pg. 343
Txt Cur Codi go. Enabl ed = Tr ue
Txt Cur Codi go. Set Focus
End Sub

Pr i vat e Sub CmdAcept ar _Cl i ck( )
Di mRs As New ADODB. Recor dset
Set Rs = Cn. Execut e( Sel ect Cur Nombr e, & _
Cur Vacant es, Cur Pr of e Fr omCur so & _
Wher e Cur Codi go = ' & Txt Cur Codi go & ' )
I f ( Rs. EOF And Rs. BOF) Then
MsgBox No exi st e ni ngn cur so con est e cdi go
Txt Cur Codi go. Set Focus
Txt Cur Codi go. Sel St ar t = 0
Txt Cur Codi go. Sel Lengt h = Len( Txt Cur Codi go)
Exi t Sub
End I f
Txt Cur Nombr e = Rs! Cur Nombr e
Txt Cur Vacant es = Rs! Cur Vacant es
Txt Cur Pr of e = Rs! Cur Pr of e
Rs. Cl ose
Set Rs = Not hi ng
Txt Cur Codi go. Enabl ed = Fal se
CmdAcept ar . Enabl ed = Fal se
CmdEl i mi nar . Enabl ed = Tr ue
CmdNuevo. Enabl ed = Tr ue
End Sub

Pr i vat e Sub CmdCer r ar _Cl i ck( )
Unl oad Me
End Sub

De maner a si mi l ar pr oceda a desar r ol l ar el cdi go par a l os
f or mul ar i os de mant eni mi ent o de l as dems t abl as.


Pg. 344

Aplicacin N 4
El abor ar una apl i caci n que per mi t a r ecuper ar y mant ener
l a i nf or maci n de l a base de dat os Cur sosLi br es. MDB. Par a t al
f i n debe pr epar ar un f or mul ar i o que per mi t a est abl ecer l a
conexi n con el or i gen de dat os. Luego, si l a conexi n es
sat i sf act or i a el usuar i o t i ene l a posi bi l i dad de el egi r una de
l as t abl as de l a base de dat os par a r eal i zar l as oper aci ones
habi t ual es de mant eni mi ent o o si mpl ement e par a ej ecut ar
consul t as. El di seo de l a i nt er f az debe ser si mi l ar a l a
si gui ent e f i gur a:



Las opci ones Mant eni mi ent o y Consul t a deben ser anl ogas a
l as r eal i zadas en apl i caci ones ant er i or es.
Microsoft Vi sual Basi c


Pg. 345
GUA DE LABORATORIO N 8

Objetivos
Luego de compl et ar est e l abor at or i o, el est udi ant e ser
capaz de:

Usar el di seador de r epor t es Dat aRepor t .
Ut i l i zar y cont r ol ar l a i mpr esor a par a obt ener r epor t es
i mpr esos.

Consideraciones
Par a el desar r ol l o del pr esent e l abor at or i o Ud. deber
cr ear una car pet a C:\FundVB\Lab8, par a guar dar sus t r abaj os
cor r espondi ent es a est e l abor at or i o.

Aplicacin N 1
Di sear un r epor t e que muest r e l a i nf or maci n al macenada
en l a t abl a Cur sos. El f or mat o del r epor t e pedi do se muest r a a
cont i nuaci n:


Par a di sear nuest r o r epor t e, l o pr i mer o que debemos hacer
es conect ar nos a l a base de dat os Cur sosLi br es. MDB. La conexi n
l a har emos ef ect i va medi ant e el Dat a Envi r onment . Luego, aada


Pg. 346
un Comando y denom nel o CmCur so. Est abl ezca el nombr e de l a
t abl a a ut i l i zar , par a nuest r o caso Cur so. El aspect o de l a
vent ana Dat a Envi r onment deber ser si mi l ar a l a f i gur a:



Luego, del men Pr oyect o sel ecci onar l a opci n Agr egar
Dat a Repor t , l o cual per mi t e agr egar el di seador de r epor t es:


En segui da del Dat a Envi r onment sel ecci onar cada campo que
desee i ncl ui r en el r epor t e y l uego ar r ast r e el campo haci a l a
secci n Det al l es del Dat a Repor t .


Pg. 347

El di seador de r epor t es pr esent a un conj unt o de cont r ol es
que per mi t en mej or ar l a pr esent aci n de nuest r o r epor t e. En
segui da ubi car l os si gui ent es cont r ol es:

2 et i quet as en l a secci n Encabezado de i nf or me
4 et i quet as en l a secci n Encabezado de pgi na

A cont i nuaci n pr oceda a est abl ecer l as pr opi edades segn
se i ndi ca:

Etiqueta1
Nombr e Rpt Lbl VAB
Capt i on I nst i t ut o de Educaci n Super i or
V ct or Andr s Bel ande
Font Ar i al ( Negr i t a 09)

Etiqueta2
Nombr e Rpt Lbl Nombr e
Capt i on Repor t e de Cur sos
Font Ar i al ( Negr i t a Cur si va 16)

Etiqueta3
Nombr e Rpt Lbl Codi go
Capt i on Cdi go:
Font Ar i al ( Negr i t a 10)

Etiqueta4
Nombr e Rpt Lbl Nombr e
Capt i on Nombr e:
Font Ar i al ( Negr i t a 10)
Etiqueta5
Nombr e Rpt Lbl Vacant es
Capt i on Vacant es:


Pg. 348
Font Ar i al ( Negr i t a 10)

Etiqueta6
Nombr e Rpt Lbl Pr of esor
Capt i on Pr of esor :
Font Ar i al ( Negr i t a 10)

Par a i nser t ar l a f echa act ual dar un cl i ck con el bot n
der echo del r at n sobr e el di seador de r epor t es en l a secci n
de Encabezado de i nf or me, del men cont ext ual que se pr esent a
sel ecci onar l a opci n I nser t ar cont r ol , l uego Fecha act ual
( f or mat o cor t o) . En segui da, cambi ar l as si gui ent es
pr opi edades:

DataReport1
Dat aMember CmCur so
Dat aSour ce DeCur sosLi br es

Luego, sel ecci one del men Pr oyect o l a opci n Pr opi edades
de Pr oyect o, y en l a f i cha Gener al del cuadr o de di l ogo
Pr opi edades del pr oyect o, est abl ecer Dat aRepor t 1 como obj et o
i ni ci al . Haga cl i ck en Acept ar y ej ecut e su apl i caci n.

Aplicacin N 2
Di sear un r epor t e que per mi t a most r ar un l i st ado de
pr of esor es y l os cur sos que t i enen a su car go. Tener en cuent a
que l a i nf or maci n r el aci onada con cada pr of esor debe empezar
en una pgi na nueva. El f or mat o del r epor t e pedi do se muest r a a
cont i nuaci n:




Pg. 349


Pg. 350


En est a apl i caci n expl i car emos como cr ear gr upos de
dat os. Par a el l o i ni ci ar un nuevo pr oyect o. En segui da,
conect ar se a l a base de dat os Cur sosLi br es. MDB medi ant e el Dat a
Envi r onment . Luego, aada un Comando y denom nel o CmPr of esor .
Est abl ezca el nombr e de l a t abl a a ut i l i zar , par a nuest r o caso
Cur so. Par a r eal i zar el agr upami ent o por pr of esor sel ecci onar
l a f i cha Agr upar del cuadr o de di l ogo Pr opi edades de
CmPr of esor . A cont i nuaci n act i var l a casi l l a de ver i f i caci n
Agr upar comando, l uego sel ecci onar de l a l i st a de campos, el
campo por el cual se desea agr upar l a i nf or maci n, par a nuest r o
caso sel ecci onar Cur Pr of e y dar un cl i ck en el bot n . El
cuadr o de di l ogo Pr opi edades de CmPr of esor debe pr esent ar un
aspect o si mi l ar a l a f i gur a si gui ent e:
>


A cont i nuaci n sobr e el di seador de r epor t es dar un cl i ck
con el bot n der echo del r at n y del men emer gent e que se
pr esent a el egi r l a opci n I nser t ar encabezado o pi e de gr upo.
Del obj et o DeCur sosLi br es ar r ast r ar el campo Cur Pr of e de l a
secci n Campo de r esumen en CmPr of esor _Gr oupi ng al di seador de
r epor t es per o a l a secci n Encabezado de gr upo. Los dems
campos ar r ast r ar l os de l a secci n Campos de Det al l e en
CmPr of esor a l a secci n Det al l e del gener ador de r epor t es. Por
l t i mo pr oceda a cambi ar l as si gui ent es pr opi edades del obj et o
Dat aRepor t :

DataReport1
Dat aMember CmPr of esor _Gr oupi ng
Dat aSour ce DeCur sosLi br es

Aplicacin N 3
Desar r ol l ar una apl i caci n que per mi t a cr ear un r epor t e
par a most r ar l a i nf or maci n de l a base de dat os
Cur sosLi br es. MDB. Par a t al f i n debe pr epar ar un f or mul ar i o que


Pg. 351
per mi t a al usuar i o el egi r una t abl a, y en segui da se debe
gener ar el r epor t e cor r espondi ent e. Adems el usuar i o puede
obt ener una vi st a pr el i mi nar del r epor t e o una copi a i mpr esa.
El di seo de l a i nt er f az debe ser si mi l ar a l a f i gur a que se
muest r a a cont i nuaci n:



Par a desar r ol l ar nuest r a apl i caci n, pr oceda a di sear l os
r epor t es cor r espondi ent es segn:

Tabla Reporte
Al umno Dat aRepor t 1
Cur so Dat aRepor t 2
Labor at or i o Dat aRepor t 3

Luego, ubi que l os si gui ent es cont r ol es sobr e el
f or mul ar i o:

1 mar co
3 bot ones de opci n
3 bot ones de comando

En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:


Pg. 352
Form1
Nombr e Fr mRepor t eCur sosLi br es
Capt i on Cur sos Li br es
Bor der St yl e 3- Fi xed Di al og

Frame1
Nombr e Fr aTabl as
Capt i on

Option1
Nombr e Opt Tabl aAl umno
Capt i on Al umno
Val ue Tr ue

Option2
Nombr e Opt Tabl aCur so
Capt i on Cur so
Val ue Fal se

Option3
Nombr e Opt Tabl aLabor at or i o
Capt i on Labor at or i o
Val ue Fal se

Command1
Nombr e CmdVi st aPr evi a
Capt i on Vi st aPr evi a
Pi ct ur e C: \ Ar chi vos de pr ogr ama\ Mi cr osof t Vi sual
St udi o\ Common\ Gr aphi cs\ Bi t maps\ Wi n95\
Expl or er . bmp
St yl e 1- Gr aphi cal


Pg. 353
Command2
Nombr e CmdI mpr i mi r
Capt i on I mpr i mi r
Pi ct ur e C: \ Ar chi vos de pr ogr ama\ Mi cr osof t Vi sual
St udi o\ Common\ Gr aphi cs\ Bi t maps\ Wi n95\
Pr i nt f l d. bmp
St yl e 1- Gr aphi cal

Command3
Nombr e CmdSal i r
Capt i on Sal i r

Una vez est abl eci das l as pr opi edades, pr oceda a i ngr esar
el si gui ent e cdi go:

Pr i vat e Sub CmdI mpr i mi r _Cl i ck( )
I f Opt Tabl aAl umno. Val ue Then
Dat aRepor t 1. Pr i nt Repor t Tr ue
El seI f Opt Tabl aCur so. Val ue Then
Dat aRepor t 2. Pr i nt Repor t Tr ue
El seI f Opt Tabl aLabor at or i o. Val ue Then
Dat aRepor t 2. Pr i nt Repor t Tr ue
End I f
End Sub
Pr i vat e Sub CmdVi st aPr evi a_Cl i ck( )
I f Opt Tabl aAl umno. Val ue Then
Dat aRepor t 1. Show
El seI f Opt Tabl aCur so. Val ue Then
Dat aRepor t 2. Show
El seI f Opt Tabl aLabor at or i o. Val ue Then
Dat aRepor t 2. Show
End I f
End Sub


Pg. 354
Pr i vat e Sub CmdSal i r _Cl i ck( )
Unl oad Me
End Sub

Cuando ej ecut e l a apl i caci n, al dar un cl i ck en el bot n
I mpr i mi r se vi sual i zar el si gui ent e cuadr o de di l ogo, el cual
nos per mi t i r conf i r mar o cancel ar l a i mpr esi n:



Aplicacin N 4
Di sear un r epor t e combi nando dat os de l a t abl a Cur so y
Labor at or i o. El r epor t e debe most r ar el cdi go del cur so, el
nombr e del cur so, el nombr e del pr of esor de t eor a, el nombr e
del j ef e de pr ct i ca y el hor ar i o de l abor at or i o. Dar f or mat o
al r epor t e segn su cr i t er i o.



FIN PARTE II


Pg. 355








GUA DE LABORATORIO
Parte III


ELABORADO POR
CARLOS CASTILLO PERALTA
cc_peralta@hotmail.com





INTRODUCCIN


Pg. 356

La pr esent e Gu a de Labor at or i o de Mi cr osof t Vi sual Basi c,
se el abor con l a f i nal i dad de compl ement ar l a par t e t er i ca
con l a par t e pr ct i ca del cur so. Los pr obl emas pr esent an un
gr ado de di f i cul t ad gr adual , es deci r , en cada pr ct i ca pr i mer o
se comi enzan con pr obl emas muy senci l l os con l a f i nal i dad de
que el est udi ant e escl ar ezca dudas y quede cl ar o en l os
concept os asi mi l ados en l a t eor a, y l uego en l os pr obl emas
post er i or es se va i ncr ement ando el ni vel de di f i cul t ad.
Est a gu a expl or a una gr an var i edad de mat er i as y cont i ene
muchos pr obl emas r ecopi l ados a l o l ar go de var i os aos de
exper i enci a. Esper o que sat i sf aga l as necesi dades de l os
est udi ant es y col egas, ya que ha si do el abor ada t eni endo en
cuent a l os obj et i vos de apr endi zaj e del cur so.
Si desean compar t i r l a con ot r os col egas, me agr adar a
mucho que l o hi ci er an, con l a ni ca condi ci n de que si empr e se
r espet e el der echo del aut or .
Desde ya l es deseo l a mej or de l as suer t es en el
apr endi zaj e de Mi cr osof t Vi sual Basi c.

Li ma, Di ci embr e del 2000

Car l os Cast i l l o Per al t a
Microsoft Vi sual Basi c


Pg. 357
GUA DE LABORATORIO N 9

Objetivos
Luego de compl et ar est e l abor at or i o, el est udi ant e ser
capaz de:

Cr ear y ut i l i zar cl ases dent r o de una apl i caci n Vi sual
Basi c.
Di sear y ut i l i zar cont r ol es Act i veX per sonal i zados.

Consideraciones
Par a el desar r ol l o del pr esent e l abor at or i o Ud. deber
cr ear una car pet a C:\FundVB\Lab9, par a guar dar sus t r abaj os
cor r espondi ent es a est e l abor at or i o.

Aplicacin N 1
I mpl ement ar una cl ase denomi nada Ci r cul o, l a cual debe
cont ar con l as pr opi edades pbl i cas Radi o y Ar ea. Par a t al f i n
sel ecci one l a opci n Agr egar mdul o de cl ase del Men Pr oyect o:



En l a f i cha Nuevo sel ecci one l a opci n Mdul o de cl ase y
haga cl i ck en Abr i r . En segui da act i ve l a vent ana de
pr opi edades y cambi e el nombr e de l a nueva cl ase por Ci r cul o.


Pg. 358
La vent ana de cdi go de l a cl ase debe pr esent ar l a si gui ent e
apar i enci a:



A cont i nuaci n pr oceda a i ngr esar el si gui ent e cdi go par a
l a cl ase:

Pr i vat e R As Doubl e

Publ i c Pr oper t y Get Radi o( ) As Var i ant
Radi o = R
End Pr oper t y

Publ i c Pr oper t y Let Radi o( ByVal vNewVal ue As Var i ant )
I f I sNumer i c( vNewVal ue) Then
R = CDbl ( vNewVal ue)
El se
R = 0
End I f
End Pr oper t y

Publ i c Pr oper t y Get Ar ea( ) As Var i ant
Ar ea = 3. 141592 * R * R
End Pr oper t y
Pr i vat e Sub Cl ass_I ni t i al i ze( )
R = 0
End Sub


Pg. 359

Luego pr oceda a ubi car l os si gui ent es cont r ol es en el
f or mul ar i o:

2 et i quet as
2 caj as de t ext o
3 bot ones de comando

A cont i nuaci n pr oceda a est abl ecer l as pr opi edades segn
se i ndi ca:

Form1
Nombr e Fr mEj emCl aseCi r cul o
Capt i on Ej empl o con l a cl ase Ci r cul o

Label1
Nombr e Lbl Radi o
Capt i on Radi o:

Label2
Nombr e Lbl Ar ea
Capt i on Ar ea:

Text1
Nombr e Txt Radi o
Text

Text2
Nombr e Txt Ar ea
Text

Una vez que ha est abl eci do l as pr opi edades i ndi cadas,
pr oceda a i ngr ese el si gui ent e cdi go par a el f or mul ar i o de
pr ueba:


Pg. 360

Di mA As Ci r cul o

Pr i vat e Sub For m_Load( )
Set A = New Ci r cul o
End Sub

Pr i vat e Sub For m_Unl oad( Cancel As I nt eger )
Set A = Not hi ng
End Sub

Pr i vat e Sub Txt Radi o_Change( )
A. Radi o = Txt Radi o
Txt Ar ea = A. Ar ea
End Sub

Guar de y pr uebe su apl i caci n. El r esul t ado debe ser
si mi l ar a l a si gui ent e f i gur a:



Aplicacin N 2
Di sear un cont r ol Act i veX que muest r e el mensaj e
Bi enveni do al Mundo de l a Pr ogr amaci n con Act i veX.
Adi ci onal ment e, el cont r ol debe per mi t i r al usuar i o l a
posi bi l i dad de cambi ar el col or del t ext o.
Par a comenzar nuest r a apl i caci n, debe i ngr esar a Vi sual
Basi c y en l a vent ana de di l ogo Nuevo Pr oyect o sel ecci one
Cont r ol Act i veX, y l uego haga cl i ck en el bot n Acept ar .



Pg. 361


Con est a opci n, podr cr ear un Cont r ol Act i ve X. Las
di f er enci as ent r e una opci n y l a usual ( EXE est ndar ) l as ver
mej or conf or me avance en el desar r ol l o de l a pr esent e Pr ct i ca
de Labor at or i o.

En segui da aada un nuevo pr oyect o EXE est ndar . Est o l o
puede r eal i zar desde el Men Ar chi vo opci n Agr egar Pr oyect o.
Luego est abl ezca l as pr opi edades i ndi cadas a cont i nuaci n:

Proyecto1
Nombr e Act i veXMi Cont r ol

UserControl1
Nombr e Mi Cont r ol
Tool boxBi t map C: \ Ar chi vos de pr ogr ama\ Mi cr osof t Vi sual
St udi o\ Common\ Gr aphi cs\ Bi t maps\ Assor t ed\
Hear t . bmp
Proyecto2
Nombr e VbpMi Cont r ol

Form1


Pg. 362
Nombr e Fr mPr uebaMi Cont r ol
Capt i on Pr ueba de Cont r ol Act i veX
Bor der St yl e 3- Fi xed Di al og

La vent ana del Expl or ador de pr oyect os debe pr esent ar l a
si gui ent e apar i enci a:



En l a vent ana ant er i or haga cl i ck con el bot n der echo del
r at n sobr e Mi Cont r ol y el i j a l a opci n Ver cdi go. En el
ComboBox Gener al sel ecci one User Cont r ol y en el ComboBox
Decl ar aci ones sel ecci one Pai nt . Ahor a i ngr ese el si gui ent e
cdi go:

Pr i vat e Sub User Cont r ol _Pai nt ( )
Const Msg = Bi enveni do al Mundo de l a Pr ogr amaci n & _
con Act i veX
User Cont r ol . Cl s
User Cont r ol . Pr i nt Msg
End Sub
Luego en el Expl or ador de pr oyect os, hacer cl i ck con el
bot n der echo del r at n sobr e l a car pet a Cont r ol es de usuar i o y
sel ecci one l a opci n Pr opi edades de Act i veXMi Cont r ol . En
segui da se most r ar l a vent ana Pr opi edades del pr oyect o:


Pg. 363


En l a vent ana ant er i or , en l a f i cha Gener al , apar t ado
Descr i pci n del pr oyect o, escr i bi r Est e es mi pr i mer Cont r ol
Act i veX, t al como se muest r a. Luego pul sar el bot n Acept ar .

Ci er r e t odas l as vent anas abi er t as y haga un sl o cl i ck
sobr e l a car pet a Cont r ol es de usuar i o. A cont i nuaci n i ngr ese
al Men Ar chi vo y sel ecci one l a opci n Gener ar
Act i veXMi Cont r ol . ocx, guar de el ar chi vo con su nombr e por
def ect o.

Luego, est abl ezca como i ni ci al el f or mul ar i o
Fr mPr uebaMi Cont r ol y aadi r desde el Cuadr o de her r ami ent as
nuest r o cont r ol r eci ent ement e cr eado.
Del Men Pr oyect o sel ecci one l a opci n Component es y
ver emos l a descr i pci n de nuest r o cont r ol con su casi l l a de
ver i f i caci n act i vada, t al como se muest r a a cont i nuaci n:



Pg. 364


En segui da, guar de y ej ecut e su apl i caci n. El r esul t ado
debe ser si mi l ar al si gui ent e:



En est e moment o, Ud. acaba de t er mi nar el di seo de su
pr i mer cont r ol Act i veX. No se pr eocupe por l as di f er enci as que
puede haber encont r ado con r espect o a l a f or ma t r adi ci onal de
pr ogr amar . Conf or me avancemos en el desar r ol l o de l a pr ct i ca
ver emos que est a f or ma de pr ogr amar en base a component es es
bast ant e senci l l a.



Pg. 365
Si n embar go, debemos modi f i car nuest r o cont r ol , de t al
f or ma que nos per mi t a cambi ar el col or de t ext o de
pr esent aci n. Par a t al f i n, vamos a hacer uso del Asi st ent e
par a i nt er f az de cont r ol Act i veX y el Asi st ent e par a pgi nas de
pr opi edades. Est os compl ement os deben ser i nst al ados desde el
men pr i nci pal Compl ement os y sel ecci onar l a opci n
Admi ni st r ador de compl ement os, t al como se i ndi ca a
cont i nuaci n:



En l a vent ana ant er i or debe act i var l as casi l l as de
ver i f i caci n Car gado/ Descar gado y Car gar al i ni ci ar . Luego haga
cl i ck en el bot n Acept ar .

En segui da el men Compl ement os deber pr esent ar l a
si gui ent e apar i enci a:


Pg. 366


Luego, haga cl i ck sobr e l a opci n Asi st ent e par a i nt er f az
de cont r ol Act i veX. En segui da, apar ecer una vent ana de
pr esent aci n, haga dobl e cl i ck en el bot n Si gui ent e. Tendr emos
ent onces una vent ana si mi l ar a l a que se muest r a:



Haga cl i ck con el r at n sobr e el bot n << y a cont i nuaci n
el i j a de l a l i st a de l a i zqui er da For eCol or y haga cl i ck sobr e
el bot n >. La pr opi edad For eCol or es l a pr opi edad encar gada de
cambi ar el col or de t ext o, l a cual no est di sponi bl e en
nuest r o cont r ol , por el l o debemos asoci ar l a. El aspect o del
Asi st ent e par a i nt er f az de cont r ol Act i veX debe ser si mi l ar a:


Pg. 367


Pul se, l uego el bot n Si gui ent e. En segui da apar ecer ot r a
vent ana, haga nuevament e cl i ck en el bot n Si gui ent e.




Pg. 368
Ahor a hemos l l egado a l a vent ana en l a cual vamos a
asoci ar a nuest r o cont r ol l a pr opi edad For eCol or . Sel ecci one
del ComboBox Cont r ol User Cont r ol y del ComboBox Mi embr o
For eCol or , t al como se i ndi ca en l a vent ana ant er i or . Pul se el
bot n Si gui ent e y en l a si gui ent e vent ana pul se el bot n
Fi nal i zar . Apar ecer l uego una vent ana de i nf or maci n, l ea
det eni dament e su cont eni do y l uego haga cl i ck en el bot n
Cer r ar . A cont i nuaci n guar de su apl i caci n y gener e nuevament e
el cont r ol .

Par a pr obar el cont r ol abr a el f or mul ar i o
Fr mPr uebaMi Cont r ol y aada al Cuadr o de her r ami ent as el
component e Mi cr osof t Common Di al og Cont r ol 6. 0. En segui da
aada al f or mul ar i o un Mi Cont r ol , un CommonDi al og y un
CommandBut t on. Cambi e el nombr e del bot n Command1 por
CmdAcept ar e i ngr ese el si gui ent e cdi go:

Pr i vat e Sub CmdAcept ar _Cl i ck( )
CommonDi al og1. ShowCol or
Mi Cont r ol 1. For eCol or = CommonDi al og1. Col or
Mi Cont r ol 1. Vi si bl e = Fal se
Mi Cont r ol 1. Vi si bl e = Tr ue
End Sub

Guar de y l uego ej ecut e su apl i caci n, el r esul t ado ser
si mi l ar al si gui ent e:





Pg. 369
Al hacer cl i ck sobr e el bot n Acept ar , se pr esent a l a
si gui ent e caj a de di l ogo en l a cual podemos el egi r el nuevo
col or par a el t ext o de bi enveni da:



Pr est e at enci n en que l a pr opi edad Vi si bl e se ut i l i za
par a act ual i zar el cont eni do del cont r ol y se pueda ver el
cambi o de col or . No es l a mej or f or ma de hacer l o, deber amos
hacer l o medi ant e cdi go dent r o del mi smo cont r ol , per o por el
moment o y par a pr obar como asoci ar una pr opi edad a un cont r ol
es ms que suf i ci ent e.

Aplicacin N 3
Di sear un cont r ol Act i veX que pr esent e l a f or ma de un
cuadr o de t ext o, per o que sl o admi t a nmer os. Es deci r , el
usuar i o sl o podr escr i bi r en el cont r ol nmer os, cual qui er
ot r o car ct er que no sea un nmer o, ser r echazado por el
cont r ol y no se i mpr i mi r en el cuadr o de t ext o.

Al i gual que en l a apl i caci n ant er i or cr ear el gr upo de
pr oyect os y est abl ezca l as pr opi edades segn:


Pg. 370
Proyecto1
Nombr e Act i veXNumBox

UserControl1
Nombr e NumBox
Tool boxBi t map C: \ Ar chi vos de pr ogr ama\ Mi cr osof t Vi sual
St udi o\ Common\ Gr aphi cs\ Bi t maps\ Assor t ed\
Di amond. bmp

Proyecto2
Nombr e VbpNumBox

Form1
Nombr e Fr mPr uebaNumBox
Capt i on Pr ueba de Cont r ol Act i veX
Bor der St yl e 3- Fi xed Di al og

Par a di sear nuest r o cont r ol ut i l i zar emos un cont r ol
Text Box el cual debe i nser t ar en el f or mul ar i o NumBox
( User Cont r ol ) . Luego el i mi ne el cont eni do de l a pr opi edad Text .
Tener cui dado en que el cont r ol ha de ser del mi smo t amao del
cuadr o de t ext o. Luego, el cuadr o de t ext o debe r edi mensi onar se
de acuer do al cont r ol en t i empo de di seo, est o es a l a hor a de
i nser t ar nuest r o cont r ol en un f or mul ar i o. Par a el l o es
necesar i o i ngr esar el si gui ent e cdi go:

Pr i vat e Sub User Cont r ol _Resi ze( )
Text 1. Top = 0
Text 1. Lef t = 0
Text 1. Wi dt h = User Cont r ol . Wi dt h
Text 1. Hei ght = User Cont r ol . Hei ght
End Sub



Pg. 371
Pr i vat e Sub User Cont r ol _I ni t Pr oper t i es( )
Text 1 = Ext ender . Name
End Sub

Pr i vat e Sub Text 1_KeyPr ess( KeyAsci i As I nt eger )
I f Not ( KeyAsci i = 8 Or _
( KeyAsci i >= 48 And KeyAsci i <= 57) ) Then
KeyAsci i = 0: Beep: Beep: Beep: Beep
End I f
End Sub

A cont i nuaci n gener e el cont r ol NumBox y ci er r e el
f or mul ar i o de di seo del cont r ol . Est abl ezca como i ni ci al el
pr oyect o VbpNumBox y aada un cont r ol NumBox y un CommandBut t on
al f or mul ar i o Fr mPr uebaNumBox. Cambi e el nombr e del bot n de
comando por CmdSal i r . A cont i nuaci n guar de y ej ecut e su
apl i caci n, el r esul t ado debe ser si mi l ar al most r ado:



El cont r ol que acabamos de di sear per mi t e escr i bi r
ni cament e nmer os, es deci r es un cuadr o de nmer os. Tr at e de
i ngr esar ot r os car act er es y vea l o que sucede.

Aplicacin N 4
Cr ear un cont r ol Act i veX que per mi t a el i ngr eso del d a,
mes y el ao cor r espondi ent e a cual qui er f echa desde el ao 1
hast a el ao 9999. Deber val i dar l a f echa i ngr esada y no
deber per mi t i r l a edi ci n de f echas no exi st ent es como por


Pg. 372
ej empl o 5 de Set i embr e de 1752. El cont r ol deber most r ar el
d a de l a semana cor r espondi ent e a l a f echa i ngr esada, t al como
se muest r a en l a f i gur a si gui ent e:



El cal endar i o Gr egor i ano act ual obedece a l a r ef or ma del
cal endar i o J ul i ano que or den el papa Gr egor i o XI I I en 1752,
par a poner l o de acuer do con l os movi mi ent os de l os cuer pos
cel est es. Lo cual t r aj o como consecuenci a adel ant ar l as f echas
del 2 de Set i embr e al 14 de Set i embr e de 1752, es deci r l as
f echas compr endi das en est e i nt er val o de t i empo nunca
exi st i er on.









Pg. 373
Microsoft Vi sual Basi c
GUA DE LABORATORIO N 10

Objetivos
Luego de compl et ar est e l abor at or i o, el est udi ant e ser
capaz de:

Cr ear document os Act i veX que se ej ecut en di r ect ament e en una
pgi na Web.
Ut i l i zar document os Act i veX que i ncor por an hi per v ncul os.
Desar r ol l ar document os Act i veX par a i nt er act uar con bases de
dat os r el aci onal es.

Consideraciones
Par a el desar r ol l o del pr esent e l abor at or i o Ud. deber
cr ear una car pet a C:\FundVB\Lab10, par a guar dar sus t r abaj os
cor r espondi ent es a est e l abor at or i o.

Aplicacin N 1
Como pr i mer ej er ci ci o vamos a desar r ol l ar un document o
Act i veX que per mi t e r ecuper ar i nf or maci n de l a base de dat os
Cur sosLi br es. MDB.

Un document o Act i veX, es si mpl ement e un f or mul ar i o que se
puede ej ecut ar di r ect ament e en l os expl or ador es de I nt er net .
Los document os Act i veX se di sean de l a mi sma maner a que l os
f or mul ar i os est ndar de Vi sual Basi c. Par a comenzar a
desar r ol l ar nuest r o document o Act i veX, debe i ngr esar a Vi sual
Basi c y en l a vent ana de di l ogo Nuevo Pr oyect o sel ecci one EXE
de document o Act i veX y l uego haga cl i ck en el bot n Acept ar ,
t al como se i ndi ca en l a f i gur a:


Pg. 374


A cont i nuaci n pr oceda a di sear l a si gui ent e i nt er f az de
usuar i o:




Pg. 375

Par a t al ef ect o, pr oceda a ubi car l os si gui ent es cont r ol es
en el f or mul ar i o:
3 et i quet as
1 cuadr o combi nado
1 cont r ol Dat aGr i d
1 bot n de comandos

En segui da pr oceda a est abl ecer l as pr opi edades segn se
i ndi ca:

Label1
Nombr e Lbl Ti t ul o1
Aut oSi ze Tr ue
Capt i on I nst i t ut o de Educaci n Super i or
Font Ar i al ( Negr i t a 12)
For eCol or
&H00C00000&

Label2
Nombr e Lbl Ti t ul o2
Aut oSi ze Tr ue
Capt i on V ct or Andr s Bel ande
Font Ti mes New Roman ( Negr i t a 24)
For eCol or
&H000000FF&

Label3
Nombr e Lbl Tabl as
Aut oSi ze Tr ue
Capt i on Vacant es:
Font Ar i al ( Negr i t a 10)

Combo1
Nombr e CboTabl a
Font Ar i al ( Negr i t a 10)
Text

DataGrid1


Pg. 376
Nombr e Bdgr dTabl a
Font Ar i al ( Negr i t a 10)
HeadFont Ar i al ( Negr i t a 10)

Command1
Nombr e CmdAcept ar
Capt i on
&Most r ar

Una vez est abl eci das l as pr opi edades, pr oceda a i ngr esar
el si gui ent e cdi go:

Di mCn As ADODB. Connect i on
Di mRsAl umno As ADODB. Recor dset
Di mRsCur so As ADODB. Recor dset
Di mRsLabor at or i o As ADODB. Recor dset

Pr i vat e Sub User Document _I ni t i al i ze( )
Set Cn = New ADODB. Connect i on
Cn. Open Pr ovi der =Mi cr osof t . J et . OLEDB. 4. 0; & _
Dat a Sour ce=C: \ FundVB\ Dat a\ Cur sosLi br es. MDB; & _
Per si st Secur i t y I nf o=Fal se
CboTabl a. AddI t emAl umno
CboTabl a. AddI t emCur so
CboTabl a. AddI t emLabor at or i o
End Sub

Pr i vat e Sub Most r ar Al umno( )
Set RsAl umno = New ADODB. Recor dset
RsAl umno. Act i veConnect i on = Cn
RsAl umno. Cur sor Type = adOpenSt at i c
RsAl umno. LockType = adLockReadOnl y
RsAl umno. Cur sor Locat i on = adUseCl i ent
RsAl umno. Open Sel ect Al uCodi go As Cdi go, & _


Pg. 377
( Al uPat er no + ' ' + Al uMat er no) As Apel l i dos, & _
Al uNombr es As Nombr es Fr omAl umno
Set Dbgr dTabl a. Dat aSour ce = RsAl umno
End Sub

Pr i vat e Sub Most r ar Cur so( )
Set RsCur so = New ADODB. Recor dset
RsCur so. Act i veConnect i on = Cn
RsCur so. Cur sor Type = adOpenSt at i c
RsCur so. LockType = adLockReadOnl y
RsCur so. Cur sor Locat i on = adUseCl i ent
RsCur so. Open Sel ect Cur Codi go As Cdi go, & _
Cur Nombr e As Nombr e, & _
Cur Vacant es As Vacant es, & _
Cur Pr of e As Pr of esor Fr omCur so
Set Dbgr dTabl a. Dat aSour ce = RsCur so
End Sub

Pr i vat e Sub Most r ar Labor at or i o( )
Set RsLabor at or i o = New ADODB. Recor dset
RsLabor at or i o. Act i veConnect i on = Cn
RsLabor at or i o. Cur sor Type = adOpenSt at i c
RsLabor at or i o. LockType = adLockReadOnl y
RsLabor at or i o. Cur sor Locat i on = adUseCl i ent
RsLabor at or i o. Open Sel ect LabCodi go As Cdi go, & _
LabHor a As Hor ar i o, & _
LabPr of e As [ J ef e de pr ct i ca] Fr omLabor at or i o
Set Dbgr dTabl a. Dat aSour ce = RsLabor at or i o
End Sub

Pr i vat e Sub CmdMost r ar _Cl i ck( )
Sel ect Case CboTabl a. Li st I ndex


Pg. 378
Case 0
Cal l Most r ar Al umno
Case 1
Cal l Most r ar Cur so
Case 2
Cal l Most r ar Labor at or i o
End Sel ect
End Sub

Fi nal ment e guar de y pr uebe su document o Act i veX. El
r esul t ado debe ser si mi l ar a l a f i gur a que se muest r a a
cont i nuaci n:


Aplicacin N 2
Al document o Act i veX desar r ol l ado en el ej er ci ci o
ant er i or , aadi r l e un bot n Acer ca de, que pr esent e l a


Pg. 379
i nf or maci n r ef er ent e al aut or ( o aut or es) de l a apl i caci n. El
di seo del f or mul ar i o debe ser t al como se muest r a a
cont i nuaci n:



En pr i mer l ugar pr oceda a aadi r un f or mul ar i o est ndar al
pr oyect o. Cambi e el nombr e del f or mul ar i o por el de Fr mAcer caDe
y di see l a i nt er f az pedi da.

En segui da aada un bot n de comandos al document o Act i veX
y cambi e su nombr e por CmdAcer ca. Luego haga dobl e cl i ck sobr e
di cho bot n e i ngr ese el si gui ent e cdi go:

Pr i vat e Sub CmdAcer ca_Cl i ck( )
Load Fr mAcer caDe
Fr mAcer caDe. Show vbModal
End Sub

Fi nal ment e guar de y pr uebe su apl i caci n. Como puede
apr eci ar desar r ol l ar document os Act i veX no es nada compl i cado.
Aplicacin N 3
Al document o Act i veX desar r ol l ado ant er i or ment e aadi r l e
un bot n I r a, que per mi t a enl azar nos con l a di r ecci n que se


Pg. 380
i ngr ese en el cuadr o de t ext o adj unt o. El di seo del document o
se muest r a a cont i nuaci n:



Par a l ogr ar l o que se pi de, aada un bot n de comandos y
un cuadr o de t ext o y cambi e sus nombr es por CmdURL y Txt URL
r espect i vament e. Luego i ngr ese el si gui ent e cdi go:

Pr i vat e Sub CmdURL_Cl i ck( )
User Document . Hyper l i nk. Navi gat eTo Txt URL
End Sub
Aplicacin N 4
El abor ar un document o Act i veX que per mi t a most r ar el
cont eni do de l a t abl a Cur so de l a base de dat os


Pg. 381
Cur sosLi br es. MDB. A cont i nuaci n el usuar i o sel ecci ona un cur so
y t i ene l a posi bi l i dad de separ ar l a mat r cul a o en su def ect o
mat r i cul ar se en el cur so de su el ecci n. El di seo de l a
apl i caci n debe ser si mi l ar a l a si gui ent e f i gur a:



Suger enci a: Aadi r una nueva t abl a a l a base de dat os par a
r egi st r ar a l os al umnos mat r i cul ados o con separ aci n de
mat r cul a.



Microsoft Vi sual Basi c


Pg. 382
GUA DE LABORATORIO N 11

Objetivos
Luego de compl et ar est e l abor at or i o, el est udi ant e ser
capaz de:

Di sear pgi nas Web di nmi cas medi ant e apl i caci ones DHTML.
Desar r ol l ar apl i caci ones DHTML par a i nt er act uar con l os dat os
de un si st ema di st r i bui do de bases de dat os r el aci onal es.
I mpl ement ar apl i caci ones medi ant e cdi go Vi sual Basi c y
cdi go HTML.
Agr egar f unci onal i dad a sus apl i caci ones par a expl or ar Web.

Consideraciones
Par a el desar r ol l o del pr esent e l abor at or i o Ud. deber
cr ear una car pet a C:\FundVB\Lab11, par a guar dar sus t r abaj os
cor r espondi ent es a est e l abor at or i o.

Aplicacin N 1
En est e ej er ci ci o, vamos a desar r ol l ar una apl i caci n
DHTML que l ea un nmer o ent er o y muest r e su t abl a de
mul t i pl i car .

En su f or ma ms senci l l a, una apl i caci n DHTML ( Dynami c
Hyper Text Mar kup Language) puede consi st i r de una o ms pgi nas
HTML enl azadas con cdi go Vi sual Basi c y el model o de obj et os
HTML di nmi co.

Par a comenzar a desar r ol l ar nuest r a apl i caci n, i ngr esar a
Vi sual Basi c y en l a vent ana de di l ogo Nuevo Pr oyect o
sel ecci one Apl i caci n DHTML, y haga cl i ck en el bot n Acept ar .



Pg. 383


Al obser var l a vent ana del Expl or ador de pr oyect os, est a
pr esent ar l a si gui ent e apar i enci a:



Vi sual Basi c agr ega aut omt i cament e un Di seador de
pgi nas DHTML al pr oyect o. En segui da, haga dobl e cl i ck sobr e
DHTMLPage1 y pr oceda a est abl ecer l as pr opi edades que se
i ndi can:

DHTMLPage1
Nombr e DHTMLTabl aMul t i pl i car
I d DHTMLTabl aMul t i pl i car



Pg. 384
Par a cr ear l a i nt er f az de l a apl i caci n DHTML, si mpl ement e
t enemos que i r agr egando el ement os HTML de l a caj a de
her r ami ent as. De esa maner a, r eal i ce el di seo de l a pgi na
most r ada en l a si gui ent e f i gur a:



Una vez t er mi nado el pr oceso de di seo de l a pgi na,
sel ecci one el encabezado Tabl a de Mul t i pl i car y haga cl i ck en
el cuar t o bot n de l a bar r a de her r ami ent as del Di seador
( Aj ust ar l a sel ecci n en <SPAN> . . . </ SPAN>) . En segui da, si n
dej ar de sel ecci onar el encabezado, act i ve l a Vent ana de
pr opi edades y est abl ezca l o si gui ent e:

Tabla de Multiplicar
I d Ti t ul o

A cont i nuaci n pr oceda a est abl ecer l as pr opi edades par a
l os dems cont r ol es segn se i ndi ca:



Pg. 385
TextField1
Nombr e Txt N
I d Txt N
Val ue

TextArea1
Nombr e Txt Tabl a
I d Txt Tabl a
Val ue

En segui da haga dobl e cl i ck sobr e el cuadr o de t ext o Txt N
e i ngr ese l o si gui ent e:

Pr i vat e Sub DHTMLPage_Load( )
Document . bgCol or = Yel l ow
Ti t ul o. St yl e. Col or = Red
End Sub

Pr i vat e Sub Ti t ul o_onmouseout ( )
Ti t ul o. St yl e. Col or = Red
End Sub

Pr i vat e Sub Ti t ul o_onmouseover ( )
Ti t ul o. St yl e. Col or = Bl ue
End Sub


Pr i vat e Sub Txt N_onpr oper t ychange( )
I f I sNumer i c( Txt N. Val ue) Then
Di mN As I nt eger , I As I nt eger , S As St r i ng
N = Val ( Txt N. Val ue)
For I = 0 To 12
S = S & N & * & I & = & N * I & vbCr Lf
Next I


Pg. 386
Txt Tabl a. Val ue = S
El se
Txt Tabl a. Val ue =
End I f
End Sub

Fi nal ment e, guar de y pr uebe su apl i caci n DHTML. El
r esul t ado debe ser si mi l ar a l a f i gur a si gui ent e:



Aplicacin N 2
Desar r ol l ar una apl i caci n DHTML que per mi t a vi sual i zar el
cont eni do de l a t abl a Cur so de l a base de dat os
Cur sosLi br es. MDB. El di seo de l a pgi na debe ser si mi l ar al
most r ado:



Pg. 387



Par a desar r ol l ar nuest r a apl i caci n, l o pr i mer o que debe
de hacer es abr i r una nuevo pr oyect o DHTML. Luego debe cr ear l a
conexi n a l a base de dat os Cur sosLi br es. MDB. Par a el l o i ngr ese
al men Pr oyect o sel ecci one l a opci n Agr egar Dat a Envi r onment .
En l a vent ana Dat a Envi r onment cambi e el nombr e del obj et o
Dat aEnvi r onment por DeCur sosLi br es y el de l a conexi n por
CnCur sosLi br es. Luego, aada un Comando y denom nel o CmCur so.
Haga cl i ck der echo sobr e el comando y sel ecci one Pr opi edades. A
cont i nuaci n sel ecci one l a opci n I nst r ucci n SQL e i ngr ese el
si gui ent e cdi go:



Pg. 388
Sel ect Cur Codi go, Cur Nombr e, Cur Vacant es, Cur Pr of e Fr omCur so




Luego haga cl i ck en el bot n Acept ar . El aspect o de l a
vent ana Dat a Envi r onment debe ser si mi l ar al si gui ent e:



En segui da pr oceda a di sear l a pgi na. Par a el l o di gi t e
l os encabezados y et i quet as necesar i os. Luego aada l os
si gui ent es cont r ol es HTML al di seador de pgi nas DHTML:

4 caj as de t ext o
4 bot ones de comandos


Pg. 389
A cont i nuaci n, pr oceda a est abl ecer l as pr opi edades segn
se i ndi ca:

Vctor Andrs Belande
I d Ti t ul o

TextField1
Nombr e Txt Cur Codi go
I d Txt Cur Codi go
Val ue

TextField2
Nombr e Txt Cur Nombr e
I d Txt Cur Nombr e
Val ue

TextField3
Nombr e Txt Cur Vacant es
I d Txt Cur Vacant es
Val ue

TextField4
Nombr e Txt Cur Pr of e
I d Txt Cur Pr of e
Val ue

Button1
Nombr e CmdPr i mer o
I d CmdPr i mer o
Val ue Pr i mer o




Pg. 390
Button2
Nombr e CmdAnt er i or
I d CmdAnt er i or
Val ue Ant er i or

Button3
Nombr e CmdSi gui ent e
I d CmdSi gui ent e
Val ue Si gui ent e

Button4
Nombr e CmdUl t i mo
I d CmdUl t i mo
Val ue Ul t i mo

Medi ant e el Dat a Envi r onment , ADO y el obj et o
Bi ndi ngCol l ect i on, es posi bl e enl azar el ement os de una pgi na
DHTML con un or i gen de dat os cuando se car ga l a pgi na. Est o l e
per mi t e modi f i car l os dat os y escr i bi r cdi go par a act ual i zar
un conj unt o de r egi st r os subyacent e o si mpl ement e despl azar se a
t r avs de l os mi smos. Por ej empl o, puede usar un obj et o
Bi ndi ngCol l ect i on con un obj et o Recor dset de ADO par a enl azar
l os el ement os Text Fi el d de l a pgi na de cdi go HTML con campos
de l a t abl a Cur so.

Par a poder ut i l i zar l os obj et os de l a Mi cr osof t Dat a
Bi ndi ng Col l ect i on es necesar i o car gar l a l i br er a
cor r espondi ent e. Sel ecci ones el men Pr oyect o y el i j a l a opci n
Ref er enci as. En el cuadr o de di l ogo Ref er enci as sel ecci one l a
opci n Mi cr osof t Dat a Bi ndi ng Col l ect i on, t al como se i ndi ca en
l a f i gur a:



Pg. 391


A cont i nuaci n decl ar e una var i abl e de t i po
Bi ndi ngCol l ect i on en l a secci n de Decl ar aci ones de l a pgi na
DHTML y pr oceda a i ngr esar el cdi go que se muest r a:

Di mCol Bi nd As Bi ndi ngCol l ect i on

Pr i vat e Sub DHTMLPage_Load( )
Document . bgCol or = Yel l ow
Ti t ul o. St yl e. Col or = Bl ue
Set Col Bi nd = New Bi ndi ngCol l ect i on
Set Col Bi nd. Dat aSour ce = DeCur sosLi br es
Col Bi nd. Dat aMember = CmCur so
Col Bi nd. Add Txt Cur Codi go, Val ue, Cur Codi go
Col Bi nd. Add Txt Cur Nombr e, Val ue, Cur Nombr e
Col Bi nd. Add Txt Cur Vacant es, Val ue, Cur Vacant es
Col Bi nd. Add Txt Cur Pr of e, Val ue, Cur Pr of e
End Sub



Pg. 392
Pr i vat e Funct i on CmdPr i mer o_oncl i ck( ) As Bool ean
DeCur sosLi br es. r sCmCur so. MoveFi r st
End Funct i on

Pr i vat e Funct i on CmdAnt er i or _oncl i ck( ) As Bool ean
DeCur sosLi br es. r sCmCur so. MovePr evi ous
I f DeCur sosLi br es. r sCmCur so. BOF Then
DeCur sosLi br es. r sCmCur so. MoveFi r st
End I f
End Funct i on

Pr i vat e Funct i on CmdSi gui ent e_oncl i ck( ) As Bool ean
DeCur sosLi br es. r sCmCur so. MoveNext
I f DeCur sosLi br es. r sCmCur so. EOF Then
DeCur sosLi br es. r sCmCur so. MoveLast
End I f
End Funct i on

Pr i vat e Funct i on CmdUl t i mo_oncl i ck( ) As Bool ean
DeCur sosLi br es. r sCmCur so. MoveLast
End Funct i on

Fi nal ment e, guar de y pr uebe su apl i caci n.

Aplicacin N 3
Di sear una apl i caci n que per mi t a car gar en una t abl a
HTML el cont eni do de l a t abl a Cur so. La t abl a HTML se debe
cr ear di nmi cament e de acuer do al nmer o de r egi st r os
exi st ent es.

Par a desar r ol l ar nuest r a apl i caci n, aada una nueva
pgi na DHTML al pr oyect o ant er i or . Par a el l o sel ecci one el men
Pr oyect o y el i j a l a opci n Agr egar DHTML Page. En segui da
pr oceda a i ngr esar el si gui ent e cdi go:
Di mCol Bi nd As Bi ndi ngCol l ect i on


Pg. 393

Pr i vat e Sub DHTMLPage_Load( )
Di mRsResul t s As ADODB. Recor dset
Set Col Bi nd = New Bi ndi ngCol l ect i on
Set Col Bi nd. Dat aSour ce = DeCur sosLi br es
Col Bi nd. Dat aMember = CmCur so
Set RsResul t s = DeCur sosLi br es. r sCmCur so
Do Whi l e Not RsResul t s. EOF
Document . body. i nser t Adj acent HTML Bef or eEnd, _
<Tabl e Bor der Cel l spaci ng=1 Cel l paddi ng=7> & _
<Td Wi dt h=50> & RsResul t s! Cur Codi go & </ Td> & _
<Td Wi dt h=200> & RsResul t s! Cur Nombr e & </ Td> & _
<Td Wi dt h=50> & RsResul t s! Cur Vacant es & </ Td> & _
<Td Wi dt h=200> & RsResul t s! Cur Pr of e & </ Td> & _
</ Tabl e>
RsResul t s. MoveNext
Loop
RsResul t s. MoveFi r st
RsResul t s. Cl ose
End Sub

Fi nal ment e, no ol vi de cambi ar el component e de i ni ci o
ant es de ej ecut ar su apl i caci n.

Aplicacin N 4
Di sear una apl i caci n DHTML que per mi t a sel ecci onar de un
cont r ol Sel ect ( si mi l ar a un cuadr o combi nado) , el nombr e de un
pr of esor y a cont i nuaci n se muest r en en una t abl a HTML
di nmi ca l os cur sos que di ct a di cho pr of esor .

Un el ement o Sel ect , es si mi l ar a un cuadr o combi nado. Por
ej empl o, par a agr egar un el ement o Sel ect denomi nado Sel Pr of e a
una l a pgi na HTML, si mpl ement e ar r ast r ar el el ement o a l a
pgi na. A cont i nuaci n est abl ecer l as si gui ent es pr opi edades:


Pg. 394

Seleccion1
Nombr e Sel Pr of e
I d Sel Pr of e
Val ue

Par a especi f i car l os el ement os de l i st a que se deben
most r ar en el el ement o Sel ect agr egar el si gui ent e cdi go al
pr ocedi mi ent o de event o Load de l a pgi na HTML, veamos:

Pr i vat e Sub DHTMLPage_Load( )
Di mSel El ement As HTMLSel ect El ement
Di mCn As ADODB. Connect i on
Di mRsPr of e As ADODB. Recor dset
Set Cn = New ADODB. Connect i on
Set RsPr of e = New ADODB. Recor dset
Cn. Open Pr ovi der =Mi cr osof t . J et . OLEDB. 4. 0; & _
Dat a Sour ce=C: \ FundVB\ Dat a\ Cur sosLi br es. MDB; & _
Per si st Secur i t y I nf o=Fal se
RsPr of e. Act i veConnect i on = Cn
RsPr of e. Cur sor Type = adOpenSt at i c
RsPr of e. LockType = adLockOpt i mi st i c
RsPr of e. Cur sor Locat i on = adUseCl i ent
RsPr of e. Open Sel ect Di st i nct Cur Pr of e Fr omCur so
Do Whi l e Not RsPr of e. EOF( )
Set Sel El ement = Document . cr eat eEl ement ( OPTI ON)
Sel El ement . Text = RsPr of e! Cur Pr of e
Sel Pr of e. Opt i ons. Add Sel El ement
RsPr of e. MoveNext
Loop
End Sub
Al ej ecut ar su apl i caci n debe ser si mi l ar a l a f i gur a
most r ada:


Pg. 395



Fi nal ment e a maner a de ej er ci ci o par a el est udi ant e,
pr oceda a escr i bi r el cdi go necesar i o par a most r ar l a
i nf or maci n r el aci onada con cada pr of esor .















Pg. 396
Microsoft Vi sual Basi c
GUA DE LABORATORIO N 12

Objetivos
Luego de compl et ar est e l abor at or i o, el est udi ant e ser
capaz de:

Ut i l i zar f unci ones API de Wi ndows desde Mi cr osof t Vi sual
Basi c.
Conver t i r decl ar aci ones de C a Vi sual Basi c.
Aadi r un si st ema de ayuda a una apl i caci n.
Usar el asi st ent e par a empaquet ado y di st r i buci n.
Gener ar pr ogr amas de i nst al aci n medi ant e di squet es, car pet as
en una uni dad l ocal de r ed o en una publ i caci n Web.

Consideraciones
Par a el desar r ol l o del pr esent e l abor at or i o Ud. deber
cr ear una car pet a C:\FundVB\Lab12, par a guar dar sus t r abaj os
cor r espondi ent es a est e l abor at or i o.

Aplicacin N 1
Un pr ogr amador de apl i caci ones Vi sual Basi c, adems de
conocer su ent or no de t r abaj o, debe conocer su ent or no de
pr ogr amaci n, conoci do gener al ment e como I nt er f az de
Pr ogr amaci n de Apl i caci ones par a Wi ndows ( Wi ndows Appl i cat i on
Pr ogr ammi ng I nt er f ace, Wi ndows API ) .

La API de Wi ndows vi ene a ser un conj unt o de f unci ones
desar r ol l adas en l enguaj e C. Si n embar go, muchos pr ogr amador es
de Vi sual Basi c r ecur r en a est as f unci ones par a consegui r hacer
l o que es i mposi bl e ( o muy compl i cado) desde Vi sual Basi c.


Pg. 397
Las f unci ones API de Wi ndows no son nada compl i cadas como
pueden pensar al gunos pr ogr amador es de Vi sual Basi c.

Como pr i mer ej er ci ci o vamos a escr i bi r una apl i caci n que
per mi t a modi f i car el t t ul o de un f or mul ar i o. En l a pr ct i ca,
si empr e se modi f i can l os t t ul os del f or mul ar i o con l a
pr opi edad Capt i on de Vi sual Basi c, per o est e ej er ci ci o of r ece
una maner a senci l l a de decl ar ar y l l amar a una API de Wi ndows.

El pr i mer paso consi st e en aadi r un mdul o de cdi go al
pr oyect o. En segui da pr oceda a decl ar ar l a f unci n en l a
secci n de decl ar aci ones del mdul o:

Publ i c Decl ar e Funct i on Set Wi ndowText Li b user 32 _
Al i as Set Wi ndowText A ( ByVal hWnd As Long, _
ByVal l pSt r i ng As St r i ng) As Long

Luego, en el f or mul ar i o i ngr ese el cdi go que se muest r a a
cont i nuaci n:

Pr i vat e Sub For m_Load( )
Set Wi ndowText For m1. hWnd, Bi enveni dos a l a API de Wi ndows
End Sub

Al ej ecut ar su apl i caci n, su r esul t ado debe ser si mi l ar a
l a si gui ent e f i gur a:





Pg. 398
Aplicacin N 2
Desar r ol l ar una apl i caci n que per mi t a r epr oduci r un
ar chi vo Wav o Mi di . Ut i l i zar l a f unci n API de Wi ndows
mci Execut e par a l ogr ar el obj et i vo deseado.



Como se sabe, el l enguaj e C di f er enci a l as l et r as
mayscul as de l as mi nscul as. Por el l o, si Ud. comet e un er r or ,
por ej empl o ut i l i za una l et r a mayscul a en l ugar de una
mi nscul a ( o vi cever sa) , l a f unci n decl ar ada no ser
r econoci da y obt endr un mensaj e de er r or .

Par a evi t ar est e t i po de pr obl emas, vamos a ut i l i zar el
Vi sor API de Wi ndows. En segui da, del men Compl ement os el i j a
l a opci n Admi ni st r ador de Compl ement os. Del cuadr o de di l ogo
que se pr esent a car gar l a opci n Vi sor de API de VB 6. Al dar
un cl i ck en el bot n Acept ar , se aadi r en el men
Compl ement os l a opci n Vi sor de API .



En segui da i ngr ese al Vi sor de API . Se debe pr esent ar una
pant al l a si mi l ar a l a si gui ent e:


Pg. 399


En l a pant al l a ant er i or , sel ecci one el men Ar chi vo y
el i j a l a opci n Car gar ar chi vo de t ext o. En el cuadr o de
di l ogo que se pr esent a el egi r el ar chi vo Wi n32api . Txt y dar un
cl i ck en el bot n Abr i r .




Pg. 400
De l a si gui ent e pant al l a Ud. podr sel ecci onar l a f unci n
que desea, l uego act i ve l a opci n pbl i co y dar un cl i ck en el
bot n Agr egar par a vi sual i zar el cdi go de decl ar aci n de di cha
f unci n.



En segui da haga cl i ck en el bot n Copi ar y pegue di cho
cdi go a su apl i caci n. Recor dar que l a decl ar aci n de l a
f unci n API se debe r eal i zar en un mdul o, por l o t ant o debe
agr egar un nuevo mdul o y pegar el si gui ent e cdi go:

Publ i c Decl ar e Funct i on mci Execut e Li b wi nmm. dl l _
( ByVal l pst r Command As St r i ng) As Long

Luego pr oceda a di sear l a i nt er f az de l a apl i caci n. Par a
el l o ubi que l os si gui ent es cont r ol es:
1 cont r ol I mage


Pg. 401
2 bot ones de comando

En segui da est abl ezca l as pr opi edades segn se i ndi ca a
cont i nuaci n:

Form1
Nombr e Fr mMul t i medi a
Capt i on Hacer sonar un f i cher o Wav o Mi di
Bor der St yl e 3- Fi xed Di al og

Image1
Pi ct ur e C: \ Ar chi vos de pr ogr ama\ Mi cr osof t Vi sual
St udi o\ Common\ Gr aphi cs\ I cons\ Mi sc\ Mi ke. i co
St r et ch Tr ue

Command1
Nombr e CmdEj ecut ar
Capt i on
&Ej ecut ar

Command2
Nombr e CmdSal i r
Capt i on
&Sal i r

Una vez est abl eci das l as pr opi edades, pr oceda a i ngr esar
el si gui ent e cdi go:

Pr i vat e Sub CmdEj ecut ar _Cl i ck( )
i Resul t = mci Execut e( Pl ay c: \ vbN2\ bmp\ 34. wav)
End Sub

Pr i vat e Sub CmdSal i r _Cl i ck( )
Unl oad Me
End Sub
Aplicacin N 3


Pg. 402
Uno de l os t emas en l os que Wi ndows ha cr eado un est ndar
es el si st ema de ayuda de l as apl i caci ones. Par a el l o i ncl uye
una apl i caci n denomi nada Wi nHel p como mot or de ayuda de
Wi ndows.

Los pasos necesar i os par a cr ear un si st ema de ayuda son
l os si gui ent es:

Cr ear un ar chi vo de t ext o RTF.
Compi l ar el ar chi vo RTF medi ant e el compi l ador de ayudas Hel p
Wor kshop, par a obt ener el ar chi vo HLP.
Ut i l i zar el mot or de ayuda Wi nHel p.

En vi st a de l o ant er i or , l o pr i mer o que necesi t amos par a
cr ear nuest r o si st ema de ayuda, es un ar chi vo con f or mat o RTF
donde se i ncl ui r el t ext o de l a ayuda. Par a el l o i ngr ese a
Mi cr osof t Wor d 2000 y di gi t e l o si gui ent e:

Microsoft Visual Basic 6.0
Curso de programacin

Profesor Carlos Castillo Peralta

Contenido
Microsoft Visual Basic Nivel I
Microsoft Visual Basic Nivel II
Microsoft Visual Basic Nivel III

En segui da ubi que el cur sor en l a l t i ma l nea de t ext o y
pr esi one l a combi naci n de t ecl as Ct r l + Ent er , par a comenzar
en una nueva pgi na. A cont i nuaci n di gi t e l o si gui ent e:


Pg. 403
Microsoft Visual Basic 6.0
Curso de programacin

Profesor Carlos Castillo Peralta

Nivel I
Conceptos bsicos
Elementos del lenguaje
Entrada y salida de datos
Sentencias de control
Arreglos
Estructuras
Archivos de datos

Volver

En segui da ubi que el cur sor en l a l t i ma l nea de t ext o
que acaba de i ngr esar y pul se Ct r l + Ent er par a comenzar a
di gi t ar el si gui ent e t ext o en una pgi na di f er ent e:

Microsoft Visual Basic 6.0
Curso de programacin

Profesor Carlos Castillo Peralta

Nivel II
Creacin de bases de datos
Aplicaciones Cliente Servidor
Sentencias SQL
Entorno de datos
Objetos de Datos ActiveX (ADO)
Reportes

Volver


Pg. 404
De maner a anl oga a l os dems casos, ubi que el cur sor en
l a l t i ma l nea de t ext o y pr esi one Ct r l + Ent er . En segui da
i ngr ese el si gui ent e t ext o:

Microsoft Visual Basic 6.0
Curso de programacin

Profesor Carlos Castillo Peralta

Nivel III
Creacin componentes
Lenguaje HTML
Visual Basic Script
Aplicaciones DHTML
API de Windows
Creacin de archivos de ayuda
Empaquetado y distribucin

Volver

Fi nal ment e, debe obt ener un ar chi vo de cuat r o pgi nas.
Guar de su ar chi vo como Mi Ayuda. RTF.

El ar chi vo de ayuda que vamos a const r ui r va a ut i l i zar
ms de una pgi na, y en ese caso se r equi er e especi f i car un
i dent i f i cador par a cada pgi na.

Ahor a pr oceder emos a cr ear l os i dent i f i cador es de pgi nas.
Par a el l o ubi car el cur sor en l a pr i mer a pgi na ant es del
encabezado Mi cr osof t Vi sual Basi c 6. 0 y sel ecci one del men
I nser t ar l a opci n Not a al pi e. Luego, i ngr esar como mar ca
per sonal el s mbol o # t al como se muest r a en l a si gui ent e
f i gur a:



Pg. 405


Al dar cl i ck en el bot n Acept ar , el cur sor se ubi car
aut omt i cament e en el pi e de pgi na donde debe di gi t ar VBMai n
del ant e del s mbol o #.

En l a mi sma pgi na, ubi car el cur sor del ant e de l a pal abr a
Mi cr osof t Vi sual Basi c Ni vel I y dar l e el at r i but o de subr ayado
dobl e. Luego, escr i bi r VB1 i nmedi at ament e despus del t ext o
subr ayado y a est e i dent i f i cador dar l e el at r i but o de ocul t o.

Real i zar acci ones si mi l ar es par a l as dos si gui ent es
l neas, despus del t ext o Mi cr osof t Vi sual Basi c Ni vel I I
escr i bi r VB2 y par a Mi cr osof t Vi sual Basi c Ni vel I I I escr i bi r
VB3. No ol vi dar que est os i dent i f i cador es deben t ener at r i but o
de ocul t o.

En l a segunda pgi na ubi car el cur sor ant es del encabezado
Mi cr osof t Vi sual Basi c 6. 0 y sel ecci one del men I nser t ar l a
opci n Not a al pi e. Luego, i ngr esar como mar ca per sonal el
s mbol o # y l uego di gi t ar en el pi e de pgi na VB1. Luego en l a
mi sma pgi na, posi ci onar el cur sor del ant e de l a pal abr a Vol ver
y dar l e el at r i but o de subr ayado dobl e. Escr i bi r VBMai n
i nmedi at ament e despus del t ext o subr ayado y a est e
i dent i f i cador dar l e el at r i but o de ocul t o.


Pg. 406
Cont i nuar de maner a si mi l ar con l as si gui ent es pgi nas. Al
concl ui r vuel va a guar dar su ar chi vo. La pr i mer a pgi na debe
pr esent ar una apar i enci a si mi l ar a l a si gui ent e f i gur a:



Cont i nuando con nuest r o esquema, ahor a debemos gener ar el
ar chi vo HLP a par t i r del ar chi vo RTF que acabamos de cr ear .
Par a el l o debemos ej ecut ar l a apl i caci n Mi cr osof t Hel p
Wor kshop. Desde el men I ni ci o, el i j a l a car pet a Pr ogr amas,
l uego el i j a l a car pet a Mi cr osof t Vi sual St udi o 6. 0, en segui da
sel ecci one l a car pet a Her r ami ent as de Mi cr osof t Vi sual St udi o
6. 0, y l uego haga cl i c sobr e l a apl i caci n Hel p Wor kshop. A
cont i nuaci n se pr esent ar una vent ana si mi l ar a l a most r ada en
l a si gui ent e f i gur a:



Pg. 407



Sel ecci one el men Fi l e y el i j a l a opci n New. A
cont i nuaci n se most r ar un cuadr o de di l ogo si mi l ar al
si gui ent e:



Sel ecci one l a opci n Hel p Pr oj ect y dar un cl i ck en el
bot n OK. En segui da se pr esent ar una vent ana en l a cual debe
i ndi car el nombr e y l a r ut a del ar chi vo HLP que desea gener ar .
Par a nuest r o caso di gi t e Mi Ayuda y haga cl i ck sobr e el bot n
Guar dar , t al como se i ndi ca en l a f i gur a que se muest r a a
cont i nuaci n:


Pg. 408


Al hacer cl i ck en el bot n Guar dar , en segui da se
pr esent ar l a si gui ent e pant al l a:



Ahor a que Ud. ha cr eado un pr oyect o de ayuda, necesi t a
agr egar l a i nf or maci n sobr e su ar chi vo o ar chi vos de ayuda.


Pg. 409
Ha cr eado su ar chi vo de ayuda Mi Ayuda. RTF? Si Ud. ya l o
ha cr eado haga cl i ck en el bot n Fi l es y en segui da apar ecer
l a si gui ent e pant al l a:



Luego dar un cl i ck en el bot n Add. En segui da se
pr esent ar l a si gui ent e vent ana en l a cual debe especi f i car el
nombr e y l a r ut a de su ar chi vo de ayuda RTF. Par a nuest r o
sel ecci one Mi Ayuda y haga cl i ck en el bot n Abr i r .




Pg. 410
En segui da se most r ar l a si gui ent e pant al l a. Ud. haga
cl i ck sobr e el bot n OK.



A cont i nuaci n se pr esent ar una pant al l a si mi l ar a l a
f i gur a most r ada:




Pg. 411
A cont i nuaci n vamos a def i ni r una vent ana. Par a el l o haga
cl i ck sobr e el bot n Wi ndows. En segui da apar ecer un cuadr o de
di l ogo en el cual debe i ngr esar el nombr e de l a vent ana. Par a
nuest r o caso di gi t e Mai n. Luego haga cl i ck en el bot n OK.



En segui da se pr esent ar el si gui ent e cuadr o de di l ogo.
En l a f i cha Gener al i ngr ese el t ext o que se i ndi ca par a l a
bar r a de t t ul o de l a vent ana.




Pg. 412
En l a f i cha Posi t i on def i na el t amao i ni ci al de l a
vent ana de ayuda, par a el l o haga cl i ck en el bot n Aut o- Si zer .



En segui da se pr esent ar una vent ana de pr ueba si mi l ar a
l a que se muest r a en l a f i gur a si gui ent e. Cambi e l as
di mensi ones de est a vent ana segn su par ecer y haga cl i ck en el
bot n OK.




Pg. 413
A cont i nuaci n sel ecci one l a f i cha But t ons y act i ve l os
bot ones que Ud. qui er e agr egar par a su vent ana.



Luego sel ecci one l a f i cha Col or . En segui da se pr esent ar
una pant al l a si mi l ar a l a si gui ent e:




Pg. 414
Par a cambi ar el col or de l a zona de no despl azami ent o o l a
zona de despl azami ent o pul se el bot n Change al l ado de l a
vent ana de muest r a. Escoj a el col or que Ud. desee y ent onces
haga cl i ck en el bot n Acept ar .

El ar chi vo de pr oyect o debe pr esent ar una apar i enci a
si mi l ar a l a f i gur a most r ada:



Bueno, Ud. acaba de cr ear su pr i mer pr oyect o de ayuda
bsi co. Ms adel ant e si as l o necesi t ar puede cambi ar
cual qui er a de est as opci ones. Par a el l o si mpl ement e debe abr i r
su ar chi vo de pr oyect o de ayuda y r eal i zar l os cambi os que
consi der e per t i nent e.

Fi nal ment e guar de y pr uebe su pr oyect o. Par a l o cual debe
dar cl i ck en el bot n Save and Compi l e. En segui da se
pr esent ar una pant al l a si mi l ar a l a si gui ent e:



Pg. 415



En segui da i ngr ese al men Fi l e y el i j a l a opci n Run
Wi nHel p. Luego, se pr esent ar una pant al l a si mi l ar a l a
most r ada:




Pg. 416
En segui da dar cl i ck en el bot n Vi ew Hel p. A cont i nuaci n
se pr esent ar una pant al l a si mi l ar a l a f i gur a si gui ent e.
Pr uebe i ngr esando a l as ot r as pgi nas, par a el l o si mpl ement e
haga cl i ck en cual qui er a de l os t r es t ems que se muest r an en
l a secci n Cont eni do.



Sabe Ud. como aadi r una i magen de mapa de bi t s a nuest r o
ar chi vo de ayuda? La r espuest a es bast ant e senci l l a. Par a el l o
r eal i ce l os si gui ent es pasos:

I ngr ese a Mi cr osof t Wor d 2000 y pr oceda a abr i r el ar chi vo
Mi Ayuda. RTF. Ubi quese en l a pr i mer a pgi na y aada el si gui ent e
t ext o {BMC CCP.BMP} ant es del nombr e del pr of esor . Luego guar de
su ar chi vo.

A cont i nuaci n car gue el Hel p Wor kshop. Luego dar cl i ck
sobr e el bot n Bi t maps. Se pr esent ar una pant al l a si mi l ar a l a
f i gur a si gui ent e:



Pg. 417


En segui da haga cl i ck en el bot n Add. A cont i nuaci n se
pr esent ar una vent ana si mi l ar a l a si gui ent e f i gur a:



En el cuadr o de di l ogo ant er i or sel ecci one l a r ut a que se
i ndi ca. Luego haga cl i ck en el bot n OK.

Fi nal ment e, gr abe y compi l e su pr oyect o de ayuda. Par a
el l o dar cl i ck en el bot n Vi ew Hel p.


Pg. 418
A cont i nuaci n se pr esent ar una vent ana si mi l ar a l a
si gui ent e f i gur a:



Por l t i mo, ver emos como ut i l i zar nuest r os ar chi vos de
ayuda desde una apl i caci n Vi sual Basi c. Par a t al f i n abr a un
nuevo pr oyect o y aada un bot n de comandos al f or mul ar i o.
Cambi e el nombr e del bot n por CmdAyuda y pr oceda a i ngr esar el
si gui ent e cdi go:

Pr i vat e Sub CmdAyuda_Cl i ck( )
Di mAyuda
Ayuda = Shel l ( C: \ Wi ndows\ Wi nHel p. exe & _
C: \ FundVB\ Lab12\ Mi Ayuda. HLP, 1)
End Sub
Aplicacin N 4


Pg. 419
Despus de cr ear una apl i caci n Vi sual Basi c, por l o
gener al debemos pr opor ci onr sel a al usuar i o f i nal , ya sea en
di squet es, CD, a t r avs de una r ed l ocal , o bi en a t r avs de
una I nt r anet o I nt er net . Est o r equi er e pr i mer o empaquet ar l a
apl i caci n y despus di st r i bui r l a.

Como ej empl o, vamos a gener ar el pr ogr ama de i nst al aci n
par a l a apl i caci n cr eada en el ej er ci ci o ant er i or . Par a el l o
es necesar i o que t enga abi er t a di cha apl i caci n.

Pr i mer o debemos i ni ci ar el Asi st ent e de empaquet ado y
di st r i buci n. Par a t al f i n, del Men Compl ement os sel ecci one l a
opci n Admi ni st r ador de compl ement os y aada l a ut i l i dad
Package and Depl oyment Wi zar d. Al moment o de i ni ci ar el
Asi st ent e se vi sual i zar una vent ana si mi l ar a l a si gui ent e
f i gur a:




Pg. 420
En segui da haga cl i ck en el bot n Empaquet ar . Est o har
que el Asi st ent e l e pr esent e var i os cuadr os de di l ogo que l e
pedi r n i nf or maci n r ef er ent e al pr oyect o que vamos a
empaquet ar y l e per mi t i r el egi r qu opci ones qui er e i ncor por ar
al pr ogr ama de i nst al aci n, el t i po de empaquet ado, l a car pet a
donde se al macenar el paquet e de i nst al aci n, qu ar chi vos
desea i ncl ui r adi ci onal ment e en el paquet e, qu gr upos y
el ement os de gr upo del men I ni ci o se deber n cr ear en el
equi po del usuar i o f i nal dur ant e l a i nst al aci n de l a
apl i caci n, et c. A medi da que avanza, si necesi t a ms
i nf or maci n consul t e al J ef e de Pr ct i ca.

Una vez concl ui do el pr oceso de empaquet ado ci er r e
Mi cr osof t Vi sual Basi c. Luego haga cl i ck en el men I ni ci o y
sel ecci one l a opci n Ej ecut ar . Segui dament e i ngr ese l a r ut a de
nuest r o pr ogr ama de i nst al aci n y dar cl i ck en Acept ar , t al
como se i ndi ca en l a f i gur a:



En esos i nst ant es se dar i ni ci o a l a i nst al aci n de
nuest r a apl i caci n. Concl ui do est e pr oceso, sel ecci one el men
I ni ci o, car pet a Pr ogr amas y ubi que l a car pet a que cont i ene l a
apl i caci n. Fi nal ment e pr oceda a ej ecut ar su apl i caci n.

Fin de las prcticas de laboratorio.
Suerte.




Pg. 421

También podría gustarte