Está en la página 1de 93

Programacin con VB 6.0 Ing.

Kelvin Atencio
Por Ingeniero de Petrleo
KELVIN ATENCIO
kelvin!"0#$otmail.com
%aracai&o' Vene()ela
E*te tra&a+o no ,retende *er )n %an)al' ,ero
*i )na g)-a de e*t)dio de VI./ALBA.IC 6.0
,rod)cto de )na inve*tigacin ,er*onal.
Programacin con VB 6.0 Ing. Kelvin Atencio
VISUAL BASIC:
Para entender lo que este lenguaje de programacin quiere decir es necesario
descomponerla en dos partes:
VISUAL: Anteriormente era necesario escribir una gran cantidad de cdigo en el lenguaje
para formar la interfaz de usuario y adems eran muc!o menos eficientes y ms dif"ciles de
entender# $ediante la creacin de una interfaz de usuario mediante objetos %controles&
predise'ados puede cambiar de forma sencilla la interfaz de usuario reduciendo el tiempo de
trabajo y la eficiencia del mismo( esto es lo que propone la palabra Visual( crear de forma sencilla
la interfaz de usuario de modo que no sea necesario dedicar tanto tiempo a la creacin de la
misma#
)ASI*: +sta palabra es la abre,iacin de las siglas %en ingl-s& )eginners All.Purpose
Symbolic Instriction *ode( se refiere al lenguaje de programacin ms utilizado en la !istoria de la
informtica y la programacin( aunque en principio era un poco ms sencillo( a!ora muc!as ms
instrucciones y m-todos que se !an adaptado para crear aplicaciones bajo ambiente /indo0s#
+ntonces Visual )asic se refiere al lenguaje de programacin de computadoras que
combina las facilidades de trabajo que !a desarrollado $icrosoft en un entorno de interfaz ,isual(
con el lenguaje de programacin )ASI*( por ello a!ora la forma de crear una interfaz de usuario se
torna muc!o mas econmica( en los que a l"neas de cdigo se refiere y por lo tanto a ganar tiempo
para realizar programas con muc!o y !asta nada de cdigo#
1. EL ENTORNO DE DESARROLLO DE VB 6.0
Primero( se presenta la primera pantalla que aparece al ejecutar el comando de entrada de
V) 1#2# 3ig# 4#
FIGURA 1. Primera Pantalla que aparece al ejecutar VB 6.0.
Programacin con VB 6.0 Ing. Kelvin Atencio
+n ella( aparece el cuadro de dilogo 56ue,o proyecto7 que ofrece tres fic!as de opciones
al comenzar en la sesin con Visual )asic( estas son:
Nuevo : Propone crear un nue,o proyecto#
+n ella aparece seleccionado por defecto +8+ estndar# +8+ es la abre,iacin de
+8+*U9+ o en espa'ol .proyecto ejecutable.# +sta opcin nos crea un nue,o proyecto que
despu-s de compilado nos crea una aplicacin# +ste es el elemento que ms com:nmente
utilizaremos( ya que la presente in,estigacin !ace referencias a creaciones ejecutables# 6o !ay
ejemplos de librer"as dinmicas %;#dll o <LL Acti,e8& ni a controles Acti,es8 %;#oc=& ni otro tipo de
aplicacin> as" que si desea buscar informacin sobre estos tipos de proyectos( puede abandonar
esta lectura#
Existente : Propone abrir un proyecto que fue creado anteriormente( desplega el cuadro
de dilogo Abrir para buscar el proyecto en el directorio#
Reciente : Propone tambi-n abrir un proyecto ya creado( pero a diferencia de
+=istentes( -ste nos desplega una lista de los proyectos que !an sido creados o modificados en las
:ltimas sesiones de trabajo con V) 1#2#
Programacin con VB 6.0 Ing. Kelvin Atencio
Para comenzar( se crear un nue,o proyecto !aciendo doble.clic en +8+ estndar# V)
desplegar la siguiente pantalla#
Figura 2. Entorno integrao e e!arrollo e VB 6.0
+l Sector 4 en la 3ig# ? se llama Formulario del proyecto# +l formulario ser la ,entana de
aplicacin o interfaz del usuario cuando el programa se compile o se ejecute# Un programa puede
tener uno o ,arios formularios( y se puedes abrir y cerrar cada uno de ellos seg:n se necesite# +n
ellos se agregarn los controles que sir,en para crear una aplicacin e interactuar con el usuario#
La pantalla blanca que se ,e detrs del formulario es la pantalla donde se agrega el cdigo
del programa#
La 3ig# @ %Sector ? de la 3ig# ?& es el Cuadro de herramientas( ella
proporciona algunas de las !erramientas que puede agregar al formulario en
tiempo de dise'o# +stas !erramientas son llamadas controles y alguno de
ellos son las +tiquetas %Labels&( *uadro de te=to %9e=t)o=&( botones de
comandos %*ommand)utton# Ver *ontroles en la Seccin 6ro# A#
Para realizar la primera aplicacin %Programa B4& se deben agregar
dos controles al formulario n:mero uno# Caga clic sobre CommandButton en
*uadro de Cerramientas> el puntero del mouse tomar una forma de cruz
cuando est- por encima del formulario( dibuje el tama'o del control en el
mismo( para ello mantenga el clic presionado mientras dibuja el tama'o y
luego suelte el botn del mouse# Se dibujar en el formulario un botn de
comando con *aption %te=to que se muestra& igual a *ommand4 e igual
nombre# Agreguemos tambi-n un *uadro de te=to %9e=tbo=&( para ello !aga
clic sobre Textbox y luego dib:jelo en el formulario mediante el mismo
procedimiento( aparecer un cuadro de te=to con 9e=t %te=to que se ,e igual
a 9e=t4& e igual nombre#
+l Sector @ de la 3ig# ? muestra la Barra de herramientas %parte
superior de la 3ig# ?&# Las )arras de !erramientas tambi-n se encuentran en
programas como /ord( Po0erPoint y +=cel( entre otros y por ello ya es muy
probable que ya sean conocidas# +lla proporciona un acceso a los comandos utilizados cuando
est creando una aplicacin# Puede agregar o quitar barras si !ace clic en el botn secundario del
mouse sobre la barra de !erramientas y luego clic sobre la que desea agregar o quitar#
Figura ". #uaro
e $erramienta!
Programacin con VB 6.0 Ing. Kelvin Atencio
Para usar la )arra de !erramientas dir"jase al $enu Ejecutar y luego !aga clic sobre Iniciar#
Se iniciar una prueba del programa( por a!ora slo mostrar el formulario con los controles
*ommand4 y 9e=t4# 9ambi-n puede agregar un formulario al proyecto( para ello dir"jase al men:
Proyecto y luego !aga clic sobre Arear !ormulario( despu-s clic sobre Formulario#
La 3ig# A modela lo que es el Explorador de Proyectos
%Sector A de la 3ig# ?&# Una aplicacin puede contener uno o mas
elementos %nuestro ejemplo tiene dos formularios& y si quiere tener
acceso a uno de ellos tendr que ir al +=plorador de proyectos
!acer un clic sobre el elemento y luego clic en Ver Dbjeto o Ver
*digo( seg:n lo que desea#
+n este ejemplo e=iste un proyecto con dos formularios
3orm4%no seleccionado& y 3orm? %seleccionado&# Si !ace clic en
Ver Dbjeto mostrar el formulario ? si lo !ace en Ver *digo
mostrar el cdigo de este formulario# +n principio slo es una
pantalla en blanco( ya que no !ay cdigo !asta el momento#
Si no puede ,er esta ,entana directamente( tendr que ir
al men: "er de la )arra de !erramientas y luego !acer clic sobre
Explorador de Proyectos#
+n la 3ig# E se !ace referencia a la "entana Propiedades
%Sector E de la 3ig# ?&# Las propiedades son un conjunto de
caracter"sticas que determinarn la forma de los controles o
formularios# Algunas propiedades comunes son el nombre %para
identificarlo en el cdigo&( el alto( anc!o( color del fondo y
muc!as mas seg:n el tipo de control con el que trabaja( por ello
cambia cada ,ez que cambia el enfoque del tipo de control# +s
decir( las caracter"sticas de un formulario no son iguales a las
caracter"sticas de una etiqueta( botn de comando o de un
cuadro de te=to# Por ejemplo( !aga clic sobre el botn de
comando *ommand4 y ec!e un ,istazo sobre las diferentes
propiedades( obser,ar un cuadro igual a la 3ig# E# A!ora( !aga
clic sobre cualquier parte del formulario %que no sea *ommand4&
o sobre el control 9e=t4( ,er que algunas propiedades no se
encuentran( y en cambio aparecen otras#
Para utilizar esta Ventana( presione un solo clic sobre el
*ontrol *ommand4 y en la Ventana Propiedades( cambie
*aption de *ommand4 a Saludar( ,aya a!ora al *uadro de
te=to( ubique la propiedad 9e=t( borre el contenido %9e=t4& y
d-jelo en blanco#
La 3ig# 1 que proporciona la parte 1 de la 3ig# ? es la imagen de la ,entana Posici$n del
Formulario# Fsta ,entana permite cambiar la posicin del formulario antes de que la aplicacin ,aya
a ser ejecutada# Puede utilizar esta pantalla cambiando la posicin del formulario arrastrndola con
el ratn %mouse& y luego ,erificarla ejecutando el proyecto#
Figura 6. Ventana Po!ici%n el
Formulario
Figura &. E'ploraor e
Pro(ecto!
Figura ). Propieae!
Programacin con VB 6.0 Ing. Kelvin Atencio
Programa #1. Saludar:
A!ora se debe escribir un poco de cdigo para crear la primera aplicacin#
Para comenzar se puede !acer de tres maneras# Verifique que el formulario 4 con los dos
controles %9e=t)o= y *ommand)utton& este acti,o en el +=plorador de Proyectos( !aga clic sobre
Ver *digo y aparecer una pantalla en blanco para empezar a escribir cdigo( tambi-n ,er que
inmediatamente arriba de esta pantalla aparece la palabra %General& que contiene una lista(
busque en ella la palabra *ommand4( este llamar directamente al e,ento clic( es decir( las
secuencias de comandos que se efectuarn al !acer clic en este botn# La otra manera es ,erificar
que el formulario acti,o %en el +=plorador de Proyectos& sea el que tiene los dos controles
%*ommand4 y 9e=t4&( !aga clic en Ver Dbjeto( y luego !aga doble clic sobre el botn que dice
Saludar( se desplegar el siguiente cdigo:
Private Sub Command1_Click()
End Sub
La tercera manera es escribir directamente el cdigo que se mostr#
Aqu" se escribirn las sentencias que se efectuarn cuando !aga clic en el botn Saludar
%ya que Command1 es el nombre del botn&#
A!ora copie y pegue este cdigo o escriba( de tal manera que quede de la siguiente
manera:
Private Sub Command1_Click()
If Command1.Caption = "Saludar" Ten
Te!t1.Te!t = ""#ola$% &C'mo e(ta()"
Command1.Caption = "*orrar"
El(e
Te!t1.Te!t = ""
Command1.Caption = "Saludar"
End If
End Sub
+jecute la aplicacin con 3E o Iniciar en la )arra de Cerramientas e interact:e con el
programa#
Si desea una e=plicacin detallada de este programa ,aya a la Seccin +=plicacin
<etallada de Programas en los cap"tulos finales# %Ver "ndice&
<e aqu" podemos concluir que las propiedades de los controles pueden cambiar( tanto en
tiempo de dise'o como en tiempo de ejecucin#
Nota: Para cerrar una sesin de trabajo con V) y abrir un 6ue,o proyecto( puede guardar el
formulario( el proyecto y luego buscar en el $en: Archivo de la barra de !erramienta( !aga clic en
Huitar Proyecto( esto cierra el proyecto y puede crear uno nue,o en Archivo % Nuevo Proyecto# Si
no quita el proyecto y crea uno nue,o( se crear un Grupo de Proyectos#
Programacin con VB 6.0 Ing. Kelvin Atencio
. PROPIEDADES! "#TODOS! EVENTOS $ CONSTANTES.
Propiedades:
*omo ya se !a mencionado en ,arias ocasiones( los controles y los formularios contienen
propiedades( -stas son( sus caracter"sticas particulares que los diferencian de otros#
Por ejemplo si !ablamos de una silla( -sta tendr propiedades como el material( n:mero de
patas( tama'o( forma del asiento( y otras#
+n Visual )asic las propiedades se identifican en el cdigo por tener la forma:
&bjeto.Propiedad I "alor
<onde Dbjeto es el elemento al cual se !ace referencia y ,alor es una constante o ,ariable
que llama a una constante# +l ,alor que identifica la propiedad#
Si !ablamos de la Silla( podr"amos decir:#
Silla.+aterial = +adera
Silla.Pata( = ,
Silla.Tama-o = 1%.
Se dice una ,ariable que llama a una constante ya que( puede asignar a una ,ariable un
,alor y luego llamar a esta ,ariable de la siguiente manera:
+aterial = +adera
Silla.+aterial = +aterial
+n el +=aminador de Dbjetos( o en el transcurso de una programacin se pueden
identificar las propiedades por tener a su lado una figura como esta:
Lle,e a cabo una peque'a demostracin# +n el programa B4( dir"jase a la pantalla Ver
*digo y escriba Command1. %la palabra *ommand4 ms el punto&( se desplegar una lista de
propiedades y m-todos de los botones de comandos( en este caso de *ommand4# Dbser,e la
figura que se encuentra a su lado#
Los $-todos:
Los m-todos son las diferentes acciones que puede realizar un elemento#
Por ejemplo la silla puede inclinarse( ,ol,er a su posicin inicial( subir o bajar su cabecera(
mo,erse de un lado a otro( entre otros#
Los $-todos se diferencian en el cdigo de las propiedades ya que no les sigue el signo
igual( pero podr"a tener un ,alor( es decir( tienen la siguiente forma:
&bjeto#$-todo '"alor(
As" podemos llamar los siguientes m-todos de la silla:
Silla.Inclinar /01
Silla.2olver
+l ,alor slo aparece en algunos casos( es decir es opcional y depende del m-todo que se
est- utilizando# Puede tener ms de un ,alor# +jemplo:
Silla.+over (3mt( adelante% /mt( acia la dereca)
Programacin con VB 6.0 Ing. Kelvin Atencio
Los m-todos se identifican en el +=aminador de Dbjetos o en el transcurso de la
codificacin por tener a su lado la siguiente figura:
Jealice la misma prueba que en las propiedades %Command1.& y ubique los m-todos
mediante la figura#
Los +,entos:
Los +,entos son los acontecimientos que pueden suceder mientras ejecuta una aplicacin(
es decir( el clic a un botn de comando o a una etiqueta( esto llama a un procedimiento( a una
secuencia de comandos#
+stos se pueden Dbser,ar en el *digo por la secuencia Sub( de la siguiente manera#
Sub 4b5eto_Evento(6ar7umento(8)
0 Comando1
0 Comando/
0 ...4tro( Comando(
End Sub
Por ejemplo( !aciendo referencia a la silla obser,e lo que sucede al e,ento sentarse#
Sub Silla_Sentar(e()
Pe(o e( 2ariable
Si Pe(o e( ma9or a 100k7% entonce(:
Silla.;omper
Silla(.Pata(=0
Sino
Silla.Soportar
<in de Secuencia Si
End Sub
+l cdigo describe los sucesos que se ejecutarn cuando suceda el e,ento sentarse#
Los e,entos pueden encontrarse en el +=aminador de Dbjetos( por medio de la figura de
un rayo #
Las *onstantes:
Son ,alores num-ricos o cadenas de te=to que !acen referencia a un estado# Por ejemplo:
+n las casillas de ,erificacin la propiedad Value del control puede tomar tres constantes:
0 vb=ncecked( que corresponde al ,alor 2#
0 2bCecked( que corresponde al ,alor 4#
0 2b>ra9ed( que corresponde al ,alor ?
Se puede colocar su cadena de te=to que corresponde a dic!o estado o su ,alor num-rico
si se quiere colocar en su forma abre,iada# +n V) 1#2 se utilizan muc!o este tipo de constantes#
Las constantes se identifican en el +=aminador de Dbjetos por tener a su lado una figura
como la siguiente:
Programacin con VB 6.0 Ing. Kelvin Atencio
%. EL E&A"INADOR DE OB'ETOS
+l +=aminador de Dbjetos es un tipo de ayuda de V)( que se utiliza generalmente para
encontrar los detalles de las distintas propiedades( los m-todos( funciones( e,entos o constantes#
Por ello es muy funcional a la !ora de programar#
Para acceder a -l( mientras est- en una sesin de programacin( presione la tecla 3? o
,aya a la )arra de Cerramientas en el men: "er( busque Examinador de &bjetos( se desplegar la
siguiente pantalla:
Por ejemplo( supongamos que deseamos ,erificar cuales son las diferentes constantes de
los estilos que se pueden emplear al crear un *uadro de $ensaje %)sBox*( podemos escribir la
palabra $sg)o= y el +=aminador de objetos mostrar una serie de *lases que coinciden con la
palabra buscada( entre ellas Vb$sg)o=Style( puede !acer clic en ella y ,er en la lista inferior las
constantes( tanto su modo abre,iado como su equi,alente num-rico#
9ambi-n puede acceder a las e=plicaciones de los distintos e,entos de los controles o
formularios( para ello busque en la lista inferior izquierda el control al que desea encontrarle un
e,ento( por ejemplo CommandButton( la lista inferior derec!a mostrar sus distintas propiedades(
m-todos y e,entos#
Si a!ora !ace clic sobre uno de ellos( en la parte inferior se muestra la e=plicacin de dic!o
elemento#
Programacin con VB 6.0 Ing. Kelvin Atencio
(. LOS CONTROLES:
Los controles son una ,ariedad de !erramientas predise'adas que pueden ser utilizados
en una aplicacin seg:n la finalidad de la misma#
Por la particularidad de cada una puede emplearse en ciertas circunstancias para mostrar
informacin( pedir informacin( enlistar miembros( desplegar imgenes o crear la ocasin para
realizar clculos( entre otras#
*omo ya dijimos( los controles estn ubicados en el *uadro de Cerramientas
%generalmente en la parte izquierda de la pantalla&# Ka !emos interactuado un poco con los
controles( pero en esta seccin se e=plicarn cada uno de ellos por separado( utilizando en los
programas algunas de sus propiedades( m-todos y e,entos#
Los controles que aparecen siempre por defecto son:
*ontrol Label: +tiqueta
*ontrol 9e=t)o=: *uadro de 9e=to
*ontrol Picture)o=: *uadro de Imagen
*ontrol 3rame: $arco
*ontrol *ommand)utton: )otn de *omando
*ontrol *!ecL)o=: *asilla de *!equeo
*ontrol Dption)utton> )otn de Dpcin
*ontrol List)o=: *uadro de Lista
*ontrol *ombo)o=: *uadro *ombinado
*ontroles CScroll)ar y VScroll)ar: )arras de desplazamiento#
*ontrol 9imer: *ontrol de tiempo %Jeloj&
*ontrol <ri,eList)o=: Lista de Unidades de <iscos
*ontrol <irList)o=: Lista de <irectorios
*ontrol 3ileList)o=:: Lista de Arc!i,os
*ontrol S!ape: 3ormas
*ontrol Line: L"nea
*ontrol Image: Imagen
*ontrol <ata: <atos
*ontrol DL+: *ontenedor DL+
+stos controles son llamados controles intr"nsecos( ya que aparecen en todas las sesiones
y no se pueden quitar del *uadro de Cerramientas#
Pero adems de -stos( e=isten otros controles que se pueden quitar o agregar y no
aparecen por defecto( aparecen en una lista adicional#
Para acceder a esta lista presione el botn secundario del mouse sobre el *uadro de
Cerramientas( en la lista que se desplega presione clic sobre *omponentes> tambi-n lo pude !acer
)uscando en el $en: Proyecto M Componentes o simplemente *D69JDLN9# <e esta lista se dar
una e=plicacin del control *ommon<ialog#
A!ora( mediante el +=aminador de Dbjetos( se recomienda dedicar un tiempo a estudiar
las diferentes propiedades( los m-todos y e,entos de -stos distintos controles( aunque ya tenga
algo de e=periencia siempre nos podemos encontrar con alg:n elemento nue,o# Para ello(
introduzca su nombre %+jemplo: 9e=t)o=& y presione )uscar#
ETI)UETAS: *LABEL+
Las etiquetas se utilizan generalmente para dos fines:
+scribir te=to en el formulario( de modo que no est- disponible la opcin de copiar
y pegar#
Programacin con VB 6.0 Ing. Kelvin Atencio
*on esto( por ejemplo( se pueden identificar nombres de ,ariables para el usuario#
%Ver Programa B ?&#
$ostrar resultados de modo que no se tenga la opcin de copiar y pegar# %Ver
Programa B ?&#
Programa #. Sumar:
+l siguiente programa agrega un ,alor a una suma#
<ise'e el formulario con tres etiquetas %Label&( un *uadro de te=to %9e=t)o=& y un botn de
comando %*ommand)utton&#
+stablezca en las etiquetas las siguientes propiedades:
La primera %Label4& con *aption: OValor I
%Indica al usuario que en el 9e=t4( agregar el ,alor a sumar&#
La segunda con %Label?& con *aption: Jesultado I(
%Indica al usuario que el resultado se presenta a su lado& y(
+n la tercera cambie el nombre %6ame& a lbl;e(ultado y cambie la propiedad
)orderStyle I %4 M 3i=ed Single&( que parece un cuadro de te=to con fondo gris#
Luego( cambie el *aption del formulario a SU$A#
+n el cuadro de te=to genere su propiedad 9e=t a cadena ,ac"a %borre 9e=t4&#
+n el botn de comando su *aption: OSumar#
Verifique que la propiedad 9abInde= de la etiqueta que dice OValor I sea un n:mero menor
que la propiedad 9abInde= del *uadro de 9e=to t=tValor#
+l s"mbolo %O& no aparecer en el *aption y el efecto que produce es que subraya la letra
que le sigue %en este caso la letra S& y crea un acceso directo %al presionar la combinacin AL9NS
se llamar al e,ento clic del comando o al presionar AL9NV tomar el enfoque el control 9e=t4&#
A!ora reubique las posiciones de los controles en tiempo de dise'o de modo que se
,isualicen de la siguiente manera:
A continuacin empecemos a codificar( para ello( !aga clic en Ver *digo en el +=plorador
de Proyectos#
+scriba en la pantalla en blanco:
Public Suma ?( @ouble
)usque en la lista que dice %General& la palabra cmdSumar y cuando aparezcan las dos
l"neas para agregar cdigo agregue las siguientes sentencias( de tal manera que aparezca:
Private Sub Command1_Click()
@im 2alor ?( @ouble
If Te!t1.Te!t = "" Ten
2alor = 0
El(e
2alor = C@bl(Te!t1.Te!t)
End If
Suma = Suma A 2alor
lbl;e(ultado.Caption = Suma
Te!t1.Te!t = ""
End Sub
+jecute la aplicacin con 3E( o en el men: Ejecutar#
Programacin con VB 6.0 Ing. Kelvin Atencio
Verifique que el contenido de la suma no se puede copiar y pegar#
9ambi-n despu-s de introducir un ,alor en el cuadro de te=to( en ,ez de presionar clic
sobre sumar( presione la combinacin de teclas AL9NS( compruebe que se genera el mismo
e,ento# Para que ,uel,a a tomar el enfoque 9e=t4( presione la combinacin AltNV# +sto sucede ya
que( como la etiqueta no puede tomar el enfoque pasa el enfoque a su 9abInde= superior en uno(
en este caso el cuadro de te=to#
La e=plicacin de la codificacin se encuentra en la Seccin +=plicacin <etallada de
Programas en los :ltimos cap"tulos#
+n este ejemplo se trabajaron con las propiedades de las etiquetas( 6ame %nombre&(
*aption %t"tulo&( )orderStyle %+stilo del )orde& y 9abInde= %Pndice de 9abulacin&# +=isten otras
propiedades que tambi-n son muy utilizadas que son AutoSize %Ajustar !orizontalmente al tama'o
del *aption& y /ord/rap %Ajustar ,erticalmente al tama'o del *aption&#
Para ,er la e=plicacin de otras propiedades( m-todos o e,entos puede dirigirse al
+=aminador de Dbjetos con la tecla 3?#
CUADROS DE TE&TOS: *TE&TBO&+
Los *uadros de te=to son muy utilizados en las aplicaciones con V)( tiene muc!a
funcionalidad( pero generalmente son usados para:
Leer ,alores o cadenas de te=to para trabajar con ellos#
$ostrar resultados tal como las etiquetas( pero en este caso facilita la posibilidad
de copiar y pegar#
Los *uadros de te=to son generalmente modificables en tiempo de ejecucin( pero puede
con,ertirlo a slo lectura si establece su propiedad LocLed a 9rue %,erdadero&# +n este caso slo
tendr la posibilidad de copiar( pero no la de pegar
*omo ya se !a trabajado la propiedad 9e=t de los cuadros de 9e=to( se presenta a!ora la
e=plicacin del m-todo Set3ocus y dos de los e,entos que se pueden generar al trabajar con estos
controles( los mismos son *!ange %que ocurre cuando cambia el control& y QeyPress %que ocurre
que presiona una tecla cuando este control tiene el enfoque&# Si quiere la e=plicacin de otras
propiedades( m-todos o e,entos dir"jase al +=aminador de Dbjetos#
Programa #%. ,r-a d- u. tr/0.gulo:
*on este programa se calcula el rea de un tringulo( los datos pedidos son la )ase y la
Altura#
*oloque tres etiquetas en un formulario:
La primera con propiedad *aption: O)aseI
La segunda con propiedad *aption: OAlturaI
La tercera con propiedad *aption: JesultadoI
Agregue tambi-n tres cuadros de te=tos:
+l primero con propiedad 6ame: t=t)ase
+l segundo con propiedad 6ame: t=tAltura
+l tercero con propiedad 6ame: t=tJesultado
*oloque dos botones de comando:
+l primero con propiedad 6ame: cmd*alcular( *aption: O*alcular y +nabled: 3alse
+l segundo con propiedad 6ame: cmd)orrar y *aption: )Oorrar
*ambie la propiedad *aption del formulario a AJ+A#
Jeubique los controles de tal manera que quede de la siguiente manera:
Programacin con VB 6.0 Ing. Kelvin Atencio
9=t)ase est ubicado al lado de la etiqueta )ase I#
9=tAltura al lado de la +tiqueta Altura I ( y
9=tJesultado al lado de la +tiqueta Jesultado I#
A!ora( se puede empezar a codificar para realizar el programa( copie y pegue el siguiente
cdigo o escriba:
4ption E!plicit
Private Sub cmd*orrar_Click()
t!t*a(e = ""
t!t?ltura = ""
t!t;e(ultado = ""
cmdCalcular.Enabled = <al(e
t!t*a(e.Set<ocu(
End Sub
Private Sub cmdCalcular_Click()
@im *a(e ?( @ouble% ?ltura ?( @ouble% ?rea ?( @ouble
*a(e = 2al(t!t*a(e)
?ltura = 2al(t!t?ltura)
If I(Bumeric(t!t*a(e) ?nd I(Bumeric(t!t?ltura) Ten
?rea = *a(e C ?ltura D /
t!t;e(ultado = ?rea
El(e
+(7*o! "Bo (e acepta te!to. 2erifiEue para continuar"% vb4F4nl9 A
vbE!clamation% "Error"
End If
End Sub
Private Sub t!t*a(e_Can7e()
If Gen(t!t*a(e) H 0 ?nd Gen(t!t?ltura) H 0 Ten
cmdCalcular.Enabled = True
End If
End Sub
Private Sub t!t*a(e_Fe9Pre(((Fe9?(cii ?( Inte7er)
If Fe9?(cii = vbFe9;eturn Ten
t!t?ltura.Set<ocu(
End If
End Sub
Private Sub t!t?ltura_Can7e()
If Gen(t!t*a(e) H 0 ?nd Gen(t!t?ltura) H 0 Ten
cmdCalcular.Enabled = True
End If
Programacin con VB 6.0 Ing. Kelvin Atencio
End Sub
Private Sub t!t?ltura_Fe9Pre(((Fe9?(cii ?( Inte7er)
If Fe9?(cii = 13 Ten
If cmdCalcular.Enabled = True Ten
cmdCalcular.Set<ocu(
El(e
T!t*a(e.Set<ocu(
End If
End If
End Sub
+jecute la aplicacin con la tecla 3E( y compruebe las nue,as opciones que se !an
generado en este programa( por ejemplo el reconocimiento de la tecla +nter %QeyAscii I 4@& o
acti,ar el botn de comando cuando ya se !an rellenado los cuadros de te=to con ,alores#
Para obtener una e=plicacin detallada del programa puede ir a la Seccin <etallada de
Programas y buscar el programa B@#
PICTUREBO& *CUADRO DE I"A1EN+
Los controles Picture)o= se pueden utilizar para mostrar imgenes y mediante sus
m-todos crear grficos como l"neas( cuadrados( rectngulos( c"rculos o elipses> aunque con un
poco de creati,idad puede combinar ,arios de estos para realizar dibujos# Puede utilizarse tambi-n
como contenedores de otros controles( esto es muy :til por ejemplo para realizar barras de
!erramientas o de estado# Dtra opcin que ofrece es la posibilidad de escribir sobre -l mediante el
m-todo Print#
Los formatos compatibles con este control son los arc!i,os imgenes RP+G( formato de
intercambio grfico %GI3&( mapa de bits %)$P&( "conos %I*D&( cursores %*UJ&( metarc!i,o estndar
de /indo0s %/$3& o mejorados %+$3&#
Puede mostrar una imagen en este control en tiempo de dise'o mediante la propiedad
Picture( para cambiarla en tiempo de ejecucin puede utilizar la siguiente:
Set Objeto.Picture = GoadPicture(;uta)
<onde Juta es la ruta y el nombre de la imagen %+jemplo: 5*:S/indo0sSAros#bmp7& Si
desea quitar la imagen mostrada en el control se debe dejar en blanco los comandos de Juta(
quedando de la siguiente manera:
Set 4b5eto.Picture = GoadPicture
Una des,entaja que tiene este control con respecto al control imagen( es que el tama'o de
la imagen no se puede adaptar al tama'o del control( pero si el tama'o del control al tama'o de la
imagen mediante la propiedad AutoSize( si esta propiedad esta establecida como 9rue %,erdadera&
el tama'o del control se adapta al tama'o de la imagen( si el tama'o de la imagen es muy grande
debe tener cuidado de no opacar otros controles( si toma el ,alor 3alse %3also& no se cambia el
tama'o del control ni de la imagen( si la imagen es ms grande que el control -sta se recortar#
Los $-todos Grficos:
*omo se mencion anteriormente( en el control Picture)o= puede dibujar formas como
puntos( l"neas( c"rculos( elipses( arcos( cuadrados o rectngulos( adems que permite escribir
sobre -l# +stos m-todos grficos tambi-n son aplicables a los formularios#
Puntos: Se realizan mediante el m-todo Pset:
4b5eto.P(et (I%J)% 6color8
Programacin con VB 6.0 Ing. Kelvin Atencio
<onde Dbjeto es el nombre del *uadro de Imagen( de un formulario( o si se omite se !ar
referencia al formulario actual %acti,o&# 8( K son las coordenadas donde se colocar el punto# +stos
puntos tienen un tama'o de un p"=el( siendo peque'os para la ,ista !umana#
+,neas: Se utiliza el m-todo Line:
4b5eto.Gine (I1%J1)K(I/%J/)% 6color8
<onde 84 y K4 son las coordenadas del punto inicial y 8? y K? las del punto final( el color
es opcional#
C,rculos: Se realizan mediante el m-todo *ircle:
4b5eto.Circle (I%J)% radio% 6color8
8( K son las coordenadas del centro del c"rculo( radio el tama'o del radio y el color es
opcional#
Elipses: Se realizan mediante el m-todo *ircle:
4b5eto.Circle (I%J)% radio% 6color8% 6inicio8% 6fin8% a(pecto
<onde radio es la distancia ms grande de la elipse( inicio y fin se colocan si se desea
realizar slo un arco( y aspecto es la relacin o proporcin de la distancia ,ertical con respecto a la
!orizontal( los ,alores mayores a uno dibujan elipses alargadas ,erticalmente( mientras que los
,alores entre cero y uno dibujan elipses alargadas !orizontalmente# 6o se aceptan ,alores
negati,os#
Arcos: 9ambi-n se utiliza( por supuesto( el m-todo grfico *ircle:
4b5eto.Circle (I.J)% radio% 6color8% inicio% fin% 6a(pecto8
<onde inicio y fin son los ngulos de inicio y fin del arco en radianes y aspecto es opcional
y se coloca si desea dibujar el arco de una elipse#
*uadrados o Jectngulos: Se realizan mediante el m-todo Line:
4b5eto.Gine (I%J)KStep(?nco%?lto)% 6color8% *
<onde las coordenadas 8( K son las coordenadas de la esquina superior izquierda# Si
desea rellenar el cuadrado( debe cambiar la sentencia * por *<#
+scribir 9e=to: Se escribe te=to mediante el m-todo Print# Para establecer el lugar
donde se colocar el te=to se utilizan las instrucciones Dbjeto#*urrent8 y Dbjeto#*urrentK#
4b5eto.CurrentI = CoordenadaI
4b5eto.CurrentJ = CoordenadaJ
4b5eto.Print "E(criba te!to"
Nota2 Im3orta.t-2: +s importante resaltar que la coordenada K se mide de arriba !acia abajo( tal
como los formularios#
Si en alg:n m-todo grfico desea omitir el color( inicio o fin deber dejar el espacio en
blanco entre las dos comas:
Programacin con VB 6.0 Ing. Kelvin Atencio
+jemplo: un cuadrado donde se omite el color:
4b5eto.Gine (I%J)KStep(?nco%?lto)% % *
D una elipse completa:
4b5eto.Circle (I%J)% radio% color% % % a(pecto
*omo se puede ,er el color es opcional en todos los m-todos grficos y si se omite este
presentar el color de la propiedad 3ore*olor cuyo ,alor predeterminado es negro#
Programa #(. D/4u5ar -. u. P/6tur-Bo7:
+l siguiente programa dibuja en un control Picture)o= mediante los diferentes m-todos
grficos e=plicados anteriormente:
Para ello( agreguemos T botones de comando( y un control Picture)o=# *ambie las
propiedades de la siguiente manera:
9odos los botones de comando tienen las propiedades:
Left: ?A2
/idt!: 4U@E#
Ceig!t: @TE
Co.trol Pro3/-dad-2
1-r Bot8. d- Coma.do 6ame: cmd$ostrar
*aption: $ostrar Oimagen
9op: 4?2
do Bot8. d- Coma.do 6ame: cmd*uadrado
*aption: <ibujar cOuadrados
9op: 122
%-r Bot8. d- Coma.do 6ame: cmdLinea
*aption: <ibujar Ol"neas
9op: 42V2
(to Bot8. d- Coma.do 6ame: cmdPunto
*aption: <ibujar ,arios OPuntos
9op: 4E12
9to Bot8. d- Coma.do 6ame: cmd+lipse
*aption: <ibujar O+lipse
9op: ?2A2
6to Bot8. d- Coma.do 6ame: cmd*irculo
*aption: <ibujar Oc"rculos y arcos
9op: ?E?2
:mo Bot8. d- Coma.do 6ame: cmd9e=to
*aption: +scribir Ote=to
9op: @222
;<o Bot8. d- Com.ado 6ame: cmd)orrar
*aption: O)orrar
9op: @AV2
P/6tur-Bo7 6ame: $onitor
Ceig!t: @T@E
/idt!: A2UE
Left: ??V2
9op: 4?2
)acL*olor: )lanco
*ambie la propiedad *aption del formulario para colocar un nombre al programa#
A!ora( copie y pegue el siguiente cdigo( o escriba:
4ption E!plicit
Programacin con VB 6.0 Ing. Kelvin Atencio
Private Sub cmd+o(trar_Click()
Set +onitor.Picture = GoadPicture("C:LMindoN(L?ro(.bmp")
End Sub
Private Sub cmdCuadrado_Click()
+onitor.<illSt9le=1
+onitor.Gine (/00% ,00)KStep(O00% 300)% % *
+onitor.Gine (1000% /000)KStep(1000% 1000)% vbJelloN% *<
+onitor.Gine (1000% /000)KStep(1000% 1000)% vb*lack% *
End Sub
Private Sub cmdGinea_Click()
+onitor.Gine (/00% ,00)K(P00% O00)% vb*lack
+onitor.Gine (/.00% .00)K(1000% /.00)% vb>reen
End Sub
Private Sub cmdPunto_Click()
@im I ?( Inte7er% J ?( @ouble
+onitor.PSet (/00% ,00)% vb;ed
+onitor.PSet (Q00% .00)% vb*lue
+onitor.PSet (O00% R00)% vb>reen
<or I = 1 To +onitor.Midt
J = 3 C I S (0.O.) A .00
+onitor.PSet (I% +onitor.#ei7t K J)% ;>*(.0% /00% /11)
Be!t I
End Sub
Private Sub cmdElip(e_Click()
+onitor.<illSt9le = 0
+onitor.<illColor = vb;ed
+onitor.Circle (1/00% 1/00)% .00% vb*lue% % % / D 3
End Sub
Private Sub cmdCirculo_Click()
Con(t Pi = 3.1,1.P/O
+onitor.<illSt9le=1
+onitor.Circle (3000% R00)% 300% vb;ed
+onitor.Circle (/.00% /.00)% O00% vb*lack% Pi D /% Pi
End Sub
Private Sub cmdTe!to_Click()
+onitor.CurrentI = /.00
+onitor.CurrentJ = 3000
+onitor.<oreColor = vb*lue
+onitor.Print "+ue(tra de te!to"
End Sub
Private Sub cmd*orrar_Click()
Set +onitor.Picture = GoadPicture
End Sub
+jecute e interact:e con el programa# La e=plicacin del programa se encuentra en la
Seccin <etallada de Programas#
"ARCOS *=RA"E+:
Programacin con VB 6.0 Ing. Kelvin Atencio
Los $arcos act:an como agrupadores y contenedores de otros controles# Por ejemplo se
puede utilizar para agrupar botones de opcin para que el usuario elija una de las opciones
presentadas o casillas de ,erificacin para elegir ,arias opciones#
Puede colocar cualquier control sobre -l y al colocarlo el control !ar referencia con sus
propiedades top y left al marco y no al formulario#
%La e=plicacin de los botones de opcin puede encontrarla ms adelante durante la
descripcin de los controles&
Programa #9. >D8.d- -2tud/ar?
+n este programa se utilizarn dos controles marcos %3rame& para agrupar botones de
opcin# Para ello se deben seguir los siguientes pasos:
<ibujar una etiqueta en la parte superior del formulario( con las siguientes propiedades
*aption: %)orre su contenido&
Ceig!t: @TE
/idt!: AETE
Left: 4?2
9op: 4?2
)orderStyle: 4 M 3i=ed Single
<ibujar a!ora un control 3rame %marco& con las siguientes propiedades:
*aption: *arrera
Ceig!t: 4ETE
/idt!: ?2EE
Left: 4?2
9op: 122
*olocar un botn de opcin dentro del marco# *olocando el nombre opt*arrera y
*aption igual a Ingenier"a#
Se ,a a crear una matriz de controles( para ello( se debe copiar el botn de opcin y al
pegar se desplegar un mensaje de dilogo que preguntar# W<esea crear una matriz
de controlesX Jesponda Si# Se pegar un control cuyo *aption se debe cambiar a
Arquitectura# <espu-s corte este control( seleccione el marco %!aga clic sobre -l& y
pegue el control# +sto se !ace para asegurar que el control quede dentro del marco
seleccionado# Luego( colquelo debajo del anterior botn de opcin# <espu-s( se debe
pegar otro control %botn de opcin& como matriz de control cuyo *aption ,a a cambiar
a Letras#
A!ora se colocar otro control 3rame %marco&( se dibujar este control sobre el
formulario asignando las siguientes propiedades:
*aption: Institucin
Ceig!t: 4ETE
/idt!: ?A4E
Left: ??V2
9op: 122
Se ,an a colocar tambi-n tres botones de opcin( el nombre para el primero es %no su
*aption( sino su propiedad 6ame& es optInstitucion( cree la matriz de controles y
colquelos dentro de este marco( sus caption respecti,os son: Uni,ersidad 6acional(
Uni,ersidad +statal y uni,ersidad $unicipal#
Se asigna a la propiedad 9abInde= del botn de opcin que dice Uni,ersidad 6acional
el ,alor cero %2&#
*oloque debajo de los marcos un botn de comando con *aption igual a OSalir#
A!ora le toca el paso a la codificacin:
*opie y pegue el siguiente cdigo o escriba:
Programacin con VB 6.0 Ing. Kelvin Atencio
Public (trCarrera ?( Strin7% (trIn(titucion ?( Strin7
Private Sub optCarrera_Click(Inde! ?( Inte7er)
(trCarrera = optCarrera(Inde!).Caption
Call @i(pla9
End Sub
Private Sub optIn(titucion_Click(Inde! ?( Inte7er)
(trIn(titucion = optIn(titucion(Inde!).Caption
Call @i(pla9
End Sub
Private Sub @i(pla9()
Gabel1.Caption = "#a decidido e(tudiar " T (trCarrera T _
" en la " T (trIn(titucion
End Sub
Private Sub Command1_Click()
=nload +e
End Sub
BOTONES DE CO"ANDO *CO""ANDBUTTON+:
Ka se !a trabajado un poco con ellos( su finalidad es de generar acciones cuando se !ace
clic sobre ellos( pueden tomar el enfoque con el m-todo Set3ocus y el e,ento principal es el e,ento
clic#
Dtra propiedad que se puede mencionar es <efault# Fsta slo puede tomar el ,alor
,erdadero o falso y determina qu- control *ommand)utton es el botn de comando
predeterminado en un formulario# Slo un botn de comando de un formulario puede tener esta
propiedad como ,erdadera# As"( si cualquier control del formulario tiene el enfoque al presionar la
tecla +nter llama al e,ento clic del nombre del control#
Por a!ora( no realizaremos programas para aplicar esta propiedad#
CASILLAS DE VERI=ICACI@N *CAECBBO&+:
Las *asillas de Verificacin funcionan tambi-n como botones de opcin( pero en este caso
se puede seleccionar cualquier n:mero de casillas( se puede seleccionar ninguna( una o ms de
una opcin#
La propiedad ms importante de este control es Value( que puede tomar tres ,alores:
<esacti,ada : +n este caso la propiedad Value toma el Valor 2 o tambi-n
vb=ncecked.
Acti,ada : La propiedad Value toma el ,alor 4 o vbCecked#
6o <isponible : La propiedad Value toma el ,alor ? o vb>ra9ed# +ste caso se
utiliza si desea des!abilitar el control#
Si el control est !abilitado( -ste responde al e,ento clic cambiando su propiedad ,alue a
acti,ado o desacti,ado( seg:n sea el caso( si se presiona doble clic el control reconoce cada clic
por separado quedando en el mismo estado#
Puede crear un acceso directo si antepone el signo O a la letra en la propiedad *aption( as"
al presionar la combinacin AltNLetra se lle,ar a cabo el e,ento clic#
Si no desea que la casilla muestre un te=to en su propiedad *aption sino que muestre una
figura( puede utilizar la propiedad Picture y Style para asignar la imagen a el control#
Programa #6. Co.trato:
Programacin con VB 6.0 Ing. Kelvin Atencio
+ste programa tiene la finalidad de utilizar el control *!ecL)o=( se debe crear un proyecto
nue,o y en el formulario colocar tres controles *!ecL)o=( con los siguientes *aptions:
4# O+ntre ?2 y @2 a'os
?# O9iene e=periencia en el rea
@# O)ilingYe
A!ora( para continuar se colocar un botn de comando debajo de las casillas de
,erificacin( con *aption: O*ontratarX#
Para finalizar se agrega debajo del botn de comando una etiqueta con las siguientes
propiedades:
*aption: %Sin contenido&
3ont: 9ama'o:4? M 6egrita
AutosizeI9rue %,erdadero&
Alignment: ? M center
Si se quiere puede cambiar el caption del formulario a Jequisitos
A continuacin se debe agregar el siguiente cdigo en la pantalla del formulario:
Private Sub Command1_Click()
If Ceck1 = vbCecked ?nd Ceck/ = 1 ?nd Ceck3 = 1 Ten
Gabel1.Caption = "Si contratar"
El(e
Gabel1.Caption = "Bo contratar"
End If
End Sub
Al ejecutar el programa se ,erifica que si el aspirante cumple con los tres requisitos debe
ser contratado y no aquellos que slo cumplen menos#
BOTONES DE OPCI@N *OPTIONBUTTON+:
9ienen la finalidad de presentar un conjunto de opciones al usuario con el propsito que
slo pueda elegir una#
Los grupos de botones deben estar agrupados( para ello( deben estar colocado en el
mismo control o formulario( es decir( los botones de opcin que se encuentran directamente
encima del formulario se agruparn y slo se podr"a elegir una de ellas( aquellas que se
encuentran dentro de un marco %3rame& se separarn de las primeras y de -stas se podr"a escoger
otra opcin( asimismo aquellas que estn dentro de un Picture)o=#
Si durante una prueba se obser,a que se pudo escoger ms de una opcin es porque el
botn de opcin no qued agrupado sino que qued fuera del rea del grupo y por lo tanto debe(
mediante el dise'o( reubicarlo# Para asegurar que el control quede dentro del rea del grupo se
debe:
<ibujar el botn de opcin en cualquier lugar#
*orte el botn de opcin#
Seleccionar %mediante un clic& el control o el formulario donde se desea colocar#
Pegar el botn de opcin#
Ubicarlo en la posicin que se desea#
Se puede crear un acceso directo si antepone el signo O a la letra en la propiedad *aption(
as" al presionar la combinacin AltNLetra se lle,ar a cabo el e,ento clic( es decir( la seleccin#
+l programa que ejemplifica este control es el Programa BE#
Programacin con VB 6.0 Ing. Kelvin Atencio
CONTROL LISTBO& *CUADRO DE LISTA+:
Los cuadros de lista es un control que tiene la finalidad de presentar una lista de elementos
al usuario de tal manera que -ste escoja una o ,arias opciones( o puede tambi-n utilizarse para
enlistar elementos en tiempo de ejecucin#
Los elementos pueden colocarse en la lista en tiempo de dise'o o en tiempo de ejecucin#
Para agregarlos en tiempo de dise'o( se debe rellenar la propiedad List %en la ,entana
Propiedades& con los elementos que se deseen( en este caso( cada ,ez que se coloque un
elemento se presiona la combinacin de teclas *ontrolN+nter para pasar a la siguiente l"nea( al
siguiente elemento#
Para agregarlos en tiempo de ejecucin se utiliza la instruccin Additem( de la siguiente
manera:
Lista.?dditem "Elemento" 6% Undice8
<onde +ista es el nombre de la lista( +lemento es una cadena de caracteres de te=to o
n:mero que se ,a a agregar a la lista y el "ndice es opcional y ofrece la opcin de ubicar el
elemento en alg:n lugar especificado de la lista# La lista enumera los elementos desde el n:mero 2
%primer elemento& !asta el :ltimo que tendr"a como ,alor de "ndice el n:mero de elementos menos
uno# Si en la instruccin Additem no se incluye el "ndice( la lista colocar el elemento al final de la
lista( de manera que si se desea colocar primero se escribir el siguiente cdigo:
Lista.?dditem Elemento% 0
Al colocar el elemento en esta posicin( los otros elementos se reinde=arn y pasarn a
ocupar una nue,a posicin( el primero pasa a ser el segundo %4&( el segundo pasa a tercero %?& y
as" sucesi,amente# Si se agregan en una posicin in,lida que sobrepase la numeracin de los
elementos se producir un error#
Si desea agregar una lista de elementos a la lista de un formulario en tiempo de ejecucin(
de tal manera que el usuario escoga una o ,arias( puede agregarlo mediante el m-todo Additem en
el e,ento Load del formulario( es decir Private Sub <orm_Goad()( de manera que los
elementos aparecern cargados en la lista a la !ora de cargar el formulario#
Para eliminar un elemento de la lista en tiempo de ejecucin se utiliza la instruccin
Jemo,eItem( de la siguiente manera:
Lista.;emoveItem Undice
Slo se pueden eliminar elementos mediante su n:mero de "ndice( para obtener el n:mero
de "ndice de un elemento seleccionado se utiliza la propiedad +ista.ListInde=( de tal manera que
para eliminar un elemento seleccionado se debe escribir:
If Gi(ta.Gi(tInde!H=0 Ten
Lista.;emoveItem Lista.Gi(tInde!
End if
Si no e=iste un elemento seleccionado la propiedad ListInde= toma el ,alor M4( por lo tanto
se le antecede la sentencia I3 asegurando que !aya seleccionado un elemento# Si no se coloca
esta sentencia y no !ay elementos seleccionados en la lista el programa genera un error#
La instruccin para obtener el n:mero de elementos de una lista es List*ount( de forma
que el "ndice del :ltimo elemento es List*ount M 4#
Dtra propiedad que se utiliza con este control es List# +sta propiedad( guarda cada
elemento de la lista en una matriz( de modo que para obtener un elemento en particular utilice la
codificacin:
Gi(ta.Gi(t(Undice)
Por ejemplo( la secuencia Lista#List%4& de,uel,e el segundo elemento mostrado en la lista#
La manera para quitar todos los elementos de una lista es el m-todo *lear:
Lista.Clear
Programacin con VB 6.0 Ing. Kelvin Atencio
Programa #:. Coord-.ada2:
+ste programa utiliza una lista para ordenar puntos de coordenadas 8( K# Grafica estos
puntos en un Picture)o=#
Para este fin( se deben colocar una lista( dos etiquetas( dos cuadros de te=to( un cuadro de
imagen y tres botones de comando#
A continuacin( se muestran las propiedades 6ame que deben tener estos controles:
Co.trol Nam-
*uadro de te=to 4 t=t8
*uadro de te=to ? t=tK
Lista 4 lstPuntos
)otn de *omando 4 cmdIngresar
)otn de *omando ? cmd+liminar
)otn de *omando @ cmd)orrar
*uadro de Imagen 4 $onitor
Las propiedades Ceig!t y /idt! del $onitor son ?4TE cada una#
Se deben ubicar los controles de tal manera que se obser,en de la siguiente manera:
*opie y pegue el siguiente cdigo o escriba:
4ption E!plicit
Private Sub t!tI_Can7e()
cmdIn7re(ar.Enabled = (Gen(t!tI) H 0 ?nd Gen(t!tJ) H 0)
End Sub
Private Sub t!tI_Fe9Pre(((Fe9?(cii ?( Inte7er)
If Fe9?(cii = 13 Ten
t!tJ.Set<ocu(
End If
End Sub
Private Sub t!tJ_Can7e()
cmdIn7re(ar.Enabled = (Gen(t!tI) H 0 ?nd Gen(t!tJ) H 0)
End Sub
Private Sub t!tJ_Fe9Pre(((Fe9?(cii ?( Inte7er)
If Fe9?(cii = 13 Ten
If cmdIn7re(ar.Enabled = True Ten
Programacin con VB 6.0 Ing. Kelvin Atencio
cmdIn7re(ar.Set<ocu(
El(e
t!tI.Set<ocu(
End If
End If
End Sub
Private Sub cmdIn7re(ar_Click()
@im I ?( Inte7er% J ?( Inte7er
I = CInt(t!tI)
J = CInt(t!tJ)
+onitor.Circle (I% J)% 30% vb;ed
l(tPunto(.?ddItem "(" T I T "%" T J T ")"
t!tI = ""
t!tJ = ""
t!tI.Set<ocu(
End Sub
Private Sub cmdEliminar_Click()
If l(tPunto(.Gi(tInde! H= 0 Ten
l(tPunto(.;emoveItem l(tPunto(.Gi(tInde!
End If
End Sub
Private Sub cmd*orrar_Click()
l(tPunto(.Clear
+onitor.;efre(
End Sub
Se puede interactuar un poco con el programa para relacionarse con los comandos y
funciones de cada botn de comando( lista y control Picture)o=#
+s importante resaltar que( en este caso( aunque se elimine de la lista las coordenadas de
un punto( no se borra -ste del cuadro de imagen# +sto se !ace debido a que toda,"a no se tienen
las !erramientas necesarias para generar dic!os procedimientos( esto es slo un ejemplo de cmo
se utiliza el control List)o= y por lo tanto se dejaron a un lado estas posibilidades#
Para obtener ms detalles sobre este programa dirigirse a la Seccin <etallada de
Programas al final de este tomo#
Puede ,er tambi-n el ejemplo del control *ombo)o= para ,er otra utilidad de los cuadros
de lista#
Guarde este programa ya que lo utilizar mas adelante cuando se introduzca en el tema
del trabajo con fic!eros#
CONTROL CO"BOBO& *CUADRO CO"BINADO+:
+ste control combina las posibilidades de una lista con un cuadro de te=to( de manera que
presenta la posibilidad de elegir de una lista un elemento de inter-s( pero adems( puede ob,iar
cualquier opcin y escribir sobre el control mediante la propiedad te=t# Por lo tanto( posee adems
de las propiedades( m-todos y e,entos de la lista( tambi-n los de los cuadros de te=to#
Programa #;. NCm-ro d- "-2:
A continuacin la elaboracin de un programa para obser,ar una de las utilidades del
control *ombo)o=:
Para ello se debe agregar al formulario:
Una etiqueta de *aption: $es 6ro:
A su lado un cuadro de te=to de nombre 9e=t4 %no cambiar&
Programacin con VB 6.0 Ing. Kelvin Atencio
Un botn de comando de nombre *ommand4 %no cambiar& y *aption: +scribir $es
Un control *ombo)o= %*uadro combinado& de nombre *ombo4 %no cambiar&#
Se debe agregar al formulario el siguiente cdigo:
Private Sub <orm_Goad()
Combo1.?ddItem "Enero"
Combo1.?ddItem "<ebrero"
Combo1.?ddItem "+arVo"
Combo1.?ddItem "?bril"
Combo1.?ddItem "+a9o"
Combo1.?ddItem "Wunio"
Combo1.?ddItem "Wulio"
Combo1.?ddItem "?7o(to"
Combo1.?ddItem "Septiembre"
Combo1.?ddItem "4ctubre"
Combo1.?ddItem "Boviembre"
Combo1.?ddItem "@iciembre"
End Sub
Private Sub Command1_Click()
@im +e( ?( *9te
Select Ca(e Combo1.Te!t
Ca(e "Enero": +e( = 1
Ca(e "<ebrero": +e( = /
Ca(e "+arVo": +e( = 3
Ca(e "?bril": +e( = ,
Ca(e "+a9o": +e( = .
Ca(e "Wunio": +e( = Q
Ca(e "Wulio": +e( = O
Ca(e "?7o(to": +e( = R
Ca(e "Septiembre": +e( = P
Ca(e "4ctubre": +e( = 10
Ca(e "Boviembre": +e( = 11
Ca(e "@iciembre": +e( = 1/
Ca(e El(e
+(7*o! "Error en el me(. Corri5a para continuar"
End Select
Te!t1 = +e(
End Sub
Al ejecutar la aplicacin( se debe seleccionar un mes y presionar el botn de comando( se
desplegar en el cuadro de te=to en n:mero de mes correspondiente# Para obtener los detalles de
la programacin se puede dirigir a la Seccin <etallada de Programas#
+s muy importante resaltar que los cuadros de lista y el cuadro combinado tienen funciones
similares( sin embargo pueden tener distintas funciones seg:n el programa#
+n el caso del ejemplo del cuadro de lista se utiliz para enlistar un conjunto de puntos que
se iban dibujando en el cuadro de imagen( adems los elementos %puntos& se encerraban en
par-ntesis y se separaban las ,ariables por comas# +n el caso del ejemplo del cuadro combinado
se utiliz para desplegar una lista en el cual el usuario pod"a elegir una opcin> en este ejemplo
tambi-n se pudo utilizar un cuadro de lista sin embargo se quiso que ambos ejemplos sir,ieran
para ambos casos de manera que el lector pueda asociar las distintas funciones que pueden tener
estos controles a la !ora de programar#
Programacin con VB 6.0 Ing. Kelvin Atencio
CONTROLES ASCROLLBAR $ VSCROLLBAR: BARRAS DE DESPLADA"IENTO.
Las barras de desplazamiento se utilizan en las aplicaciones para desplazarse !orizontal o
,erticalmente cuando !alla una cantidad grande de informacin o cuando los controles toman gran
tama'o#
+stas tienen la misma finalidad de aquellas que aparecen en los cuadros de te=to cuando
el contenido de su propiedad te=t sobrepasa el anc!o yZo el alto del mismo o tambi-n las que
aparecen en un cuadro de lista o combinado cuando el n:mero de elementos es mayor al tama'o
designado para la muestra de ellos# +sta tiene la finalidad de mostrar elementos tambi-n
contenidos en el control que no se pueden ,er inmediatamente por el reducido tama'o del mismo#
Aunque tienen la misma finalidad este control no son iguales ya que las primeras aparecen por
defecto y en este caso se promue,e mediante los m-todos del control#
Programa #E. "/rar -l 6o.t-./do d- u.a -t/Fu-ta:
+l siguiente programa sugiere mediante la utilizacin de la barra de desplazamiento ,er el
contenido de una etiqueta cuyo interior no se pod"a obser,ar completamente por el reducido
tama'o de la etiqueta#
Para ello se deben colocar los controles de la izquierda con las propiedades de la derec!a:
Control Propiedades
*uadro de te=to %9e=t)o=& 6ombre: 9e=t4 %no cambiar&
Ceig!t: ?VE
/idt!: 4ETE
Left: 2
9op: 2
*uadro de Imagen %Picture)o=& 6ombre: Picture4 %no cambiar&
)orderStyle: 4 M 3i=ed Single
Ceig!t: AUE
/idt!: 4ETE
Left: 2
9op: @12
)otn de *omando %*ommand)utton& 6ombre: *ommand4 %no cambiar&
*aption: Asignar
Ceig!t: ?VE
/idt!: UTE
Left: 41V2
9op: 2
)arra de desplazamiento Corizontal
%CScroll)ar&
6ombre: CScroll4 %no cambiar&
Ceig!t: ?EE
/idt!: 4ETE
Left: 2
9op: U12
Visible: 3alse
+tiqueta %Label&
Nota: la etiqueta estar insertada dentro del
control cuadro de imagen# Para ello crtela
de donde est-( seleccione el cuadro de
imagen con un clic y pegue la etiqueta#
6ombre: Label4 %no cambiar&
AutoSize: 9rue %,erdadero&
)orderStyle: 2 M 6one
*aption: %)orrar contenido&
Ceig!t: 4UE
A!ora( se proceder a colocar el siguiente cdigo dentro la ,entana de cdigo del formulario:
4ption E!plicit
Private Sub Command1_Click()
<orm1.Scale+ode = vbCaracter(
Picture1.Scale+ode = vbCaracter(
Gabel1.+ove 0% 0
Programacin con VB 6.0 Ing. Kelvin Atencio
Gabel1.Caption = Te!t1
#Scroll1.+a! = Gabel1.Midt K Picture1.Midt A 1
#Scroll1.2i(ible = (Picture1.Midt X Gabel1.Midt)
End Sub
Private Sub #Scroll1_Can7e()
Gabel1.Geft = K#Scroll1.2alue
End Sub
+jecute el programa y coloque en el cuadro de te=to una cadena de n:meros o te=tos ms
grande que el tama'o del cuadro de imagen( luego !aga clic en el botn de comando( aparecer la
barra de desplazamiento !orizontal permitiendo desplazarse para ,er el contenido completo de la
etiqueta# Si coloca un n:mero de menos caracteres no aparecer la barra#
Para obtener la e=plicacin del programa detalladamente( se puede dirigir a la Seccin
<etallada de Programas#
Puede utilizar la barra de desplazamiento tambi-n para obser,ar completamente una
imagen contenida dentro de un control cuadro de imagen# +sto es muy :til ya que el cuadro de
imagen no muestra la imagen completa si su tama'o es menor# Se puede entonces colocar un
Picture? dentro de un Picture4 y seguir la secuencia semejante a como se !izo con la etiqueta(
colocando adems una barra de desplazamiento ,ertical#
CONTROL TI"ER *CONTROL DE TIE"PO G RELO'+
+ste control es muy :til para crear aplicaciones donde necesite lle,ar un control de tiempo(
ya sea que utilice el reloj del computador como contador o rector de las acti,idades del computador(
o cree un nue,o contador de segundos( !oras y minutos que comience desde cero( como es el caso
del ejemplo que se muestra ms delante de esta seccin#
+l control 9imer tiene dos propiedades principales( ellas son Enabled e Interval# La
propiedad +nabled comienza el funcionamiento del control de tiempo y la propiedad Inter,al que
genera un e,ento 9imer cada ,ez que se cumple el ,alor que contiene %en milisegundos&( es decir( si
la propiedad Inter,al tiene el ,alor 4222 %4222 milisegundos I 4 segundo& se llama al e,ento 9imer
cada segundo#
Programa #10. CH4-r:
+l siguiente programa da un ejemplo de un contador de un cyber# $uestra la !ora del
computador( un contador de tiempo de uso y el precio por el tiempo de uso#
Para la realizacin de este programa se deben agregar 1 etiquetas# Las tres primeras %de
nombres Label4( Label? y Label@& se colocan en la parte inferior del formulario y sir,en para mostrar
las ,ariables del uso del computador( por ello fue borrado el contenido de la propiedad *aption de
cada una#
Las dems tienen propiedades:
LabelA *aption: Cora
LabelE *aption: 9iempo de uso
Label1 *aption: Precio
Se agreg adems( por supuesto( el control 9imer# +s muy importante resaltar que este
control no es ,isible en tiempo de ejecucin# K por ello no tiene propiedades de tama'o( ni opciones
de borde( color de fondo( y otras similares> ya que no son rele,antes#
Al control 9imer se le asignaron las propiedades Inter,alI4222 y +nabled I 9rue
Luego se colocaron los controles de la siguiente manera:
La ubicacin del control 9imer tampoco es rele,ante#
Programacin con VB 6.0 Ing. Kelvin Atencio
Luego se procede a agregar a la ,entana de cdigo del programa las siguientes
sentencias:
4ption E!plicit
Private Sub Timer1_Timer()
Static Se7undo( ?( *9te% +inuto( ?( *9te% _
#ora( ?( Inte7er% Precio ?( @ouble% Contador ?( Gon7
Contador = Contador A 1
Gabel1 = Time
If Se7undo( X .P Ten
Se7undo( = Se7undo( A 1
El(e
Se7undo( = 0
If +inuto( X .P Ten
+inuto( = +inuto( A 1
El(e
+inuto( = 0
#ora( = #ora( A 1
End If
End If
Gabel/ = <ormat(#ora(% "YY00") A ":" A _
<ormat(+inuto(% "YY00") A ":" A <ormat(Se7undo(% "YY00")
Precio = C@bl(Contador C 1/00 D 3Q00)
If Precio X 100 Ten
Precio = 100
End If
Gabel3 = <ormat(Precio% "YY%YY00.00")
End Sub
Puede ejecutar el programa para obser,ar su funcionalidad# Para obtener una e=plicacin
detallada del programa dir"jase a la Seccin <etallada de Programas#
CONTROLES
CONTROL DRIVELISTBO&: LISTA DE UNIDADES DE DISCOS
CONTROL DIRLISTBO&: LISTA DE DIRECTORIOS
CONTROL =ILELISTBO&:: LISTA DE ARCAIVOS
+stos controles se agruparon en uno ya que tienen finalidades semejantes# +l caso de las
listas de unidades de disco( muestran un cuadro combinado con las unidades de disco presentes
en su computador# La propiedad ms importante de este control es la propiedad <ri,e que
de,uel,e o establece la unidad seleccionada en tiempo de ejecucin#
Las listas de directorios muestran las distintas carpetas de directorio que estn grabadas
dentro del computador# la propiedad ms importante de -sta es la propiedad Pat! que de,uel,e o
establece la ruta de acceso actual#
La listas de arc!i,os muestran la lista de arc!i,os de un directorio seleccionado# 9ambi-n
tiene la propiedad Pat! con las misma funcin que las listas de directorio( a diferencia que -ste
muestra la lista de arc!i,os y no la de directorio# 9ambi-n contiene la propiedad Patern que
Programacin con VB 6.0 Ing. Kelvin Atencio
muestra slo la e=tensin de alg:n tipo de arc!i,o# +s :til por ejemplo( si quiere mostrar slo
arc!i,os de e=tensin ;#e=e( ;#doc( u otro#
Programa #11. D/r-6tor/o:
+l siguiente programa combina los tres tipos de cuadros ,isto anteriormente: <ri,eList)o=(
<irList)o= y 3ileList)o= para mostrar los documentos de 0ord %;#doc& de una carpeta#
Para ello( se debe agregar a un formulario una lista de unidades( una de directorio y una de
arc!i,os:
Luego( se debe copiar y pegar( o escribir:
Private Sub <orm_Goad()
@ir1_Can7e
End Sub
Private Sub @rive1_Can7e()
@ir1.Pat = @rive1.@rive
End Sub
Private Sub @ir1_Can7e()
<ile1.Pattern = "C.doc"
<ile1.Pat = @ir1.Pat
End Sub
+jecute el programa y ubique las diferentes unidades de disco( directorio y ,erifique que la
lista de arc!i,os corresponde a los arc!i,os de 0ord %;#doc& de la carpeta( es recomendado buscar
la carpeta $is <ocumentos#
La e=plicacin detallada de la codificacin la puede encontrar en la Seccin <etallada de
Programas#
CONTROL SAAPE: =OR"AS
+l control S!ape permite crear figuras sin necesidad de escribir cdigo( tiene ,arias
propiedades que se e=plicarn a continuacin:
Propiedad S!ape:
+s la ms com:n y permite dibujar distintos tipos de figura sin escribir cdigo( por ejemplo:
agregue un control S!ape a un formulario y cambie la propiedad S!ape %en la Ventana de
Propiedades del *ontrol& presionando doble clic o eligiendo de la lista( la forma ,a cambiando
seg:n ,aya cambiando su propiedad S!ape( se pueden crear las siguientes figuras:
=/gura Nro d- E2t/lo Co.2ta.t-
Jectngulo 2 ,bS!apeJectangle
*uadrado 4 ,bS!apeSquare
+lipse ? ,bS!apeD,al
*"rculo @ ,bS!ape*ircle
Jectngulo redondeado A ,bS!apeJoundedJectangle
*uadrado redondeado E ,bS!apeJoundedSquare
Las constantes se utilizan para cambiar la forma del control en tiempo de ejecucin( o se
puede colocar su forma abre,iada mediante su n:mero correspondiente#
Propiedad 3illStyle:
Se refiere al estilo del relleno del control# Si se encuentra en la forma 9ransparente I 4( la
propiedad 3ill*olor queda des!abilitada( de tal manera que no !abr color de relleno# Los distintos
Programacin con VB 6.0 Ing. Kelvin Atencio
estilo de la propiedades 3illStyle pueden obtenerse en el +=aminador de Dbjetos introduciendo la
palabra =/llStHl-Co.2ta.t2#
Para cambiar el grosor del borde utilice la propiedad )order/idt!( el grosor
predeterminado es uno( de tal manera que los n:meros mayores a uno sern mas gruesos que la
predeterminada# 6o se aceptan ,alores menores a uno( ni ,alores decimales#
Para cambiar el color del borde elija el tipo de borde con la propiedad )orderStyle y cambie
la propiedad )order*olor y <ra0$ode al de su preferencia#
Los estilos de borde tambi-n se pueden obtener en el +=aminador de objeto introduciendo
la palabra Bord-rStHl-Co.2ta.t2#
6o se procedi a realizar un programa con este control ya que su funcionalidad y
aplicacin es muy fcil ,erla slo con la e=plicacin#
CONTROL LINE: LINEA
+ste control slo tiene una finalidad decorati,a de los formularios o puede agregarlas
dentro de otro control como cuadro de imagen %Picture)o=&( marcos %3rame& u otros
Puede agregar l"neas y cambiar su grosor( estilo( color( puede ubicarla seg:n las
coordenadas y !acerlas ,isibles o in,isibles#
9ampoco se procedi a realizar un programa con este control ya que su funcionalidad y
aplicacin es muy fcil ,erla slo con la e=plicacin#
CONTROL I"A1E: I"A1EN
+ste control tambi-n se utiliza para mostrar imgenes( acepta los mismos formatos que los
cuadros de imagen %Picture)o=&# La diferencia principal radica en que este control puede reducir el
tama'o de la imagen para adaptarlo al tama'o del control( lo que no sucede con el control
Pictore)o=# Para ello> ya sea en tiempo de dise'o o de ejecucin( establezca la propiedad Stretc!
a 9rue %,erdadero& antes de cargar la imagen# Para cargar la imagen en tiempo de dise'o utilice la
propiedad Picture y en tiempo de ejecucin utilice la secuencia:
Set Imagen.Picture=GoadPicture(;uta)
<onde( imagen es el nombre del control y Juta es una cadena de te=to con la ruta a la
imagen que desea mostrar#
Si la imagen es peque'a y la propiedad Stretc! es 9rue %,erdadera&( la imagen pierde
calidad al adaptarse al tama'o del control#
Si la propiedad Stretc! esta establecida a 3alse %3also& el control cambia de tama'o
adaptndose al tama'o de la imagen#
CONTROL DATA: DATOS
+ste control se utiliza para ,isualizar datos que se encuentran dentro de una base de
datos# Dfrece acceso a ,arios tipos de bases de datos como +=cel( Access( 3o=Pro( d)AS+ o
incluso Lotus 4.?.@#
Al agregarlo a un formulario puede tener acceso a la base de datos incluso sin escribir
cdigo#
Para utilizar este control mediante un ejemplo se deben seguir los siguientes pasos:
4# *ree un arc!i,o de +=cel( rellene las casillas de la siguiente manera( o rellene las
casillas como una base de datos +=cel con los datos que prefiera %esto es slo una
opcin&:
?# Guarde el Arc!i,o( con un nombre y en una carpeta que pueda recordar#
Programacin con VB 6.0 Ing. Kelvin Atencio
@# *ree un nue,o proyecto de Visual )asic#
A# Agregue un control <ata en la parte inferior del formulario#
E# Acti,e la Ventana de Propiedades del control> para ello( presione un clic sobre el
control <ata y luego presione la tecla 3A#
1# +n la ,entana Propiedades( establezca la propiedad *onnect a +=cel E#2 si tiene Dffice
UT o a +=cel V#2 si tiene Dffice ?222#
T# +n esta misma ,entana de propiedades( introduzca en la propiedad <atabase6ame el
nombre de arc!i,o y la ruta mediante el directorio#
V# +n propiedades tambi-n( !aga referencia en la propiedad JecordSource a Coja4#
U# Agregue un cuadro de te=to %9e=t)o=& al formulario# )orre el contenido de su propiedad
9e=t#
42# +n la propiedad <ataSource del cuadro de te=to !aga referencia al control <ata4#
44# Por :ltimo( en la propiedad <ata3ield enlace al campo que desea mostrar en el cuadro
de te=to#
4?# Puede agregar otros cuadros de te=to y repetir los pasos U a 44( cambiando la
propiedad <ata3ield en cada uno para mostrar otros datos de la tabla#
4@# +jecute el programa y presione los diferentes botones del control <ata4 para
desplazarse en la base de datos#
+n el ejemplo anterior slo se utilizan controles 9e=t)o= para mostrar el contenido de la
base de datos# Sin embargo no es el :nico control que sir,e para ,isualizar una base de datos( de
!ec!o e=isten otros controles cuya funcin principal es mostrar el contenido de una base de datos
en compa'"a de un control <ata de un formulario# +stos controles son <)Grid( <bList y <)*ombo#
+stos controles se pueden agregar al cuadro de !erramientas( si desplega el cuadro de
*omponentes y elige de la lista $icrosoft <at )ound Grid *ontrol E#2 %para <)Grid& o $iscrosoft
<ata )ound List *ontrols 1#2 %Para <)List y <)*ombo&#
Nota- +a lista de componentes se desplea haciendo clic con el bot$n secundario del
mouse sobre el cuadro de .erramientas/ Ir a la barra de )en0 a la opci$n Proyecto/ lueo
Componentes/ o simplemente presionando la combinaci$n de teclas Control1T#
*uando se ,a a utilizar algunos de estos controles( se debe primero colocar el control <ata
que !ara referecia a la base de datos en sus propiedades en la secuencia: *onnect %que define el
tipo de base de datos&( <ata)ase6ame %+l nombre de la base de datos en el disco duro& y
JecordSource %La tabla de la base de datos&#
Se puede rellenar una lista %*ontroles <)List o <)*ombo& con todos los elementos de una
columna de una base de datos( por ejemplo todos los nombres de los clientes de una base de
datos( todos sus I< o cualquier otra columna# Para enlistarlos se deben rellenar las propiedades de
estos controles %<)List y <)*ombo& Jo0Source y List3ield( en ese orden#
*on el control <)Grid puede ,isualizar todo el contenido de una tabla de una base de
datos si conecta mediante la propiedad <ataSource# Para agregar elementos en una base de datos
mediante este control en tiempo de ejecucin establezca la propiedad Allo0Add6e0 a 9rue
%Verdadero&( se agregar una fila al final de la tabla donde puede escribir# Si desea eliminar
registros establezca la propiedad Allo0<elete a 9rue %Verdadero&# Puede ,er otras propiedades(
m-todos y e,entos de este control si escribe <)Grid en el +=aminador de objetos#
CONTROL OLE: CONTENEDOR OLE
+l control contenedor DL+( se utiliza para insertar aplicaciones de documentos# *uando
inserta un control DL+ al formulario se desplega la siguiente pantalla:
Programacin con VB 6.0 Ing. Kelvin Atencio
<e tal manera que se puede crear y agregar un arc!i,o nue,o eligiendo de esta lista el tipo
de arc!i,o con la opcin 5*rear nue,o7 o puede insertar un arc!i,o ya creado mediante la opcin
5*rear desde un arc!i,o7# Inserte algunos tipos de arc!i,os nue,os y ya creados desde el
contenedor DL+ e interact:e( es muy fcil obtener resultados con este control directamente#
CONTROL "ICROSO=T CO""ON DIALO1 6.0:
+ste control no aparece por defecto en el cuadro de Cerramientas( es decir no es un
control intr"nseco y debe agregarse mediante la Dpcin *omponentes### que aparece en la )arra
de men: Proyecto M *omponentes###( al !acer clic con el botn secundario del mouse sobre el
cuadro de !erramientas o simplemente presionando la combinacin de teclas %*ontrol N 9&#
+ste control( mediante sus propiedades y m-todos( permite mostrar los cuadros de
dilogos comunes que se utilizan en las aplicaciones de /indo0s# Algunos de estos cuadros de
dilogo son: Abrir( Guardar como( imprimir y otros que se e=plicarn ms detalladamente adelante
en esta seccin#
Los m-todos de este control son:
"Jtodo Cuadro d- d/0logo Fu- mu-2tra
S!o0*olor *uadro de dilogo para cambiar *olores
S!o03ont *uadro de dilogo para cambiar 3uente
S!o0Celp *uadro de dilogo de Ayuda( mediante el sistema de ayuda de /indo0s
S!o0Dpen *uadro de dilogo para Abrir un Arc!i,o
S!o0Printer *uadro de dilogo para Imprimir
S!o0Sa,e *uadro de dilogo para Guardar arc!i,o#
+stos m-todos deben combinarse con algunas de sus propiedades para poder almacenar
datos( abrir documentos o realizar completamente la accin que se desea# +s decir( no basta
mostrar el cuadro de dilogo abrir para abrir un arc!i,o( !ace falta algunas propiedades que nos
distingan#
+ste control en tiempo de ejecucin no es ,isible( solo puede ,er su aplicacin en la
aparicin de los cuadros de dilogos( en tiempo de dise'o este control tiene un tama'o que no se
puede ,ariar#
Las propiedades de este control se encuentran 5di,ididas7 seg:n el m-todo( por ejemplo( la
propiedad 3ilter %que de,uel,e o establece los filtros que se mostrarn en el cuadro de lista
Arc!i,os de tipo de un cuadro de dilogo& slo pueden ser utilizados por los m-todos Abrir
%S!o0Dpen& y Guardar %S!o0Sa,e& ya que son los :nicos cuadros de dilogos que necesitan
especificar un tipo de arc!i,o# <e esta manera( se muestran a continuacin las diferentes
propiedades del control *ommon<ialog seg:n los m-todos mostrados anteriormente:
Pro3/-dad-2 d- lo2 mJtodo2 d-l Co.trol Cuadro2 d- D/0logo2 Comu.-2:
Programacin con VB 6.0 Ing. Kelvin Atencio
$-todos S!o0Dpen y S!o0Sa,e:
Pro3/-dad =/lt-r:
*uando se muestra el cuadro de dilogo abrir o guardar( en la parte inferior del cuadro de
dilogo aparece una etiqueta que escribe: %Arc!i,os de tipo:&# Al su lado aparece un cuadro
combinado que muestra una cierta cantidad de tipos de arc!i,os( si no aparece ning:n tipo es
porque toda,"a no !a establecido la propiedad 3ilter#
La propiedad 3ilter es la propiedad que establece el o los tipos de arc!i,os que se pueden
abrir( o el tipo de arc!i,os que se ,a a guardar#
Para cambiar la propiedad 3ilter de un control cuadro de dilogo se utiliza la siguiente
sentencia:
BombreC@ialo7.<ilter="@ecripci'nTipo1Ztipo1Z@e(cripci'nTipo/Ztipo/"
Casta completar todos los tipos de arc!i,o posibles que pueden ser usados por la
aplicacin# Por ejemplo:
+n un formulario agregue un botn de comando %*ommand4& y un *ontrol *ommon
<ialog( siguiendo los siguientes pasos:
<ir"jase a Proyecto( !aga clic sobre *omponentes###
+spere un momento !asta que aparezca la lista de componentes#
)usque en la lista $icrosoft *ommon <ialog *ontrol 1#2( acti,e su casilla de ,erificacin#
Caga clic en Aplicar para agregar al cuadro de !erramientas y luego en *errar para salir de
la lista#
Seleccione el control *ommon <ialog que a!ora debe aparecer en el cuadro de
!erramientas#
<ib:jelo en el formulario#
A!ora agregue el siguiente cdigo( puede copiar y pegar:
Private Sub Command1_Click()
Common@ialo71.<ilter = "+apa de bit( (C.bmp)ZC.bmpZ?rcivo( WP>
C.5p7ZC.5p7Z?rcivo( ?nimado( (C.7if)ZC.7if"
Common@ialo71.<ilterInde!=/
Common@ialo71.SoN4pen
End Sub
+jecute la aplicacin( presione un clic sobre el botn de comando( se mostrar el cuadro
de dilogo abrir( el mismo en su parte inferior tiene tres tipos de arc!i,os: mapa de bits( Imagen
RPG y arc!i,os animados GI3# La propiedad 3ilterInde= se utiliza para presentar el tipo de arc!i,o
predeterminado cuando se muestre el cuadro de dilogo> en este caso el n:mero dos %Arc!i,os de
imagen RPG&#
Propiedad FileName-
La propiedad 3ile6ame de,uel,e el nombre del arc!i,o que se !a seleccionado cuando se
utiliza el cuadro de dilogo Abrir# Puede utilizarse tambi-n para el cuadro de dilogo guardar#
Para ,er un ejemplo de esta propiedad puede ,er los programas B?T y ?V( donde se
encuentra la aplicacin de esta propiedad# Se utiliza de la siguiente manera:
?rcivo = BombreC@ialo7.<ileBame
<onde Arc!i,o es una ,ariable que almacenar una cadena de te=to con la ruta y el
nombre del arc!i,o seleccionado( la parte derec!a de la igualdad corresponde al arc!i,o
seleccionado del cuadro de dilogo#
Propiedad FileTitle-
<e,uel,e o establece el nombre %sin la ruta de acceso& del arc!i,o que se ,a a abrir o
guardar en tiempo de ejecucin#
Programacin con VB 6.0 Ing. Kelvin Atencio
$-todo S!o0Printer:
Pro3/-dad-2:
Co3/-2: <e,uel,e o establece un ,alor que determina el n:mero de copias que se ,an a
imprimir#
=romPag-: <e,uel,e o establece el ,alor que indica la primera pgina que se ,a a
imprimir#
ToPag-: <e,uel,e o establece el ,alor que indica la primera pgina que se ,a a imprimir#
Or/-.tat/o.: <e,uel,e o establece la orientacin del papel de la impresora#
"/.: +stablece el inter,alo de impresin#
Pr/.t-rD-Kault: <etermina si las selecciones de un usuario en cuadro de dilogo Imprimir
se usan para cambiar la configuracin predeterminada de la impresora#
$-todo S!o0*olor:
Slo tiene la propiedad *olor que de,uel,e o establece el color seleccionado en el cuadro
de dilogo( por ejemplo:
Private Sub Color@elCirculo_Click()
@im ColorCirculo ?( 2ariant
Common@ialo71.SoNColor
ColorCirculo = Common@ialo7/.Color
Picture1.Circle (I%J)% ;adio% ColorCirculo
End Sub
+ste cdigo dibuja un c"rculo en las coordenadas =( y de cualquier radio con el color
seleccionado en el cuadro de dilogo#
$-todo S!o03ont:
Las propiedades del m-todo S!o03ont se refieren al tipo de fuente( son las siguientes:
=o.tBold: +s un dato tipo boolean que es ,erdadero si la fuente es negrita( o falso
si no lo es#
=o.tItal/6: 9ambi-n es un dato tipo boolean que es ,erdadero para producir
fuentes cursi,as#
=o.tU.d-rL/.-: +s tipo boolean al que se asigna ,erdadero para producir fuentes
subrayadas#
=o.tNam-: +s una cadena de te=to que contiene el nombre del tipo de fuente a
utilizar# +jemplo: Arial( 9imes 6e0 Joman u otras#
=o.tS/L-: +s un dato tipo Single que asigna un ,alor de tama'o %en puntos& a la
fuente#
=o.tStr/M-TNru: 9ambi-n es un dato tipo boolean que es ,erdadero para producir
fuentes tac!adas#
$-todo S!o0Celp:
A-l3Comma.d: <e,uel,e o establece el tipo de Ayuda en pantalla solicitada#
A-l3Co.t-7t: <e,uel,e o establece el Id de conte=to para el tema de Ayuda
solicitado#
A-l3=/l-: <e,uel,e o establece el nombre del arc!i,o de Ayuda asociado con el
proyecto#
A-l3B-H: <e,uel,e o establece la palabra cla,e que identifica el tema de Ayuda
solicitado#
Programacin con VB 6.0 Ing. Kelvin Atencio
9. VARIABLES! TIPOS DE DATOS $ CONSTANTES:
Variables:
<urante la creacin de una aplicacin en V) 1#2( puede que necesite almacenar
temporalmente ,alores num-ricos( cadenas de te=to u otro tipo de dato y luego poder cambiarlos
operando con ellos( !acer clculos o mostrar resultados> para este fin se utilizan las ,ariables#
Las ,ariables utilizan un nombre para identificarse en el cdigo( este nombre almacena un
tipo de dato mediante la utilizacin de un operador de asignacin %signo igual I& y se puede
cambiar operando con ellos ya sea sumando o multiplicando ,alores %cualquier funcin
matemtica& o agregando caracteres a una cadena de te=to %para el caso de cadenas de te=to&#
+jemplo:
2ariable1 = ,.
2ariable/ = "Cadena de Te!to"
Aqu"( Variable4 es el nombre de la ,ariable( luego se presenta el signo igual de asignacin
y luego AE que es el dato que desea almacenarse# +l ejemplo de la Variable? almacena una
cadena de te=to( se identifica por estar encerrada entre comillas# Un ejemplo de operaciones con
,ariables ser"a:
2ariable1 = ,.
2ariable/ = 30
2ariable1 = 2ariable1 A 2ariable/
+n este caso es muy importante resaltar que( la tercera l"nea de instruccin el signo igual
no representa una ecuacin de igualdad sino una asignacin# La primera l"nea asigna el ,alor AE a
Variable4( en la segunda l"nea se asigna @2 a la Variable?# +n la tercera l"nea se realiza una
operacin de suma %Variable4N Variable? I AEN@2 & que se asigna a Variable4( por ello el ,alor de
Variable4 cambia de AE a TE# +n este caso se pudo utilizar una Variable@ que guardara el ,alor de
la suma( pero de la forma como se desarroll permiti la econom"a de memoria ya que utiliz una
,ariable menos#
<eclarar ,ariables:
Para declarar ,ariables se utiliza la Sentencia:
@im Variable 6?( Tipo8
<onde( <im le dice al programa que cree una nue,a ,ariable con el nombre Variable( y [As
9ipo\ es opcional y declara el tipo de dato que se desea almacenar( sino se coloca el programa
crea una ,ariable tipo Variant %,er ms delante de que se trata&# Por ejemplo: @im +iCadena ?(
Strin7% prepara una ,ariable de nombre $i*adena para almacenar cadenas de te=to#
Las ,ariables una ,ez declaradas no distingue entre may:sculas y min:sculas( es decir si
se declar la ,ariable con nombre $i*adena( cuando se escriba micadena( $icadena( mi*adena u
otro nombre con otras may:sculas y min:sculas( el programa cambiar el nombre colocando
$i*adena( que es el nombre original( es decir( aunque cambie may:sculas y min:sculas ser la
misma ,ariable#
6ombres de ,ariables permitidos:
*omo ya se dijo( las ,ariables deben tener un nombre# Se debe elegir un nombre que siga
las siguientes reglas:
6o puede empezar por un n:mero( mas bien( debe empezar por una letra
%may:scula o min:scula&
6o puede tener ms de ?EE caracteres#
Programacin con VB 6.0 Ing. Kelvin Atencio
6o puede ser igual a una palabra cla,e de Visual )asic# 6o puede ser por ejemplo
<im( If( 9!en( 3or( String( etc#
6o puede incluir caracteres especiales como asterisco( punto( signo de admiracin
o interrogacin( u otros#
Pueden tener el mismo nombre siempre y cuando est-n en procedimientos
diferentes#
Si declara una ,ariable dentro de un procedimiento( una ,ez terminada la secuencia del
procedimiento( se perder el ,alor de la misma( para e,itar esto se deber declarar la ,ariables de
forma:
Static 2ariable 6?( Tipo8
+sto permitir que se preser,e el ,alor de la ,ariable cuando se termine el procedimiento( y
cuando se ,uel,a a llamar al procedimiento la ,ariable tendr el :ltimo ,alor asignado a ella#
Cay ,ariables que se necesitan que puedan modificarse desde diferentes procedimientos
para esto( se debe declarar las ,ariables en la seccin de declaraciones del formulario %l"neas
superiores del cdigo del formulario& de la siguiente forma:
Public 2ariable 6?( Tipo8 % o tambi[n
@im 2ariable 6?( Tipo8
<os ,ariables de procedimientos separados pueden tener un mismo nombre y no sern la
misma ,ariable#
Programa #1. Co.tador-2 d- Var/a4l-2:
+l siguiente programa tiene por finalidad relacionarse con distintos tipos de ,ariables# Para
ello( se deben agregar dos botones de comando y cuatro etiquetas a un formulario# Luego( se debe
escribir el siguiente cdigo o copie y pegue:
4ption E!plicit
Public 2ariable ?( Inte7er
Private Sub Command1_Click()
@im 2ariable1 ?( Inte7er
Static 2ariable/ ?( Inte7er
2ariable1 = 2ariable1 A 1
2ariable/ = 2ariable/ A 1
2ariable = 2ariable A 1
Gabel1 = 2ariable1
Gabel/ = 2ariable/
Gabel, = 2ariable
End Sub
Private Sub Command/_Click()
Static 2ariable/ ?( Inte7er
2ariable/ = 2ariable/ A 1
2ariable = 2ariable A 1
Gabel3 = 2ariable/
Gabel, = 2ariable
End Sub
+jecute el programa e interact:e con el !aciendo clic sobre los botones# Verifique como
,ar"an los ,alores de las ,ariables cada ,ez que presiona uno de ellos#
Para obtener una informacin detallada sobre la codificacin del programa dir"jase a la
Seccin <etallada de Programas#
Programacin con VB 6.0 Ing. Kelvin Atencio
Pero si e=iste una ,ariable declarada en la seccin p:blica y una ,ariable en un
procedimiento pri,ado( V) 1#2 !ar referencia a la ,ariable mas inmediata( es decir( a la ,ariable
del procedimiento mas interno#
9ipos de <atos :
Una buena seleccin de la ,ariable dentro de un programa promue,e un a!orro de
memoria( por lo que se recomienda que se seleccione el tipo adecuado para almacenar los datos
que se desean# Los tipos de datos son los siguientes:
Bool-a.: Almacena un ,alor que puede tomar dos opciones: ,erdadero %True& o
3also %<al(e&# Un ejemplo de este tipo de dato es la propiedad ,isible de algunos
controles# Dcupa un espacio en la memoria de ? bytes#
BHt-: Puede almacenar un n:mero natural que puede estar entre 2 y ?EE# 6o
acepta ,alores negati,os# Puede ser utilizado por ejemplo para almacenar edades(
los n:meros de meses del a'o o los d"as del mes( etc# Si se realiza una suma o
restan dos n:meros )ytes( el resultado debe ser )yte( debe estar entre 2 y ?EE( si
no( el programa genera un error de desbordamiento# Dcupa un espacio de 4 byte#
I.t-g-r: Puede almacenar ,alores enteros desde M@?#T1V !asta @?#T1T# Dcupa en
la memoria ? bytes#
Lo.g: 9ambi-n puede almacenar ,alores enteros( pero en este caso tiene una
e=tensin ms grande ya que almacena n:meros entre M?#4AT#AV@#1AV !asta
?#4AT#AV@#1AT# Dcupa en la memoria A bytes#
S/.gl-: Puede almacenar ,alores num-ricos con decimales( tanto negati,os como
positi,os( es de precisin simple( su rango est entre M4(A24?UV=42
.AE
!asta
N4(A24?UV=42
AE
# Dcupa en la memoria A bytes#
Dou4l-: 9ambi-n puede almacenar ,alores num-ricos con decimales( negati,os y
positi,os( pero por tener ms memoria asignada puede tener ,alores de precisin
doble( ,an desde MA(UA21E1AEVA4?AT=42
.@?A
!asta 4(TUT1U@4@AV1?@?=42
@2V
#
ocupa en la memoria V bytes#
Curr-.6H: +ste tipo de dato se utiliza para almacenar ,alores num-ricos
monetarios( su rango ,a desde MU??#@@T#?2@#1VE#ATT(EV2V !asta el
U??#@@T#?2@#1VE#ATT(EV2T#
Str/.g: Se utiliza para almacenar cadenas de te=to# Puede tener una longitud fija si
se declara: @im 2ariable ?( Strin7 C Gon7itud( donde longitud es un
n:mero entero que indica el n:mero de caracteres que ,a a tener la ,ariable# Si
cuando se introduce una cadena( -sta tiene la longitud menor a la cantidad dada
por Longitud( entonces el programa los rellena con espacios en blanco( si la
cantidad de caracteres es mayor entonces se recortar# Dcupa en la memoria de
acuerdo al n:mero de caracteres que contenga %4 byte por carcter&#
Dat-: +ste tipo de dato puede almacenar ,alores de fec!as y !oras# Su rango ,a
para las fec!as desde 4Z4Z422 !asta el @4Z4?ZUUUU y para las !oras desde 2:22:22
!asta ?@:EU:EU#
Var/a.t: +ste tipo de dato es el que mas memoria consume %41 bytes&( pero tiene
una ,entaja sobre los otros y es que puede almacenar cualquiera de los tipos de
datos descritos anteriormente( incluso puede cambiar de una cadena a un n:mero(
despu-s guardar una fec!a o cualquier otro tipo de dato# Las ,ariables tipo ,ariant
no son declaradas necesariamente puede escribir @im 2ariable y V)
reconocer como si !ubiese escrito @im 2ariable ?( 2ariant.
E2tru6tura2: Se utiliza para crear un solo tipo de dato %personalizados&
combinando los distintos tipos bsicos ,istos anteriormente# +stas se e=plicarn
ms adelante en esta misma seccin# Su espacio en la memoria es ,ariable de
acuerdo al tipo de datos que combine#
Para declarar una ,ariable a un tipo de dato se declara:
Programacin con VB 6.0 Ing. Kelvin Atencio
PublicDPrivateD@imDStatic 2ariable 6?( Tipo8
+jemplos de algunos ser"an:
@im +iBumero ?( @ouble
*rea una ,ariable de tipo precisin doble con nombre $i6umero
Public Cadena ?( Strin7 C R
*rea una ,ariable de tipo cadena de V caracteres de nombre *adena
Static 2alor ?( Inte7er
*rea una ,ariable de tipo entero de nombre Valor que preser,ar su ,alor
@im 2ariable
*rea una ,ariable tipo ,ariante de nombre Variable
+=isten funciones que con,ierten un tipo de dato a otro: las funciones de con,ersin son:
=u.6/8. Co.</-rt- a:
C4ool*e=presin+ )oolean
C4Ht-*e=presin+ )yte
C6ur*e=presin+ *urrency
Cdat-*e=presin+ <ate
CD4l*e=presin+ <ouble
C/.t*e=presin+ Integer
CL.g*e=presin+ Long
CS.g*e=presin+ Single
CStr*e=presin+ Strng
C<ar*e=presin+ Variant
Por ejemplo la sentencia CStr*AE4?E+ almacena AE4?E como una cadena de te=to y no
como un ,alor num-rico#
Programa #1%. Co.<-r2/8. d- dato2:
Agregue un botn de comando %*ommand4& y un cuadro de te=to %9e=t4& a un formulario#
Agregue el siguiente cdigo o copie y pegue:
Private Sub Command1_Click()
@im +i ?( Inte7er
Te!t1 = CInt(Te!t1)
Te!t1 = Te!t1
End Sub
Private Sub <orm_?ctivate()
Te!t1.Set<ocu(
End Sub
Private Sub <orm_Goad()
<orm1.Caption = "IntroduVca un valor"
Te!t1 = ""
Command1.Caption = "Convertir"
End Sub
+jecute el programa en Iniciar y en el cuadro de te=to agregue un ,alor con decimales( el
programa lo con,ertir a entero#
Programacin con VB 6.0 Ing. Kelvin Atencio
*omo ya los comandos e instrucciones que se encuentran en este programa ya !an sido
e=plicados este programa no se detalla en la Seccin <etallada de Programas#
+structuras:
Las estructuras se utilizan para crear un solo tipo combinando los tipos bsicos( se
denotan:
T9pe Bombre
Sub2ariable1 ?( Tipo
Sub2ariable/ ?( Tipo
...
End T9pe
<onde 6ombre es el nombre de la estructura que grabar un conjunto de datos#
SubVariable4( SubVariable? son sub.,ariables que componen la estructura#
Para crear una ,ariable de este tipo de dato se procede del mismo tipo como si estu,iera
creando una ,ariable de tipo 6ombre:
Public 2ariable ?( Bombre
A!ora( para acceder o asignar cada sub.,ariable del conjunto se escribe:
2ariable.Sub2ariable1 = 2alor1
2ariable.Sub2ariable/ = 2alor/
As" por ejemplo la siguiente secuencia:
T9pe ?lumno(
Bombre ?( Strin7
Edad ?( *9te
>rado ?( *9te
End T9pe
*rea un tipo de dato que graba el nombre( edad y grado de un alumno( luego se colocar:
Public ?lumno ?( ?lumno(
?lumno.Bombre = "Carlo( *ravo"
?lumno.Edad = 1Q
?lumno.>rado = R
Te!t1.te!t = ?lumno.Edad
*onstantes:
Una constante es un ,alor que por si slo puede ser dif"cil de recordar y por lo tanto se le
asigna un nombre para trabajar con el nombre y no con el ,alor# +=isten constantes que estn
intr"nsecas en el lenguaje de programacin como por ejemplo =/llStHl-Co.2ta.t2( que contienen
un di,erso conjunto de constantes que pueden ser utilizadas para cambiar el estilo del( relleno a un
objeto#
Pero( en V) 1#2( puede crear sus propias constantes anteponiendo la palabra Con(t al
nombre de la constante que desea crear( agregar el s"mbolo igual %I& y luego el ,alor( de tal
manera quedar"a:
Con(t Bombre = 2alor
*omo ejemplo( podr"a ser el aplicado en el programa del control de cuadro de imagen
%Picture)o=&:
Con(t Pi = 3.1,1.P/O
4 tambi[n:
Con(t Ginea(CruVada( = vbCro((
Programacin con VB 6.0 Ing. Kelvin Atencio
Luego( puede llamar a la constante de igual manera que se llamar"a a una ,ariable( pero
en este caso no se puede cambiar el ,alor asignado( si se intentara cambiar el programa mostrar"a
un error de compilacin#
Por ejemplo( agregue en un formulario un botn de comando %*ommand4& y un cuadro de
imagen %Picture4&( escriba el siguiente cdigo o copie y pegue:
Private Sub Command1_Click()
Con(t Ginea(CruVada( = vbCro((
Picture1.<illSt9le = Ginea(CruVada(
Picture1.Circle (1000% 1000)% ,00
End Sub
As"( si se escribe Lineas*ruzadas en la propiedad 3illStyle( -sta llama a su contenido que
es la constante intr"nseca ,b*ross que pertenece a las constantes de estilos de relleno( se
rellenar en el circulo del cuadro de imagen con l"neas cruzadas#
A!ora si por ejemplo( agrega un botn de comando %*ommand4& a un formulario y escribe
el siguiente cdigo:
Private Sub Command1_Click()
Con(t e = /.O1R/R
Command1.Caption = e
End Sub
Se escribir en el botn de comando la constante e#
Programacin con VB 6.0 Ing. Kelvin Atencio
6. "ATRICES:
Las matrices permiten crear ,ariables con un mismo nombre diferencindose slo por un
n:mero de "ndice# Los elementos de las matrices estn entre un "ndice inicial y un "ndice final( los
"ndices de los elementos de la matriz deben estar dentro de estos "ndices#
Las matrices almacenan todos sus elementos en un mismo tipo de dato( este tipo de dato
fue declarado al mismo tiempo que fue declarado la matriz# Las matrices pueden ser de tama'o fijo
o dinmicas %que pueden cambiar de tama'o&#
Para declarar una matriz de tama'o fijo se utiliza la siguiente secuencia:
@imDPublicDStaticDPrivate Bombre+atriV(B\merodeElemento() ?( Tipo
Los "ndices de las matrices comienzan a enumerarse desde cero por lo tanto el n:mero al
lado de la matriz sumado en uno es el n:mero de elementos que contiene la matriz# Por lo tanto:
@im +i+atriV(10) ?( Strin7
*rea una matriz de nombre $i$atriz de 44 elementos de tipo cadena de te=to# *on
n:meros de "ndice entre 2 y 42# Si se desea que slo contenga 42 elementos tendr que
declararse:
@im +i+atriV(1 To 10) ?( Strin7
+n este caso los "ndices ,an desde 4 !asta 42#
+l n:mero de elementos no puede e=ceder de la capacidad de un dato Long
%?#4AT#AV@#1AT elementos&
9ambi-n puede declarar matrices con n:meros de "ndices entre dos ,alores diferentes por
ejemplo:
Public k(10 To 1P) ?( Inte7er
<e esta manera puede ,ariar los n:meros de "ndice entre dos ,alores 9ipo Long diferentes#
Para almacenar un ,alor en un elemento de la matriz de procede de la siguiente manera:
+atriV(]ndice) = 2alor
<e la misma manera que se asigna un ,alor a una ,ariable( pero esta ,ez contiene dentro
del par-ntesis el n:mero de "ndice correspondiente#
<e manera que:
@im i ?( Inte7er
@im F(P) ?( Inte7er
<or i = 0 To P
F(i)=i
Be!t
Almacena el n:mero de "ndice en su ,ariable correspondiente#
9ambi-n se pueden crear matrices multidimensionales si separa con una coma los ,alores
de "ndices de la siguiente manera:
Static 4tra+atriV(,% ,) ?( @ouble
Programacin con VB 6.0 Ing. Kelvin Atencio
+sta sentencia crear una matriz de ?E elementos( de 2 a A %cinco elementos& en el primer
"ndice e igual n:mero de elementos para el segundo "ndice#
Al igual que las matrices unidimensionales puede cambiar la numeracin de sus "ndices
como ,alores de tipo Long# +jemplo:
@im +atriV@imen(ional(1 To .% 10 To 13) ?( Sin7le
<e esta manera se crear una matriz de dos dimensiones de ?2 elementos# %<e uno !asta
cinco en el primer "ndice y de diez !asta trece en el segundo "ndice&
Puede agregar ms dimensiones y crear matrices de tres dimensiones( cuatro o mas
dimensiones#
Se puede cambiar mediante una instruccin( que debe colocarse en la seccin de
declaraciones del formulario( para que todas las matrices comiencen a enumerarse desde el
n:mero 4 o desde el n:mero cero( esta es:
4ption *a(e 1
Para que se comience a enumerar desde uno o(
4ption *a(e 0
Para enumerarse desde el n:mero cero#
$atrices <inmicas:
Las matrices ,istas anteriormente son estticas( ya que el n:mero de elementos no puede
,ariar( esto puede ocasionar que el n:mero de elementos no sea suficiente para algunas acciones
o por el contrario que est- sobredimensionado#
Para este caso se crearon la matrices dinmicas( estas se declaran de la misma forma que
las matrices dinmicas pero sin nada en los par-ntesis( de la siguiente manera:
@imDPublicDStaticDPrivate Bombre+atriV@in^mica() ?( Tipo
Luego( en tiempo de ejecucin( cuando ya se est- seguro del n:mero de elementos que
necesite( se puede redimensionar( con la siguiente sentencia:
;edim 6Pre(erve8 BombrematriV@in^mica(B\merodeElemento()
*ada ,ez que redimensione la matriz se borrarn todos los elementos que estaban
almacenados en la matriz( esto es muy :til si desea utilizar la matriz para almacenar ,alores
nue,os( pero sino( esto se puede e,itar si se coloca la palabra Preser,e# +sta sentencia preser,ar
los ,alores almacenados en la matriz !asta ese momento#
Jedim slo se puede usar una ,ez por funcin o por procedimiento#
Aunque se puede redimensionar el n:mero de elementos que tiene una matriz no se puede
cambiar el n:mero de dimensiones#
Para ampliar la matriz en un elemento preser,ando los ,alores de los elementos que ella
contiene se puede utilizar la palabra U)ound de la siguiente manera:
;edim Pre(erve Bombre+atriV(=*ound(Bombre+atriV)A1)
Slo se puede cambiar la :ltima dimensin de una matriz( si se intenta cambiar otra
dimensin se producir un error en tiempo de ejecucin#
Programacin con VB 6.0 Ing. Kelvin Atencio
:. OPERADORES L@1ICOS! OPERADORES "ATE",TICOS
$ =UNCIONES "ATE",TICAS:
Los operadores lgicos son s"mbolos %algunos matemticos& que se utilizan para crear
condiciones y bucles# +l computador toma decisiones %mediante las sentencias de control que se
,ern mas adelante& seg:n estas condiciones de,uel,an ,erdadero o falso# Los operadores lgicos
son:
O3-rador SOm4olo
Igual I
<iferente ]^
Igual %en te=to&
Gike
$enor que ]
$ayor que ^
$enor o igual que ]I
$ayor o igual que ^I
6egacin
Bot
As" por ejemplo:

Co.d/6/8. D-<u-l<-:
30 = 1/ <al(o
1/ XH 30 2erdadero
30 X 1/ <al(o
Bot 1/ H 30 2erdadero
9ambi-n e=isten cone=iones de condiciones y de,uel,en ,erdadero o falso seg:n la
combinacin de dos condiciones( estas son:
Or: <e,uel,e Verdadero si alguna de las condiciones es ,erdadera#
A.d: <e,uel,e Verdadero si las condiciones comparadas son ,erdaderas#
&Or: <e,uel,e Verdadero si una de,uel,e Verdadero y la otra 3also#
EF<: <e,uel,e ,erdadero si las condiciones comparadas son equi,alentes( es
decir( si son ambas ,erdaderas o falsas#
Im3: <e,uel,e ,erdadero en todos los casos( e=cepto cuando la primera sea
,erdadera y la segunda falsa#
As" por ejemplo:
Si 8 I @ y
V I ?
Co.d/6/8. D-<u-l<-:
I = / 4r 2 = / 2erdadero
I = 3 ?nd 2 X 1 <al(o
I X= 3 Ior 2 = 1 2erdadero
I = / EEv 2 H 3 2erdadero
I = 3 EEv 2 = , <al(o
I = 3 Imp 2 = / <al(o
Se pueden colocar mas de una combinacin y as" anidar condiciones que tambi-n
de,ol,ern ,erdadero o falso:
Co.d/6/8. D-<u-l<-:
I = / 4r I = 3 ?nd 2 = 1 4r 2 = / 2erdadero
Programacin con VB 6.0 Ing. Kelvin Atencio
I = / ?nd 2 = 3 4r I = 1 ?nd 2 = / <al(o
O3-rador-2 "at-m0t/6o2 H =u.6/o.-2 "at-m0t/6a2:
V) 1#2 contiene un conjunto de operadores matemticos que se utilizan para !acer
clculos num-ricos( algunos de ellos son:
O3-rador-2 "at-m0t/6o2 O3-ra6/8.
P Suma d- .Cm-ro2: +jemplo %? N A& de,uel,e 1#
Q Su2tra66/8. d- .Cm-ro2 o n:mero negati,o#
+jemplo: %@2 M 4E& de,uel,e 4E#
R "ult/3l/6a6/8. d- .Cm-ro2# +jemplo %? ; E&
de,uel,e 42#
S D/</2/8. d- .Cm-ro2# +jemplo %42 Z @& de,uel,e
@#@@@@#
T D/</2/8. -.t-ra d- .Cm-ro2: +jemplo 42S@
de,uel,e @#
U Pot-.6/a d- .Cm-ro2# +jemplo 44_? de,uel,e
4?4#
"od R-2/duo d- u.a d/</2/8.# +jemplo %422 +od U&
de,uel,e 4#
=u.6/o.-2 "at-m0t/6a2 O3-ra6/8.
A42*6umero+ Valor a42oluto d- u. .Cm-ro. +jemplo
Abs%.AE& de,uel,e AE#
At.*6umero+ Ar6ota.g-.t- d- u. .Cm-ro. +jemplo Atn%4&
de,uel,e 2#TVEA#
Co2*6umero+ Co2-.o d- u. .Cm-ro rad/a.: +jemplo
*os%@#4A4EU?1E& de,uel,e M4#
E73*6umero+ E -l-<ada a u. .Cm-ro. +jemplo +=p%4&
de,uel,e ?#T4V?V#
=/7*6umero+ Part- -.t-ra d- u. .Cm-ro. +jemplo 3i=%A#E&
de,uel,e A#
Log*6umero+ Logar/tmo .atural d- u. .Cm-ro: +jemplo
Log%?#T4V?V& de,uel,e 4#
Log*6umero+SLog*)aseB+ Logar/tmo 6o. 4a2- d/2t/.ta d- -# +jemplo
Log%422&ZLog%42B& de,uel,e ?( o Log%V&Zlog%?B&
de,uel,e @#
Ramdom/L-*[6umero\+ I./6/a g-.-rador d- .Cm-ro2 al-ator/o2.
R.d*[6umero\+ NCm-ro al-ator/o /gual o m-.or a Num-ro.
Rou.d*6umero( <ecimales+ Num-ro r-do.d-ado a d-6/mal-2. +jemplo
Jound%?#EAE4?( ?& de,uel,e ?#EE#
Sg.*6umero+ Q1! 0! 1 seg:n n:mero sea menor( igual o mayor
que cero# +jemplo Sgn%.AE& de,uel,e M4#
S/.*6umero+ S-.o d- u. .Cm-ro rad/a.. +jemplo
Sin%4#ET2TU1& de,uel,e 4#
SFr*6umero+ RaOL 6uadrada d- u. .Cm-ro. +jemplo Sqr%41&
de,uel,e A#
Ta.*6umero+ Ta.g-.t- d- u. .Cm-ro rad/a.. +jemplo:
9an%2& de,uel,e cero#
Programacin con VB 6.0 Ing. Kelvin Atencio
;. PROCEDI"IENTOS $ =UNCIONES:
Procedimientos:
Los procedimientos contienen conjunto de acciones o secuencias de cdigo que ejecuta la
aplicacin# +stos procedimientos pueden ser llamados desde cualquier lugar de un formulario o sin
son p:blicos desde cualquier lugar de la aplicacin#
Los procedimientos pueden simplificar la codificacin cuando e=iste una secuencia de
cdigo que se debe repetir# *on el nombre del procedimiento puede llamar a este conjunto de
secuencias#
Supongamos que se tienen dos procedimientos: el principal de nombre Procedimiento4 y el
secundario de nombre Procedimiento?# Si en alg:n lugar de Procedimiento4 se llama a
Procedimiento?( desde este lugar( el programa comienza a ejecutar el conjunto de secuencias de
Procedimiento?( luego terminado este procedimiento el programa continua ejecutando las
secuencias de Procedimiento4 !asta completar la secuencia#
Las ,ariables pri,adas de un procedimiento no se conser,an cuando se ejecute el otro
procedimiento( si las ,ariables son p:blicas %declaradas en la seccin superior del cdigo del
formulario bajo la sentencia Public& si conser,an su ,alor#
Programa #1(. Var/a4l-2 d- 3ro6-d/m/-.to2:
Se ,a a crear un programa que calcula el rea de un c"rculo dado su radio# Para ello se
debe agregar( de arriba !acia abajo( una etiqueta con *aption: 5JadioI 5 al lado de un cuadro de
te=to %9e=t4&( debajo de estos controles agregue un botn de comando %*ommand4&( luego debajo
de -ste dos etiquetas Label? y Label@#
Agregue el siguiente cdigo %puede copiar y pegar&:
4ption E!plicit
Public ?rea ?( @ouble
Private Sub <orm_Goad()
+e.Caption = "?rea de un CUrculo"
Te!t1 = ""
Command1.Caption = "Calcular ?rea"
Gabel/ = ""
Gabel3 = ""
Gabel/.*orderSt9le = 1
Gabel3.*orderSt9le = 1
End Sub
Private Sub Command1_Click()
@im ;adio ?( @ouble% ?rea ?( @ouble
If Te!t1 XH "" ?nd I(Bumeric(Te!t1) Ten
;adio = C@bl(Te!t1)
?rea = 3.1Q1.P/Q. C ;adio S /
Gabel/ = "?rea= " T ?rea
@i(pla9
El(e
+(7*o! "IntroduVca un valor"
Te!t1.Set<ocu(
End If
End Sub
Private Sub @i(pla9()
Gabel3 = "?rea= " T ?rea
End Sub
Programacin con VB 6.0 Ing. Kelvin Atencio
+jecute el programa introduzca un ,alor u otro contenido en el cuadro de te=to y ,erifique
la respuesta# +l procedimiento <isplay %al final& desplega resultado cero ya que !ace referencia a la
,ariable Area p:blica %que no tiene ning:n ,alor asignado& y no la ,ariable Area pri,ada que se
encuentra en el procedimiento de e,ento Command1_click.
Para obtener detalles sobre la codificacin de este programa se puede dirigir a la Seccin
<etallada de Programas al final de este trabajo de in,estigacin#
Para ,er otro ejemplo de llamadas a procedimientos puede ,er el Prorama 23# 45$nde
estudiar6( donde se presentan dos ,ariables p:blicas que conser,an su ,alor fuera de los
procedimientos# 9ambi-n puede dirigirse a sus <etalles en la Seccin <etallada de Programas#
+n V) 1#2 e=isten tres tipos de procedimientos:
Sub
3unction
Property
Los primeros slo ejecutan una serie de sentencias y comandos y no de,uel,en un ,alor#
Los segundos contienen una funcin dentro de s" que de,uel,en un ,alor al llamarlos#
Los terceros pueden de,ol,er o asignar ,alores#
Para crear un nue,o procedimiento( se puede ir en la )arra de $en:s de V) a
Cerramientas( luego !acer clic en Agregar procedimiento tal como lo muestra la figura:
Se desplegar la siguiente pantalla:
+n esta se deber colocar el nombre del procedimiento( el 9ipo %Sub I Procedimiento>
3unction I 3uncin > Property I Propiedad o un +,ento& y el alcance en caso del procedimiento
%P:blico o Pri,ado& si es una funcin despu-s deber colocar el tipo de dato que de,ol,er la
funcin( si no lo coloca este tomar Variant por defecto#
*omo se !an ,isto ejemplos de procedimientos Sub( se procede a ejemplificar el
procedimiento 3unction#
Programacin con VB 6.0 Ing. Kelvin Atencio
Programa#19. Pro6-d/m/-.to =u.6t/o.:
+ste programa tiene como finalidad mostrar la aplicacin de los procedimientos 3unction#
Para ello( agregue dos cuadros de te=to %9e=t4 y 9e=t?& al formulario( agregue adems un botn de
comando %*ommand4& y una etiqueta %Label4&( <espu-s agregue el siguiente cdigo %puede copiar
y pegar&:
4ption E!plicit
Private Sub <orm_Goad()
Te!t1 = ""
Te!t/ = ""
Command1.Caption = "Calcular ;e(iduo"
Gabel1 = ""
End Sub
Private Sub Command1_Click()
If I(Bumeric(Te!t1) ?nd I(Bumeric(Te!t/) Ten
Gabel1 = ;e(iduo(Te!t1% Te!t/)
El(e
+(7*o! "IntroduVca valore( num[rico("
Te!t1.Set<ocu(
End If
End Sub
Private <unction ;e(iduo(@ividendo ?( Inte7er% @ivi(or ?( Inte7er) _
?( Inte7er
;e(iduo = @ividendo +od @ivi(or
End <unction
Se puede notar que la funcin disminuy considerablemente las instrucciones que deb"an
colocarse en la secuencia de *ommand4# <e !ec!o( no fue necesario declarar ,ariables# Los
detalles de la programacin aparecen en la Seccin <etallada de Programas#
Programacin con VB 6.0 Ing. Kelvin Atencio
E. SENTENCIAS DE CONTROL
Las sentencias de control se utilizan en V) 1#2 para que el programa lle,e un curso lgico
y tome decisiones en base a condiciones que se puedan presentar mientras -ste se ejecuta#
*omo ya se !a ,isto anteriormente( las condiciones pueden de,ol,er dos posibilidades en
una decisin( puede de,ol,er ,erdadero %9rue& o 3also %3alse&> as" puede lle,ar el programa a
ejecutar una serie de instrucciones de acuerdo a una respuesta( para ello se utilizan las estructuras
de decisin#
LAS ESTRUCTURAS DE DECISI@N SON:
If ... Ten ...
Select Ca(e ...
+structura de decisin If ... Ten ...
+ste tipo de estructura %que ya !a sido utilizado en ,arios programas anteriores& ejecuta
una serie de instrucciones( en base a una respuesta a una condicin# 9iene la siguiente forma:
If condici'n Ten
In(truccione( (i condici'n e( verdadera
6El(e8
In(truccione( (i condici'n e( fal(a
End If
<onde la condicin re:ne las especificaciones descritas en la seccin anterior que
de,uel,e ,erdadero o falso( entre la palabra 9!en y +lse %si se coloca +lse& se escriben una serie
de instrucciones que se ejecutan si la condicin de,uel,e ,erdadero# +ntre +lse y +nd If( se
colocan las instrucciones en caso de que la instruccin de,uel,e 3also#
La palabra +lse no es obligatoria( si no se coloca en caso de que la condicin sea falsa no
!ay ejecucin de instrucciones# Huedando de la siguiente forma:
If condici'n Ten
In(truccione( (i condici'n e( verdadera
End If
9ambi-n es posible que se encuentre el caso de que !aya mas de una condicin que se
desea comparar( as" por ejemplo( si se cumple una condicin se ejecutan una serie de
instrucciones( en caso de que sea falso tal,ez se desee comparar otra condicin y ,erificar si es
,erdadera( as" sucesi,amente !asta encontrar la condicin que se cumple( para esto se utiliza la
siguiente secuencia:
If condici'n1 Ten
In(truccione( (i condici'n1 e( verdadera
6El(eIf condici'n/ Ten8
6In(truccione( (i condici'n/ e( verdadera8
6El(eIf condici'n3 Ten8
6In(truccione( (i condici'n3 e( verdadera8
###
6El(e8
6In(truccione( (i toda( la( condicione( (on fal(a(8
End If
Puede agregar cualquier cantidad de +lseIf tantas ,eces como quiera !asta lograr el
objeti,o de alcanzar la secuencia que se quiere ejecutar seg:n la condicin# *uando ya una
condicin se cumple se ejecutan las instrucciones que estn dentro de esta condicin y al terminar
la secuencia se ,a !asta el final
Programacin con VB 6.0 Ing. Kelvin Atencio
+sta secuencia es muy ,aliosa si las condiciones no incluyen la misma ,ariable o incluyen
ms de una ,ariable# Ka que si desea comparar una ,ariable es ms fcil utilizar la secuencia
Select *ase#
Programa #16. I.2tru66/8. IK:
+l siguiente programa tiene la finalidad de utilizar la instruccin If en todos la mayor"a de
los casos que se pueda presentar durante la codificacin de un programa#
Agregue a un formulario un cuadro de te=to %9e=t4& y un botn de comando %*ommand4& y
escriba el siguiente cdigo( puede copiar y pegar:
Private Sub <orm_Goad()
Te!t1 = ""
Command1.Caption = "Comparar"
End Sub
Private Sub Command1_Click()
@im 2alor ?( @ouble% ;e(pue(ta ?( Strin7
If Te!t1 = "" Ten
2alor = 0
El(e
2alor = C@bl(Te!t1)
End If
If 2alor X 0 Ten
;e(pue(ta = "El 2alor e( ne7ativo"
El(eIf 2alor = 0 Ten
;e(pue(ta = "El 2alor e( cero"
El(e
;e(pue(ta = "El 2alor e( po(itivo"
End If
Te!t1 = ;e(pue(ta
End Sub
+jecute la aplicacin e introduzca un ,alor num-rico en el cuadro de te=to# Luego !aga clic
en el botn de comando y espere la respuesta#
Si tiene alguna duda sobre la codificacin de este programa puede repasar la e=plicacin
de la estructura de decisin If( y ,erificar los detalles sobre la funcin de dic!a estructura#
+structura de decisin Select *ase###
La estructura Select *ase se utiliza si desea comparar una sola ,ariable a un conjunto de
condiciones y ejecutar la secuencia seg:n el caso que se cumpla# +l caso del programa anterior
pudo utilizar esta estructura# Select *ase tiene la siguiente forma:
Select Ca(e 2ariable
Ca(e 2alor1: in(truccione( (i 2ariable e( i7ual a 2alor1
Ca(e 2alor/% 2alor3: in(truccione( (i 2ariable e( 2alor/ o 2alor3.
Ca(e I( X 2alor,: in(truccione( (i 2ariable e( menor a valor,.
Ca(e 2alor. To 2alorQ: in(truccione( (i 2ariable e(t^ entre 2alor.
9 2alorQ
End Select
+sta e=plicacin se encuentran las cuatro combinaciones posibles de casos que se pueden
presentar# +n la seccin que muestra *ase Is( se puede colocar menor o igual %]I& ( menor %]&(
mayor %^& o mayor o igual %^I& y !acer la comparacin de la ,ariable respecto a un ,alor#
+l programa B41 podr"a colocarse entonces como cdigo:
Programacin con VB 6.0 Ing. Kelvin Atencio
Private Sub <orm_Goad()
Te!t1 = ""
Command1.Caption = "Comparar"
End Sub
Private Sub Command1_Click()
@im 2alor ?( @ouble% ;e(pue(ta ?( Strin7
If Te!t1 = "" Ten
2alor = 0
El(e
2alor = C@bl(Te!t1)
End If
Select Ca(e 2alor
Ca(e I(X0: ;e(pue(ta="El valor e( ne7ativo"
Ca(e 0: ;e(pue(ta="El valor e( cero"
Ca(e El(e: "El valor e( po(itivo"
End Select
Te!t1=;e(pue(ta
End Sub
Jeduciendo el n:mero de l"neas y las complicaciones de la codificacin#
+=iste otro tipo de estructuras llamadas estructuras de bucles( ejecutan las instrucciones
repetidamente( mientras o !asta que se cumpla una condicin#
LAS ESTRUCTURAS DE BUCLES SON:
<o ### Loop
3or ### 6e=t
3or +ac! ### 6e=t
+l bucle <o ### Loop:
+ste bucle utiliza dos formas bsicas %aunque se pueden colocar de distinta manera& para
ejecutar un conjunto de instrucciones mientras o !asta se cumpla una condicin#
La siguiente instruccin:
@o Mile condicion
Sentencias
6E!it @o8
Goop
Se utiliza para realizar el conjunto de instrucciones mientras se cumpla una condicin( as"(
si la condicin de,uel,e ,erdadero %9rue& o distinto de cero( se ejecutan el conjunto de
instrucciones( luego se regresa al inicio y se ,uel,e a ,erificar la condicin( si es ,erdadera de
nue,o o distinta de cero( se ,uel,e a ejecutar la secuencia !asta que la condicin de,uel,a 3also o
cero#
+ste bucle se puede escribir mas rpidamente de la siguiente manera:
Mile condidion
Sentencias
Mend
+ste caso no tiene la opcin de salir del bucle si se deseara#
Si la condicin de,uel,e 3also o cero en la primera e,aluacin no se ejecutar ninguna
,ez( a menos que se coloque de la siguiente forma:
@o
Programacin con VB 6.0 Ing. Kelvin Atencio
Sentencias
6E!it @o8
Goop Mile condicion
<e esta forma se ejecuta primero el conjunto de instrucciones y luego se e,al:a la
condicin# Se repetir la ejecucin de acuerdo a la respuesta obtenida en la condicin de acuerdo
a lo se'alado anteriormente#
9ambi-n se puede cambiar la estructura <o ### Loop de tal manera que se ejecute el
conjunto de instrucciones cuando la condicin de,uel,a 3also o cero( para ello se debe cambiar la
palabra /!ile de la instruccin por la palabra Until# <e tal manera quedar"a:
@o =ntil condicion
Sentencias
6E!it @o8
Goop
D bien:
@o
Sentencias
6E!it @o8
Goop =ntil condicion
Programa #1:. Suma Na2ta 6/-.:
+l siguiente programa desplega %cuando se !ace clic en el botn de comando& una caja de
entrada para obtener un ,alor que se sumar# *uando la suma tome el ,alor 422 o mayor el
proceso se detendr:
Agregue un botn de comando %*ommand4& y una etiqueta %Label4& a un formulario(
escriba el siguiente cdigo( puede copiar y pegar:
Private Sub Command1_Click()
Static Suma ?( @ouble
@o Mile Suma X 100
Bum = Input*o!("E(criba un n\mero"% "+en(a5e"% "0")
Suma = Suma A Bum
Gabel1 = Suma
Goop
End Sub
+jecute la aplicacin e interact:e colocando ,alores !asta llegar !asta 422( ,erifique que
se detiene el proceso#
+ste programa no se coloc en la Seccin detallada de Programas ya que es de fcil
comprensin y muc!os de los procesos utilizados ya !an sido ampliamente e=plicados#
+l bucle 3or ### 6e=t:
+l bucle 3or ### 6e=t se utiliza para ejecutar un n:mero determinado de ,eces el conjunto
de instrucciones que contiene# 9iene la siguiente forma:
<or 2ariable = 2alorInicial To 2alor<inal 6Step 2alorIncremento8
Sentencia(
6E!it <or8
Be!t 62ariable8
<onde ,ariable es una ,ariable que ,a a cambiar desde un ,alor inicial a un ,alor final( con
un incremento dado por Step %opcional&# +=it 3or se puede utilizar en alguna parte del interior de
las sentencias si se desea dar fin al bucle#
+l ,alor incremento puede ser positi,o( para ir incrementando la ,ariable o negati,o para ir
disminuyendo( lgicamente si es positi,o el ,alor inicial debe ser menor al ,alor final o si es
negati,o el ,alor inicial debe ser mayor al ,alor final# Si no se coloca el incremento %Step& este
asumir uno a menos que la ,ariable cambie dentro de las sentencias#
Programacin con VB 6.0 Ing. Kelvin Atencio
Programa #1;. Ut/l/La6/8. d- =or:
+n un formulario agregue un botn de comando %*ommand4& y un control cuadro de
imagen %Picture4& de ?T22 o ms de Anc!o %/idt!& y 4222 de alto %Ceig!t&# +scriba el siguiente
cdigo:
Private Sub Command1_Click()
@im I ?( Gon7
<or I = /.0 To Picture1.Midt Step 1000
Picture1.CurrentI = I
Picture1.CurrentJ = Picture1.#ei7t K 300
Picture1.Print "?Eui"
Be!t
End Sub
+jecute el programa( presione clic sobre el botn de comando( se escribir en el cuadro de
imagen la palabra 5Aqu"7 ,arias ,eces seg:n el anc!o del cuadro de imagen# 9ambi-n se puede
eliminar la seccin %Step 1000& y colocar en las sentencias despu-s de la l"nea Picture4#Print:
I = I A 1000
+s la forma de incrementar la ,ariable directamente en las sentencias de instrucciones#
)ucle 3or +ac! ### 6e=t:
+s una modalidad del bucle 3or ### 6e=t( pero -ste permite recorrer una matriz o una
coleccin de datos %Ver Dbjeto *ollection& cuando no se sabe el n:mero de elementos de
contienen# 9iene la siguiente forma:
<or Eac Elemento In CollectionD+atriV
Sentencia(
6E!it <or8
Be!t
<onde +lemento es una ,ariable de tipo Variant si es una $atriz o un Dbjeto si es una
coleccin de objetos# 9ambi-n te la opcin +=it 3or para salir del bucle en el momento que se
desea#
OTRAS SENTENCIAS:
Sentencia Goto:
La sentencia Goto permite dirigir la secuencia de instrucciones a otro lugar mas inferior en
,ez de seguir la secuencia de l"neas como generalmente se ejecuta un programa#
*uando esta sentencia se coloca( se debe colocar a su lado el nombre de un
subprocedimiento( este nombre debe colocarse ms abajo %en el lugar donde se desea que se
dirija el programa& seguido de dos puntos y luego las sentencias o instrucciones que se desea que
se ejecute( por ejemplo:
+s muy importante resaltar que las l"neas de secuencia de las instrucciones por realizarse
de arriba !acia abajo no e=cluye al subprocedimiento( por lo tanto para finalizar la ejecucin de
instrucciones antes del subprocedimiento debe agregarse la palabra +=it SubZ3unction que
corresponda para no ejecutar las l"neas contenidas en el procedimiento#
+sta sentencia tambi-n se utilizan en el caso que se produzca un error en la ejecucin de
un procedimiento( en este caso se escribir"a en la primera l"nea del procedimiento:
4n Error >oto BombreSubprocedimiento
K debajo en la parte inferior del procedimiento colocar las l"neas correspondientes a las
acciones que se deben tomar en caso de producirse un error# +sto se ,e ejemplificado en el
siguiente programa:
Programacin con VB 6.0 Ing. Kelvin Atencio
Programa #1E. S-.t-.6/a 1oto:
+ste programa tiene por objeti,o ,erificar si un n:mero introducido es di,isible entre los
,alores ?( @ y A simultneamente#
Para ello( agregue un botn de comando %*ommand4&( adems agregue dos cuadros de
te=to %9e=t4& y %9e=t?&( el segundo identificado con una etiqueta que muestre 5W<i,isible entre ?( @
y AX7( luego agregue el siguiente cdigo:
Private Sub Command1_Click()
4n Error >oTo Error2alor
Te!t/ = @ivi(ibleEntre/_3_,(Te!t1)
E!it Sub
Error2alor:
If Err.Bumber = 13 Ten
+(7*o! "Error en el valor introducido"% % "IntroduVca un valor"
Te!t1 = ""
Te!t1.Set<ocu(
End If
End Sub
Private <unction @ivi(ibleEntre/_3_,(Bumero ?( Inte7er) ?( *oolean
If Bumero +od / XH 0 Ten
>oTo BoE(@ivi(ible
End If
If Bumero +od 3 XH 0 Ten
>oTo BoE(@ivi(ible
End If
If Bumero +od , XH 0 Ten
>oTo BoE(@ivi(ible
End If
@ivi(ibleEntre/_3_, = True
E!it <unction
BoE(@ivi(ible:
@ivi(ibleEntre/_3_, = <al(e
End <unction
+jecute la aplicacin( introduzca un ,alor entero en el primer cuadro de te=to y presione clic
sobre el botn de comando( 9e=t? mostrar Verdadero si el ,alor es di,isible entre ?( @ y A o falso
si no lo es# Pruebe con distintos n:meros#
Los detalles sobre la codificacin de este programa estn en la Seccin <etallada de
programas#
Sentencia /it!:
A esta sentencia tambi-n se le llama )loque /it!( ya que agrupa un conjunto de
instrucciones con respecto a un objeto( control o estructura# La sentencia /it! se utiliza cuando se
desea ejecutar un conjunto de instrucciones con referencia a un objeto( control o estructura para no
!acer referencia en cada paso a esta sino una sola ,ez# Por ejemplo la secuencia:
Mit Gabel1
.*orderSt9le=1
.Caption="Bombre:"
.Enabled=True
.Midt=1R1.
End Mit
*ambia las propiedades estilo de borde( caption( ensamblado y anc!o de la etiqueta uno( con
necesidad de escribir Label4 slo una ,ez#
Programacin con VB 6.0 Ing. Kelvin Atencio
10. CUADROS DE DI,LO1O:
Los cuadros de dilogo se utilizan para presentar un mensaje al usuario con la finalidad
que -ste tome decisiones y el programa reaccione a ellas#
Por ejemplo si el usuario introdujo realiz una accin in,lida( usted puede mostrar
mediante un mensaje informando que la accin que se !a realizado fue in,lida y por lo tanto debe
corregir para continuar# 9ambi-n se pueden presentar cuadros de dilogo para mostrar
informacin# Cay otros cuadros de dilogo como el cuadro de dilogo de Abrir( Guardar como(
Imprimir( que esperan acciones del usuario para continuar#(
Los cuadros de dilogos pueden ser modales o no modales# $odales significa que se debe
cerrar el cuadro de dilogo %puede ser !acer clic sobre el botn Aceptar( *ancelar( *errar u otro&
para continuar utilizando la aplicacin# Si no se cierra no se podr continuar utilizando la aplicacin#
Los cuadros de dilogo Guardar como( Imprimir( Abrir y el que se !an utilizado !asta a!ora
en la programacin: $sg)o=( son de tipo modal( esperan la reaccin del usuario( mientras que el
cuadro de dilogo )uscar es de tipo no modal( es decir( puede seguir cambiando o utilizando la
aplicacin mientras el cuadro de dilogo no modal est abierto o en funcionamiento#
+l siguiente programa con,ierte un formulario en tipo modal:
Programa #0. =ormular/o "odal:
Se ,a a crear un programa de dos formularios %3orm4 y 3orm?&# Para ello en el primer
formulario cambie su propiedad /indo0State a ? M $a=imized( despu-s agregue un botn de
comando %*ommand4&# Luego( se debe agregar el otro formulario( para ello busque en la )arra de
Cerramientas Proyecto/ busque Arear Formulario y despu-s !aga clic sobre Formulario( se
crear un formulario con nombre 3orm?#
+n 3orm?( agregue un botn de comando %*ommand4& y agregue el siguiente cdigo:
Private Sub Command1_Click()
=nload +e
End Sub
Caga clic sobre 3orm4 en el +=plorador de Proyectos( luego clic sobre "er objeto( en el
botn de comando presione doble clic para empezar a escribir cdigo( escriba de tal manera que
quede:
Private Sub Command1_Clic()
<orm/.SoN vb+odal
End Sub
+jecute el programa y ,erifique que cuando !ace clic sobre el botn de comando
*ommand4 de 3orm4 se desplega el 3orm? de tipo modal( si elimina la sentencia vb+odal%
entonces 3orm? no ser de tipo modal# +l botn de comando de 3orm? !ace que se cierre el
formulario mediante la sentencia =nload +e.
Por ser de fcil comprensin este programa no se encuentra detallado en la Seccin
<etallada de Programas#
*uadros de $ensajes %$sg)o=&:
Los cuadros de mensaje $sg)o= se utilizan para mostrar una informacin al usuario( son
utilizados muy a menudo en el tratamiento de errores para presentar al usuario una falla que se
!aya cometido( un error causado# Pero tambi-n se utiliza para informar al usuario sobre un
acontecimiento que se !a generado que no sea un error sino que por ejemplo se !a llegado al final
de un procedimiento#
Los cuadros de mensaje tienen la siguiente forma
MsgBox Prompt, [Estilo], [Ttulo]
Programacin con VB 6.0 Ing. Kelvin Atencio
<onde Prompt es una ,ariable o una cadena de te=to que representar el mensaje escrito
que desea que el usuario lea( +stilo es opcional y son un conjunto de caracter"sticas que puede
tener el cuadro de mensaje ya sea que tenga botn de Aceptar( *ancelar( Ayuda o que tenga un
icono a su lado como el signo de e=clamacin o un icono cr"tico( si se omite el estilo
predeterminado no se mostrarn iconos y ser ,bDLDnly que significa que slo se presentar el
botn Aceptar# Los estilos de cuadros de mensaje se pueden obser,ar si coloca la palabra
,b$sg)o=Style en el +=aminador de objetos#
+l titulo tambi-n es una ,ariable o una cadena de te=to que aparecer en el t"tulo del
cuadro de mensaje( por ejemplo el siguiente cdigo presenta el siguiente mensaje:
Programa #1. "-.2a5-:
+n este programa se utiliza un cuadro de mensaje para Ad,ertir al usuario si quiere salir de
la aplicacin:
Agregue a un formulario un botn de comando %*ommand4& y escriba el siguiente cdigo:
Private Sub Command1_Click()
@im ;e(pue(ta
;e(pue(ta = +(7*o!("&@e(ea (alir de la aplicaci'n)"% vbCritical _
A vbJe(Bo% "Cerrar")
If ;e(pue(ta = vbJe( Ten
=nload +e
End If
End Sub
+jecute la aplicacin y !aga clic sobre el botn de comando( se mostrar un mensaje como
el siguiente:
Presenta dos opciones Si o 6o( si presiona clic sobre Si( se sale del programa y si presiona
el otro botn cierra el mensaje y contin:a la aplicacin# Por ser de muy fcil comprensin este
programa no se incluye en la Seccin <etallada de Programas#
*ajas de +ntrada %Input)o=&:
Las cajas de entrada Input)o=( se utilizan tambi-n para dar mensajes( pero en este caso
se introduce un dato que se guardar en una ,ariable# +stos cuadros de dilogo tienen la siguiente
forma:
2ariable = Input*o! (Prompt% 6Titulo8% 6Por@efecto8)
<onde ,ariable es el nombre de una ,ariable a la que se le asignar el ,alor o cadena
introducida en la caja de entrada( Prompt es el ,alor o cadena que presentar el mensaje al
usuario( 9"tulo es opcional y presenta el t"tulo de la caja de entrada( y Por<efecto tambi-n es
opcional y es el ,alor o cadena que aparecer por defecto en la caja de entrada( si se omite no
aparecer nada por defecto#
+n este caso el ,alor o cadena introducido en el Input)o= se asignar a Variable y luego
puede trabajar con este ,alor#
Programacin con VB 6.0 Ing. Kelvin Atencio
Programa #. I.3utBo7:
Agregue a un formulario un botn de comando %*ommand4&( tambi-n agregue una
etiqueta( escriba el siguiente cdigo %puede copiar y pegar&:
4ption E!plicit
Private Sub Command1_Click()
@im ;e(pue(ta ?( Strin7% Suma ?( Inte7er
;e(pue(ta = Input*o!("IntroduVca un n\mero"% "Suma"% 10)
Suma = ;e(pue(ta A /.
Gabel1 = Suma
End Sub
+n este caso cuando se presiona un clic sobre el botn de comando se desplega una caja
de entrada como la siguiente:
+l ,alor que introduzca en la caja de entrada el programa sumar ?E( sino agrega un ,alor
y coloca una cadena de te=to el programa generar un error#
+ste programa no se detalla en la Seccin <etallada de Programas ya que es de fcil
comprensin#
Programacin con VB 6.0 Ing. Kelvin Atencio
11. LOS "ENVS:
La )arras de $en: que aparecen en la mayor"a de las aplicaciones son !erramientas que
nos permiten acceder a los comandos principales de la aplicacin( estas barras de !erramientas
contienen los nombres de los comandos esquematizados y organizados de tal manera que se
puede acceder a ellos de una manera muy rpida#
V) 1#2( contiene un +ditor de $en:s que permite crear este tipo de barras y tambi-n
puede crear men:s conte=tuales que son los que aparecen( por ejemplo( al !acer clic con el botn
secundario del mouse sobre un elemento#
+l +ditor de $en:s aparece de la siguiente forma:
+l +ditor de $en:s se compone del *aption( que es la palabra que se ,a a mostrar al
usuario( debajo de ella aparece la propiedad 6ame( que es el nombre con el cual se ,a a acceder o
a llamar desde el cdigo del programa#
Dtras propiedades que aparecen son:
Inde= %$atrices de men:s&
S!orcut %$-todo abre,iado&
*!ecLed %Smbolo de c!equeo&
+nabled %Cabilitar M desabilitar&
Visible %$ostrar u ocultar&
/indo0List
6egotiatePosition
+l +ditor de $en:s posee una lista inferior que esquematiza todos los elementos creados
en -l#
Las flec!as que se encuentran inmediatamente arriba de la lista tienen distintas funciones
cada una( las flec!as !acia la izquierda y la derec!a sir,en para disminuir y aumentar las sangr"as
de los men:s( respecti,amente# Las flec!as !acia arriba y !acia abajo sir,e para mo,er un men:
desde una posicin inicial a una final %cambiar de posicin&#
Las sangr"as de los men:s se utilizan para crear submen:s( as"( aquellos que aparecen sin
sangr"a son los men:s principales que se muestran al usuario directamente en la )arra de
Cerramientas( los submen:s primarios %una sangr"a& son aquellos que se muestran directamente al
!acer clic sobre el men: principal( si desea crear otros submen:s se deber colocar doble( triple u
otras sangr"as al submen:( dependiendo de cuantos submen:s desea crear# La m=ima cantidad
de submen:s que puede crear es cinco ni,eles# Las sangr"as se identifican por tener cuatro
puntos%####&#
Programacin con VB 6.0 Ing. Kelvin Atencio
La propiedad Inde= se utiliza para crear matrices de controles de men:s( esto se !ace con
el objeti,o de simplificar el cdigo cuando los elementos de las matrices deben de utilizar el mismo
cdigo slo ,ariando por su n:mero de "ndice# 9ambi-n se pueden utilizar para crear un men: en
tiempo de ejecucin( aumentando la propiedad Inde= en uno#
Programa #%. "atr/L d- "-.C2:
+l siguiente programa utiliza la propiedad inde= de los men:s para crear una matriz de
controles de men:s# Para ello( ,aya al +ditor de $en:s y siga los siguientes pasos:
4# Seleccione el formulario al que ,a a +ditar el $en: con un clic#
?# +n la )arra de $en: de V) 1#2( dir"jase a Cerramientas M +ditor de $en:s( o
directamente presione la combinacin de teclas *trlN+#
@# +scriba en el primer *aption la palabra OArc!i,o( en la propiedad 6ame escriba
mnuArc!i,o( presione +nter para pasar al siguiente men: o !aga clic sobre la el botn
Siguiente#
A# Presione la flec!a !acia la derec!a para crear una sangr"a#
E# +scriba en el *aption nue,o la palabra OAbrir( coloque como 6ame
mnuSubArc!i,o( establezca la propiedad Inde= a cero# *oloque como S!ortcut
%*trlND&# Pase al siguiente submen: presionando la tecla +nter o !aciendo clic en
siguiente#
1# +scriba en el *aption actual la palabra OGuardar como###( el la propiedad 6ame
escriba mnuSubArc!i,o y en la propiedad Inde= escriba uno %4&# +stablezca la
propiedad S!ortcut %*trlNG&# Pase al siguiente submen:#
T# +scriba en el nue,o *aption la palabra OImprimir( propiedad 6ame mnuSubArc!i,o
y la propiedad Inde= sea igual a dos %?&# *ambie la propiedad S!orcut a %*trlNP&# Caga
clic en Aceptar
V# <ir"jase en la )arra de $en: de Visual )asic dir"jase a Proyecto M *omponentes( o
directamente presione la combinacin de teclas *trlN9
U# <e la lista de elementos que se muestran seleccione la casilla de ,erificacin de
$icrosoft *ommon <ialog *ontrol 1#2# Caga clic en aplicar y luego en aceptar#
42# Agregue este control sobre el formulario de la misma manera que se agrega un
control no se preocupe por el tama'o( este al igual que el control 9imer tiene un
tama'o predeterminado y no es ,isible en tiempo de ejecucin#
44# A!ora dir"jase a la Ventana Ver *digo y escriba las siguientes instrucciones:
Private Sub mnuSub?rcivo_Click(Inde! ?( Inte7er)
Select Ca(e Inde!
Ca(e 0: Common@ialo71.SoN4pen
Ca(e 1: Common@ialo71.SoNSave
Ca(e /: Common@ialo71.SoNPrinter
End Select
End Sub
+jecute la aplicacin e interact:a con el programa( dir"jase a cualquier submen: de Arc!i,o
y compruebe como se muestra cada *uadro de dilogo de acuerdo con su nombre# +jemplo Abrir
desplega el cuadro de dilogo Abrir( Guardar como( desplega el cuadro de dilogo guardar e
igualmente con imprimir#
6o borre toda,"a el programa ya que se seguir utilizando para las e=plicaciones de las
otras propiedades#
+ste programa no se detalla en la Seccin <etallada de Programas ya que es de fcil
comprensin#
La Propiedad S!ortcut se utiliza si quiere agregar un acceso directo( por ejemplo si elige la
combinacin *trlND para un submen: %que es el caso del submen: Abrir&( si se encuentra en
cualquier lugar de la aplicacin al presionar esta combinacin de teclas se llama a las instrucciones
que se encuentran dentro del e,ento clic del nombre de men:( de manera que no tendr que
Programacin con VB 6.0 Ing. Kelvin Atencio
dirigirse siempre a la )arra de $en: sino que conociendo la combinacin de teclas se abre,ia el
tiempo de ejecucin# Si se presiona *trlND o *trlNG o *trlNP se llama al procedimiento de Abrir(
Guardar( o imprimir respecti,amente que son los nombres de los submen:s#
Si antepone el s"mbolo O a la palabra caption de un men: principal( al presionar la
combinacin de teclas AltN%*arcter subrayado&( se genera el e,ento clic sobre el nombre del
men:( si antepone este mismo s"mbolo a un submen:( luego que se !ace clic sobre el men:
principal con presionar la tecla subrayada se genera el e,ento clic del submen:#
Para el ejemplo del Programa B4U( si se encuentra en el formulario( puede presionar la
combinacin de teclas AltNA( se llama al $en: Arc!i,o de la )arra de $en:( luego si se presiona la
tecla A( G o I( se llamarn a los e,entos clic de Abrir( Guardar o Imprimir( respecti,amente#
La Propiedad *!ecLed que no fue utilizada en el programa pasado sir,e para colocar un
s"mbolo de c!equeo al lado del caption del submen:( tiene la siguiente forma:
<e tal manera que se muestre que !ay un elemento acti,o y uno inacti,o( en el caso del
ejemplo se supone que se pueden crear dos tipos de grficos %logar"tmico y semilogar"tmico& y
seg:n se muestra actualmente se est utilizando el grfico de tipo logar"tmico#
La propiedad +nabled se utiliza para !abilitar o des!abilitar un men: o submen:( por
ejemplo si un tipo de men: no aplica para las opciones que se pueden crear durante una aplicacin
se puede des!abilitar y de este modo no estar"a disponible# Por ejemplo en /ord cuando no se !a
copiado nada al portapapeles la seleccin Pegar est des!abilitada ya que no se puede pegar
!asta ese momento ning:n elemento# *uando se copia una seleccin al portapapeles se !abilita de
nue,o el submen: pegar para que esta opcin pueda ser utilizada#
La propiedad Visible M $en:s emergentes :
Los men:s emergentes son muy utilizados en las aplicaciones de /indo0s# Para ello se
utiliza la propiedad Visible de los men:s y la instruccin Popup$enu# Los men:s emergentes
aparecen usualmente cuando se !ace clic con el botn secundario sobre alg:n elemento de la
aplicacin# V) 1#2 contiene estas !erramientas que pueden desplegar un men: flotante
independiente de la barra de men:s que presenta tambi-n opciones de ejecucin#
Programa #(. "-.C Em-rg-.t-:
+ste programa tiene la finalidad de presentar un men: emergente cuando se !ace clic con
el botn secundario del mouse sobre un control cuadro de imagen %Picture)o=&#
Para ello( seleccione un formulario y dir"jase al +ditor de $en:s# Llene el editor con los
siguientes datos y propiedades:
$en: Principal *aption: <ibujar
6ame: mnu<ibujar
Visible: 3also
%desacti,e la casilla de ,erificacin&
Primer Submen: %con una sangr"a& *aption: <ibujar *"rculo
6ame: mnu*irculo
Visible: Verdadero
Segundo Submen: %con una sangr"a& *aption: <ibujar L"nea
6ame: mnuLinea
Visible: Verdadero
Programacin con VB 6.0 Ing. Kelvin Atencio
Luego ,aya al formulario y agregue un Picture)o= %de nombre Picture4&( despu-s escriba
el siguiente cdigo:
Private Sub Picture1_+ou(e=p(*utton ?( Inte7er% Sift ?( Inte7er% _
I ?( Sin7le% J ?( Sin7le)
If *utton = / Ten
Popup+enu mnu@ibu5ar
End If
End Sub
Private Sub mnuCirculo_Click()
Picture1.Circle (1000% 1000)% .00% vb;ed
End Sub
Private Sub mnuGinea_Click()
Picture1.Gine (1.00% 1.00)K(/000% /000)% vb*lue
End Sub
+jecute la aplicacin( presione el botn secundario del mouse sobre el control Picture4 y
,erifique que se desplega un men: emergente con las opciones <ibujar *irculo y <ibujar L"nea( si
!ace clic en alguno de ellos se llamarn a las instrucciones correspondientes#
+ste programa aparece en la Seccin <etallada de programas e=plicando algunas de sus
instrucciones principales#
Programacin con VB 6.0 Ing. Kelvin Atencio
1. COLORES EN VISUAL BASIC:
Los colores en V) 1#2 pueden ser trabajados o asignados de distintas formas:
La principal es asignar un color de los ,alores predeterminados de V)( estos se pueden
,isualizar en el +=aminador de Dbjetos mediante la palabra *olor*onstants( estos son:
,b)lacL %6egro&
,b)lue %Azul&
,b*yan %Aguamarina&
,bGreen %Verde&
,b$agenta %3ucsia&
,bJed %Jojo&
,b/!ite %)lanco&
,bKello0 %Amarillo&
Pero si slo se trabajara con estos colores se estar"a muy limitado( por ello el lenguaje
cuenta con una manera de colores personalizados( cuenta con la instruccin JG)#
+sta funcin combina tres colores principales J %Jojo& G %Verde& y ) %Azul& M por sus
siglas en ingl-s %Jed( Green )lue& M para crear colores personalizados( el ,alor de cada
componente principal puede ,ariarse desde el cero !asta el ?EE generando mas de 41 millones de
posibilidades de colores#
La instruccin JG) tiene la siguiente forma:
2ariable = ;>*(;ed% >reen% *lue)
<onde ,ariable es el nombre de una ,ariable que almacena un ,alor tipo Long %6um-rico
+ntero de gran e=tensin& que de,uel,e la funcin JG)( red es el tinte del color rojo( green el tinte
de color ,erde y )lue el tinte de color azul( como ya se !a dic!o estos ,alores pueden estar entre 2
y ?EE#
<e esta manera la combinacin JG)% 2( 2( 2& de,uel,e el color negro mientras que la
combinacin JG) %?EE( ?EE( ?EE& de,uel,e el color blanco#
Programa #9. Color-2 m-d/a.t- R1B:
+l siguiente programa combina tres barras de desplazamiento !orizontal para generar
cambios en los colores de la funcin JG)#
*oloque tres barras de desplazamiento !orizontal con las siguientes propiedades:
Primera )arra 6ame: CScrollJed
$inI2
$a=I?EE
Segunda )arra 6ame: CScrollGreen
$inI2
$a=I?EE
9ercera )arra 6ame: CScroll)lue
$inI2
$a=I?EE
*oloque cuatro 3iguras %S!ape& de la siguiente manera:
La primera de nombre S!pJed( arriba de la barra de desplazamiento CScrollJed#
La segunda de nombre S!pGreen( arriba de la barra de desplazamiento CScrollGreen#
La tercera de nombre S!p)lue( arriba de la barra de desplazamiento Cscroll)lue#
Programacin con VB 6.0 Ing. Kelvin Atencio
La cuarta de tama'o un poco mas grande de nombre S!pGenerado( sola en la parte
derec!a del formulario#
*ambie todas las propiedades de 3illStyle de estos rectngulos a 2 M Slido %2 M Solid&
+l formulario debe tener la siguiente apariencia:
A!ora( se ,a agregar el siguiente cdigo al formulario:
Private Sub #Scroll;ed_Can7e()
Sp;ed.<illColor = ;>*(#Scroll;ed.2alue% 0% 0)
Sp>enerado.<illColor = ;>*(#Scroll;ed.2alue% _
#Scroll>reen.2alue% #Scroll*lue.2alue)
End Sub
Private Sub #Scroll>reen_Can7e()
Sp>reen.<illColor = ;>*(0% #Scroll>reen.2alue% 0)
Sp>enerado.<illColor = ;>*(#Scroll;ed.2alue% _
#Scroll>reen.2alue% #Scroll*lue.2alue)
End Sub
Private Sub #Scroll*lue_Can7e()
Sp*lue.<illColor = ;>*(0% 0% #Scroll*lue.2alue)
Sp>enerado.<illColor = ;>*(#Scroll;ed.2alue% _
#Scroll>reen.2alue% #Scroll*lue.2alue)
End Sub
+jecute el programa# Puede ,er las ,ariaciones de los colores mientras cambia las
posiciones de las barras de desplazamiento( tanto indi,idualmente como el color generado por la
combinacin de los tres colores#
Programacin con VB 6.0 Ing. Kelvin Atencio
1%. EL OB'ETO COLLECTION:
+ste objeto se utiliza para agrupar datos como si fuera una lista pero en este caso cada
elemento queda grabado en la memoria como una ,ariable tipo Variant( por lo que cada elemento
tiene una longitud de 41 bytes( sea cual sea el contenido que -ste tenga#
Por almacenar este tipo de datos( puede grabar entonces cualquier tipo de dato que puede
almacenar una ,ariable Variant( como lo son todos los objetos( matrices estndar y los tipos de
datos e=cluyendo las estructuras#
Para crear una nue,a coleccin se usa la siguiente e=presin:
@imDPrivateDPublic BombreColecci'n ?( BeN Collection
+l objeto *ollection tiene los siguientes m-todos y propiedades:
Pro3/-dad o "Jtodo =u.6/8.
$-todo Add Agrega un elemento a la coleccin
Propiedad *ount <e,uel,e el n:mero de elementos de la coleccin
$-todo item <e,uel,e un elemento de la coleccin
$-todo Jemo,e +limina un elemento de la coleccin
Para almacenar( recuperar o eliminar elementos de una coleccin se puede !acer
mediante los "ndices y las cla,es# Si se utiliza el n:mero de "ndice se !ace del mismo modo que
una lista pero a diferencia que los elementos de las colecciones comienzan enumeradas por uno y
no por cero como es el caso de las listas y los cuadros combinados# Para el caso de las cla,es(
-stos son datos tipo String %cadenas de te=to& que se colocan como referencia para almacenar un
elemento( de tal manera que si no conoce el n:mero de "ndice se recurre a la cla,e que debe ser
diferente para cada elemento#
Para agregar un elemento a la coleccin se utiliza la siguiente e=presin#
BombreColecci'n.?dd Elemento6% Clave% *efore% ?fter8
<onde 6ombre*oleccin es el nombre de la coleccin( +lemento es el dato que se quiere
grabar en la coleccin ya sea un ,alor( objeto o cadena de te=to# La cla,e es un dato tipo String
que sir,e como gu"a para encontrar el dato( y )efore y After se utilizan para agregar el dato en una
posicin determinada( por ejemplo:
+iColeccion.?dd "Pedro <ern^ndeV"% "Pedro"% before:=/
Agrega a la coleccin $i*oleccion el elemento 5Pedro 3ernndez7 con cla,e 5Pedro7 en la
posicin n:mero dos#
Para eliminar un elemento de la coleccin se utiliza el m-todo Jemo,e de la siguiente
forma:
BombreColecci'n.;emove Undice
D bien
BombreColecci'n.;emove "Clave"
<e modo que para borrar el elemento 5Pedro 3ernndez7 de la coleccin se usar"a:
+iColecci'n.;emove 1
+n el caso que este elemento est- en la primera posicin o ms directamente con su cla,e:
Programacin con VB 6.0 Ing. Kelvin Atencio
+iColecci'n.;emove "Pedro"
Para obtener un elemento de una coleccin se utiliza el m-todo item( que tal como Jemo,e
puede colocarse tanto su "ndice como su cla,e# 9iene la siguiente forma:
6Set8 2ariable = BombreColecci'n.Item(indice)
o tambi-n
6Set8 2ariable = BombreCColecci'n.Item("Clave")
Si se utilizaron n:meros como cla,es( -stos deben ser con,ertidos mediante la instruccin
*Str para ser usados en el m-todo item o Jemo,e( ya que si es un n:mero entero la coleccin lo
admite como un "ndice#
*omo item es el m-todo predeterminado del objeto *ollection( en la codificacin no es
necesario !acer referencia a -l( se puede simplificar de la siguiente manera:
[Set\ Variable I 6ombre*oleccin%"ndice&
o tambi-n(
[Set Variable I 6ombre*oleccin%5*la,e7&
Programacin con VB 6.0 Ing. Kelvin Atencio
1(. PRO1RA"AS DE "VLTIPLES DOCU"ENTOS
*=OR"ULARIOS "DI+
$<I es la abre,iacin de Interfaz de $:ltiples <ocumentos por su siglas en ingl-s %$ultiple
<ocument Interface&# Los programas con este tipo de interfaz permiten ,isualizar y trabajar con
ms de un documento %3ormulario& al mismo tiempo( estos formularios se encuentran dentro de un
formulario principal contenedor#
Los programas $icrosoft /ord( $icrosoft +=cel son ejemplos de programas con interfaz de
$:ltiples documentos# Se pueden identificar por tener en la )arra de $en: la opcin Ventana que
permite desplazarse entre los distintos documentos abiertos !asta ese momento#
Lo contrario de $<I es S<I %Single <ocument Interface& que son aplicaciones donde
pueden e=istir ,arios formularios tambi-n( pero cada uno es indi,idual y separado y no posee un
formulario principal contenedor#
9odos los formularios poseen una propiedad llamada $<I*!ild que es 3alsa por defecto#
Para el caso de las aplicaciones $<I( este ,alor debe ser cambiado a Verdadero %9rue&# Pero
antes( debe colocarse un formulario principal contenedor como un formulario $<I( de la siguiente
manera:
Se debe dirigir a la )arra de $en: M Proyectos#
Agregar 3ormulario $<I
Agregar un men: !ijo( cambiando la propiedad $<I*!ild de un formulario a
Verdadero %9rue&#
Si no e=iste un 3ormulario $<I en la aplicacin y alg:n formulario tiene la propiedad
$<I*!ild establecida a Verdadero( al llamar al formulario se producir un error#
Al formulario principal contenedor que desde a!ora llamaremos 3ormulario $<I( no se le
pueden agregar todos los controles directamente( se puede el control Picture)o=( que ser,ir para
agregar controles sobre -ste y permitir insertar botones de comandos y todos los dems controles#
9ambi-n puede agregar el control 9imer y el control <ata#
+l tama'o de los controles cuadro de imagen se adaptan automticamente a la parte
superior del formulario $<I( tomando todo el anc!o del formulario( esto se !ace con la intencin
de que funcione como una )arra de Cerramientas#
*uando se establecen formularios $<I y secundarios %$<I*!ild& estos tienen
caracter"sticas muy particulares que pueden distinguirse#
Los formulario $<I en tiempo de dise'o presenta una coloracin mas oscura que
los formularios estndar# Adems en el +=plorador de proyectos tienen una imagen
que los distinguen( al igual que los formularios secundarios y estndar( como se
puede obser,ar en la figura siguiente:
Los formularios secundarios cuando se abren( su rea de trabajo siempre estar
regido por el rea de trabajo del formulario $<I( al ma=imizar el formulario
secundario este tomar el total del formulario $<I( y su t"tulo se combinar con el
1orm)lario E*t2ndar
1orm)lario .ec)ndario
1orm)lario %3I
Programacin con VB 6.0 Ing. Kelvin Atencio
t"tulo del formulario $<I( adems las barras de men:s que tenga el formulario
secundario se combinar con la barra de $en: del formulario $<I#
Al minimizar los formularios secundarios( -stos no se colocarn directamente en la
barra de 9areas( ms bien( se colocarn en la parte inferior del formulario $<I#
Programa #6. Programa "DI:
Para la creacin de un programa con m:ltiples documentos siga los siguientes pasos:
4# *ree un proyecto 6ue,o( en el formulario principal %3orm4& establezca su
propiedad $<I*!ild a Verdadero( cambie el *aption a <ocumento 4#
?# Agregue un formulario $<I( en el men: Proyecto M Agregar 3ormulario $<I#
@# Agregue un control cuadro de imagen %Picture)o=& con propiedad Ceig!t I @TE#
A# Agregue un botn de comando %*ommand4& al control cuadro de imagen
insertado en el paso anterior( de tama'o cuyo alto se adapte al tama'o del control
cuadro de imagen y el anc!o sea de @TE# )orre el contenido de la propiedad
*aption# Luego( cambie su propiedad Picture( buscando la imagen en la carpeta:
5*:SArc!i,os de ProgramasS$icrosoft Visual StudioS*ommonSGrap!icsS)itmapsS9l)r`/UES6e0#bmp7
+stablezca la propiedad Style del botn de comando a 4 M Grap!ical# Se mostrar
la imagen del comando 6ue,o( en el botn de comando# Si no se encuentra la
imagen y la carpeta puede grabarlos en el computador desde la instalacin de
Visual )asic o Visual Studio 1#2#
E# Agregue dos botones de comando comando %*ommand? y *ommand@& del mismo
tama'o que *ommand4( puede colocar como sugerencia en *aption *? y *@# D
deje tal cual est#
1# <ir"jase al formulario 3orm4( y agregue un control cuadro de imagen %Picture4&#
*ambie la propiedad )acL*olor a )lanco# K adems establezca las propiedades
Left y 9op a cero#
+n este formulario agregue el siguiente cdigo:
Private Sub <orm_;e(iVe()
Picture1.#ei7t = Scale#ei7t
Picture1.Midt = ScaleMidt
End Sub
T# +n el 3ormulario $<I agregue el siguiente cdigo:
4ption E!plicit
@im Contador ?( Inte7er
Private Sub +@I<orm_?ctivate()
Contador = 1
End Sub
Private Sub Command1_Click()
@im <ormulario ?( BeN <orm1
Contador = Contador A 1
<ormulario.SoN
<ormulario.Caption = "@ocumento " T Contador
End Sub
Private Sub Command/_Click()
?ctive<orm.Picture1.Circle (.00% .00)% 300% % % % / D 3
End Sub
Private Sub Command3_Click()
?ctive<orm.Picture1.;efre(
End Sub
Programacin con VB 6.0 Ing. Kelvin Atencio
Para probar este programa ejec:telo( ma=imice la ,entana $<I( es decir la ,entana
superior( presione el botn *ommand4 %el que tiene la imagen 6ue,o& se crear un nue,o
<ocumento %<ocumento ?&( coloque los dos de tal manera que sean totalmente ,isibles ambos(
que no se superponga uno del otro( presione el segundo botn de comando se dibujar una elipse
en el formulario acti,o( esto sucede debido a la sentencia Acti,e3orm que detecta el formulario
acti,o y trabaja sobre el de acuerdo a la instruccin# Igualmente sucede con el tercer botn de
comando( pero en este caso borra el contenido de la imagen#
Dtros detalles del programa pueden ,erse en la Seccin <etallada de Programas#
Programacin con VB 6.0 Ing. Kelvin Atencio
19. TRABA'O CON =ICAEROS:
$uc!as ,eces necesitamos guardar la informacin de aplicaciones en un dispositi,o( ya
sea disco duro( disquete u otro dispositi,o de almacenamiento( para cargarlo posteriormente y
continuar introduciendo datos sobre estos arc!i,os ya establecidos#
Para esto Visual )asic posee una !erramienta de trabajo que permite almacenas en
fic!eros la informacin que el programador especifique#
+n /indo0s y en Visual )asic 1#2 e=isten dos tipos de fic!eros:
3ic!eros Ascii
3ic!eros )inarios#
Los primeros almacenan la informacin de acuerdo al cdigo AS*II que pueden ser le"dos
por programas como el )loc de 6otas %6otePad&# Generalmente tienen e=tensin ;#t=t %arc!i,os de
te=to& o ;#bat# +=isten otros arc!i,os que tambi-n guardan la informacin como arc!i,os AS*II(
como son ;#c %arc!i,os de lenguaje de programacin *&( ;#cpp %Arc!i,os de lenguajes de
programacin *NN&( ;#ja,a %arc!i,os de lenguaje de programacin RAVA& o ;#m %Arc!i,os de
programas de $atlab&#
Los fic!eros binarios son fic!eros que de,uel,en la informacin tal como se encuentran en
la memoria# Fstos no son legibles por el bloc de notas y tampoco directamente por el usuario#
Dcupan menos espacios de memoria y pueden ser fcilmente cambiados a formato AS*II al
escribirlos y al leerlos#
+l Acceso de un fic!ero puede ser de alguno de estos tres tipos:
Acceso Secuencial: Leen y escriben los datos secuencialmente( es decir( uno tras
otro y no !ay posibilidad de ,ol,er atrs( el acceso secuencia slo aplica a fic!eros Ascii y por lo
tanto pueden ser le"dos por el bloc de notas %6otePad&# +ste tipo de acceso tiene tres formas de
apertura( una para slo lectura %Input&( y dos para escritura %Dutput y Append&#
Acceso Aleatorio: +stos fic!eros estn formados por registros del mismo tama'o
en bytes( por lo tanto permiten acceder a alguno de ellos sin necesidad de para por todos los
anteriores# +s muy importante resaltar que cada registro debe tener el mismo tama'o en bytes(
para que as" se pueda acceder a un registro espec"fico por su ubicacin en la memoria# La :nica
forma de apertura es Jandom que sir,e tanto para lectura como para escritura de datos# +ste tipo
de acceso almacena la informacin tal como se encuentra en la memoria#
Acceso binario: Son semejantes al acceso aleatorio pero en caso el acceso no
esta basada en registros sino en cada byte#
Para trabajar con fic!eros deben respetarse los siguientes pasos mediante el cdigo:
Apertura del fic!ero
Leer o escribir datos
*errar el fic!ero
Apertura de un fic!ero#
Para abrir un fic!ero se utiliza la sentencia Dpen# +lla debe especificar el tipo de acceso
que se desea#
La instruccin general para abrir un fic!ero es la siguiente:
4pen ?rcivo <or t?cce(o ?( YB\mero 6Gen = Tama-o8
<onde Dpen da la orden de apertura( Arc!i,o es una cadena de te=to que de,uel,e la ruta
y el nombre del fic!ero o arc!i,o que se ,a a abrir( tAcceso es el tipo de acceso de acuerdo a los
Programacin con VB 6.0 Ing. Kelvin Atencio
tres tipos de acceso que se e=plicaron anteriormente %Input( Dutput( Append( Jandom o )inary&(
6:mero es un n:mero entero positi,o %o ,ariable que de,uel,e un n:mero entero positi,o& que
definir el n:mero del fic!ero# La sentencia [Len I 9ama'o\ aplica slo a fic!eros de Acceso
aleatorio( donde tama'o define el tama'o en bytes de cada registro#
La apertura de un fic!ero nos permite escribir o leer datos en el mismo#
6o puede !aber fic!eros distintos abiertos con el mismo n:mero# Para ello V) 1#2 dispone
de una funcin llamada <ree<ile que de,uel,e un n:mero entero que no !a sido utilizado por
ning:n fic!ero#
3ic!eros de Acceso Secuencial:
Si en un fic!ero de acceso secuencial se utiliza Input para abrir un fic!ero que no e=iste(
el programa producir un error# Si se utiliza el tipo de acceso 4utput a un fic!ero que no e=iste( se
crear uno nue,o( si ya e=ist"a borra su contenido para empezar desde el comienzo( si desea
conser,ar el contenido del fic!ero utilice el tipo de acceso ?ppend#
Leer o escribir datos en un fic!ero secuencial:
PARA LECTURA:
Sentencia Input:
Para leer y guardar el conjunto de caracteres escritos en una l"nea de un arc!i,o de te=to
se puede utilizar la sentencia Input de la siguiente manera:
Input YB\mero% 2ariable1% 2ariable/% 2ariable3 ...
<onde 6:mero( !ace referencia al n:mero con el cual el fic!ero fue abierto y las ,ariables
4( ?( @( ### son los nombres de las ,ariables que almacenarn las distintas l"neas de escritura del
arc!i,o o fic!ero abierto#
Programa #:. S-.t-.6/a I.3ut:
As" por ejemplo si tenemos un programa con un botn de comando %*ommand4&( una
etiqueta %Label4& que tenga un anc!o %Propiedad /idt!& de mediana longitud y un control de
cuadros de dilogos comunes %*ommon<ialog4& y adems tenemos el siguiente cdigo:
4ption E!plicit
Private Sub Command1_Click()
4n Error >oTo +en(a5e
@im ?rcivo ?( Strin7% Ginea1 ?( Strin7
@im Ginea/ ?( Strin7% Ginea3 ?( Strin7
Common@ialo71.SoN4pen
?rcivo = Common@ialo71.<ileBame
4pen ?rcivo <or Input ?( Y1
Input Y1% Ginea1% Ginea/% Ginea3
Gabel1.Caption = Ginea1 T Cr(13) T Ginea/ T Cr(13) T Ginea3
E!it Sub
+en(a5e:
Select Ca(e Err
Ca(e Q/: +(7*o! "El arcivo no tiene tre( lUnea(" T Cr(13) T
"Eli5a un ?rcivo con tre( o m^( lUnea("% vbE!clamation% "Error"
Ca(e O.: E!it Sub
Ca(e El(e: +(7*o! "Error " T Err.Bumber T " " T Err.@e(cription
End Select
End Sub
*uando presiona el botn de comando( puede elegir un arc!i,o de te=to %;#t=t& que tenga
tres o ms de l"neas %si lo elige de menos l"neas se mostrar un mensaje de error&# La ,ariable
Programacin con VB 6.0 Ing. Kelvin Atencio
Linea4 almacenar los caracteres de la primera l"nea y as" sucesi,amente llegar !asta la tercera
l"nea( estas ,ariables sern mostradas en la etiqueta 4#
*omo ya la mayor"a de los comandos !an sido e=plicados en la Seccin <etallada de
Programas en otros programas( este programa no aparece en dic!a seccin#
Puede introducir ,alores num-ricos en el arc!i,o de te=to y luego mediante la instruccin
de con,ersin a num-rico %sea *<bl( *Sgl u otra& puede operar matemticamente con ellos# Por
ejemplo( si se introduce en la primera l"nea el ,alor num-rico 422( en la segunda 422 y en la
tercera 4?2 y adems se cambia la l"nea de comando del programa:
Gabel1.Caption = Ginea1 T Cr(13) T Ginea/ T Cr(13) T Ginea3
Por la siguiente l"nea
Gabel1.Caption = C@bl(Ginea1)AC@bl(Ginea/)AC@bl(Ginea3)
Al presionar el botn de comando y abrir el arc!i,o con los ,alores guardados
anteriormente la etiqueta de,ol,er @?2( que es el ,alor de la suma de los tres ,alores#
Sentencia Line Input:
La forma general de la funcin Line Input es:
Gine Input YB\mero% 2ariable1
Gine Input YB\mero% 2ariable/
###
<onde Variable4 almacena los caracteres e=istentes en la primera l"nea del fic!ero(
Variable? la segunda l"nea y as" sucesi,amente tantas ,eces como tantas l"neas crea necesario#
La funcin Line Input tambi-n lee una l"nea completa !asta llegar al retorno de carro o un
retorno de carro mas a,ance de l"nea M *!r%4@& y *!r%42& respecti,amente .# Casta a!ora no !e
podido distinguir la diferencia entre esta funcin y la anterior Input ( la :nica diferencia que mi
e=periencia me !a dado es que para Line Input necesito escribir ms cdigo para asignar cada
l"nea a cada ,ariable#
Funcin Input:
La funcin Input tiene la siguiente forma general:
2ariable = Input(nCaractere(% YB\mero)
<onde Variable es una ,ariable que almacena los caracteres indicados por n*aracteres(
por ejemplo la siguiente sentencia:
2ariable = Input(10% Y1)
Almacena en Variable los primeros 42 caracteres del fic!ero abierto mediante la asignacin
n:mero 4#
Si se desea que la ,ariable almacene todos los caracteres de un fic!ero o arc!i,o se puede
utilizar la siguiente instruccin:
2ariable = Input(G4<(B\mero)% YB\mero)
Ka que LD3 de,uel,e el n:mero total de bytes o caracteres que contiene un fic!ero#
PARA ESCRITURA:
Las sentencias de escritura slo se pueden utilizar en fic!eros secuenciales que fueron
abiertos mediante el tipo de acceso Dutput o Append#
Sentencia Print:
La sentencia Print tiene la siguiente forma:
Print YB\mero% 6Spc(n)8_6Tab(n)8_2ariable1_ 2ariable/_ 2ariable3_...
<onde 6:mero es el ,alor num-rico del fic!ero abierto donde se desea escribir( Variable4(
?( @###( son las ,ariables que se ,an a agregar al fic!ero o arc!i,o abierto# Las sentencias
Programacin con VB 6.0 Ing. Kelvin Atencio
opcionales son Spc%n& que indica si desea dejar un n:mero de espacios %indicados por n& al
comenzar a escribir( o un n:mero de tabulaciones %indicados por n& al comenzar de escribir en la
l"nea#
Por ejemplo las siguientes l"neas de comando:
4ption E!plicit
Private Sub Command1_Click()
@im 2ariable1 ?( Strin7% 2ariable/ ?( Strin7
4pen "C:L<icero.t!t" <or 4utput ?( Y1
2ariable1 = "Primera Cadena"
2ariable/ = "Se7unda Cadena"
Print Y1% Spc(.)_ `2ariable( = a2ariable1_a% a_ 2ariable/
End Sub
*uando ejecuta el programa y !ace clic en *ommand4 aparentemente no pasa nada( pero
se !a creado un nue,o arc!i,o %llamado 3ic!ero& en la unidad *: %<isco <uro& donde se escribe(
primero dejando cinco espacios en blanco:
Var/a4l-2 W Pr/m-ra Cad-.a! S-gu.da Cad-.a
Salga del programa( busque el arc!i,o fic!ero en *: con el +=plorador de /indo0s y
,erifique#
*omo ya se e=plic anteriormente( el arc!i,o fue abierto mediante el tipo de acceso
Dutput( esto !ace que se cree el arc!i,o si no e=iste y adems si e=iste borra el contenido del
fic!ero( para conser,ar el contenido del arc!i,o de te=to y escribir al final debe sustituirse la
palabra Dutput por Append en el programa#
Sentencia Write:
La sentencia /rite tiene la siguiente forma general:
Mrite YB\mero% 2ariable1_ 2ariable/_ 2ariable3...
Una diferencia rele,ante que tiene esta sentencia con respecto a la sentencia Print( es que
-sta separa las ,ariables en el fic!ero por comas( adems encierra entre comillas las cadenas de
te=to( entre numerales %B& los ,alores de fec!as y boolean ( y agrega al final de la l"nea un retorno
de carro N a,ance de l"nea( constantes de V) 1#2 *!r%4@& y *!r%42& respecti,amente#
Por lo tanto( si escribe otra sentencia /rite debajo( se escribir en la siguiente l"nea del
fic!ero#
Por ejemplo:
Private Sub Command1_Click()
4pen "C:L<icero.t!t" <or 4utput ?( Y1
Mrite Y1% "Saludo("
Mrite Y1% "#o9 e("_ @ate
Mrite Y1% "Ga #ora e("_ #our(Time) T ":" T +inute(Time)
End Sub
Al abrir el arc!i,o 3ic!ero en la unidad *: este mostrar un arc!i,o como el siguiente:
Programacin con VB 6.0 Ing. Kelvin Atencio
+scribiendo al lado de 5Coy es7 la fec!a actual y al lado de 5La !ora es7 la !ora actual#
3ic!ero de Acceso Aleatorio:
Los fic!eros de acceso aleatorio son una modalidad de fic!eros binarios( es decir( poseen
la informacin tal como se encuentra en la memoria( se caracteriza por tener registros que deben
tener el mismo tama'o en bytes( aunque parezca una des,entaja( se !ace con la finalidad de
encontrar un registro de los almacenados de acuerdo al n:mero de bytes de los registros( por
ejemplo( si cada registro del fic!ero tiene un tama'o fijo de 4? bytes( para encontrar el primer
registro el programa se traslada al byte n:mero 4( para el segundo registro al byte n:mero 4@ y as"
sucesi,amente( !asta llegar al registro deseado#
+l tipo de Acceso es Jandom( que sir,e tanto para lectura como para escritura( adems al
final de la sentencia Dpen debe agregarse el tama'o de registro Len I especificando el tama'o de
cada registro en bytes( de la siguiente manera:
4pen ?rcivo <or ;andom ?( YB\mero Gen = *9te(
<onde Arc!i,o es una cadena de te=to que debe tener la ruta y el nombre del arc!i,o o
fic!ero que se ,a a abrir( 6:mero es el ,alor num-rico entero que se asigna al fic!ero y )ytes es el
tama'o de cada registro en bytes#
Los fic!eros de acceso aleatorios pueden grabar informacin de tal manera que puede
crear una base de datos que puede ser almacenada en un dispositi,o de memoria %disco duro(
disquete( etc& para operar con los registros posteriormente# La des,entaja que !asta a!ora
presenta V) 1#2 es que no posee sentencias para eliminar registros de este tipo de fic!ero#
+speremos que las ,ersiones posteriores posean dic!as funciones#
PARA LECTURA:
Sentencia Get:
La sentencia Get se utiliza para leer u obtener registros almacenados en el fic!ero( tiene la
siguiente forma general:
>et YB\mero% ;e7i(tro% 2ariable
<onde 6:mero es el n:mero que se asign al fic!ero de donde se quiere obtener
informacin( Jegistro es un n:mero natural que indica el n:mero de registro y Variable es la
,ariable que almacena el ,alor que se encuentra grabado en la memoria# Variable puede ser un
tipo de dato( un objeto %Dbject& o una estructura %9ype&#
PARA ESCRITURA:
Sentencia Put:
La sentencia Put tiene una forma similar a la sentencia Get( se generaliza como:
Put YB\mero% ;e7i(tro% 2ariable
<onde 6:mero es el n:mero de fic!ero donde quiere escribirse( Jegistro es un n:mero
natural que contiene el n:mero de registro y Variable es la ,ariable que contiene el ,alor( cadena(
objeto o estructura que se escribir# Si se da un ,alor de registro que ya estaba en lista( se
rescribir su ,alor( se borrar el registro anterior# Por lo tanto esta sentencia sir,e tanto para
escribir como para reemplazar#
El/m/.ar r-g/2tro2 d- u. K/6N-ro 6o. A66-2o Al-ator/o:
Programacin con VB 6.0 Ing. Kelvin Atencio
Aunque no e=iste un m-todo para eliminar registros( se puede seguir un conjunto de pasos
que permiten eliminarlos( estos son:
4# Abrir un arc!i,o o fic!ero de acceso aleatorio pro,isional# +l Arc!i,o original queda
!asta a!ora intacto#
?# Pasar los registros que no sern borrados al fic!ero pro,isional#
@# *errar el fic!ero de original mediante la sentencia Clo(e YB\mero#
A# )orrar de la memoria el arc!i,o original mediante la instruccin Qill%Arc!i,o&#
E# Abrir de nue,o el arc!i,o original con tipo de acceso aleatorio#
1# <e,ol,er los registros#
T# *errar el arc!i,o pro,isional#
V# )orrar de la memoria el arc!i,o pro,isional con la instruccin Qill%Pro,isional&# +ste
atento a que el arc!i,o pro,isional no tome el nombre de un arc!i,o e=istente( de ser
as" el arc!i,o ser borrado#
+n el siguiente programa se utiliza el siguiente procedimiento para eliminar registros#
Programa #;. E7t-.2/8. d-l Programa #: Q Coord-.ada2:
+l siguiente programa es una e=tensin del programa BT que se planteaba usar el control
List)o= %*uadro de lista& para agregar ,alores de coordenadas 8 e K#
A!ora con el trabajo de los fic!eros nos ofrecen la posibilidad de guardar estos ,alores en
arc!i,os que puedo utilizar posteriormente( agregando o eliminando ,alores#
Agregue un control *ommon <ialog *ontrol 1#2 %cuadros de dilogos comunes encontrado
en la seccin de *omponentes del men: Proyecto o presione la combinacin *trlN9&( el nombre de
este control ser el que ,iene por defecto %*ommon<ialog4&
Adems( agregue tres botones adicionales a los que contiene el formulario con los
nombres cmd6ue,o( cmdAbrir( cmd*errar#
Agregue el siguiente cdigo( ademas del que ya aparece:
Private Sub cmdBuevo_Click()
@im Buevo ?( Strin7
Buevo = Input*o!("IntroduVca un nombre de ?rcivo"% "Buevo")
?rcivo = CStr("C:L" A Buevo A ".dat")
4pen ?rcivo <or ;andom ?( Y1 Gen = ,
If G4<(1) H 0 Ten
<or ;e7i(tro = 1 To G4<(1) D ,
>et Y1% ;e7i(tro% Punto
l(tPunto(.?ddItem "(" T Punto.I T "%" T Punto.J T ")"
+onitor.Circle (Punto.I% Punto.J)% 30% vb;ed
Be!t ;e7i(tro
End If
t!tI.Set<ocu(
End Sub
Private Sub cmd?brir_Click()
Common@ialo71.<ilter = "?rcivo( C.@atZC.dat"
Common@ialo71.SoN4pen
?rcivo = Common@ialo71.<ileBame
4pen ?rcivo <or ;andom ?( Y1 Gen = ,
<or ;e7i(tro = 1 To G4<(1) D ,
>et Y1% ;e7i(tro% Punto
l(tPunto(.?ddItem "(" T Punto.I T "%" T Punto.J T ")"
+onitor.Circle (Punto.I% Punto.J)% 30% vb;ed
Be!t ;e7i(tro
t!tI.Set<ocu(
End Sub
Programacin con VB 6.0 Ing. Kelvin Atencio
Private Sub cmdCerrar_Click()
Clo(e Y1
l(tPunto(.Clear
+onitor.;efre(
End Sub
XO5o: ACDJA( *A$)I+ +L *D69+6I<D <+ LDS SIGUI+69+S +V+69DS:
Private Sub cmdIn7re(ar_Click()
Punto.I = CInt(t!tI)
Punto.J = CInt(t!tJ)
+onitor.Circle (Punto.I% Punto.J)% 30% vb;ed
l(tPunto(.?ddItem "(" T Punto.I T "%" T Punto.J T ")"
;e7i(tro = G4<(1) D , A 1
Put Y1% ;e7i(tro% Punto
t!tI = ""
t!tJ = ""
t!tI.Set<ocu(
End Sub
Private Sub cmdEliminar_Click()
@im ;e7Eliminar ?( Inte7er
;e7Eliminar = l(tPunto(.Gi(tInde! A 1
4pen "C:LProvi(ional1/3.dat" <or ;andom ?( Y/ Gen = ,
<or ;e7i(tro = 1 To G4<(1) D , K 1
If ;e7i(tro H= ;e7Eliminar Ten
>et Y1% ;e7i(tro A 1% Punto
Put Y/% ;e7i(tro% Punto
El(e
>et Y1% ;e7i(tro% Punto
Put Y/% ;e7i(tro% Punto
End If
Be!t ;e7i(tro
Clo(e Y1
Fill (?rcivo)
l(tPunto(.Clear
+onitor.;efre(
4pen ?rcivo <or ;andom ?( Y1 Gen = ,
<or ;e7i(tro = 1 To G4<(/) D ,
>et Y/% ;e7i(tro% Punto
Put Y1% ;e7i(tro% Punto
l(tPunto(.?ddItem "(" T Punto.I T "%" T Punto.J T ")"
+onitor.Circle (Punto.I% Punto.J)% 30% vb;ed
Be!t ;e7i(tro
Clo(e Y/
Fill ("C:LProvi(ional1/3.dat")
End Sub
Adems agregue un mdulo estndar %+l mdulo estndar se agregar mediante la barra de $en:
en Proyecto M Agregar $dulo& y en -l agregue el siguiente cdigo:
Public T9pe Punto(
I ?( Inte7er
J ?( Inte7er
End T9pe
Programacin con VB 6.0 Ing. Kelvin Atencio
+n la seccin de declaraciones del formulario donde aparece Dption +=plicit agregue
debajo:
@im Punto ?( Punto(% ;e7i(tro ?( Inte7er% ?rcivo ?( Strin7
+jecute el formulario( !aga clic sobre el botn cmd6ue,o y establezca un nombre para el
arc!i,o nue,o( agregue ,alores de coordenadas y estos se irn grabando en el disco duro en un
arc!i,o cuyo nombre usted estableci#
Para cerrar el fic!ero presione el botn con el nombre cmd*errar( si intenta abrir un arc!i,o
o crear un arc!i,o nue,o y est abierto otro fic!ero el programa generar un error#
Puede borrar puntos de coordenadas mediante el botn cmd+liminar( en este caso %a
diferencia del programa BT que borraba slo el dato de la lista& el programa nue,o borra el punto
de la lista y del cuadro de imagen#
Si desea tener una e=plicacin detallada sobre la codificacin de este pasado programa
puede dirigirse a Seccin <etallada de Programas al final de este trabajo de in,estigacin#
3ic!ero de Acceso )inario:
*omo ya se !a dic!o este tipo de fic!ero es muy parecido al fic!ero de acceso aleatorio
de,uel,e la informacin tal como se encuentra en la memoria( por lo tanto no pueden ser le"dos por
el bloc de notas( la diferencia radica en que estos no almacenan la informacin a tra,-s de
registros sino por cada byte#
La forma general para abrir un fic!ero con acceso binario es:
4pen ?rcivo <or *inar9 ?( YB\mero
<onde Arc!i,o es una cadena de te=to que indica el nombre y la ruta del fic!ero y 6:mero
es el n:mero que se asigna al fic!ero#
Por ejemplo:
@im *9te@ieV ?( Strin7
?rcivo = "C:L<icero.dat"
4pen ?rcivo <or *inar9 ?( Y1
>et Y1% 10% *9te@ieV
*9te@ieV=;
Put Y1% 10% *9te@ieV
Clo(e Y1
+n este caso se abre un fic!ero( se lee el d-cimo byte y se le asigna a la ,ariable )yte<iez(
luego se cambia la ,ariable a r y se escribe en esa misma posicin la ,ariable#
*ierre de 3ic!ero:
9anto los fic!eros de acceso secuencial( los de acceso aleatorio y binarios se cierran de la
misma manera( se utiliza la siguiente sinta=is:
Clo(e YB\mero
<onde 6:mero es el n:mero de fic!ero que se desea cerrar( si se omite se cierran todos
los fic!eros( tambi-n se puede utilizar el m-todo Jeset para cerrar todos los fic!eros#
Dtras funciones de 3ic!eros:
Para ubicar otras funciones de fic!eros puede dirigirse al +=aminador de Dbjetos y escribir
%en buscar& la palabra 3ileSystem#
Programacin con VB 6.0 Ing. Kelvin Atencio
16. I"PRI"IR TE&TO E I",1ENES:
Para imprimir te=to e imgenes se utiliza el objeto Printer( que como todos los objetos
posee propiedades y m-todos#
+l objeto printer posee una coleccin que contiene todas las impresoras instaladas en el
computador( para acceder a ella se pueden utilizar las siguientes l"neas de comando:
Agregue un cuadro combinado %*ombo)o=& de nombre *ombo4a un formulario y escriba
el siguiente cdigo:
Private Sub <orm_Goad()
@im Impre(ora ?( Printer
<or Eac Impre(ora In Printer(
Combo1.?ddItem Impre(ora.@eviceBame
Be!t
End Sub
Al ejecutar el programa el cuadro combinado contiene todas las impresoras instaladas en
su computador#
Para colocar una impresora como impresora predeterminada se utiliza la instruccin:
Set Printer = Printer((Undice)
<onde "ndice indica el n:mero de la lista de la impresora# Las impresoras estn
enumeradas desde cero !asta Printer.Count b 1. Para conocer el n:mero de "ndice utilice la
siguiente sinta=is:
Private Sub <orm_Goad()
@im Indice ?( Inte7er
<or Indice = 0 To Printer(.Count K 1
Combo1.?ddItem Indice T " K " T Printer.@eviceBame
Be!t
End Sub
+n este caso al cargar el formulario( el cuadro combinado contendr el "ndice de la
impresora al lado de su nombre de identificacin#
Para imprimir te=to mediante el objeto Printer se utiliza el m-todo Print de la siguiente
manera:
Printer.Print Te!to
<onde te=to contiene la cadena de caracteres que se desea imprimir( se puede llamar al
contenido de una caja de te=to %9e=t)o=& si se coloca su nombre( de la siguiente manera:
Printer.Print Te!t1.Te!t
Para imprimir imgenes de debe llamar mediante la sentencia:
Printer.PaintPicture GoadPicture (;uta)% @i(tanciaI% @i(tanciaJ
<onde Juta es una cadena de te=to que contiene la ruta y el nombre de la imagen que se
desea imprimir( <istancia8 es la distancia en puntos que e=iste entre el margen izquierdo del papel
y la ubicacin donde se desea imprimir la imagen y <istanciaK la distancia entre el margen superior
y la ubicacin donde se desea imprimir la imagen#
Adems de poder imprimir te=to e imgenes( el objeto printer soporta los m-todos grficos
e=plicados en el control Picture)o= %*ircle( Line( *urrent8( *urrentK&( puede imprimir( c"rculos(
arcos( elipses( cuadrados( rectngulos( etc# Pero en este caso !ay que resaltar que la impresora
generalmente tiene ms resolucin que el monitor y por lo tanto al utilizar un m-todo grfico con el
Programacin con VB 6.0 Ing. Kelvin Atencio
objeto Printer debe tomar en cuenta que los puntos por pulgadas de la impresora son muc!o mayor
a los puntos por pulgada del monitor# Al momento de imprimir se obser,an -stos ms peque'os#
Programa #E. O45-to Pr/.t-r:
Para la realizacin de este programa slo es necesario agregar un botn de comando
%*ommnad4& y un cuadro de te=to %9e=t4& a un formulario( agregue despu-s el siguiente cdigo:
Private Sub Command1_Click()
If Te!t1.Te!t XH "" Ten
Printer.CurrentI = 1.
Printer.CurrentJ = /0
Printer.<ontBame = "Time( BeN ;oman"
Printer.<ontSiVe = 13
Printer.Print Te!t1.Te!t
Printer.PaintPicture GoadPicture _
("C:LMindoN(L?ro(.bmp")% Printer.ScaleMidt D /% /0
Printer.Circle (/000% /000)% 1000% vb;ed
Printer.Gine (0% 1.00)K(R00% .00)% vb*lack
Printer.CurrentI = Printer.ScaleMidt D / K 300
Printer.CurrentJ = Printer.Scale#ei7t K .00
Printer.Print "P^7ina " T Printer.Pa7e
Printer.End@oc
El(e
+(7*o! "Bo a9 te!to para imprimir"% vbE!clamation% "Te!to
vacUo"
End If
End Sub
+jecute el programa( escriba sobre el cuadro de te=to y luego presione el botn de
comando para en,iar a imprimir#
+n el programa anterior se utiliza el m-todo +nd<oc del objeto Printer para en,iar el
documento a la impresora( este m-todo da fin a la inclusin de elementos y da comienzo a la
impresin#
+=isten otros m-todos muy :tiles( uno de ellos es 6e0Page( que contin:a el trabajo de
impresin en una nue,a pgina y el m-todo Qill<oc que cancela el trabajo de impresin#
+=iste una enumeracin en V) 1#2 llamada PrinterDbject*onstants que puede ,erse desde
el e=aminador de objetos( ella contiene las distintas constantes que pueden establecerse a las
propiedades en un trabajo de impresin# <efinen el tipo de papel a usar( orientacin del mismo(
color y calidad de la impresin y otras propiedades#
Programacin con VB 6.0 Ing. Kelvin Atencio
1:. EL PORTAPAPELES:
+l portapapeles de /indo0s puede llamarse mediante la palabra Clipboard# Permite unas
de las acciones mas comunes usadas bajo ambiente /indo0s: copiar( cortar y pegar#
+ste objeto no posee propiedades ni e,entos( slo contiene seis m-todos que sir,en para
colocar( obtener( ,erificar el formato o borrar el contenido de -l# +=isten dos m-todos que sir,en
para trabajar con te=to: Set9e=t y Get9e=t> que coloca informacin o obtiene cadenas de te=to del
portapapeles respecti,amente# Dtros dos m-todos que funcionan de la misma manera pero para
grficos( son: Set<ata y Get<ata# +l m-todo Get3ormat de,uel,e un ,alor booleano que indica si
un elemento del portapapeles se ajusta a un formato determinado y el m-todo *lear se utiliza para
eliminar o ,aciar la informacin del portapapeles( tanto para te=to como para grficos#
+l portapapeles puede contener dos elementos siempre y cuando no tengan el mismo
formato( es decir( si pega una imagen al portapapeles y luego un te=to( permanecen los dos
elementos contenidos en el mismo# Pero si coloca un te=to( y posteriormente otro te=to se elimina
el primero para colocar el segundo#
5etalles de los m7todos-
"Jtodo S-tT-7t:
*omo ya se !a mencionado el m-todo Set9e=t del objeto *lipboard se utiliza para colocar
una cadena de te=to en el portapapeles( lo que corresponde a la accin de /indo0s *opiar( se
utiliza la siguiente sinta=is:
Clipboard.SetTe!t Te!to 6% <ormato8
<onde 9e=to es la cadena de te=to que se ,a a colocar en el portapapeles# Puede ser
alguna ,ariable o un objeto que contenga una cadena de te=to %por ejemplo el contenido de la
propiedad caption de una etiqueta&#
3ormato es opcional y se refiere a algunos de los formatos que pueden ser reconocidos(
para cadenas de te=to los formatos pueden ser:
=ormato Valor NumJr/6o D-26r/36/8.
,b*39e=t 4 %Predeterminado& 9e=to
,b*3LinL .411A2 Informacin de con,ersacin <<+
,b*3J93 .411@U 3ormato de te=to enriquecido
9ambi-n puede copiar un fragmento de un cuadro de te=to en el portapapeles si utiliza la
propiedad Sel9e=t de los mismos# Por ejemplo si utiliza la instruccin:
Clipboard.SetTe!t Te!t1.SelTe!t
*opia en el portapapeles la cadena de te=to seleccionada en el cuadro de 9e=to %9e=t4&#
"Jtodo 1-tT-7t:
+ste m-todo se utiliza para de,ol,er el contenido grabado en el portapapeles( lo que
corresponde a la accin de /indo0s Pegar( se utiliza la siguiente sinta=is:
Clipboard.>etTe!t(6<ormato8)
<onde 3ormato tambi-n es opcional y se refiere a los formatos de te=tos descritos en la
parte anterior#
Si el formato escrito en el m-todo Get9e=t no coincide con el que est grabado en el
portapapeles( se de,uel,e una cadena ,ac"a#
"Jtodo S-tData:
+ste m-todo se utiliza para colocar una imagen o grfico en el portapapeles( tambi-n
corresponde a la accin de copiar( pero en este caso como ya fue mencionado es para imgenes y
grficos( tiene la siguiente forma:
Clipboard.Set@ata <uenteIma7en6% <ormato8
Programacin con VB 6.0 Ing. Kelvin Atencio
<onde 3uenteImagen es la imagen que se desea colocar en el portapapeles( puede ser
una imagen contenida en un cuadro de imagen si utiliza la propiedad Image de los Picture)o= %no
la propiedad Picture&( o puede colocar alguna imagen contenida en el disco duro si agrega
LoadPicture como se indica a continuacin:
Clipboard.Set@ata GoadPicture(;uta)6% <ormato8
<onde Juta define la ruta y el nombre de la imagen que desea pegar en el portapapeles(
los formatos aceptados para imgenes son las siguientes:
=ormato Valor NumJr/6o D-26r/36/8.
,b*3)itmap ? Imagen de $apa de )its %)$P&
,b*3$etafile @ $etarc!i,o %/$3&
,b*3<I) V Imagen de mapa de bits independiente %<I)&
,b*3Palette U Paleta de colores
"Jtodo 1-tData:
Se utiliza para pegar imgenes llamadas desde el portapapeles( tiene la siguiente forma:
Clipboard.>et@ata (6<ormato8)
*omo en todos los casos formato es opcional( puede tomar cualquiera de los ,alores o
constantes descritos en el punto anterior( de colocarse debe ir entre par-ntesis y si se omite( el
portapapeles alige el formato apropiado con el que fue grabado#
"Jtodo 1-t=ormat:
+ste m-todo se utiliza para ,erificar el formato del te=to o imagen contenida en el
portapapeles# Slo puede ser ,erdadero %9rue& o falso %3alse&( que corresponde al si o no el
contenido del portapapeles cumple con un formato espec"fico tanto para te=to como para
imgenes( tiene la siguiente forma:
2ariable*ool=Clipboard.>et<ormat(<ormato)
+n este caso el formato si es requerido colocarlo( puede tomar cualquiera de los formatos
especificados en Set9e=t y Set<ata( la Variable)ool almacena Verdadero o 3also dependiendo de
la correspondencia del contenido del portapapeles con el formato#
+s muy importante resaltar que algunas imgenes cumplen en algunas ocasiones con ms
de un formato de imagen# +s decir( una sola imagen puede cumplir con el formato ,b*3)itmap y a
la ,ez el formato ,b*3<I)#
"Jtodo Cl-ar:
)orra el contenido del portapapeles( si el portapapeles contiene te=to e imgenes se borran
ambos# +s muy utilizado muy a menudo antes de colocar alg:n contenido al portapapeles( sin
embargo( como se puede colocar simultneamente te=to e imgenes puede omitirse para agregar
alguno de ellos sin borrar el contenido anterior# Pero( si slo se est trabajando con un formato
%slo te=to o slo imagen& es recomendable ,aciar el contenido del portapapeles antes de colocar
un nue,o elemento#
+ste m-todo tiene la siguiente forma:
Clipboard.Clear
Programa #%0. Cl/34oard:
Jealice un formulario como se ,e a continuacin:
Programacin con VB 6.0 Ing. Kelvin Atencio
+ste formulario cuenta con los siguientes controles:
P/6tur-1: Picture)o= que contiene una imagen %cualquiera& desde la propiedad Picture# +n
este caso se ,isualiza la imagen de una computadora %carpeta de imgenes de "conos&
P/6tur-: Picture)o= que tienes las propiedades Ceig!t y /idt! iguales a Picture4 y no
contiene ninguna imagen# Se encuentra debajo de Picture4#
T-7t1: 9e=t)o= donde fue borrado la propiedad 9e=t( se encuentra en l aparte superior
derec!a#
La4-l1: +tiqueta donde se encuentra escrito en la porpiedad *aption: +sta es una cadena
de te=to#
Comma.d1: *ommand)utton con caption: *opiar 9e=to
Comma.d: *ommand)utton con *aption: *opiar Imagen
Comma.d%: *ommand)utton con *aption: Pegar 9e=to
Comma.d(: *ommand)utton con *aption: Pegar Imagen
Comma.d9: *ommand)utton con *aption: *ontenido Portapapeles
Comma.d6: *ommand)utton con *aption: Limpiar 9odo
La4-l: +tiqueta ubicada en la parte inferior# Propiedad *aption: *adena Vac"a %57&#
*oloque el siguiente cdigo( puede copiar y pegar:
4ption E!plicit
Private Sub Command1_Click()
Clipboard.SetTe!t Gabel1.Caption
End Sub
Private Sub Command/_Click()
Clipboard.Set@ata Picture1.Ima7e
End Sub
Private Sub Command3_Click()
Te!t1.Te!t = Clipboard.>etTe!t()
End Sub
Private Sub Command,_Click()
Picture/.Picture = Clipboard.>et@ata()
End Sub
Private Sub Command._Click()
@im <ormato ?( *9te% +en(a5e ?( Strin7
If Clipboard.>et<ormat(vbC<Te!t) Ten
<ormato = <ormato A 1
Programacin con VB 6.0 Ing. Kelvin Atencio
End If
If Clipboard.>et<ormat(vbC<*itmap) Ten
<ormato = <ormato A /
End If
Select Ca(e <ormato
Ca(e 0: +en(a5e = "El Portapapele( e(t^ vacUo"
Ca(e 1: +en(a5e = "El Portapapele( contiene ('lo te!to"
Ca(e /: +en(a5e = "El Portapapele( contiene ('lo una ima7en"
Ca(e 3: +en(a5e = "El Portapapele( contiene una ima7en 9 un te!to"
End Select
Gabel/.Caption = +en(a5e
End Sub
Private Sub CommandQ_Click()
Clipboard.Clear
Te!t1.Te!t = ""
Picture/.Picture = GoadPicture
Command._Click
End Sub
+jecute la aplicacin e interact:e con la misma( puede copiar te=to %*aption de Label4& o
imagen %imagen de Picture4&( y colocarlo en otros controles# Puede ,erificar el contenido del
portapapeles o borrar para comenzar de nue,o#
V-r/K/6ar -l t/3o d- 6o.trol a6t/<o 3ara 6olo6ar u. -l-m-.to al 3orta3a3-l-2:
Puede que quiera en algunas ocasiones lle,ar al portapapeles un elemento( pero que el
programa ,erifique el tipo de control acti,o( para colocar en el portapapeles una imagen o un te=to
de acuerdo al control acti,o( es decir( si el control acti,o es un Picture)o= aplicar el m-todo
Set<ata o Get<ata y si lo es un control con propiedad 9e=t utilizar Set9e=t#
Para ello( se puede combinar La funcin 9ypeDf junto a Screen#Acti,e*ontrol de la
siguiente manera:
If T9pe4f Screen.?ctiveControl I( Picture*o! Ten
Clipboard.Set@ata Screen.?ctiveControl.Ima7e
El(eIf T9pe4f Screen.?ctiveControl I( Te!t*o! Ten
Clipboard.SetTe!t Screen.?ctiveControl.SelTe!t
El(eIf T9pe4f Screen.?ctiveControl I( Gi(t*o! Ten
Clipboard.SetTe!t Screen.?ctiveControl.Te!t
End If
Aplica para otros controles# <espu-s de colocar un elemento en el portapapeles( se puede
pegar utilizando Get9e=t y Get<ata tambi-n ,erificando el tipo de control de destino donde se
pegar# <e la siguiente manera:
If T9pe4f Screen.?ctiveControl I( Picture*o! Ten
Screen.?ctiveControl.Picture = Clipboard.>et@ata()
El(eIf T9pe4f Screen.?ctiveControl I( Te!t*o! Ten
Screen.?ctiveControl.SelTe!t = Clipboard.>etTe!t()
El(eIf T9pe4f Screen.?ctiveControl I( Gi(t*o! Ten
Screen.?ctiveControl.?ddItem Clipboard.>etTe!t()
End If
Programacin con VB 6.0 Ing. Kelvin Atencio
1;. BASE DE DATOS:
*reacin de una base de datos mediante cdigo:
Ka se !a ,isto un poco sobre la cone=in con base de datos mediate la utilizacin del
control <ata# K como se pueden eliminar y agregar registros a una tabla mediante el control no
intr"nseco <)Grid#
A!ora este cap"tulo permite tener acceso a las bases de datos mediante otro
procedimiento( o mejor dic!o mediante la utilizacin de un objeto llamado <AD %por sus siglas <ata
Access Dbject&#
+ste objeto( no tiene representacin grfica en la aplicacin( pero debemos declararla
como a una ,ariable( siguiendo los parmetros para declaracin de ,ariable seg:n el alcance que
se quiera que tenga#
Para comenzar a utilizar este objeto( se debe colocar la referencia( para ello se debe ir a la
lista de referencias que se encuentra en la barra de men: Proyecto( y luego buscar Jeferencias(
para elegir el Dbjeto <AD( debe encontrar en la lista el objeto $icrosoft <AD @#E4 Dbjet Library
%para Access UT& o $icrosoft <AD @#1 Dbjet Library %para Access ?222&( luego se !ace clic en
aceptar# Se !a creado la referencia#
Luego podemos declarar una ,ariable como una base de datos en la seccin de
declaraciones de un mdulo o del formulario( seg:n el alcance que se desee( de la siguiente
manera:
@im +i*a(e ?( @ataba(e
o
Public +i*a(e ?( @ataba(e
Nota- 8i no se hace la re!erencia no se podr9 declarar una variable como 5atabase# 8e enerar9 el
siuiente Error de compilaci$n# No se ha de!inido el tipo de!inido por el usuario#
+l objeto <AD trabaja con colecciones( estas son a su ,ez objetos de acceso a datos#
Luego de !aber declarado la )ase de datos( se debe declarar una sesin de trabajo
mediante la utilizacin del Dbjeto /orLspace# +l objeto /orLspace define una sesin de trabajo
para alg:n usuario# +n algunos casos necesitar crear ms de una sesin de trabajo( pero
normalmente slo necesitar una sola sesin( para ello Visual )asic genera el primer elemento de
la coleccin /orLSpaces( esta es /orLspaces%2&#
+ntonces primero declarar y luego( asignarlo# +n el siguiente ejemplo se usa el /orLspace
creado por defecto en V) ./orLspaces%2&.#
@im =naSe(ion ?( Mork(pace
Set =naSe(ion = Mork(pace((0)
Luego pasamos a la creacin de la base de datos( se utiliza la frmula para la creacin de
Dbjetos <AD( se propone como frmula general:
Set 4b5@?4Inf = 4b5@?4Sup.+[todo (?r7umento()
<onde argumentos ,ar"a seg:n el m-todo que se ,aya a utilizar y los Dbjetos <AD Inferior
y Superior mantendrn sus posiciones cualquiera que sea el caso de la creacin del objeto <AD#
Para crear la base de datos se utiliza el m-todo *reate<atabase( en este caso el objeto
<AD superior es el /orLspaces UnaSesion y el objeto inferior $i)ase( los argumentos son: %Juta(
Idioma( Dpciones& Juta es una cadena de te=to que define el arc!i,o de base de datos que se
crear %de no tener e=tensin se agregar #mdb&( Idioma es una constante de V) que define el
idioma %por supuesto&( se recomienda para los idiomas espa'ol( ingl-s o franc-s( la constante
dbLangGeneral %la constante dbLangSpanis! no ofrece ninguna ,entaja frente a dbLangGeneral& y
opciones se refiere a la ,ersin de Access en la que se crear y puede incluir tambi-n si desea
crear una base de datos codificada( si se omite se crear una base de datos no codificada# Por lo
tanto para crear una nue,a base de datos se coloca:
@im ?rcivo ?( Strin7
?rcivo="C:LCarpeta@ato(L+i*a(e.mdb"
Programacin con VB 6.0 Ing. Kelvin Atencio
Set +i*a(e==naSe(ion.Create@ataba(e(?rcivo% dbGan7>eneral)
<espu-s de creada una base de datos( se procede a crear las tablas( sus campos( y si se
desea tambi-n se pueden crear consultas( "ndices %cla,es& y relaciones entre tablas#
Para crear una tabla se usa el m-todo *reate9able<ef( pero antes de crearla se debe
declarar la ,ariable correspondiente( por ejemplo:
@im Tabla1 ?( Table@ef
Si se declara de la forma anterior slo se podr crear una tabla( por lo tanto se deben
declarar tantas ,ariables de objeto 9able<efs como tablas se requieran para la base de datos# <e
forma que se puede agregar a la sentencias anterior:
@im Tabla1 ?( Table@ef% Tabla/ ?( Table@ef% Table3...
*uando se est creando una tabla no se est agregando a la base de datos( solo se est
creando en forma apartada permaneciendo en la memoria JA$ del ordenador( por ello luego debe
agregarse al documento de datos mediante el m-todo Append( este se ,er mas adelante#
A!ora si( se puede crear la o las tablas#
Set Tabla1 = +i*a(e.CreateTable@ef("BombreTabla1")
Set Tabla/ = +i*a(e.CreateTable@ef("BombreTabla/")
Set Tabla3 = +i*a(e.CreateTable@ef("BombreTabla3")
...
Se puede obser,ar que se !a usado la frmula general:
Set 4b5@?4Inf = 4b5@?4Sup.+[todo (?r7umento()
+n este caso Dbj<ADInf es el objeto 9able<ef %9ablaB& y el superior es el nombre del
objeto <ata)ase %$i)ase&#
Para el caso del ejemplo puede cambiar los nombres de las tablas al que desea que
aparezcan cuando ejecute Access#
Siguiendo la secuencia( a!ora le toca el paso a la creacin de los campos( se usa el
m-todo *reate3ield# 9al y como se procedi con los objetos anteriores( estos tambi-n deben
declararse( de la siguiente manera:
@im Campo_1_1 ?( <ield% Campo_1_/ ?( <ield% Campo_/_1 ?( <ield%...
+n este ejemplo( se utiliza *ampo`4`4 para referirse al campo de la primera tabla( primer
campo( es decir( el primer n:mero se utiliz para identificar la tabla y el segundo para identificar el
n:mero del campo# A!ora se puede crear el campo:
Si utilizamos la ecuacin general:
Set 4b5@?4Inf = 4b5@?4Sup.+[todo (?r7umento()
Ser"a a!ora:
Set Campo_1_1=Tabla1.Create<ield("Bombre"% Tipo% Caractere()
<onde 6ombre es una cadena de te=to que definir el nombre del campo( por ejemplo:
I<`*liente( 6ombre*liente( <ireccin( etc# 9ipo define el tipo de dato que aceptar el campo: la
siguiente tabla enumera algunas de las opciones:
Co.2ta.t- T/3o D-26r/36/8.
db)oolean )oolean Verdadero o 3also
db)yte )yte 2 a ?EE
db*urrency *urrency <inero o clculos de signo decimal fijo
db<ate <ateZ9ime <atos de fec!as y !ora
db<ouble <ouble 6:meros de precisin doble
dbInteger Integer 6:meros enteros medianos
dbLong Long 6:meros enteros Largos
db$emo $emo 9e=to e=tendido
db6umeric 6umeric 6um-rico
dbSingle Single 6:meros de precisin simple
db9e=t 9e=t *adenas de te=to
db9ime 9ime Cora
Se desea conocer otros tipos de datos puede dirigirse a la ayuda de V)#
+n el caso de *aracteres( slo aplica cuando el tipo de dato es te=to( y se refiere al
n:mero m=imo de caracteres que puede tener la cadena de te=to#
Programacin con VB 6.0 Ing. Kelvin Atencio
Una ,ez creadas todas las tablas y campos de la base de datos se procede a agregarlas(
esto es posible al m-todo Append( se utiliza de la siguente manera:
Primero los campos:
Tabla1.<ield(.?ppend Campo_1_1
Tabla1.<ield(.?ppend Campo_1_/
Tabla/.<ield(.?ppend Campo_/_1
Aqu" es muy :til la sentencia /it! cuando e=iste un n:mero considerado de campos para
resumir el cdigo:
Mit Tabla1
.<ield(.?ppend Campo_1_1
.<ield(.?ppend Campo_1_/
.<ield(.?ppend Campo_1_3
.<ield(.?ppend Campo_1_,
End Mit
Luego las tablas:
+i*a(e.Table@ef(.?ppend Tabla1
+i*a(e.Table@ef(.?ppend Tabla/
Para finalizar es recomendable no dejar la base de datos abierta( esta se cierra mediante
el m-todo *lose:
+i*a(e.Clo(e
Programa #%1. Cr-ar u.a 4a2- d- dato2 6o. 68d/go -. VB:
Para este programa no necesita agregar ning:n control al formulario( es necesario crear
una carpeta en el directorio *:S de nombre *arpeta<atos( luego en el formulario agregue el
siguiente cdigo:
4ption E!plicit
Private Sub <orm_Click()
@im +i*a(e ?( @ataba(e
@im =naSe(ion ?( Mork(pace
Set =naSe(ion = Mork(pace((0)
@im ?rcivo ?( Strin7
?rcivo = "C:LCarpeta@ato(L+i*a(e.mdb"
Set +i*a(e = =naSe(ion.Create@ataba(e(?rcivo% dbGan7>eneral)
@im Tabla1 ?( Table@ef% Tabla/ ?( Table@ef
Set Tabla1 = +i*a(e.CreateTable@ef("Producto(")
Set Tabla/ = +i*a(e.CreateTable@ef("Cliente(")
@im Campo_1_1 ?( <ield% Campo_1_/ ?( <ield
@im Campo_1_3 ?( <ield% Campo_/_1 ?( <ield
@im Campo_/_/ ?( <ield
Set Campo_1_1 = Tabla1.Create<ield("Codi7oProducto "% dbInte7er)
Set Campo_1_/ = Tabla1.Create<ield("Producto"% dbTe!t% 1.)
Set Campo_1_3 = Tabla1.Create<ield("Precio"% dbCurrenc9)
Set Campo_/_1 = Tabla/.Create<ield("Codi7oCliente"% dbInte7er)
Set Campo_/_/ = Tabla/.Create<ield("BombreCliente"% dbTe!t% /0)
Mit Tabla1
.<ield(.?ppend Campo_1_1
.<ield(.?ppend Campo_1_/
.<ield(.?ppend Campo_1_3
Programacin con VB 6.0 Ing. Kelvin Atencio
End Mit
Mit Tabla/
.<ield(.?ppend Campo_/_1
.<ield(.?ppend Campo_/_/
End Mit
Mit +i*a(e
.Table@ef(.?ppend Tabla1
.Table@ef(.?ppend Tabla/
End Mit
+i*a(e.Clo(e
End Sub
+jecute la aplicacin( !aga clicL sobre el formulario parece que el programa no
reaccionara( pero la ,erdad se !a creado una base de datos en la nue,a carpeta *arpeta<atos que
se encuentra en el directorio *:S( puede dirigirse a ella y ,erificar( si da un clic nue,o se producir
un error debido a que no se podr crear una base de datos ya creada( slo se podr abrir mediante
el m-todo Dpen<atabase#
3altan a!ora dos procesos por aprender( la creacin de "ndices y de relaciones#
Para crear un "ndice se utiliza el m-todo *reateInde=( y como todos los objetos debe
declararse antes de ser asignado:
@im Indice ?( Inde!
Set Indice = Tabla1.CreateInde!("PrimerIndice")
Una ,ez creado el "ndice( -ste pasa a crear al campo que se quiere sea "ndice( f"jese bien
que aunque la sentencia dice crear campo( el campo ya estu,o que estar creado( slo se utiliza
esta sentencia para asignar el "ndice al campo deseado:
Set Campo_1_1 = Indice.Create<ield("Codi7oProducto "% dbInte7er)
+n este caso el nombre del campo y su tipo de dato debe coincidir con el campo creado#
<e !ec!o si es tipo te=to %db9e=t& debe coincidir tambi-n el n:mero de caracteres declarados
cuando se cre el campo# +sto en caso que se quiera que slo un campo tenga "ndice( si desea
que otro campo de la misma tabla tambi-n sea "ndice entonces se colocan las dos sentencias:
Set Campo_1_1 = Indice.Create<ield("Codi7oProducto "% dbInte7er)
Set Campo_1_/ = Indice.Create<ield Create<ield("Producto"% dbTe!t% 1.)
Una ,ez que se !ayan asignado el o los "ndices( se debe%n& agregar a la coleccin 3ields(
de la siguiente manera:
Indice.<ield(.?ppend Campo_1_1
Indice.<ield(.?ppend Campo_1_/
Las dos l"neas son necesarias si desea que dos campos sean "ndices( si slo se desea que
un campo sea el indice slo es necesario escribir la primera l"nea#
<espu-s de agregar el o los "ndices a la coleccin 3ields( se deben agregar a la coleccin
Inde=es del Dbjeto 9abledef( de la siguiente manera:
Tabla1.Inde!e(.?ppend =nIndice
A!ora le toca el turno a la creacin de 9ablas Jelacionales( es decir( las relaciones#
Fstas se crean mediante el m-todo *reateJelation( pero claro( primero !ay que declararla:
@im ;elacion ?( ;elation
Programacin con VB 6.0 Ing. Kelvin Atencio
Para relacionar un campo con otros( ese campo debe ser cla,e primaria# A la tabla que
contiene a este campo se le llama 9abla Principal# A la tabla que contiene el campo %o los campos&
relacionados se le llama 9abla Jelacionada#
<espu-s de declararse( si obser,a un poco los pasos de los objetos( le toca el paso a la
creacin de la relacin( esto se !ace de la siguiente manera:
Set ;elacion = +i*a(e.Create;elation ("Bombre;elaci'n")
+n este caso 6ombreJelacin pasa a ser el nombre de la relacin( aunque este sea poco
utilizado# La relacin se !a creado pero falta un detalle importante( que campos se ,an a
relacionar# Supongamos que se ,a a relacionar el primer campo de la primera tabla %*ampo`4`4
de la 9abla4& y el primer campo de la segunda tabla %*ampo`?`4 de la 9abla?&( claro est( esto no
es posible porque estos campos no son del mismo tipo ni tienen el mismo nombre( pero como se
dijo anteriormente( esto es slo una suposicin#
Para ello se procede de la siguiente manera:
;elacion.Table = "Tabla1"
;elacion. <orei7nTable = "Tabla/"
Podemos utilizar la propiedad Attributes para cambiar los atributos de la relacin( por
ejemplo se puede establecer la constante dbJelationUpdate*ascade( para que( cuando se realice
alg:n cambio en el campo de la tabla principal( se refleje en el campo o los campos relacionados
con -l#
+stablecemos cual es el nombre del campo de la tabla principal que ,amos a relacionar(
mediante el m-todo *reate3ield %aunque el campo ya !a sido creado&( tambi-n debemos declarar
el nombre del objeto 3ield que ,amos a crear para la relacin:
@im 4troCampo ?( <ield
Set 4troCampo = ;elacion.Create<ield("Campo_1_1")
+stablecemos a!ora cual es el nombre del campo en la tabla relacionada:
4troCampo.<orei7nBame = "Campo_/_1"
A'adimos el campo creado a la coleccin 3ields del objeto Jelation
;elaci'n.<ield(.?ppend 4troCampo
K a!ora a'adimos el objeto Jelation reci-n creado a la coleccin Jelations del objeto
<atabase
+i*a(e.;elation(.?ppend ;elacion
*on esto se da fin al trabajo de in,estigacin( a continuacin la Seccin <etallada de
Programas#
Programacin con VB 6.0 Ing. Kelvin Atencio
S-66/8.:
E73l/6a6/8. D-tallada d- Programa2
Programa #1. Saludar:
*uando !ace clic en el botn Saludar( el programa llama al cdigo de Private Sub
Command1_Click(). Por ello% ,erifica si la propiedad Caption del botn Command1 es
`Saludara( si es as"( entonces el programa ejecuta las sentencias despu-s de Ten y antes de
El(e# Por lo tanto( la propiedad Te!t del control Te!t1 mostrar: 5aColab( W*mo estasX7( luego
cambia la propiedad Caption de Command1 a `*orrara# A!ora el botn no mostrar la palabra
Saludar( sino )orrar#
Al ,ol,er a !acer clic %a!ora en )orrar&( el programa ,uel,e a llamar a la sentencia
Private Sub Command1_Click(). Verifica la condicin Command1.Caption=aSaludara(
pero en este caso es falsa ya que es 5)orrar7( entonces se ejecutan las sentencias que estn
despu-s de El(e y antes de End If# As"( la propiedad Te!t del control Te!t1 generar una
cadena ,ac"a %57& y la propiedad Caption del botn Command1 ,ol,er a ser `Saludara#
Programa #. Sumar:
La Sentencia %Public Suma ?( @ouble) crea una ,ariable p:blica de nombre Suma
de tipo doble %6um-rico de doble precisin& que guardar el resultado de una operacin# %,er
Seccin nro# E Variables y 9ipos de <atos&
*uando !ace clic en el comando Sumar( el programa llama a la secuencia de cdigos de
Private Sub Command1_Click().
@im es una e=presin que tambi-n crea una ,ariable en este caso pri,ada# +l nombre de la
,ariable es 2alor y es tambi-n de tipo <oble#
La siguiente l"nea ,erifica si la propiedad Te!t de t!t2alor es una cadena ,ac"a %si no
!ay datos&( si es as" asigna a la ,ariable Valor el n:mero cero( sino es cadena ,ac"a( con,ierte el
contenido de t!t2alor a tipo doble y lo asigna a la ,ariable 2alor %Si el contenido de t=tValor no
es num-rico se genera un error&#
La siguiente l"nea realiza la operacin: Suma = Suma A 2alor( aqu" realiza la operacin
suma N ,alor y lo asigna a la ,ariable Suma( +jemplo( si suma es igual a 42 y quiero sumar 4E( V)
toma el ,alor de Suma I 42 y le suma 4E luego borra de la memoria el ,alor 42 y asigna ?E# La
siguiente l"nea consigue que se muestre este resultado en la propiedad Caption de
lbl;e(ultado#
Luego( se con,ierte el contenido de t=tValor a una cadena ,ac"a( de manera que borra el
contenido que !aya en ella#
+s importante resaltar que Suma se declar como una ,ariable p:blica para mantener su
,alor fuera de el e,ento clic del botn de comando# Si se declara pri,ada dentro del procedimiento
Private Sub Command1_Click() cada ,ez que inicie la secuencia( Suma ,aldr cero( por lo
que el resultado mostrar el ,alor de la ,ariable 2alor# 9ambi-n podr"a declararse pri,ada pero
con la sentencia Static %Static Suma a( @ouble& para que mantu,iera su ,alor#
Programa #%. ,r-a d- u. tr/0.gulo:
La primera seccin del programa llama al e,ento clic del botn de comando )orrar y
elimina el contenido de los cuadros de te=to( desacti,a el botn calcular y ocasiona que el cuadro
de te=to donde se debe introducir el ,alor de la )ase del tringulo tome el enfoque#
La segunda seccin cita al e,ento clic del botn calcular %en caso que est- acti,ado&( crea
las ,ariables pri,adas )ase( Altura y Area como ,alores num-ricos de doble precisin( luego
asigna a *a(e el ,alor de t=t)ase a ?ltura el ,alor de t=tAltura# <espu-s ,erifica si la entrada de
datos de estos cuadros de te=to son num-ricos( de ser as"( calcula el rea y lo muestra en un te=to(
sino muestra un mensaje de +rror#
Programacin con VB 6.0 Ing. Kelvin Atencio
Luego ,iene la siguiente seccin( que se llama cada ,ez que cambie el contenido del
cuadro de te=to t=t)ase( comprueba si la longitud en bytes de los cuadros de te=to t=t)ase y
t=tAltura tienen uno o ms elementos( de ser as"( acti,a el botn *alcular# +s importante resaltar
que el contenido de t=tAltura`*!ange es igual al contenido de t=t)ase`*!ange( ya que estos
,erifican si los dos cuadros de te=tos tienen uno o ms elementos#
Luego se llama al e,ento QeyPress( que se genera cada ,ez que se presione y libera una
tecla del teclado# +n este caso( reconoce si se presiona la tecla +nter %,bQeyJeturn o 4@&( de ser
presionada esta tecla ocasiona que el cuadro de te=to t=tAltura tome el enfoque#
+l :ltimo e,ento en la codificacin es QeyPress del *uadro de te=to t=tAltura( este pro,oca
%si se presiona la tecla +nter& que el botn de comando *alcular tome el enfoque#
Programa #(. D/4u5ar -. u. P/6tur-Bo7:
*omo la e=plicacin de los m-todos fueron e=plicados uno por uno durante los m-todos
grficos del Picture)o=( no se darn mayores e=plicaciones sobre cada uno# Slo !ay que resaltar
,arios puntos:
Si el comando $ostrar Imagen produce un error( coloque la ruta de una imagen
que est- grabada en su computador#
+n el *omando para crear cuadros se puede ,er que se asigna a la propiedad
3illStyle %+stilo de relleno& el ,alor de uno( que a pesar de ser el predeterminado(
pudo ser cambiado si se presiona antes la tecla para dibujar la elipse# +ste estilo
determina un relleno transparente %sin color&# Adems( en el primer rectngulo se
omite la instruccin para el color( por ello( el programa asigna el color determinado
por la propiedad $onitor#3ore*olor# +n la l"nea siguiente el argumento ) cambi a
)3( esto se utiliza para rellenar un cuadrado o rectngulo con el color asignado#
Luego se enmarca el cuadrado rellenado con uno negro#
+n el comando para crear puntos( primero se realizan tres puntos que se muestran
cerca de la esquina superior izquierda( luego se crea una secuencia de puntos que
generan una cur,a con la la Sentencia 3or 8I4 to $onitor#/idt!# Fsta ,a
aumentando el ,alor de 8 de uno en uno !asta llegar al ,alor del anc!o del control
Picture)o= %$onitor#/idt!&( durante esta secuencia de puntos se calcula el ,alor
de K %una funcin& y se dibuja el punto 8( K# La instruccin 6e=t !ace que la
sentencia 3or ,aya al pr=imo ,alor de 8# +l color de los puntos utiliza la
instruccin JG)# Ver e=plicacin de esta sentencia en el capitulo 1 de este
trabajo#
+n el comando para crear dibujar la elipse( se coloca la propiedad 3illStyle a cero
%Slido&( esto crea un relleno para la elipse y a la propiedad 3ill*olor se asigna el
color rojo( es decir( se rellena de color rojo( una elipse de color azul#
Luego ,iene el comando para realizar c"rculos y arcos( se asigna a la constante Pi
el ,alor @#4A4EU?T( esta constante se utiliza para trabajar en grados radianes(
luego se coloca de nue,o la propiedad 3illStyle a transparente %4& y se dibuja un
c"rculo y un arco desde el grado pi medio %PiZ?& !asta el grado pi# %U2c a 4V2c si
fueran grados se=agesimales( ya que la con,ersin dice que un grado Pi es 4V2c
se=agesimales&
Para escribir te=to se ,a al punto %8( K& I %?E22( @222& se cambia la propiedad
3ore*olor para escribir en color azul#
Programa #9. >D8.d- -2tud/ar?:
+ste programa tiene la finalidad de mostrar como se pueden agrupar ,arios controles
mediante el control 3rame %marcos& y adems dar una respuesta a los e,entos clic de un botn de
opcin( en este caso mostrando una respuesta en una etiqueta llamada Label4#
La primera sentencia crea las ,ariables de cadenas de te=to str*arrera y strInstitucion#
+l primer e,ento que es llamado es el e,ento opt*arrera`*licL%Inde=&( que ocurre cuando
!ace clic sobre cualquier botn de opcin que est- dentro del marco *arrera( si !ace clic en el
botn de opcin Ingenier"a( este corresponde al Inde= B2 %opt*arrera%2&&( se asigna a la ,ariable
strcadena el *aption del botn( en este caso Ingenier"a( luego llama al e,ento <isplay que escribe
Programacin con VB 6.0 Ing. Kelvin Atencio
en la etiqueta una cadena que incluye 5Ca decidido estudiar7 luego la ,ariable str*arrera que
describe la carrera( a continuacin escribe 5 en la 5 y despu-s la ,ariable strInstitucion# 6o se !izo
referencia el e,ento de los botones de opcin dentro del control 3rame de la institucin ya que
ocurre un procedimiento semejante al del control 3rame que contiene las carreras# +l botn de
comando finaliza el programa mediante la descarga del formulario#
Programa #6. Co.trato:
+n este programa la etiqueta muestra en la etiqueta 5Si contratar7 si las tres casillas de
,erificacin estn acti,adas o c!equeadas( si alguna falta muestra la etiqueta 56o contratar7#
Programa #:. Coord-.ada2:
Los e,entos Can7e de los dos cuadros de te=to !abilitan y des!abilitan el botn de
comando cmdIn7re(ar seg:n ambos tengan uno o ms elementos# Si ellos tienen uno o ms
elementos se !abilita y sino se des!abilita#
+l e,ento Fe9Pre(( de t!tI !ace que el cuadro de te=to t!tJ tome el enfoque cuando
se presiona la tecla +nter# +l e,ento Fe9Pre(( de t!tJ !ace %si se presiona la tecla +nter& que
tome el enfoque el botn de comando cmdIn7re(ar si est !abilitado( y si no lo est( toma el
enfoque t!tI#
+l e,ento clic del comando Ingresar( genera dos ,ariables de n:meros enteros %8(K& asigna
a la primera el ,alor entero de t!tI y a la segunda el ,alor entero de t!tJ> luego( dibuja un
peque'o c"rculo %simulando un punto& en las coordenadas del cuadro de imagen %$onitor&#
La siguiente l"nea agrega un elemento a la lista de puntos( incluye un par-ntesis abierto( la
,ariable 8( una coma( la ,ariable K y un par-ntesis cerrado#
+l contenido del e,ento clic del comando +liminar se puede comprender con la e=plicacin
de cmo se borra un elemento de una lista durante la e=plicacin de este control e igualmente el
m-todo *lear del cuadro de lista# +l m-todo Jefres! del cuadro de imagen borra el contenido del
Picture)o= %$onitor&#
Programa #;. NCm-ro d- "-2:
+l primer e,ento <orm_Goad ocurre cuando se carga el formulario( dentro de ella estn las
instrucciones para agregar cada mes %mediante su nombre& al control Combo1#
Luego se presenta el e,ento clic del botn de comando Command1# Primero( crea una
,ariable de nombre +e( de tipo *9te %byte es un n:mero entero que puede estar entre 2 y ?EE( se
creo de este tipo ya que el ,alor de +e( ,a a estar entre 4 y 4?&# La l"nea consecuti,a ,erifica cual
es el ,alor constante o cadena que toma *ombo4 %selecciona el caso&> en caso que sea +nero
asigna a la ,ariable $es el ,alor 4( si es 3ebrero le asigna dos y as" sucesi,amente# La sentencia
*ase +lse ocurre cuando no toma ninguno de los casos particulares( en este caso( si no toma
ning:n nombre de mes desplega un mensaje de error# La instruccin End Select finaliza la
secuencia de Select Ca(e y luego se muestra en el cuadro de te=to el ,alor de la ,ariable mes#
Programa #E. "/rar -l 6o.t-./do d- u.a -t/Fu-ta:
<entro del e,ento Command1_click se asignan a las escala del formulario y a la de la
imagen la constante vbCaracter(( para trabajar con escala de tama'o de caracteres de cadena
de te=to# Luego( se llama al m-todo mo,er que coloca la etiqueta al principio del control cuadro de
imagen %esquina superior izquierda&# <espu-s( se asigna a la propiedad caption de la etiqueta el
contenido del cuadro de te=to( a continuacin( se asigna a la propiedad $a= de la barra de
desplazamiento la diferencia entre el anc!o de la etiqueta y el anc!o del cuadro de imagen mas un
carcter( esto se !ace para que la barra de desplazamiento se limite a los e=tremos de la cadena
de te=to( es decir( que se puede desplazar slo por la cantidad de elementos que e=isten# La barra
de desplazamiento aparece %es ,isible& si el anc!o del cuadro de imagen es menor al anc!o del
contenido de la etiqueta#
+l e,ento #Scroll1_Can7e se llama cada ,ez que cambia la posicin de la barra de
desplazamiento( esto se apro,ec! para asignarle a la propiedad Left de la etiqueta el ,alor
negati,o de la )arra de desplazamiento( es decir( la propiedad Value ,a de $in %m"nimo& a $a=
%m=imo&( en este caso de cero !asta %Gabel1.Midt K Picture1.Midt A 1)% si se le
Programacin con VB 6.0 Ing. Kelvin Atencio
asigna el ,alor negati,o de Value a la propiedad left de la etiqueta( !ace que la etiqueta se
desplace !acia la izquierda mostrando el contenido de ella#
Programa #10. CH4-r:
*omo la propiedad Enabled del control 9imer est Acti,ada %9rue& y adems la propiedad
Interval de este control tiene el ,alor 4222( el programa llama al e,ento 9imer cada segundo(
por lo tanto( cada segundo se llaman a las ,ariables que preser,an su ,alor debido a la sentencia
%Static&( con los siguientes nombres: Se7undo( %tipo )yte&( +inuto( %tipo )yte&( #ora( %tipo
+ntero&( Precio %tipo <oble& y Contador %tipo +ntero Largo&#
Luego se aumenta en una unidad la ,ariable Contador( cada ,ez que transcurre un
segundo se suma una unidad# +ste contador nos sir,e para calcular el precio del tiempo de uso#
Luego( se muestra en la primera etiqueta la !ora del sistema %Gabel1=Time&#
A continuacin si el ,alor de los segundo no !a llegado a EU( se suma un segundo( de lo
contrario( se reinicia el conteo de los segundos y se suma un minuto# Similarmente si el conteo de
minutos no !a llegado a EU( se suma un minuto( de lo contrario se reinicia el conteo de minutos y
se suma una !ora#
+n la segunda etiqueta se muestra el contador de !oras( minutos y segundos con un
formato de dos d"gitos cada uno separados por los dos puntos#
Se calcula el ,alor del precio del tiempo de uso( para ello se contabiliza 4 unidad monetaria
cada tres segundos( si este ,alor no !a llegado a 422( la etiqueta del precio muestra 422 como
,alor m"nimo( despu-s de los E minutos %tiempo cuando ya el precio !a alcanzado 422& se suma
cada tres segundos una unidad monetaria# +l precio se muestra en la tercera etiqueta#
Programa #11. D/r-6tor/o:
+n este programa cuando se carga el formulario se llama a la secuencia de <ir4`*!ange(
esto se realiz con la intencin que se actualice la lista de arc!i,os al directorio seleccionado por
defecto 5*:S7# <espu-s( si ocurre el e,ento *!ange del <ri,eList)o= %cambio de unidad de disco&
cambia la propiedad Pat! de la Lista de <irectorio a la unidad elegida# Pat! es una propiedad que
slo est disponible en tiempo de ejecucin y de,uel,e o establece la ruta de acceso actual( por lo
tanto se actualiza la lista de directorio a la unidad seleccionada# <entro del e,ento *!ange de <ir4(
la propiedad Pattern del 3ile4 %Lista de Arc!i,os& muestra slo los arc!i,os con la e=tensin
especificada( en este caso los arc!i,os de e=tensn ;#doc %Arc!i,os de /ord&( luego la lista de
arc!i,os actual muestra el directorio seleccionado> es decir( se muestran los arc!i,os de /ord de
la carpeta#
Se recomienda ir a la carpeta $is <ocumentos para enlistar los arc!i,os#
9ambi-n puede cambiar la e=tensin de los arc!i,os( si no elige ning:n patrn se
mostrarn todos los arc!i,os#
Programa #1. Co.tador-2 d- Var/a4l-2:
+n este programa se crearon cuatro ,ariables( la ,ariable p:blica de nombre 2ariable
de tipo entero aumenta en uno si se presiona cualquiera de los dos botones de comando( como es
una ,ariable p:blica conser,a su ,alor despu-s de presionar cualquiera de los dos botones#
Para la seccin del e,ento clic del primer botn de comando se crean dos ,ariables mas:
2ariable1( de tipo entero( se declara con la sentencia <im( por lo tanto cada ,ez
que termina el e,ento clic del botn de comando -ste toma el ,alor de cero( y
como mediante el procedimiento se aumenta en uno la primera etiqueta siempre
muestra el ,alor uno al presionar el primer botn#
2ariable/( tambi-n de tipo entero( en este caso se declara con la sentencia
Static( por lo tanto una ,ez terminado el procedimiento el ,alor conser,a su ,alor
final( terminado el primer procedimiento su ,alor ser uno( luego dos y as"
sucesi,amente tantas ,eces se presione este botn# +ste ,alor se muestra en la
segunda etiqueta#
Para la seccin del e,ento clic del segundo botn de comando se crea otra ,ariable(
llamada Variable?# *omo est declarada con la sentencia Static( conser,a su ,alor despu-s de
terminado este procedimiento( por lo tanto se aumenta en uno cada ,ez que presiona un clic# +s
Programacin con VB 6.0 Ing. Kelvin Atencio
muy importante resaltar que a pesar de tener el mismo nombre de una ,ariable de otro
procedimiento( es otra ,ariable( ya que est declarada en otro procedimiento#
Programa #1(. Var/a4l-2 d- 3ro6-d/m/-.to2:
La secuencia 4ption E!plicit permite lle,ar el control de las ,ariables( no permite que
se utilice una ,ariable no declarada#
Public ?rea ?( @ouble( crea una ,ariable de nombre Area de tipo num-rico de
precisin doble#
La secuencia de Private Sub <orm_load() se ejecuta cuando se carga el formulario(
en este caso cambia su propio caption a 5Area de un *"rculo7 y suceden ,arios cambios de
propiedades de los controles del formulario#
La secuencia del procedimiento de e,ento *ommand4`*licL se ejecuta cuando se !ace
clic en el botn de comando( en este caso declara dos ,ariables: La primera de nombre Jadio de
tipo num-rico de precisin doble y la segunda de nombre Area de tipo precisin doble#
Luego se coloc una sentencia de control If( en este caso quiere decir: Si el cuadro de
te=to 9e=t4 es diferente de ,ac"o %tiene alg:n elemento& y adems es num-rico entonces se
procede a realizar el clculo de rea( antes asignando a la ,ariable Jadio el ,alor de te=t4
con,ertido a num-rico de precisin doble#
Se muestra en la segunda etiqueta el rea calculada y despu-s se llama al procedimiento
de nombre <isplay# +ste procedimiento tiene como :nica secuencia mostrar en la tercera etiqueta
una ,ariable de nombre Area> es muy importante destacar que la tercera etiqueta mostr el ,alor
cero( ya que la ,ariable Area a la que se !ace referencia ya no es la ,ariable Area calculada en el
procedimiento *ommand4`*licL sino la ,ariable publica que no a sufrido ning:n cambio desde el
transcurso de todo el programa#
Programa#19. Pro6-d/m/-.to =u.6t/o.:
*omo otros detalles de programacin !an sido e=plicados en programas anteriores( slo se
proceder a e=plicar el procedimiento 3unction utilizado en este programa#
La 53unction7 de nombre Jesto crea un procedimiento que de,uel,e un ,alor cuando es
llamado# Cay que resaltar que Jesto fue declarada con dos ,ariables( se puede notar que est
escrito Jesto%<i,idendo As Integer( <i,isor As Integer&( de modo que( la 3unction Jesto se puede
llamar al escribir Jesto%Valor4( Valor?&( donde el Valor4 toma el ,alor del di,idendo y Valor? toma
el ,alor del di,isor# +n este programa cuando se presiona clic sobre el botn de comando el
programa ,erifica que la entrada de los cuadros de te=to sean ,alores num-ricos( de ser as" se
asigna al caption de la etiqueta la funcin Jesto con di,idendo igual a 9e=t4 y di,isor 9e=t?#
Programa #1E. S-.t-.6/a 1oto:
La primera l"nea del botn de comando 4n Error >oto BombreSubprocedimiento(
se aplica cuando puede suceder alg:n error mientras se ejecutan las instrucciones de un
programa( de modo que me gu"a !asta una seccin del programa %subprocedimiento& que ejecuta
una serie de instrucciones cuando se produzca un error( son muy :tiles mas que todo para mostrar
un mensaje personalizado de error al usuario( o para realizar acciones espec"ficas ante la
presencia de un error#
+n este programa esta sentencia dirige !asta el subprocedimiento Error2alor que
contiene la siguiente instruccin:
If Err.Bumber = 13 Ten
+sta sentencia ,erifica el n:mero de error %Err.Bumber& que se !a producido al ejecutar
este procedimiento( en este caso el tipo de error tiene el n:mero 4@ que se refiere al +rror %6o
coinciden los tipos&# +l n:mero de error siempre lo muestra V) al momento de producirse un error
en sus mensajes# Por ello( la sentencia Dn +rror Goto puede aplicarse para informar al usuario
mediante un $ensaje %$sg)o=& la accin que debe tomar para continuar utilizando la aplicacin#
+n este programa se utiliz para mostrar un mensaje al usuario diciendo que se produjo un
error en el ,alor introducido( borra el contenido de te=t4 y !ace que -ste tome el enfoque#
Si no !ay error en el ,alor introducido( se llama a la funcin <i,isible+ntre?`@`A con el
,alor introducido en 9e=t4( al llamar a la funcin -sta ,erifica si el ,alor introducido es di,isible
entre ?( en caso contrario dirige a la secuencia de la funcin al subprocedimiento 6o+s<i,isible(
Programacin con VB 6.0 Ing. Kelvin Atencio
igual para el caso de di,isible entre @ y A( una ,ez terminada esta secuencia se cambia el ,alor de
la funcin <i,isible a Verdadero %!ay que notar que en caso de que fuera falso el procedimiento ya
anteriormente !a saltado este paso&( luego se coloc la sentencia E!it <unction para que el
programa finalice la secuencia( el subprocedimiento 6o+s<i,isible cambia el ,alor de la funcin a
3also#
Programa #(. "-.C Em-rg-.t-:
+l primer procedimiento llamada es el e,ento Picture4`$ouseUp que ocurre cuando libera
alg:n botn del mouse sobre el control Picture4 %*uadro de imagen&# +n este la instruccin If
button=/ Ten( ocurre cuando persona el botn secundario del mouse( si es as" se desplega el
men: emergente mediante la instruccin: Popup+enu mnu@ibu5ar( Popupmenu realiza el
llamado y al lado est el nombre del men: que se quiere desplegar#
Las dems instrucciones ya !an sido ,istas en la e=plicacin del control cuadro de imagen#
Programa #6. Programa "DI:
+ste programa utiliza las instrucciones mas comunes para programas con formulario $<I#
+l formulario !ijo %3orm4& contiene dentro de s" la sentencia ScaleCeig!t y Scale/idt! para
adaptar el anc!o y el alto al tama'o del formulario( se encuentra dentro del procedimiento de
e,ento 3orm`Jesize( para que cada ,ez que cambie de tama'o el formulario( el control Picture4
cambie su tama'o tambi-n adaptndose al tama'o del formulario#
<entro del procedimiento de e,ento 3orm`Acti,ate se encuentra el iniciador de conteo de
documentos abiertos( *ontador toma el ,alor 4( es importante resaltar que se coloc dentro del
procedimiento de e,ento 3orm`Acti,ate ya que no se permite colocar ,alores a ,ariables dentro del
procedimiento 3orm`Load#
*uando se !ace clic sobre el primer botn de comando se crea una nue,a instancia de
3orm4( se agrega una unidad al contador y se muestra el formulario( se cambia el *aption de
acuerdo al n:mero de documento#
*uando se presiona clic sobre el segundo botn de comando( el slo ejecuta una l"nea de
instruccin que es:
?ctive<orm.Picture1.Circle (.00% .00)% 300% % % % / D 3
Acti,e3orm( busca el formulario acti,o( como todos los formularios abiertos son instancias
de 3orm4( todos tienen el control Picture4( por ello en -l se dibuja una elipse( es decir( en el control
Picture4 del formulario acti,o#
*on respecto al tercer botn de comando( tambi-n utiliza la sentencia Acti,e3orm( pero en
este caso para borrar el contenido de su cuadro de imagen#
Programa #;. E7t-.2/8. d-l Programa #: G Coord-.ada2:
+l e,ento clic del botn cmd6ue,o( crea un arc!i,o nue,o si no e=iste( si el arc!i,o e=iste
se abre graficando sus coordenadas en el cuadro de imagen %$onitor&# La ,ariable 6ue,o es una
cadena de te=to que el usuario introduce para dar un nombre al arc!i,o( mediante la con,ersin a
cadena de CStr("C:L" A Buevo A ".dat") se completa el nombre del arc!i,o( es decir( se
agrega la ubicacin donde se guardar 5*:S7( el nombre del arc!i,o introducido por el usuario y
adems la e=tensn #dat# Luego se abre el fic!ero con tipo de acceso aleatorio con un tama'o de
registro de A bytes %8 es Integer y adems K es Integer( por lo tanto como se ,io en la seccin de
tipos de datos( -stos ocupan slo dos bytes cada uno por lo tanto el tama'o de cada registro es de
A bytes&# Si el arc!i,o tiene registros grabados (If G4<(1) H 0 Ten) el programa procede a
enlistar los puntos en el List)o= y adems los grafica en el cuadro de imagen %$onitor&( los dems
detalles ya !an sido e=plicados en otros programas#
+l e,ento clic del botn cmdAbrir tiene las siguientes secuencias: Si se produce un error se
dirige a la parte inferior del procedimiento llamado *orregir( sino se declara una ,ariable de cadena
llamada Arc!i,o( se establece la propiedad 3ilter del *ommon<ialog4 para leer slo los arc!i,os de
e=tensin <A9( se muestra el cuadro de dilogo Abrir para buscar un arc!i,o grabado para luego
asignar a la ,ariable Arc!i,o el arc!i,o elegido %si se presiona la tecla cancelar se produce un
Programacin con VB 6.0 Ing. Kelvin Atencio
error& posteriormente se procede a abrir el fic!ero tipo aleatorio( se leen los datos %>et Y1%
;e7i(tro% Punto)% se enlista y se grafica en el monitor el punto#
+l e,ento clic del botn cerrar( cierra el fic!ero( borra el contenido de la lista y del cuadro
de imagen( este boton se debe presionar si se desea abrir un fic!ero nue,o( si abre un fic!ero
cuando e=iste otro abierto se produce un error#
Para el caso del cmdIngresar las cuatro primeras l"neas se !an e=plicado( luego se asigna
a registro un n:mero mayor en uno del n:mero de registros que e=isten %Jegistro I LD3%4&ZAN4&( el
n:mero de registros que e=isten ,iene dado por LD3%4&ZA( que es el tama'o del fic!ero entre el
tama'o de cada registro# Se escribe en el fic!ero los datos del punto( luego borra el contenido de
los cuadros de te=to y !ace que tome el enfoque el primer cuadro de te=to %t=t8&#
+l comando +liminar crea una ,ariable nue,a que guarda el n:mero del registro que se ,a
a eliminar %;e7Eliminar=l(tPunto(.Gi(tInde! A 1& ya que las listas comienzan a enumerar
desde cero( abre el arc!i,o pro,isional que grabar los registros que no sern borrados# Luego se
utiliza el bucle 3or para pasar los registros desde el fic!ero original !asta el fic!ero pro,isional( es
muy importante notar que para para los registros que se encuentran antes el traslado es directo:
>et Y1% ;e7i(tro% Punto
Put Y/% ;e7i(tro% Punto)
Pero a partir del registro que ser borrado se utilizan las siguientes instrucciones
>et Y1% ;e7i(tro A 1% Punto
Put Y/% ;e7i(tro% Punto&
+sto se !ace con la intencin que grabe el registro superior en uno al registro menor en
uno del fic!ero pro,isional( es decir que si se ,a a eliminar el tercer registro( pase el cuarto del
fic!ero original al tercero del pro,isional( as" se desplaza el registro eliminado#
La sentencia *lose B4 cierra el fic!ero original( luego Qill%Arc!i,o& borra del disco duro -ste
fic!ero#
Los dems comandos que se encuentran en este procedimiento( ya se !an ,isto#
Programacin con VB 6.0 Ing. Kelvin Atencio
I.d/6-:
Co.t-./do: P*gina
VISUAL )ASI*
4# +L +69DJ6D <+ <+SAJJDLLD <+ V) 1#2
?# PJDPI+<A<+S( $F9D<DS( +V+69DS K *D6S9A69+S# !
@# +L +8A$I6A<DJ <+ D)R+9DS 4
A# LDS *D69JDL+S: "0
E# VAJIA)L+S( 9IPDS <+ <A9DS K *D6S9A69+S: 56
1# $A9JI*+S: 60
T# DP+JA<DJ+S LdGI*DS( DP+JA<DJ+S
$A9+$e9I*DS K 3U6*ID6+S $A9+$e9I*AS:
6
V# PJD*+<I$I+69DS K 3U6*ID6+S: 66
U# S+69+6*IAS <+ *D69JDL 6!
42# *UA<JDS <+ <IeLDGD 75
44# LDS $+6fS 76
4?# *DLDJ+S +6 VISUAL )ASI* 60
4@# +L D)R+9D *DLL+*9ID6 6
4A# PJDGJA$AS <+ $fL9IPL+S <D*U$+69DS
%3DJ$ULAJIDS $<I&
66
4E# 9JA)ARD *D6 3I*C+JDS 6!
41# I$PJI$IJ 9+89D + I$eG+6+S !7
4T# +L PDJ9APAP+L+S !!
4V# )AS+ <+ <A9DS 8"
4U# S+**ID6 <+9ALLA<A <+ PJDGJA$AS 86

También podría gustarte