You are on page 1of 62

GUA DE PROGRAMACIN EN VISUAL BASIC

El presente trabajo es complemento de las Gua de Laboratorio de Visual Basic, que hace algn tiempo fueron puestas a disposici n de los usuarios en La !eb del "rogramador #http$%%&&&'la&ebdelprogramador'com(' "ara un mejor desarrollo del curso, se ha di)idido en tres ni)eles$ *( +ntroducci n a la programaci n, ,( "rogramaci n de aplicaciones -liente%.er)idor / 0( 1plicaciones orientadas a +nternet'

En esta ocasi n el material presentado es el que corresponde al 2i)el +, que inclu/e los siguientes t picos$ Captulo 1: Captulo 2: Captulo 3: Captulo 4: Captulo : Captulo !: Captulo ": Captulo #: 3undamentos Los objetos El lenguaje 4so de los controles El formulario -ontroles 1cti)e5 1rchi)os Gr6ficos

Pgina 1 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

CAPTULO I
FUNDAMENTOS
M$%&o'o(t V$'ual Ba'$% es un conjunto de herramientas que posibilitan el desarrollo de aplicaciones para !indo&s de una manera r6pida / sencilla, basado en el lenguaje BASIC / en la programaci n orientada a objetos' La palabra V$'ual hace referencia al m7todo que se utili8a para crear la interfa8 gr6fica de usuario' En lugar de escribir numerosas lneas de c digo para implementar la interfa8, simplemente se utili8a el rat n para agregar objetos prefabricados en el lugar deseado dentro de la pantalla' La palabra Basic hace referencia al lenguaje B1.+- # B)*$++) &' All, Pu&po') S-./ol$% I+'t&u%t$o+ Co0) (, un lenguaje utili8ado por m6s programadores que ningn otro lenguaje en la historia de la inform6tica' Visual Basic ha e)olucionado a partir del lenguaje B1.+- original / ahora contiene centenares de instrucciones, funciones / palabras cla)e, muchas de las cuales est6n directamente relacionadas con la interfa8 gr6fica de !indo&s' El lenguaje de programaci n V$'ual Ba'$% no es e9clusi)o de :icrosoft Visual Basic' Este lenguaje es utili8ado tambi7n por :icrosoft E9cel, :icrosoft 1ccess / muchas otras aplicaciones !indo&s' El lenguaje de programaci n V$'ual Ba'$% S%&$pt para programar en +nternet es un subconjunto del lenguaje V$'ual Ba'$% ' ;e tal forma, que la in)ersi n reali8ada en el aprendi8aje de Visual Basic le a/udar6 a abarcar estas otras 6reas'

E1ECU2ANDO VISUAL BASIC


.i /a tiene instalado Visual Basic, para ejecutarlo proceda igual que con cualquier otra aplicaci n !indo&s$ hacer clic< en el icono correspondiente' En seguida se presentar6 una )entana similar a la figura siguiente$

Pgina 2 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

En la )entana anterior indicar el tipo de pro/ecto que desea crear #para nuestro caso seleccionar E5E est6ndar( / dar clic< sobre el bot n 1brir' En ese instante se presentar6 el Entorno +ntegrado de ;esarrollo #+;E( de Visual Basic$

Los elementos que componen el IDE 0) V$'ual Ba'$% son$ Barra de mens -uadro de herramientas E9plorador de pro/ectos "osici n del formulario Barra de herramientas ;ise=ador de formularios Ventana de propiedades :ens conte9tuales

Ba&&a 0) .)+3' "resenta las rdenes que se utili8an para desarrollar una aplicaci n' Las opciones m6s utili8adas son$ 1rchi)o, Edici n, Ver, Ventana / 1/uda' .e proporcionan otros mens para tener acceso a funciones especficas de programaci n como "ro/ecto, 3ormato o ;epuraci n' Ba&&a 0) 4)&&a .$ ) + t a ' 3acilita el acceso r6pido a las rdenes m6s comnmente utili8adas' >mitimos el significado de cada bot n porque le ser6 mostrado al pasar el puntero del rat n sobre

cada uno de ellos' "uede )isuali8ar otras barras herramientas del :en Ver' de herramientas ejecutando la opci n Barra de

Pgina 3 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

Cua0&o 0) 4)&&a .$ ) + t a' "roporciona un conjunto de herramientas que permiten dise=ar la interfa8 gr6fica de usuario'

I%o+o "untero -uadro de imagen Etiqueta -uadro de te9to :arco Bot n de comando -asilla de )erificaci n Bot n de opci n -uadro combinado -uadro de lista

D)'%&$p%$5+

Barra de despla8amiento hori8ontal Barra de despla8amiento )ertical -ron metro -uadro de lista de unidades -uadro de lista de directorios -uadro de lista de archi)os 3ormas Lneas +magen -ontenedor >LE "ara utili8ar algn objeto simplemente debe hacer doble clic< correspondiente, luego puede cambiar su posici n / sus dimensiones' D$')6a0o& 0) (o&.ula&$o' Es la )entana sobre la que colocaremos los objetos #controles( de la interfa8 de usuario' sobre el icono

Pgina 4 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

E7plo&a0o& 0) p&o-)% to' -ontiene el conjunto de archi)os que constitu/en la aplicaci n o pro/ecto'

V)+ta +a 0) p&op$)0a 0)' -omo )eremos m6s adelante, cada objeto lle)a asociado un conjunto de propiedades' "ara )er o especificar los )alores de las propiedades de los objetos, utili8aremos la )entana de propiedades'

Po'$%$5+ 0)l (o&.ula &$o Esta )entana le permite especificar la posici n de los formularios de la aplicaci n'

M)+3' %o+t)7 t ua l)' Es un men emergente que presenta rdenes especficas relati)as a un determinado objeto' "ara abrir un men conte9tual, dar clic< derecho sobre el objeto' "or ejemplo, al dar clic< derecho sobre el formulario se presenta el siguiente men conte9tual'

Pgina 5 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

V)+ta +a 0) %50$*o .e presenta cuando se hace doble clic< sobre un objeto que se encuentra en el ;ise=ador de formularios' Esta )entana muestra dos cuadros combinados #combos( en la parte superior, en una aparece el nombre del objeto #i8quierda( / en la otra el nombre del e)ento #derecha('

MI PRIMERA APLICACIN
?a/ tres pasos principales para crear una aplicaci n en Visual Basic$ -rear la interfa8' Establecer propiedades' Escribir el c digo' "ara )er como se reali8a esto, siga los pasos del siguiente ejemplo para crear una aplicaci n sencilla que consiste en un formulario / un bot n de comando' -uando haga clic< en el bot n de comando aparecer6 el mensaje Visual Basic es f6cil en un cuadro de di6logo predefinido' C&)a%$5+ 0) la $+t)&(a8 "ara el desarrollo del presente ejemplo proceda a crear una nue)a aplicaci n' En seguida a=adir un bot n de comando al formulario, para ello en el -uadro de herramientas, dar doble clic< sobre el control deseado, tal como se indica en la figura siguiente$

La apariencia de la interfa8 debe ser similar a la figura mostrada$

Pgina 6 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

E'ta/l)%$)+0o la' p&op$)0a 0)' "ara )er las propiedades de un objeto, simplemente debe seleccionarlo / pulsar la tecla 3@' "or ejemplo la figura siguiente muestra las propiedades del bot n de comando / podemos )er que la propiedad -aption tiene el )alor -ommand* '

"uede cambiar el )alor de cualquier propiedad seleccion6ndolo de la )entana anterior / simplemente modificando su )alor, por ejemplo para el caso anterior estable8ca el )alor de la propiedad -aption de -ommand* a ?aga clic< aqu'

;e manera similar proceda cambiar la propiedad -aption del formulario a :i primera aplicaci n ' La apariencia de la interfa8 debe ser similar a la figura mostrada$

Pgina 7 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

E'%&$/$)+0o )l %50$*o "ara ingresar el c digo a la aplicaci n debe dar doble clic< sobre el control al cual asociaremos dicho c digo' "ara nuestro caso dar doble clic< sobre el bot n de comando e ingresar el c digo que se indica a continuaci n$

"ara guardar la aplicaci n que acaba de crear, seleccione la opci n Guardar "ro/ecto del :en 1rchi)o' Bueno, ahora s lo falta que ejecute su aplicaci n' "ara ello simplemente debe pulsar la tecla 3A' El resultado debe ser similar al siguiente$

Pgina 8 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

CAPTULO II
LOS OBJETOS
Visual Basic se basa en la p&o*&a . a%$5+ o&$)+ta 0 a a o/9)to' # POO (, la cual es una forma de programaci n que utili8a objetos #similares a los objetos del mundo real( para la soluci n de problemas' La POO permite descomponer un problema en bloques relacionados' -ada bloque pasa a ser un objeto autocontenido que contiene sus propios datos e instrucciones' ;e esta manera, la complejidad se reduce / se pueden reali8ar programas m6s largos de una manera sencilla'

MECANISMOS B:SICOS DE LA POO


Los mecanismos b6sicos de la programaci n orientada a objetos son$ >bjetos "ropiedades :7todos E)entos :ensajes -lases

O/9)to' 4n o/9)to es una entidad que tiene atributos particulares #propiedades( / unas formas de operar sobre ellos #m7todos(' "or tanto, un objeto contiene )ariables que especifican su estado / operaciones que definen su comportamiento' .on ejemplos de objetos$ formularios, botones de comando, cuadros de te9to, etiquetas, etc' P&op$)0a0)' Las p&op$)0a0)' representan las caractersticas del objeto' ?a/ propiedades particulares, como -aption que la poseen los botones de comando por ejemplo, / gen7ricas como 2ame que la poseen todos lo objetos' M;to0o' Los .;to0o' son procedimientos asociados a un objeto' .e ejecutan como respuesta a un e)ento, por ejemplo al dar clic< en un bot n de comando' Bambi7n pueden ser in)ocados e9plcitamente en el programa' E<)+to'

Pgina 9 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

4n )<)+to es la capacidad de un objeto de reaccionar cuando ocurre una determinada acci n #acci n / reacci n(' -omo respuesta a un e)ento se en)a un mensaje / se ejecuta un determinado m7todo #procedimiento('

Pgina 10 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

M)+'a9)' 4n .)+'a9) es una llamada a un m7todo #procedimiento(, de tal forma que cuando un objeto recibe un mensaje la respuesta a ese mensaje es ejecutar el procedimiento asociado' -uando se ejecuta un programa orientado a objetos, los objetos est6n constantemente recibiendo, interpretando / respondiendo a mensajes de otros objetos' Cla')' 4na %la') es una descripci n para producir objetos de esa clase o tipo' Es decir se trata de una generali8aci n de un tipo especfico de objetos' En otras palabras, un objeto es una )ariable del tipo definido por una clase' "or ejemplo, piense en un molde para hacer pasteles, el molde es la clase / los pasteles los objetos'

CARAC2ERS2ICAS DE LA POO
Las caractersticas fundamentales de la programaci n orientada a objetos son$ 1bstracci n Encapsulamiento ?erencia "olimorfismo

A/'t&a%%$5+ La a/'t&a%%$5+ permite no detenernos en los detalles concretos del funcionamiento de las cosas, sino centrarnos en los aspectos que realmente nos importan / nos son tiles en un determinado momento, en cierta medida, se podra decir que es sese el objeto / ol)dese de como funciona en forma interna ' "or ejemplo, para manejar una computadora no necesitamos saber como funcionan sus circuitos electr nicos, en t7rminos de corriente, tensi n, etc' E+%ap'ula .$ ) + to Esta caracterstica permite )er un objeto como una caja negra autocontenida en la que se ha metido de alguna manera toda la informaci n que maneja dicho objeto' Esto permite manipular los objetos como unidades b6sicas, permaneciendo oculta su estructura interna' =)&)+%$a La 4)&)+%$a es la caracterstica que permite compartir autom6ticamente propiedades / m7todos entre objetos' Es decir, se pueden crear nue)as clases de objetos en base a clases e9istentes' :6s concreto, un objeto puede heredar un conjunto general de propiedades / m7todos a las que puede a=adir aquellas caractersticas que son especficas su/as' El usuario de Visual Basic no dispone de esta caracterstica'

Pgina 11 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

Pol$.o&($'.o Pol$.o&($'.o , del griego cu/o significado es muchas formas, es la caracterstica que permite implementar mltiples formas de un mismo m7todo, dependiendo cada una de ellas de la clase sobre la que se reali8a la implementaci n' Esto hace posible que se puede acceder a una )ariedad de m7todos distintos #todos con el mismo nombre( utili8ando e9actamente el mismo medio de acceso'

LOS OB1E2OS DE VISUAL BASIC


Visual Basic soporta la a/'t&a%%$5+> &)ut$l$8a%$5+ 0) %50$*o ' la )+%ap'ula%$5+> )l pol$.o&($' .o - la

La &)ut$l$8a%$5+ 0) %50$*o es la capacidad de trasladar caractersticas de un objeto a otro, lo que se logra con alguna forma de herencia' Esto se consigue mediante la creaci n / uso del objeto' Los objetos de Visual Basic est6n di)ididos en dos tipos$ %o+t&ol)' - %o+t)+) 0o& )' ' Los %o+t&ol)' son un medio gr6fico que permiten a los usuarios interactuar con la aplicaci n para la manipulaci n de datos / ejecuci n de tareas' .on ejemplo de controles$ etiquetas, cuadros de te9to, botones de comando, casillas de )erificaci n, botones de opci n, cuadros de lista, cuadros combinados, etc' Los %o+t)+) 0o&)' son objetos que pueden incluir otros objetos / permiten el acceso a los objetos que contienen' Entre los m6s utili8ados tenemos a los formularios, marcos / cuadrculas' El (o&.ula &$o m6s los controles constitu/en la interfa8 de la aplicaci n'

R E?ERENCIANDO O B1E2OS
La '$+ta7$' para referenciar objetos es la siguiente$ >BCEB>'"D>"+E;1; E V1L>D "or ejemplo, para establecer el ttulo de un formulario a Visual Basic es f6cil, la orden sera$ 3orm*'-aption E Visual Basic es f6cil

L OS EVEN2OS
-ada objeto responde a un conjunto de e)entos' -omo respuesta a un e)ento se ejecuta un determinado procedimiento' Los procedimientos asociados a un e)ento presentan la forma$ "ri)ate .ub >BCEB>FEVE2B>#(

Pgina 12 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

S EN2ENCIAS
End .ub

Pgina 13 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

"ara aclarar este concepto desarrollaremos la siguiente aplicaci n, la cual consiste en un formulario, un cuadro de te9to / un bot n de comando' El usuario debe ingresar un mensaje en el cuadro de te9to / al pulsar el bot n de comando, el mensaje recientemente ingresado, se coloca como ttulo del formulario'

"ara ello proceda a construir la interfa8 mostrada en la figura anterior' Luego, dar doble clic< sobre el bot n de comando e ingrese el siguiente c digo$ "ri)ate .ub -ommand*F-lic<#( 3orm*'-aption E Be9t*'Be9t End .ub .eguidamente guarde / proceda ejecutar su aplicaci n' -omo puede )erificar, el e)ento -lic< se dispara cada )e8 que el usuario pulsa #hace clic<( sobre un control' CONVENCIN N OMBRES O B1E2OS

DE

PARA LOS

La con)enci n a seguir en la presente gua G para dar nombre a los objetos G consiste en utili8ar ciertos prefijos, los cuales indicaran el tipo de objeto del que se trata' P&)($9o 3rm 3ra Lbl B9t -md -h< >pt Lst -bo Bim ?. V. "ic +mg ;r) ;ir 3il >le Grd Gra -tr O/9)to 3ormulario :arco Etiqueta -uadro de te9to Bot n de comando -asilla de )erificaci n Bot n de opci n -uadro de lista -uadro combinado -ron metro Barra de despla8amiento hori8ontal Barra de despla8amiento )ertical -uadro de imagen +magen -uadro de lista de unidades -uadro de lista de directorios -uadro de lista de archi)os -ontenedor >LE -uadrcula Gr6fico -ontrol #se utili8a en procedimientos cuando el tipo de control es desconocido(

Pgina 14 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

CAPTULO III
EL LENGUAJE
Visual Basic es un lenguaje de programaci n basado en el lenguaje BASIC , al cual incorpora la funcionalidad de la programaci n orientada a objetos' El %50$*o 0) V$'ual Basic se almacena en m dulos, donde cada m dulo est6 subdi)idido en distintas secciones, una para cada objeto del m dulo' -ada secci n de c digo puede contener uno o m6s procedimientos, formados por declaraciones de constantes / )ariables, e9presiones, sentencias de control / llamadas a procedimientos /%o funciones' En este captulo )amos a anali8ar los diferentes elementos que inter)ienen al momento de reali8ar el c digo para una aplicaci n' 2 IPO D A2OS

DE

Los 0ato' con los que trabajaremos probablemente inclu/an informaci n relacionada con nmeros, dinero, nombres, descripciones, fechas, etc' -ada dato corresponde a un determinado tipo, es decir, pertenece a una categora de datos que se manipulan de maneras similares' 2$po +nteger Long .ingle ;ouble -urrenc/ B/te .tring Boolean ;ate Variant #por omisi n( D)'%&$p%$5+ Entero #, b/tes( Entero largo #@ b/tes( Ra+*o G0,HIJ a 0,HIH G,*@H@J0I@J a ,*@H@J0I@H "unto flotante de simple precisi n #@ G0'@KEL0J a b/tes( 0'@KEL0J "unto flotante de doble precisi n #J G*'HM; L0K J a b/tes( *'HM; L0K J :onetario #J b/tes( L%G M,,00H,K0IJA@HH'AJKH -ar6cter #* b/te( K a ,AA -adena de caracteres #* b/te por 1pro9imadamente hasta I@N car6cter( #IA@KK caracteres( L gico #, b/tes( Brue o 3alse 3echa%?ora #J b/tes( K*%E2ED>%*KK a 0*%;+-+E:BDE%MMMM -ualquier tipo de dato -on nmeros hasta el inter)alo de un tipo ;ouble' -on caracteres ,, b/tes L * b/te por car6cter

Pgina 15 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

I DEN2I?ICADORES Los $0)+t$($%a0o&)' son nombres dados a los elementos de una aplicaci n, tales como constantes, )ariables, procedimientos, funciones, objetos, etc' 4n identificador es una secuencia de caracteres que puede ser de hasta ,AA caracteres' "ara la construcci n de identificadores debemos tener presente las siguientes reglas$ ;eben comen8ar con una letra / no puede contener espacios en blanco' Letras, dgitos / caracteres subra/ados est6n permitidos despu7s del primer car6cter' 2o se puede utili8ar una palabra reser)ada como identificador' 4na palabra reser)ada tiene un significado especial para Visual Basic' CONS2AN2ES 4na constante almacena un dato cu/o )alor no cambia durante la ejecuci n de un programa' "ara declarar una constante utilice la siguiente sinta9is$ -onst 2>:BDEF->2.B12BE O1s B+">P E V1L>D .i no se declara el tipo de constante #utili8ando 1s B+">( se asigna a la constante el tipo de dato m6s apropiado a su )alor' El )alor de una constante puede ser num7rico, alfanum7rico, car6cter o de tipo fecha / hora' "or ejemplo$ -onst -onst -onst -onst V ARIABLES 4na <a&$a/l) almacena un dato cu/o )alor puede cambiar durante la ejecuci n de un programa' "ara declarar una )ariable utilice la siguiente sinta9is$ ;im 2>:BDEFV1D+1BLE O1s B+">P -uando se declara una )ariable / no se especifica su tipo #con 1s B+">(, se asume que es de tipo Variant' La instrucci n ;im puede reali8ar m6s de una declaraci n, teniendo en cuenta que la cl6usula opcional 1s B+"> le permite definir el tipo de dato de cada )ariable que )a/a a declarar' "or ejemplo$ ;im 5, R 1s +nteger La sentencia anterior le puede inducir a pensar que 5 e R son de tipo +nteger, lo cual no es cierto, pues 5 es de tipo Variant #por omisi n( e R es de tipo +nteger' "ara asignar )alores a una )ariable, utili8ar la siguiente sinta9is$ :15+B E ,A "+ 1s ;ouble E 0'*@*AM, -1;E21 1s .tring E Visual Basic es f6cil 3E-?1F">DF;E3E-B> E QK*%K*%MM Q

Pgina 16 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

2>:BDEFV1D+1BLE E V1L>D

Pgina 17 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

1 manera de ejemplo considere lo siguiente$ ;im -12B+;1; 1s +nteger, "DE-+> 1s ;ouble, B>B1L 1s ;ouble -12B+;1; E 0K "DE-+> E *'A B>B1L E -12B+;1; S "DE-+> O PERADORES Los op)&a0o&)' son smbolos que indican c mo ser6n manipulados los operandos' Los op)&a+0o' son los datos #constantes /%o )ariables( sobre los que acta los operadores para producir un determinado resultado' Op)&a0o&)' a&$t. ; t$%o' Op)&a0o& T G S % U :od L G S$*+$($%a0o E9ponenciaci n :enos unario :ultiplicaci n / di)isi n ;i)isi n entera Desto de una di)isi n entera .uma / resta

Op)&a0o&)' &)la%$o+al)' Op)&a0o& E S$*+$($%a0o +gual que ;iferente que :enor que :a/or que :enor o igual que :a/or o igual que

<> < > <= =>

Op)&a0o&)' l5*$%o' Op)&a0o& 2ot 1nd >r 5or Eq) +mp S$*+$($%a0o 2egaci n -onjunci n ;is/unci n inclusi)a ;is/unci n e9clusi)a Equi)alencia #opuesto a 5or( +mplicaci n #falso si primer operando )erdadero / segundo operando falso(

Op)&a0o&)' 0) %a0)+a' 0) %a&a%t) &)' Op)&a0o& V Li<e S$*+$($%a0o -oncatenaci n -ompara dos cadenas de caracteres

Pgina 18 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

S EN2ENCIAS 4na ')+t) +%$a es una lnea de c digo que indica una o m6s operaciones a reali8ar' 4na lnea puede incluir )arias sentencias, separadas unas de otras por dos puntos' "or ejemplo$ ;im -12B+;1; 1s +nteger, "DE-+> 1s ;ouble, B>B1L 1s ;ouble -12B+;1; E 0K $ "DE-+> E *'A $ B>B1L E -12B+;1; S "DE-+> 4na sentencia Visual Basic puede escribirse en m6s de una lnea fsica utili8ando el car6cter de continuaci n de lnea #un espacio en blanco seguido del car6cter de subra/ado(' "or ejemplo$ ;im -?@FE2BD1;1 1s ;ouble, -?@F.1L+;1 1s ;ouble, F -?@FGE2ED1 1s ;ouble, -?@F->2.4:E 1. ;ouble EN2RADA S ALIDA D A2OS

DE

Visual Basic posee una serie de o/9)to' #controles( que pueden ser utili8ados como mecanismos de entrada / salida #E%.( de datos' .in embargo, estos ser6n estudiados en captulos posteriores' >tra posibilidad de proporcionar datos o de )isuali8arlos durante la ejecuci n de una aplicaci n es utili8ando cajas de di6logos predefinidas' ;ebido a que esta es la forma m6s simple de reali8ar la E%. de datos nos ocuparemos de ella' E+t&a0a 0) 0ato' La )+t&a 0a 0) 0ato' permite proporcionar )alores durante la ejecuci n de una aplicaci n' Estos )alores son ingresados generalmente mediante el teclado / asignados a )ariables del programa' En Visual Basic una forma de ingresar datos a la aplicaci n es utili8ando la caja de di6logo predefinida pro)ista por la funci n I+putBo7 ' .u sinta9is es la siguiente$ V1D+1BLE E +nputBo9#:E2.1CE O, BWB4L>P O, "DE;EBED:+21;>P( ;onde :E2.1CE es el mensaje que indica al usuario el tipo de informaci n que debe ingresar' "or ejemplo, las sentencias$ ;im E;1; 1s +nteger E;1; E +nputBo9#+ngrese su edadX( ;a lugar a que Visual Basic presente la siguiente caja de di6logo solicitando la informaci n requerida$

Pgina 19 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

-omo puede obser)ar, el resto de los par6metros son opcionales' BWB4L> es el te9to que se muestra en la barra de ttulo del cuadro de di6logo, si se omite BWB4L>, el nombre de la aplicaci n es la que se muestra en la barra de ttulo' "DE;EBED:+21;> es una e9presi n de cadena que aparece en el cuadro de te9to como respuesta predeterminada si no se proporciona ningn otro te9to' .i se omite "DE;EBED:+21;> el cuadro de te9to se muestra )aco' 1 manera de ejemplo considere lo siguiente$

Pgina 20 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

;im E;1; 1s +nteger E;1; E +nputBo9#+ngrese su edadX, 3icha de datos, *J( En este caso se )isuali8a la caja de di6logo que se presenta en la figura siguiente$

Sal$0a 0) 0ato' La 'al$0a 0) 0ato' generalmente consiste en tomar la informaci n de la memoria / mostrarla en pantalla' "ara reali8ar la operaci n de salida de datos en Visual Basic, podemos utili8ar el procedimiento M'*Bo7 , cu/a sinta9is es como sigue$ :sgBo9 :E2.1CE O, +->2>, BWB4L>P MENSA1E es La cadena que se muestra como salida en la caja de di6logo' +->2> es se refiere al estilo de icono que se )a ha utili8ar / BWB4L> es una te9to que se mostrar6 en la barra de ttulo de la caja de di6logo' "or ejemplo$ ;im E;1; 1s +nteger E;1; E +nputBo9#+ngrese su edadX( E;1; E E;1; L *K :sgBo9 ;entro de *K a=os su edad ser6$ V .tr#E;1;( .i ejecuta el c digo anterior e ingresa su edad #en mi caso ,M a=os( la salida debe ser similar a la figura siguiente$

"ara que pueda ejecutar el c digo anterior, proceda a crear una nue)a aplicaci n / haga doble clic< sobre el formulario, luego ingrese el c digo anterior$ "ri)ate .ub 3ormFLoad#( ;im E;1; 1s +nteger E;1; E +nputBo9#+ngrese su edadX( E;1; E E;1; L *K :sgBo9 ;entro de *K a=os su edad ser6$ V .tr#E;1;( End .ub 1 manera de obser)aci n cabe se=alar que la funci n .tr#( se utili8a para con)ertir una e9presi n num7rica a una cadena de caracteres'

Pgina 21 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

ES2RUC2URAS

DE

CON2ROL

Las )'t&u% tu& a' 0) %o+t&ol permiten tomar decisiones / reali8ar un proceso repetidas )eces #procesos iterati)os(' "ara ello Visual Basic dispone de las siguientes estructuras de control$ +f ' ' ' Bhen ' ' ' Else, +f ' ' ' Bhen ' ' ' Else+f, .elect -ase, 3or ' ' ' 2e9t, !hile ' ' ' ' !end, ;o ' ' ' Loop / GoBo' E't&u%tu&a I( A A A 24)+ A A A El') Este tipo de estructura e)ala una determinada condici n / en funci n a ello ejecuta uno de entre dos posibles grupos de sentencias' .u sinta9is es la siguiente$ +f ->2;+-+Y2 Bhen .E2BE2-+1.FVED;1;ED1. Else .E2BE2-+1.F31L.1. End +f .i ->2;+-+Y2 es )erdadera se ejecuta el grupo de .E2BE2-+1.FVED;1;ED1.' .i ->2;+-+Y2 es falsa se ejecuta el grupo de .E2BE2-+1.F31L.1.' "or ejemplo, el siguiente c digo determina si un entero 1 es o no di)isible por otro entero B$ ;im 1 1s +nteger, B 1s +nteger 1 E +nputBo9#+ngrese 1X( B E +nputBo9#+ngrese BX( +f 1 :od B E K Bhen :sgBo9 .tr#1( V es di)isible por V .tr#B( Else :sgBo9 .tr#1( V no es di)isible por V .tr#B( End +f E't&u%tu&a I( A A A 24)+ A A A El')I( Este tipo de estructura se utili8a para elegir una de entre mltiples alternati)as' .u sinta9is es como sigue$ +f ->2;+-+Y2F* Bhen .E2BE2-+1.F* Else+f ->2;+-+Y2F, Bhen .E2BE2-+1.F, ' ' ' Else .E2BE2-+1.F31L.1. End +f .i ->2;+-+Y2F* es )erdadera se ejecuta el grupo de .E2BE2-+1.F*, / si es no se cumple, se e)alan secuencialmente las condiciones siguientes hasta Else, ejecut6ndose las sentencias correspondientes al primer Else+f cu/a condici n sea )erdadera' .i todas las condiciones son falsas, se ejecutan las .E2BE2-+1.F31L.1. correspondientes a Else'

Pgina 22 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

"or ejemplo considere el siguiente c digo, el cual imprime correspondiente a los nmeros del * al *,' ;im 2 1s +nteger 2 E +nputBo9#+ngrese 2X( +f 2 E * Bhen :sgBo9 Enero Else+f 2 E , Bhen $ :sgBo9 3ebrero Else+f 2 E 0 Bhen $ :sgBo9 :ar8o Else+f 2 E @ Bhen $ :sgBo9 1bril Else+f 2 E A Bhen $ :sgBo9 :a/o Else+f 2 E I Bhen $ :sgBo9 Cunio Else+f 2 E H Bhen $ :sgBo9 Culio Else+f 2 E J Bhen $ :sgBo9 1gosto Else+f 2 E M Bhen $ :sgBo9 .etiembre Else+f 2 E *K Bhen $ :sgBo9 >ctubre Else+f 2 E ** Bhen $ :sgBo9 2o)iembre Else+f 2 E *, Bhen $ :sgBo9 ;iciembre Else $ :sgBo9 Error de datos End +f E't&u%tu&a S)l)%t Ca')

el nombre

del mes

Este estructura es una alternati)a a la estructura +f ' ' ' Bhen ' ' ' Else+f, cuando lo que necesita es comparar la misma e9presi n con diferentes )alores' .u sinta9is es la siguiente$ .elect -ase E5"DE.+Y2FBE.B -ase E5"DE.+Y2F* .E2BE2-+1.F* -ase E5"DE.+Y2F, .E2BE2-+1.F, ' ' ' -ase Else .E2BE2-+1.F31L.1. End .elect En este caso se comprueba el )alor de E5"DE.+Y2FBE.B frente a la lista e9presiones E5"DE.+Y2F*, E5"DE.+Y2F,, ' ' ' / as sucesi)amente, / busca el primer -ase que inclu/a el )alor e)aluado en E5"DE.+Y2FBE.B, ejecutando a continuaci n el bloque de sentencias correspondiente' .i no e9iste un )alor igual a E5"DE.+Y2FBE.B, entonces se ejecuta las .E2BE2-+1.F31L.1. correspondientes al -ase Else' 1 manera de ejemplo )amos a codificar el programa de la secci n anterior el cual imprime el nombre del mes correspondiente a los nmeros del * al *,' "ero en esta )e8 utili8aremos la estructura .elect -ase #compare con cual de ambas estructuras es m6s c modo trabajar('

Pgina 23 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

;im 2 1s +nteger 2 E +nputBo9#+ngrese 2X( .elect -ase 2 -ase * $ :sgBo9 Enero -ase , $ :sgBo9 3ebrero -ase 0 $ :sgBo9 :ar8o -ase @ $ :sgBo9 1bril -ase A $ :sgBo9 :a/o -ase I $ :sgBo9 Cunio -ase H $ :sgBo9 Culio -ase J $ :sgBo9 1gosto -ase M $ :sgBo9 .eptiembre -ase *K $ :sgBo9 >ctubre -ase ** $ :sgBo9 2o)iembre -ase *, $ :sgBo9 ;iciembre -ase Else :sgBo9 Error de datos End .elect -abe destacar que .elect -ase tambi7n se puede utili8ar de la siguiente manera$ ;im 5 1s +nteger 5 E +nputBo9#+ngrese 5X( .elect -ase 5 -ase * :sgBo9 5 E * -ase ,, 0 :sgBo9 5 E , o 5 E 0 -ase @ Bo *K :sgBo9 @ Z E 5 Z E *K -ase Else :sgBo9 5 Z * o 5 [ *K End .elect E't&u%tu&a ?o& A A A N)7t Esta estructura es utili8ada para ejecutar un bucle un nmero determinado de )eces' El nmero de iteraciones deber6 ser conocido de antemano' .u sinta9is es la que se presenta a continuaci n$ 3or ->2B1;>D E +2+-+> Bo 3+21L O.tep +2-DE:E2B>%;E-DE:E2B>P .E2BE2-+1.FDE"EB+B+V1. OE9it 3orP 2e9t ;onde la )ariable ->2B1;>D es iniciali8ada con el )alor de +2+-+> / se incrementa o decrementa hasta un )alor 3+21L' +2-DE:E2B>%;E-DE:E2B> define la manera en que cambia el )alor de la )ariable ->2B1;>D en cada iteraci n' La sentencia E9it 3or permite salir del bucle 3or ''' 2e9t antes de que este finalice'

Pgina 24 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

"or ejemplo, el siguiente c digo imprime los cuadrados de los nmeros enteros del * al ,A' ;im - 1s +nteger 3or - E * Bo ,A "rint 2e9t "ara que este c digo funcione correctamente debe establecer la propiedad 1utoDedra& del formulario a Brue' E't&u%tu&a B4$l) A A A B)+0 La estructura !hile ' ' ' !end es aquella en la que el nmero de iteraciones no se conoce por anticipado / el cuerpo del bucle se repite mientras se cumple una determinada condici n' .u sinta9is es la siguiente$ !hile ->2;+-+Y2 .E2BE2-+1.FDE"EB+B+V1. !end La estructura !hile ' ' ' !end e)ala la ->2;+-+Y2 en cada iteraci n / si el resultado es )erdadero contina su ejecuci n' El bucle termina cuando ->2;+-+Y2 es falsa' 1 manera de ejemplo, considere el siguiente c digo, el cual imprime en pantalla la suma de los N primeros nmeros naturales, es decir S E * L , L 0 L @ L ' ' ' L N ;im 2 1s +nteger, . 1s +nteger .E K 2 E +nputBo9#+ngrese 2X( !hile 2 <> K .E .L 2 2E 2G* !end :sgBo9 La suma es .E V .tr#.( E't&u%tu&a Do A A A Loop Esta estructura ejecuta un bucle mientras una condici n dada sea cierta, o hasta que una condici n dada sea cierta' La condici n puede ser )erificada antes o despu7s de ejecutarse el cuerpo del bucle' .u sinta9is es$ Formato 1 : ;o O!hile%4ntilP ->2;+-+Y2 .E2BE2-+1.FDE"EB+B+V1. OE9it ;oP Loop ;o .E2BE2-+1.FDE"EB+B+V1. OE9it ;oP Loop O!hile%4ntilP ->2;+-+Y2

Formato 2 $

Pgina 25 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

Esta estructura #como se puede obser)ar en ambos formatos( permite reali8ar )arias estructuras diferentes dependiendo si la condici n de terminaci n est6 al principio o al final del cuerpo del bucle'

Pgina 26 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

-omo ejemplo, consideremos el siguiente programa, el cual calcula el factorial de un entero N ingresado por teclado$ ;im 2 1s +nteger, 31-B 1s +nteger, - 1s +nteger 31-B E * -E * 2 E +nputBo9#+ngrese 2X( ;o 31-B E 31-B S -E -L * Loop !hile - Z E 2 :sgBo9 El factorial de V .tr#2( V esE V .tr#31-B( S)+t) +%$a Go2o Bransfiere el control a una lnea especfica de c digo, identificada por una etiqueta o por un nmero de lnea' .u sinta9is es$ GoBo EB+\4EB1%24:ED>FLW2E1 1unque el uso del GoBo se ha depreciado considerablemente, en el presente trabajo no se ju8gar6 su )alide8' .in embargo, se ha establecido que no ha/ situaciones de programaci n que requieran el uso del GoBo, es decir, no es un elemento necesario para hacer completo el lenguaje' .in embargo, el GoBo es un con)enio que, si su usa con cuidado, puede ser beneficioso en ciertas situaciones de programaci n' "or ejemplo podra escribir un bucle para imprimir los cuadrados de los nmeros enteros del * al ,A' ;im 5 1s +nteger 5E K L1BEL*$ 5E 5L * "rint 5 T , +f 5 Z ,A Bhen GoBo L1BEL* 4n uso abusi)o de la sentencia GoBo da lugar a c digos difciles de interpretar / de mantener' "or ello, se recomienda su uso solamente en ocasiones e9cepcionales' La tarea que )a/a a desempe=ar una sentencia GoBo puede suplirse utili8ando cualquiera de las estructuras de control )istas en las secciones anteriores' ARREGLOS 4n arreglo o matri8 es una estructura de datos en la que se almacena una colecci n finita de datos del mismo tipo, que comparten un nombre comn, a los que se puede acceder por la posici n #ndice( que ocupa cada uno de ellos dentro del arreglo' -ada elemento del arreglo es una )ariable que puede contener un nmero o una cadena de caracteres, dependiendo del tipo de arreglo que se declare' Los arreglos en Visual Basic se clasifican en est6ticos / din6micos'

Pgina 27 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

A&&)*lo' )'tCt$%o' .on aquellos arreglos cu/o tama=o no puede cambiar en tiempo de ejecuci n' La declaraci n de un arreglo est6tico se puede reali8ar mediante la siguiente sinta9is$ ;im 2>:BDEF1DDEGL>#;+:E2.>2E.( 1s B+"> ;onde ;+:E2.+>2E. es una lista de nmeros, separados por comas / que definen las dimensiones del arreglo' Esta lista puede ser de la siguiente forma$ ;+:E2.+Y2F*, ;+:E2.+Y2F,, ;+:E2.+Y2F0, ' ' ', ;+:E2.+Y2F "ara el caso de un arreglo formado por dimensional'

K dimensiones, es decir un arreglo K G

1 manera de ejemplo considere los siguientes casos que se pueden presentar$ ;im L+.B1#M( 1s +nteger ;im :1BD+]#@, 0( 1s ;ouble ;im 2>:BDE.#*M( 1s .tring S 0K En el primer caso se declara un arreglo unidimensional de *K elementos de tipo entero #por defecto los elementos de un arreglo se numeran a partir de K(' En el segundo caso se define de un arreglo bidimensional de ,K elementos #A filas por @ columnas( de tipo punto flotante en doble precisi n' En el tercer caso se define una arreglo unidimensional de ,K elementos de tipo cadena de caracteres #cada elemento tiene una longitud fija de 0K caracteres(' -omo se obser)a la numeraci n de los elementos de un arreglo por defecto comien8a en cero, para hacer que la numeraci n comience en *, debe ingresar la siguiente orden en la secci n de ;eclaraciones del m dulo de formulario$

Luego, para declarar los mismos arreglos de los casos anteriores, las sentencias seran las siguientes$ ;im L+.B1#*K( 1s +nteger ;im :1BD+]#A, @( 1s ;ouble ;im 2>:BDE.#,K( 1s .tring S 0K Establecer la sentencia >ption Base a * o trabajar con el )alor predeterminado #cero( queda a consideraci n del lector'

Pgina 28 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

A&&)*lo' 0$+C.$%o' .on aquellos arreglos en los que su tama=o puede definirse o modificarse en tiempo de ejecuci n' "ara declara una arreglo din6mico utilice la siguiente sinta9is$ ;im 2>:BDEF1DDEGL>#( 1s B+"> "ara definir el tama=o del arreglo utili8ar la siguiente sinta9is$ De;im 2>:BDEF1DDEGL>#2^:ED>FELE:E2B>.( -ada )e8 que se ejecuta la sentencia De;im, todos los )alores almacenados en el arreglo se pierden' "ara definir o cambiar el tama=o del arreglo conser)ando los )alores del mismo use la siguiente sinta9is$ De;im "reser)e 2>:BDEF1DDEGL>#2^:ED>FELE:E2B>.( "ara liberar el espacio de memoria utili8ado por arreglos din6micos que /a no son tiles, utili8ar la sinta9is$ Erase 2>:BDEF1DDEGL> La orden Erase asigna cero a cada elemento de los arreglos num7ricos / nulo #( a cada elemento de los arreglos de cadena de caracteres' 1 manera de ejemplo considere el siguiente c digo que declara / hace uso de un arreglo din6mico$ ;im + 1s +nteger, 2 1s +nteger, BE:"#( 1s +nteger 2 E +nputBo9#+ngrese 2X( De;im BE:"#2 G *( 3or + E K Bo 2 G * BE:"#+( E + L * "rint BE:"#+( 2e9t Erase BE:" REGIS2ROS 4n registro es un nue)o tipo de dato, que se define como una colecci n de datos de diferentes tipos, conocidos como campos, los cuales se encuentran e)identemente relacionados' 4n registro s lo se puede ser creado en la secci n de declaraciones de un m dulo' La sinta9is correspondiente es$ "ri)ate B/pe 2>:BDEFDEG+.BD> ;E-L1D1-+>2E.F;EFL>.F:+E:BD>. End B/pe "or ejemplo considere el siguiente c digo que define la estructura 1L4:2>$ "ri)ate B/pe 1L4:2> +;F1L4:2> 1s .tring S H 2>:BDE 1s .tring S ,A

Pgina 29 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

;+DE--+>2 1s .tring S 0A

Pgina 30 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

BELE3>2> 1s .tring S H E.B1;> 1s Boolean End B/pe Luego, podemos declarar una )ariable tipo 1L4:2> de la siguiente forma$ ;im 5 1s 1L4:2> "ara referirse a un determinado miembro del registro se utili8a el operador selector de campos # ' (, )eamos$ 5'+;F1L4:2> E MJKMHIG 5'2>:BDE E -arlos -astillo "eralta 5';+DE--+>2 E Cr' -' Dichardson @*, -horrillos 5'BELE3>2> E ,A*KJAK 5'E.B1;> E Brue Las mismas rdenes del p6rrafo anterior se pueden escribir de una manera m6s f6cil, m6s legible / m6s eficiente si utili8a la sentencia !ith ' ' ' End !ith, del siguiente modo$ !ith 5 ' +;F1L4:2> E MJKMHIG '2>:BDE E -arlos -astillo "eralta ';+DE--+>2 E Cr' -' Dichardson @*, -horrillos 'BELE3>2> E ,A*KJAK 'E.B1;> E Brue End !ith ?UNCIONES Las funciones son uno de los elementos b6sicos en programaci n' 1 continuaci n ser6n estudiadas detalladamente' D)%la&a%$5+ 0) u+a (u+%$5+ 4na funci n es un procedimiento que cuando se ejecuta de)uel)e un nico resultado al procedimiento que la in)oc ' La sinta9is correspondiente a la declaraci n de una funci n es$ 3unction 2>:BDEF342-+Y2#OL+.B1F"1D_:EBD>.P( O1s B+">P .E2BE2-+1. O2>:BDEF342-+Y2 E V1L>DFDEB>D21;>P OE9it 3unctionP End 3unction ;onde L+.B1F"1D_:EBD>. es una secuencia de )ariables separadas por comas que se corresponden con los argumentos pasados cuando es in)ocada la funci n' "ara especificar el tipo de datos que ser6 retornado por la funci n utilice la cl6usula opcional 1s B+">, el tipo es Variant por omisi n'

Pgina 31 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

El )alor retornado por la funci n es almacenado en su propio nombre, es decir en 2>:BDEF342-+Y2, que acta como )ariable dentro del cuerpo de la funci n' .i no se efecta esta asignaci n el )alor de)uelto ser6 cero si la funci n es de tipo num7rica, nulo #( si la funci n es de tipo cadena, o )aco #Empt/( si la funci n es de tipo Variant' La cl6usula opcional E9it 3unction permite salir de una funci n antes de que la funci n finalice, en caso sea esto necesario' La sinta9is para la llamada a una funci n es de la siguiente forma$ V1D+1BLE E 2>:BDEF342-+Y2#OL+.B1F1DG4:E2B>.P( ;onde L+.B1F1DG4:E2B>. es una secuencia de constantes, )ariables o e9presiones separadas por comas' El nmero de argumentos debe ser igual al nmero de par6metros de la funci n' Los tipos de los argumentos deben coincidir con los tipos de sus correspondientes par6metros' 1 manera de ejemplo considere la implementaci n de la siguiente funci n$

f ( x) = x 2 + 2 x + 3
En la secci n de ;eclaraciones del m dulo de formulario ingrese el siguiente c digo$ 3unction 3#5 1s ;ouble( 1s ;ouble 3E 5T , L , S 5L 0 End 3unction "ara in)ocar la funci n creada recientemente, codifique las siguientes lneas$ ;im 1 1s ;ouble, DE." 1s ;ouble 1 E +nputBo9#+ngrese 1X( DE." E 3#1( :sgBo9 #.tr#DE."(( Pa'o 0) a&*u.) + t o' a u+a (u+%$5+ El paso de argumentos a una funci n es la forma como se ingresan los datos / )ariables al interior de la funci n / se presenta de dos formas$ "or referencia "or )alor Pa'o 0) a&*u.) + t o' po& &)()&) +%$a En las funciones de Visual Basic, los argumentos se pasan por referencia #forma por defecto(, de este modo cualquier cambio de )alor que sufra un par6metro en el cuerpo de la funci n, tambi7n se produce en el argumento correspondiente de la llamada a la funci n' Esta forma de pasar los argumentos a una funci n es til para funciones que de)uel)en m6s de un )alor' "or ejemplo, considere la siguiente funci n que calcula las races reales de una ecuaci n cuadr6tica Ax 2 + Bx + C = 0 '

Pgina 32 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

3unction D1+]#1 1s ;ouble, B 1s ;ouble, - 1s ;ouble, F 5* 1s ;ouble, 5, 1s ;ouble( 1s Boolean ;im ; 1s ;ouble ;E BT , G@ S 1S +f ; [ E K Bhen 5* E #GB G .qr#;(( % #, S 1( 5, E #GB L .qr#;(( % #, S 1( D1+] E Brue ` Verdadero si ha/ races reales Else D1+] E 3alse ` 3also si no ha/ races reales End +f End 3unction La llamada a esta funci n continuaci n$ se puede reali8ar de la manera que se presenta a

;im 1 1s ;ouble, B 1s ;ouble, - 1s ;ouble ;im 5* 1s ;ouble, 5, 1s ;ouble 1 E +nputBo9#+ngrese 1X( B E +nputBo9#+ngrese BX( - E +nputBo9#+ngrese -X( +f D1+]#1, B, -, 5*, 5,( Bhen :sgBo9 5* E V .tr#5*( :sgBo9 5, E V .tr#5,( Else :sgBo9 2> E5+.BE2 D1W-E. DE1LE. End +f Pa'o 0) a&*u.) + t o' po& <alo& -uando se ejecuta una funci n, se podr6 especificar que el )alor de un argumento no sea cambiado por esta funci n, pasando dicho argumento por )alor' "ara ello se debe anteponer la palabra reser)ada B/Val a la declaraci n del par6metro en la cabecera de la funci n' "or ejemplo$ 3unction 3#B/Val 5 1s ;ouble( 1s ;ouble 3E 5T , L , S 5L 0 End 3unction La cabecera de la funci n 3 especifica que 5 ser6 pasado por )alor / no por referencia' ?u+%$o+)' &)%u&'$<a' .e dice que una funci n es recursi)a si se llama a s misma' "or ejemplo la funci n 31-B>D+1L cu/o c digo se presenta a continuaci n es recursi)a$ 3unction 31-B>D+1L#2 1s +nteger( 1s Long +f 2 <> K Bhen 31-B>D+1L E 31-B>D+1L#2 G *( S 2 Else 31-B>D+1L E * End +f End 3unction

Pgina 33 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

PROCEDIMIEN2OS La sinta9is para definir un procedimiento es la siguiente$ "ri)ate .ub 2>:BDEF"D>-E;+:+E2B>#OL+.B1F"1D_:EBD>.P( .E2BE2-+1. OE9it .ubP End .ub La e9plicaci n es an6loga a la dada para las funciones' .in embargo, un procedimiento no puede ser utili8ado en una e9presi n, /a que un procedimiento no retorna ningn )alor a tra)7s de su nombre' La llamada a un procedimiento puede ser reali8ada de alguna de las dos formas siguientes$ -all 2>:BDEF"D>-E;+:+E2B>#OL+.B1F1DG4:E2B>.P(

2>:BDEF"D>-E;+:+E2B>#OL+.B1F1DG4:E2B>.P( "or ejemplo, el siguiente c digo corresponde a un procedimiento que calcula e imprime la suma de los N primeros nmeros naturales impares, es decir$ S E * L 0 L A L ' ' ' L

N
"ri)ate .ub .4:1F+:"1D#2 1s +nteger( ;im . 1s +nteger, + 1s +nteger .E K 3or + E * Bo 2 +f + :od , <> K Bhen .E .L + End +f 2e9t :sgBo9 La suma es .E V .tr#.( End .ub La llamada a este procedimiento podra ser de la forma$ -all .4:1F+:"1D#,A(

Pgina 34 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

CAPTULO IV.
USO DE LOS CONTROLES
Los %o+t&ol)' son aquellos objetos que se encuentran dentro de un contenedor / que permiten la interacci n entre el usuario / la aplicaci n, /a sea para manipular datos /%o ejecutar tareas' En Visual Basic, los controles suelen ser agrupados en tres categoras$ -ontroles b6sicos -ontroles complementarios -ontroles e9ternos Los controles b6sicos son las )t$Du) ta' > %ua0&o' 0) t)7to - /oto+)' 0) %o.a+0o , pues utili8ando estos tres controles se puede construir cualquier interfa8' Los controles complementarios son el resto de los controles, por ejemplo una %a'$lla 0) <)&$($%a%$5+> u+ %ua0&o %o./$+a0o o u+ %&o+5.) t & o ' Los controles e9ternos se refieren a aquellos controles creados por terceros' Este tipo de controles son llamados A%t$<)E ' CON2ROLES B :SICOS Los controles b6sicos lo conforman las etiquetas, cuadros de te9to / botones de comando, debido a que cualquier interfa8 se puede implementar con s lo estos tres objetos' Et$Du) t a 4na )t$Du) ta es un control que permite presentar te9to de solo lectura' .e utili8a para mostrar ttulos / mensajes que por lo general no cambian' .in embargo, si lo desea, puede escribir procedimientos que cambien el te9to mostrado por una etiqueta como respuesta a e)entos en tiempo de ejecuci n' P&op$)0a0 1lignment 1uto.i8e Bac<-olor, 3ore-olor Bac<.t/le -aption !ord!rap D)'%&$p%$5+ Especifica la forma como se alinear6 el te9to' Especifica si se cambia autom6ticamente el tama=o del control para que quepan sus contenidos' Especifica el color de fondo / de primer plano empleado para mostrar el te9to' Especifica si el fondo del control es transparente u opaco' Especifica el te9to que se muestra en el control' Especifica si la etiqueta se e9tiende a m6s de una lnea cuando el te9to es amplio'

Pgina 35 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

Cua0&o 0) t)7to 4n %ua0&o 0) t)7to es un control en el que el usuario pueda ingresar datos desde el teclado o )isuali8ar un resultado generado por la aplicaci n' El )alor de un cuadro de te9to por lo general se asocia a una )ariable de memoria' P&op$)0a0 Enabled D)'%&$p%$5+ ?abilita o deshabilita el control, es decir si se puede o no modificar el contenido' Loc<ed "ermite bloquear el acceso al control en tiempo de ejecuci n' :a9Lenght Especifica la longitud m69ima #en caracteres( que puede escribirse en el control' :ultiLine Especifica si el control admitir6 mltiples lneas' "ass&ord-har ;etermina si se muestran en el control los caracteres escritos por el usuario o los caracteres de marcador de posici n' .crollBars Especifica si se muestran las barras de despla8amiento hori8ontales o )erticales' .elLength Especifica el nmero de caracteres seleccionados' .el.tart Especifica el inicio del te9to seleccionado' .i su )alor es K, el te9to seleccionado comien8a por el primer car6cter' .elBe9t -ontiene el te9to seleccionado' Be9t -ontiene el te9to introducido en el control' "uede iniciali8ar el contenido en tiempo de dise=o' Los e)entos asociados a un cuadro de te9to son los siguientes$ E<)+to -hange Ne/"ress Bot5+ 0) %o.a+0o 4n /ot5+ 0) %o.a+0o es un control que suele emplearse para ejecutar una acci n, como cerrar un formulario, imprimir un informe, etc' P&op$)0a0 -ancel -aption ;efault Enabled "icture .t/le D)'%&$p%$5+ Especifica si el control responder6 a la tecla E.-, por lo general para terminar la aplicaci n' :uestra un ttulo para el control' Especifica si el control responder6 a la tecla E2BD1D, sin importar la ubicaci n del enfoque' "ermite habilitar o deshabilitar el control' Especifica una imagen tipo icono para el control' Especifica la apariencia del control, /a sea est6ndar #estilo est6ndar de !indo&s( o gr6fica #con una imagen personali8ada(' D)'%&$p%$5+ >curre cuando se cambia el contenido del control utili8ando el teclado o el rat n' >curre cuando se pulsa una tecla'

Pgina 36 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

Los botones de comando suelen responder al e)ento -lic<, cu/a descripci n es$ E<)+to -lic< D)'%&$p%$5+ >curre cuando el usuario hace clic< sobre el control'

1 manera de ejemplo )amos a desarrollar la siguiente aplicaci n' Esta consiste en un cajero autom6tico el cual permite manipular cierta cantidad de dinero para lo cual dispone de los siguientes billetes$ .%' *K'KKa .%' ,K'KKa .%' AK'KKa .%' *KK'KK / .%' ,KK'KK' Elaborar una aplicaci n que permita la lectura de la cantidad a retirar e indique el menor nmero de billetes a utili8ar'

"ara el desarrollo de la presente aplicaci n proceda a ubicar los siguientes controles en el formulario$ I etiquetas I cajas de te9to 0 botones de comando 4na )e8 ubicados los controles, estable8ca las propiedades segn se indica$ ?o&.1 2ombre Border.t/le -aption La/)l1 2ombre 1uto.i8e -aption La/)l2 2ombre 1uto.i8e -aption LblB*K Brue Billetes de .%' *K Lbl-antidad Brue -antidad a retirar$ 3rm-ajero 0G3i9ed ;ialog -ajero autom6tico

Pgina 37 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

La/)l3 2ombre 1uto.i8e -aption La/)l4 2ombre 1uto.i8e -aption La/)l 2ombre 1uto.i8e -aption La/)l! 2ombre 1uto.i8e -aption 2)7t1 2ombre Be9t 2)7t2 2ombre Be9t 2)7t3 2ombre Be9t 2)7t4 2ombre Be9t 2)7t 2ombre Be9t B9tB*KK B9tBAK B9tB,K B9tB*K B9t-antidad LblB,KK Brue Billetes de .%' ,KK LblB*KK Brue Billetes de .%' *KK LblBAK Brue Billetes de .%' AK LblB,K Brue Billetes de .%' ,K

Pgina 38 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

2)7t! 2ombre Be9t Co..a +0 1 2ombre -aption Co..a +0 2 2ombre -aption Co..a +0 3 2ombre -aption B9tB,KK

-md1ceptar V1ceptar -mdLimpiar VLimpiar -md.alir V.alir

"ara a=adir c digo a la aplicaci n haga doble clic< sobre el bot n 1ceptar e ingrese lo siguiente$ "ri)ate .ub -md1ceptarF-lic<#( ;im - 1s +nteger, B,KK 1s +nteger, B*KK 1s +nteger, F BAK 1s +nteger, B,K 1s +nteger, B*K 1s +nteger - E Val#B9t-antidad( +f - :od *K E K Bhen B,KK E - U ,KK $ - E - :od ,KK B*KK E - U *KK $ - E - :od *KK BAK E - U AK $ - E - :od AK B,K E - U ,K $ B*K E - :od ,K B9tB,KK E .tr#B,KK( B9tB*KK E .tr#B*KK( B9tBAK E .tr#BAK( B9tB,K E .tr#B,K( B9tB*K E .tr#B*K( Else :sgBo9 -antidad a retirar debe ser mltiplo de *K B9t-antidad E B9t-antidad'.et3ocus End +f End .ub Luego, haga doble clic< sobre el bot n Limpiar / a=ada el siguiente c digo$ "ri)ate .ub -mdLimpiarF-lic<#( B9t-antidad E B9tB,KK E B9tB*KK E B9tBAK E B9tB,K E B9tB*K E B9t-antidad'.et3ocus End .ub

Pgina 39 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

3inalmente dar doble clic< sobre el bot n .alir / a=ada el siguiente c digo$ "ri)ate .ub -md.alirF-lic<#( End End .ub En el c digo anterior hemos utili8ado el m7todo .et3ocus para enfocar la caja de te9to B9t-antidad, esto es, para posicionar el cursor sobre ella' CON2ROLES COMPLEMEN2ARIOS Los controles complementarios se utili8an como alternati)a a los controles b6sicos en aplicaciones en las cuales su uso facilita o mejora el dise=o de la interfa8' -omo el lector podr6 )erificar, algunos controles son m6s adecuados que otros dependiendo del tipo de aplicaci n que se pretenda desarrollar' Ma&%o 4n .a&%o es un objeto contenedor que puede utili8arse para agrupar casillas de )erificaci n, botones de opci n, botones de comando, etc' P&op$)0a0 -aption Ca'$lla 0) <)&$($%a%$5+ 4na %a'$lla 0) <)&$($%a%$5+ se utili8a para alternar entre dos posibles )alores #1cti)ado%;esacti)ado(' -ada casilla de )erificaci n es independiente de las dem6s /a que cada una tiene su propio nombre #2ame(' "uede utili8ar casillas de )erificaci n en grupos para mostrar mltiples opciones entre las cuales el usuario puede seleccionar todas las que desee a la )e8' P&op$)0a0 -aption Value D)'%&$p%$5+ :uestra un ttulo para el control' ;e)uel)e o establece el estado del ;esacti)ado #K(, 1cti)ado #*(' D)'%&$p%$5+ :uestra un ttulo para el control'

control,

puede

ser$

Las casillas de )erificaci n suelen responder al e)ento -lic<' Bot5+ 0) op%$5+ 4n /ot5+ 0) op%$5+ se utili8a para alternar entre dos posibles )alores #1cti)ado%;esacti)ado(, de manera similar a las casillas de )erificaci n, la diferencia radica en que de un grupo de botones de opci n el usuario s lo puede seleccionar un nico bot n a la )e8' P&op$)0a0 -aption Value D)'%&$p%$5+ :uestra un ttulo para el control' ;e)uel)e o establece el estado del ;esacti)ado #3also(, 1cti)ado #Brue('

control,

puede

ser$

Pgina 40 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

Los botones de opci n tambi7n suelen responder al e)ento -lic<'

Pgina 41 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

1 manera de ejemplo )amos a desarrollar la siguiente aplicaci n, la cual permite cambiar el aspecto de un cuadro de te9to, el usuario debe elegir el color #rojo, )erde, a8ul( / el estilo #negrita, cursi)a, subra/ado( de la fuente a utili8ar' 1dicionalmente, cuando el usuario acti)e la casilla de )erificaci n -on)ertir a ma/sculas, todo el te9to que ha/a escrito en el cuadro de te9to se presentar6 en ma/sculas / todo te9to que escriba a continuaci n #mientras la opci n est7 acti)ada( tambi7n deber6 aparecer en ma/sculas'

"ara el desarrollo de la presente aplicaci n proceda a ubicar los siguientes controles en el formulario$ * , 0 @ cuadro de te9to marcos botones de opci n casillas de )erificaci n

4na )e8 ubicados los controles, estable8ca las propiedades segn se indica$ ?o&.1 2ombre Border.t/le -aption 2)7t1 2ombre 3ore-olor Be9t ?&a.) 1 2ombre -aption ?&a.) 2 2ombre -aption 3raEstilo Estilo 3ra-olor -olor B9t:ensaje V?KKKKKK33V 3rmEditor 0G3i9ed ;ialog Editor

Pgina 42 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

Opt$o+1 2ombre -aption 3ore-olor Value Opt$o+2 2ombre -aption 3ore-olor Opt$o+3 2ombre -aption 3ore-olor C4)%F1 2ombre -aption 3ont C4)%F2 2ombre -aption 3ont C4)%F3 2ombre -aption 3ont C4)%F4 2ombre -aption -h<:a/uscula -on)ertir a ma/sculas -h<.ubra/ado .ubra/ado 1rial #.ubra/ado( -h<-ursi)a -ursi)a 1rial #-ursi)a( -h<2egrita 2egrita 1rial #2egrita( >pt18ul 18ul V?KK-KKKKKV >ptDojo Dojo V?KKKKKK33V Brue >ptVerde Verde V?KKKKJKKKV

4na )e8 establecidas las propiedades, proceda a ingresar el c digo que se indica a continuaci n$ "ri)ate .ub >ptDojoF-lic<#( +f >ptDojo'Value Bhen B9t:ensaje'3ore-olor E DGB#,AA, K, K( End +f End .ub "ri)ate .ub >ptVerdeF-lic<#( +f >ptVerde'Value Bhen B9t:ensaje'3ore-olor E DGB#K, ,AA, K(

Pgina 43 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

End +f End .ub "ri)ate .ub >pt18ulF-lic<#( +f >pt18ul'Value Bhen B9t:ensaje'3ore-olor E DGB#K, K, ,AA( End +f End .ub "ri)ate .ub -h<2egritaF-lic<#( +f -h<2egrita'Value Bhen B9t:ensaje'3ont'Bold E Brue Else B9t:ensaje'3ont'Bold E 3alse End +f End .ub "ri)ate .ub -h<-ursi)aF-lic<#( +f -h<-ursi)a'Value Bhen B9t:ensaje'3ont'+talic E Brue Else B9t:ensaje'3ont'+talic E 3alse End +f End .ub "ri)ate .ub -h<.ubra/adoF-lic<#( +f -h<.ubra/ado'Value Bhen B9t:ensaje'3ont'4nderline E Brue Else B9t:ensaje'3ont'4nderline E 3alse End +f End .ub "ri)ate .ub -h<:a/usculaF-lic<#( +f -h<:a/uscula'Value Bhen B9t:ensaje E 4-ase#B9t:ensaje( End +f End .ub "ri)ate .ub B9t:ensajeFNe/"ress#Ne/1scii 1s +nteger( ;im -1D 1s .tring S * +f -h<:a/uscula'Value Bhen -1D E 4-ase#-hr#Ne/1scii(( Ne/1scii E 1sc#-1D( End +f End .ub La funci n DGB#( especifica el color que se asigna a la propiedad 3ore-olor' La funci n 4-ase#( retorna una cadena de caracteres en ma/sculas'

Pgina 44 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

Cua0&o 0) l$'ta 4n %ua0&o 0) l$'ta es un control que presenta una lista de elementos en la que el usuario puede seleccionar uno o m6s de dichos elementos' .i el nmero de elementos supera el nmero que puede mostrarse, se agregar6 autom6ticamente una barra de despla8amiento al control' P&op$)0a0 List List-ount List+nde9 :ulti.elect .el-ount .elected .orted Be9t D)'%&$p%$5+ -ontiene los elementos de la lista' "uede definirlos en tiempo de dise=o' Especifica el nmero de elementos de la lista' .u )alor siempre es uno m6s que el ma/or )alor de List+nde9' Especifica el nmero de orden que ocupa el elemento seleccionado en la lista' Boma el )alor de K para el primer elemento, si no ha selecciona ninguno retorna G*' Especifica si se pueden seleccionar )arios elementos de la lista' ;e)uel)e el nmero de elementos seleccionados' Especifica si un elemento de la lista est6 seleccionado' Especifica si los elementos de la lista se ordenan alfab7ticamente' Especifica el )alor del elemento seleccionado en ese instante' El )alor es tratado como una cadena de caracteres'

Los m7todos que se pueden utili8ar para un cuadro de lista son los siguientes$ M;to0o 1dd+tem -lear Demo)e+tem Cua0&o %o./$+a 0o 4n %ua0&o %o./$+a 0o es una me8cla de un cuadro de te9to con una lista' En 7l no s lo se podr6 ingresar un dato sino tambi7n seleccionarlo de la lista' "resenta las mismas propiedades, e)entos / m7todos que el cuadro de lista a e9cepci n de lo siguiente$ P&op$)0a0 .t/le D)'%&$p%$5+ Especifica si el control se comporta como un cuadro de te9to o como una lista desplegable' 4n cuadro de te9to permite ingresar )alores' 4na lista desplegable s lo permite seleccionar )alores' El )alor predeterminado es KG)b-ombo;rop;o&n, e inclu/e una lista desplegable / un cuadro de te9to' El )alor *G )b-ombo.imple inclu/e tan solo cuadro de te9to' El )alor ,G ;ropdo&n List inclu/e s lo una lista desplegable' D)'%&$p%$5+ 1grega un nue)o elemento a la lista' Elimina todos los elementos contenidos en la lista' Elimina en elemento de la lista'

-omo ejemplo del uso de listas )amos a desarrollar una aplicaci n que permita ingresar el nombre de un curso, el cual pasa a formar parte de una lista de espera antes de ser programado para su dictado' Los cursos deben ser seleccionados de la lista de espera / trasladados a la lista de cursos programados / )ice)ersa'

Pgina 45 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

"ara el desarrollo de la presente aplicaci n proceda a ubicar los siguientes controles en el formulario$ 0 * , A etiquetas cuadro de te9to listas botones de comando

En seguida proceda a establecer las propiedades segn se indica$ ?o&.1 2ombre Border.t/le -aption La/)l1 2ombre 1uto.i8e -aption La/)l2 2ombre 1uto.i8e -aption La/)l3 2ombre 1uto.i8e -aption Lbl"rogramado Brue -urso programado$ Lbl.eleccionar Brue .eleccione un curso$ Lbl-urso Brue +ngrese nue)o curso$ 3rm-ursos 0G3i9ed ;ialog -ursos

Pgina 46 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

2)7t1 2ombre Be9t L$'t1 2ombre L$'t2 2ombre Co..a +0 1 2ombre -aption "icture .t/le Co..a +0 2 2ombre -aption "icture .t/le Co..a +0 3 2ombre -aption "icture .t/le Co..a +0 4 2ombre -aption "icture .t/le Co..a +0 2ombre -aption ;efault -md1nnadir V1=adir Brue -md\uitarBodo -$U3undVBUBitmapsUDemo)e1ll'Bmp *GGraphical -md\uitar -$U3undVBUBitmapsUDemo)e'Bmp *GGraphical -md1gregarBodo -$U3undVBUBitmapsU1dd1ll'Bmp *GGraphical -md1gregar -$U3undVBUBitmapsU1dd+tem'Bmp *GGraphical Lst"rogramado Lst.eleccionar B9t-urso

.eguidamente proceda a ingresar el c digo que se indica a continuaci n$

Pgina 47 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

"ri)ate .ub -md1nnadirF-lic<#( Lst.eleccionar'1dd+tem B9t-urso B9t-urso E B9t-urso'.et3ocus End .ub "ri)ate .ub -md1gregarF-lic<#( ;im -4D.> 1s .tring, + 1s +nteger -4D.> E Lst.eleccionar'Be9t + E Lst.eleccionar'List+nde9 +f Lst.eleccionar'List+nde9 [ E K Bhen Lst"rogramado'1dd+tem -4D.> Lst.eleccionar'Demo)e+tem + End +f End .ub "ri)ate .ub -md\uitarF-lic<#( ;im -4D.> 1s .tring, + 1s +nteger -4D.> E Lst"rogramado'Be9t + E Lst"rogramado'List+nde9 +f Lst"rogramado'List+nde9 [ E K Bhen Lst.eleccionar'1dd+tem -4D.> Lst"rogramado'Demo)e+tem + End +f End .ub "ri)ate .ub -md1gregarBodoF-lic<#( ;im + 1s +nteger 3or + E K Bo Lst.eleccionar'List-ount G * Lst"rogramado'1dd+tem Lst.eleccionar'List#+( 2e9t Lst.eleccionar'-lear End .ub "ri)ate .ub -md\uitarBodoF-lic<#( ;im + 1s +nteger 3or + E K Bo Lst"rogramado'List-ount G * Lst.eleccionar'1dd+tem Lst"rogramado'List#+( 2e9t Lst"rogramado'-lear End .ub .eguidamente mostraremos un ejemplo del uso de los cuadros combinados' "ara tal fin )amos a desarrollar una aplicaci n que permita reali8ar consultas acerca de un determinado curso' La relaci n de cursos se presentar6 mediante un cuadro combinado, del cual el usuario debe seleccionar el curso de su inter7s / en seguida se presentar6 el nombre del profesor encargado del curso #teora(, el nombre del jefe de pr6ctica #laboratorio(, as como los horarios de teora / de laboratorio, respecti)amente'

Pgina 48 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

"ara el desarrollo de la presente aplicaci n proceda a ubicar los siguientes controles en el formulario$ * * * * etiqueta cuadro de te9to cuadro combinado bot n de comando

En seguida proceda a establecer las propiedades segn se indica$ ?o&.1 2ombre Border.t/le -aption La/)l1 2ombre -aption 2)7t1 2ombre :ultiLine .crollBars Be9t Co./o1 2ombre Be9t .t/le -bo-ursos ,G;ropdo&n List B9t-urso Brue ,GVertical Lbl-ursos -ursos$ 3rm-onsulta-ursos 0G3i9ed ;ialog -onsulta de cursos

Pgina 49 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

Co..a +0 1 2ombre -aption -md.alir V.alir

.eguidamente proceda a ingresar el c digo que se indica a continuaci n$ ;im :atri8#A, 0( 1s .tring "ri)ate .ub 3ormFLoad#( -bo-ursos'1dd+tem :icrosoft Visual Basic 2i)el + -bo-ursos'1dd+tem :icrosoft Visual Basic 2i)el ++ -bo-ursos'1dd+tem :icrosoft Visual 3o9"ro 2i)el + -bo-ursos'1dd+tem :icrosoft Visual 3o9"ro 2i)el ++ -bo-ursos'1dd+tem :icrosoft Visual -L L 2i)el + -bo-ursos'1dd+tem :icrosoft Visual -L L 2i)el ++ :atri8#K, K( E -astillo "eralta, -arlos :atri8#*, K( E -astillo "eralta, -arlos :atri8#,, K( E Linares 1larcon, 1dams :atri8#0, K( E -astillo "eralta, -arlos :atri8#@, K( E - rdoba .aa)edra, Ca)ier :atri8#A, K( E -astillo "eralta, -arlos :atri8#K, *( E .a KJG ** :atri8#*, *( E .a *@G *H :atri8#,, *( E .a KJG ** :atri8#0, *( E ;o KJG ** :atri8#@, *( E .a *@G *H :atri8#A, *( E .a *HG ,K :atri8#K, ,( E -astillo "eralta, -arlos :atri8#*, ,( E Linares 1larcon, 1dams :atri8#,, ,( E :ontes Bejada, Estela :atri8#0, ,( E Linares 1larcon, 1dams :atri8#@, ,( E - rdoba .aa)edra, Ca)ier :atri8#A, ,( E - rdoba .aa)edra, Ca)ier :atri8#K, 0( E .a **G *0 :atri8#*, 0( E ;o KJG *K :atri8#,, 0( E .a **G *0 :atri8#0, 0( E ;o *@G *I :atri8#@, 0( E .a *JG ,K :atri8#A, 0( E ;o KJG *K End .ub "ri)ate .ub -bo-ursosF-lic<#( ;im "FBE>D+1 1s .tring, ?FBE>D+1 1s .tring ;im "FL1B 1s .tring, ?FL1B 1s .tring "FBE>D+1 E "rofesor de teora$ V F :atri8#-bo-ursos'List+nde9, K( ?FBE>D+1 E ?orario de teora$ V F :atri8#-bo-ursos'List+nde9, *( "FL1B E Cefe de pr6ctica$ V F :atri8#-bo-ursos'List+nde9, ,( ?FL1B E ?orario laboratorio$ V F :atri8#-bo-ursos'List+nde9, 0( B9t-urso E "FBE>D+1 V )b-rLf V ?FBE>D+1 V )b-rLf V F

Pgina 50 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

"FL1B V )b-rLf V ?FL1B End .ub "ri)ate .ub -md.alirF-lic<#( End End .ub La constante )b-rLf es una combinaci n de retorno de carro / a)ance de lnea, es equi)alente a -hr#*0( L -hr#*K(' "ara este ejemplo en particular hemos almacenado la informaci n en memoria D1: mediante el uso de un arreglo bidimensional #:atri8(' C&o+5.) t &o 4n %&o+5.) t &o sir)e para controlar el tiempo transcurrido desde el inicio de una acci n' P&op$)0a0 +nter)al D)'%&$p%$5+ Especifica el nmero de milisegundos que se esperar6 para disparar el e)ento Bimer'

El control -ron metro responde al e)ento Bimer, cu/a descripci n es$ E<)+to Bimer D)'%&$p%$5+ >curre cuando el nmero de milisegundos especificado en la propiedad +nter)al ha transcurrido'

1 manera de ejemplo )amos a desarrollar la siguiente aplicaci n que simula el funcionamiento de un reloj digital'

"ara el desarrollo de la presente aplicaci n proceda a ubicar los siguientes controles sobre el formulario$ * * * * etiqueta cuadro de te9to cron metro bot n de comando

En seguida proceda a establecer las propiedades segn se indica$

Pgina 51 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

?o&.1 2ombre Border.t/le -aption La/)l1 2ombre -aption 2)7t1 2ombre Be9t 2$.)&1 2ombre +nter)al Co..a +0 1 2ombre -mdBerminar -aption VBerminar .eguidamente proceda a ingresar el c digo que se indica a continuaci n$ "ri)ate .ub 3ormF1cti)ate#( B9t?ora E Bime#( End .ub "ri)ate .ub Bimer*FBimer#( +f B9t?ora <> Bime#( Bhen B9t?ora E Bime#( End +f End .ub "ri)ate .ub -mdBerminarF-lic<#( End End .ub Cua0&o 0) $.a*) + 4n %ua0&o 0) $.a*)+ se utili8a para mostrar un archi)o de imagen #B:", G+3 o C"G(' Decorta el gr6fico si el control no es lo bastante grande para mostrar la imagen completa' P&op$)0a0 1uto.i8e "icture D)'%&$p%$5+ Especifica si el control ajusta autom6ticamente su tama=o para mostrar un gr6fico completo' Especifica el archi)o de imagen para el control' Bimer* AKK B9t?ora Lbl?ora ?ora 3rmDeloj 0G3i9ed ;ialog Deloj digital

Pgina 52 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

El e)ento que suele manejarse para este control es :ouse:o)e, cu/a descripci n es$ E<)+to :ouse:o)e I.a*)+ 4n %o+t&ol $.a*) + se utili8ar6 para mostrar un archi)o de imagen #B:", G+3 o C"G( de manera similar a un -uadro de imagen' .in embargo, este control utili8a menos recursos del sistema / se actuali8a con m6s rapide8 que un cuadro de imagen' P&op$)0a0 "icture .tretch D)'%&$p%$5+ Especifica el archi)o de imagen para el control' Especifica como se ajusta el tama=o del archi)o gr6fico para que quepa dentro del control imagen' D)'%&$p%$5+ >curre cuando el usuario mue)e el rat n sobre el control'

"ara este control tambi7n se suele manejar el e)ento :ouse:o)e' Ba&&a' 0) 0)'pla8a .$ ) + to 4o&$8o+tal 4na /a&&a 0) 0)'pla8a .$ ) + t o 4o&$8o+tal representa un )alor entero, la cual tiene un cuadrado que se despla8a a lo largo de la misma para fijar un )alor' La posici n m6s a la i8quierda se corresponde con el )alor mnimo, la posici n m6s a la derecha con el )alor m69imo, / cualquier otra posici n es un )alor entre ellos dos' P&op$)0a0 :a9 :in Large-hange .mall-hange Value D)'%&$p%$5+ Especifica el )alor m69imo que puede tomar la propiedad Value' Especifica el )alor mnimo que puede tomar la propiedad Value' Especifica en cuanto cambiar6 el )alor de la propiedad Value cuando el usuario haga clic< antes o despu7s del cuadrado de despla8amiento' Especifica en cuanto cambiar6 el )alor de la propiedad Value cuando el usuario haga clic< en alguna de las flechas de los e9tremos de la barra' Especifica el )alor del control, este se encuentra siempre entre los )alores de las propiedades :in / :a9'

Las barras de despla8amientos responden a los e)entos$ E<)+to -hange .croll D)'%&$p%$5+ >curre inmediatamente despu7s que el cuadrado de despla8amiento ha sido mo)ido' >curre mientras el cuadrado de despla8amiento est6 siendo mo)ido #este e)ento s lo ocurre cuando el cuadrado es arrastrado('

Ba&&a' 0) 0)'pla8a .$ ) + to <)&t$%al

Pgina 53 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

4na /a&&a 0) 0)'pla8a .$) + to <)&t$%al representa un )alor entero, la cual tiene un cuadrado que se despla8a a lo largo de la misma para fijar un )alor'

Pgina 54 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

La posici n m6s hacia arriba se corresponde con el )alor mnimo, la posici n m6s hacia abajo se corresponde con el )alor m69imo, / cualquier otra posici n es un )alor entre ellos dos' Las propiedades / e)entos de las barras de despla8amiento hori8ontal / )ertical son an6logas' -omo ejemplo, )amos a construir una aplicaci n que permita cambiar el color de fondo de un cuadro de imagen, mediante tres barras de despla8amiento #rojo, )erde / a8ul('

"ara el desarrollo de la presente aplicaci n proceda a ubicar los siguientes controles en el formulario$ 0 etiquetas 0 barras de despla8amiento hori8ontal * cuadro de imagen En seguida proceda a establecer las propiedades segn se indica$ ?o&.1 2ombre Border.t/le -aption La/)l1 2ombre -aption La/)l2 2ombre -aption La/)l3 2ombre -aption Lbl18ul 18ul LblVerde Verde LblDojo Dojo 3rm-olores 0G3i9ed ;ialog -olores

Pgina 55 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

=S%&oll1 2ombre Large-hange :a9 :in .mall-hange Value =S%&oll2 2ombre Large-hange :a9 :in .mall-hange Value =S%&oll3 2ombre Large-hange :a9 :in .mall-hange Value P$%tu&) 1 2ombre Bac<-olor "ic3ondo V?KKKKKK33V ?.18ul *K ,AA K * K ?.Verde *K ,AA K * K ?.Dojo *K ,AA K * ,AA

.eguidamente proceda a ingresar el c digo que se indica a continuaci n$ "ri)ate .ub ?.DojoF-hange#( "ic3ondo'Bac<-olor E DGB#?.Dojo, ?.Verde, ?.18ul( End .ub "ri)ate .ub ?.VerdeF-hange#( "ic3ondo'Bac<-olor E DGB#?.Dojo, ?.Verde, ?.18ul( End .ub "ri)ate .ub ?.18ulF-hange#( "ic3ondo'Bac<-olor E DGB#?.Dojo, ?.Verde, ?.18ul( End .ub En el c digo anterior se debi colocar ?.Dojo'Value, ?.Verde'Value / ?.18ul'Value, pero debido a que la propiedad Value es por defecto se puede omitir'

Pgina 56 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

Cua0&o 0) l$'ta 0) u+$0a0)' 4n %ua0&o 0) l$'ta 0) u+$0a0)' permite al usuario seleccionar una unidad de disco )6lida en tiempo de ejecuci n' 4tilice este control para presentar una lista de todas las unidades )6lidas del sistema' P&op$)0a0 ;ri)e D)'%&$p%$5+ Especifica la unidad seleccionada en tiempo de ejecuci n'

Este control responde al e)ento -hange, cu/a descripci n es la siguiente$ E<)+to -hange D)'%&$p%$5+ >curre cuando el usuario hace clic< sobre la unidad que desea seleccionar' El e)ento -hange tambi7n ocurre si se selecciona la unidad mediante el teclado'

Cua0&o 0) l$'ta 0) 0$&)%to&$o' 4n %ua0&o 0) l$'ta 0) 0$&)%to&$o' muestra directorios / rutas de acceso en tiempo de ejecuci n' 4tilice este control para mostrar una lista jer6rquica de directorios' P&op$)0a0 "ath D)'%&$p%$5+ Especifica la ruta de acceso actual'

4n cuadro de lista de directorios tambi7n responde al e)ento -hange' Cua0&o 0) l$'ta 0) a&%4$<o' 4n %ua0&o 0) l$'ta 0) a&%4$<o' encuentra / muestra los archi)os del directorio especificado por la propiedad "ath en tiempo de ejecuci n' 4tilice este control para mostrar una lista de los archi)os seleccionados por tipo' P&op$)0a0 "ath "attern List List+nde9 D)'%&$p%$5+ la ruta de acceso actual' el tipo de archi)o que se desea )isuali8ar en el los elementos contenidos en la parte de lista del el ndice del elemento seleccionado actualmente en

Especifica Especifica control' ;e)uel)e control' Especifica el control'

-omo ejemplo )amos a desarrollar una aplicaci n que permita el manejo de unidades, carpetas / archi)os' El usuario puede seleccionar la unidad actual de trabajo, la carpeta / el archi)o / poder )isuali8ar su contenido #en este caso archi)os gr6ficos S'C"G('

Pgina 57 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

"ara el desarrollo de la presente aplicaci n proceda a ubicar los siguientes controles en el formulario$ @ * * * * etiquetas cuadro de lista de unidades cuadro de lista de directorios cuadro de lista de archi)os imagen

En seguida proceda a establecer las propiedades segn se indica$ ?o&.1 2ombre -aption La/)l1 2ombre -aption La/)l2 2ombre -aption La/)l3 2ombre -aption La/)l4 2ombre -aption D&$<)1 2ombre D$&1 2ombre ?$l)1 2ombre "attern I.a*) 1 2ombre +mgVista .tretch Brue .eguidamente proceda a ingresar el c digo que se indica a continuaci n$ 3ile* S'C"G ;ir* ;ri)e* LblVista Vista pre)ia Lbl1rchi)o 1rchi)o Lbl-arpeta -arpeta Lbl4nidad 4nidad 3rmVisor Visor

Pgina 58 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

"ri)ate .ub ;ri)e*F-hange#( >n Error GoBo ;D+VEFEDD>D ;ir*'"ath E ;ri)e*';ri)e E9it .ub ;D+VEFEDD>D$ :sgBo9 EDD>D$ 4nidad no preparada , )b-ritical, Error E9it .ub End .ub "ri)ate .ub ;ir*F-hange#( 3ile*'"ath E ;ir*'"ath End .ub "ri)ate .ub 3ile*F-lic<#( ;im 1D-?+V> 1s .tring 1D-?+V> E 3ile*'"ath V U 1D-?+V> E 1D-?+V> V 3ile*'List#3ile*'List+nde9( +mgVista'"icture E Load"icture#1D-?+V>( End .ub La instrucci n >n Error acti)a una rutina de control de errores / especifica la ubicaci n de la misma en un procedimiento' L A ? UNCIN MSGBOE 1 menudo habr6 situaciones en las cuales tendr6 que presentar algn mensaje #por ejemplo una pregunta( / en funci n de la respuesta del usuario se ejecutar6 una determinada acci n'

La funci n :sgBo9#( muestra un cuadro de di6logo predefinido / retorna un )alor de tipo entero dependiendo del bot n seleccionado por el usuario' .u sinta9is es de la siguiente forma$ V1L>D E :sgBo9#:E2.1CE O, B>BY2 L +->2>, BWB4L>P( ;onde :E2.1CE se refiere a una e9presi n de cadena que se muestra como mensaje en el cuadro de di6logo' B>BY2 es una e9presi n num7rica que se refiere al tipo / cantidad de botones a utili8ar' +->2> es una e9presi n num7rica que se refiere al estilo de icono que se )a ha utili8ar' BWB4L> es una te9to que se mostrar6 en la barra de ttulo de la caja de di6logo'

Pgina 59 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

2$po 0) /ot5+ Valo& K * , 0 @ A 2$po 0) $%o+o Valo& *I 0, @J I@ I%o+o :ensaje crtico .igno de interrogaci n .igno de e9clamaci n .igno de informaci n No./&) )b-ritical )b\uestion )bE9clamation )b+nformation Bot5+ 1ceptar 1ceptar / -ancelar 1nular, Deintentar, +gnorar ., 2o / -ancelar . / 2o Deintentar / -ancelar No./&) )b>N>nl/ )b>N-ancel )b1bortDetr/+gnore )bRes2o-ancel )bRes2o )bDetr/-ancel

Valo&)' &)to&+a 0o' Valo& * , 0 @ A I H Bot5+ 1ceptar -ancelar 1nular Deintentar +gnorar . 2o )b>N )b-ancel )b1bort )bDetr/ )b+gnore )bRes )b2o No./&)

-omo ejemplo )amos a construir un formulario que presente un bot n .alir, de tal forma que cuando el usuario pulse dicho bot n se presente el siguiente mensaje$

En caso de que el usuario elija la opci n ., la aplicaci n debe terminar' En caso contrario, es decir si el usuario elige la opci n 2o, se debe proseguir con la aplicaci n' "ara el desarrollo del presente ejemplo, proceda a ubicar sobre el formulario un bot n de comando #-md.alir(, a continuaci n ingresar el siguiente c digo$ "ri)ate .ub -md.alirF-lic<#( ;im DE." 1s +nteger DE." E :sgBo9#;esea terminar la aplicaci nX, F )b\uestion L )bRes2o, "regunta ( +f DE." E )bRes Bhen End

Pgina 60 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

End +f End .ub "ara ilustrar mejor el uso de la funci n :sgBo9#( )amos a desarrollar la siguiente aplicaci n que permite mostrar los diferentes tipos de botones e iconos generados por la funci n'

"ara ello proceda a ubicar los siguientes controles en el formulario$ , cuadros de lista * bot n de comando En seguida proceda a establecer las propiedades segn se indica$ ?o&.1 2ombre Border.t/le -aption L$'t1 2ombre L$'t2 2ombre Co..a +0 1 2ombre -aption -md:ensaje V:ensaje Lst+cono LstBoton 3rm3uncion:sgBo9 0G3i9ed ;ialog 3unci n :sgBo9

.eguidamente proceda a ingresar el c digo que se indica a continuaci n$ "ri)ate .ub 3ormFLoad#( LstBoton'1dd+tem LstBoton'1dd+tem LstBoton'1dd+tem LstBoton'1dd+tem LstBoton'1dd+tem LstBoton'1dd+tem 1ceptar 1ceptar / -ancelar 1nular, Deintentar, +gnorar ., 2o / -ancelar . / 2o Deintentar / -ancelar

Pgina 61 de 62

GUA DE PROGRAMACIN EN VISUAL BASIC

Lst+cono'1dd+tem Lst+cono'1dd+tem Lst+cono'1dd+tem Lst+cono'1dd+tem End .ub

:ensaje crtico .igno de interrogaci n .igno de e9clamaci n .igno de informaci n

"ri)ate .ub -md:ensajeF-lic<#( ;im DE." 1s +nteger, B>B>2 1s +nteger, +->2> 1s +nteger B>B>2 E LstBoton'List+nde9 +->2> E #Lst+cono'List+nde9 L *( S *I DE." E :sgBo9#?ola :undo, B>B>2 L +->2>, Ejemplo ( End .ub

Pgina 62 de 62

You might also like