aprenda visual basic 6 como si estuviera en primero - is - (libros tutorial manual cu

Upload: sergiovelasquezg

Post on 30-May-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    1/106

    Apren

    da

    Informtica

    ...

    San

    Sebastin,agosto

    1999

    Aprenda Visual Basic 6.0como si estuviera en primero

    Javier Garca de Jaln =Jos Ignacio Rodrguez Alfonso Brazlez

    Escuela Superior de Ingenieros Industriales

    de San SebastinUNIVERSIDAD DE NAVARRA

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    2/106

    Aprenda Visual Basic 6.0como si estuviera en primero

    Javier Garca de JalnJavier Garca de JalnJavier Garca de JalnJavier Garca de Jaln

    Jos Ignacio RodrguezJos Ignacio RodrguezJos Ignacio RodrguezJos Ignacio Rodrguez

    AlfonsoAlfonsoAlfonsoAlfonso BrazlezBrazlezBrazlezBrazlez

    Perteneciente a la coleccin : Aprenda , como si estuviera en primero

    Editada por Javier Garca de Jaln ([email protected] y [email protected])Nuevos t tulos y actualizaciones en: http://fcapra.ceit.es/AyudaInf/Index.htm

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    3/106

    ndice

    NDICE

    1. Introduccin 11.1 Programas secuenciales, interactivos y orientados a eventos 11.2 Programas para el entorno Windows 2

    1.2.1 Modo de Diseo y Modo de Ejecucin 2

    1.2.2 Formularios y Controles 21.2.3 Objetos y Propiedades 21.2.4 Nombres de objetos 31.2.5 Eventos 41.2.6 Mtodos 41.2.7 Proyectos y ficheros 4

    1.3 El entorno de programacin Visual Basic 6.0 51.4 El Help de Visual Basic 6.0 61.5 Ejemplos 6

    1.5.1 Ejemplo 1.1: Sencillo programa de colores y posiciones 61.5.2 Ejemplo 1.2: Minicalculadora elemental 81.5.3 Ejemplo 1.3: Transformacin de unidades de temperatura 91.5.4 Ejemplo 1.4: Colores RGB 11

    2. Entorno de programacin Visual Basic 6.0 142.1 Introduccin: Qu es Visual Basic 6.0? 142.2 El entorno de Visual Basic 6.0 14

    2.2.1 La barra de mens y las barras de herramientas 142.2.2 Las herramientas (toolbox) 16

    2.3 Formularios (forms) y mdulos 162.4 La ventana de proyecto (project) 172.5 La ventana de propiedades (Properties) 172.6 Creacin de programas ejecutables 182.7 Cmo utilizar el Help 192.8 Utilizacin del Code Editor 192.9 Utilizacin del Debugger 21

    2.9.1 Ejecucin controlada de un programa 212.9.2 Ventanas Immediate, Locals y Watches 222.9.3 Otras posibilidades del Debugger 23

    3. Lenguaje BASIC 243.1 Introduccin 243.2 Comentarios y otras utilidades en la programacin con visual basic 243.3 Proyectos y mdulos 25

    3.3.1 mbito de las variables y los procedimientos 253.3.1.1 Variables y funciones de mbito local 253.3.1.2 Variables y funciones de mbito global 26

    3.4 Variables 273.4.1 Identificadores 27

    3.4.2 Variables y constantes 283.4.3 Nombres de variables 283.4.4 Tipos de datos 293.4.5 Eleccin del tipo de una variable 303.4.6 Declaracin explcita de variables 30

    3.5 Operadores 313.6 Sentencias de control 31

    3.6.1 Sentencia IF ... THEN ... ELSE ... 323.6.2 Sentencia SELECT CASE 333.6.3 Sentencia FOR ... NEXT 343.6.4 Sentencia DO ... LOOP 343.6.5 Sentencia WHILE WEND 353.6.6 Sentencia FOR EACH ... NEXT 35

    3.7 Algoritmos 363.7.1 Introduccin 363.7.2 Representacin de algoritmos 36

    3.8 Funciones y Procedimientos 37

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    4/106

    ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero pgina ii

    3.8.1 Conceptos generales sobre funciones 373.8.2 Funciones y procedimientos Sub en Visual Basic 6.0 373.8.3 Funciones (function) 383.8.4 Procedimientos Sub 393.8.5 Argumentos por referencia y por valor 403.8.6 Procedimientos recursivos 40

    3.8.7 Procedimientos con argumentos opcionales 413.8.8 Nmero indeterminado de argumentos 413.8.9 Utilizacin de argumentos con nombre 41

    3.9 Arrays 413.9.1 Arrays estticos 423.9.2 Arrays dinmicos 42

    3.10 Estructuras: Sentencia Type 433.11 Funciones para manejo de cadenas de caracteres 453.12 Funciones matemticas 46

    4. Eventos, Propiedades y Controles 484.1 Eventos 48

    4.1.1 Eventos generales 48

    4.1.1.1 Carga y descarga de formularios 484.1.1.2 Paint 504.1.1.3 El foco (focus) 504.1.1.4 KeyPress, KeyUp y KeyDown 51

    4.1.2 Eventos relacionados con el ratn 514.1.2.1 Click y DblClick 514.1.2.2 MouseDown, MouseUp y MouseMove 524.1.2.3 DragOver y DragDrop 52

    4.2 Algunas propiedades comunes a varios controles 534.3 Controles ms usuales 54

    4.3.1 Botn de comando (Command Button) 544.3.2 Botones de opcin (Option Button) 544.3.3 Botones de seleccin (Check Box) 55

    4.3.4 Barras de desplazamiento (Scroll Bars) 554.3.5 Etiquetas (Labels) 554.3.6 Cajas de texto (Text Box) 564.3.7 Listas (List Box) 574.3.8 Cajas combinadas (ComboBox) 584.3.9 Controles relacionados con ficheros 584.3.10 Control Timer 58

    4.4 Cajas de dilogo estndar (Controles Common Dialog) 584.4.1 Open/Save Dialog Control 604.4.2 Print Dialog Control 604.4.3 Font Dialog Control 604.4.4 Color Dialog Control 61

    4.5 Formularios mltiples 614.5.1 Apertura de controles en forma modal 624.5.2 Formularios MDI (Multiple Document Interface) 62

    4.6 Arrays de controles 63

    5. Mens 645.1 Introduccin a las posibilidades de los mens 645.2 El editor de mens (Menu Editor) 655.3 Aadir cdigo a los mens 665.4 Arrays de mens 675.5 Ejemplo: Men para determinar las caractersticas de un texto 675.6 Mens contextuales (Popup Menu) 68

    6. Grficos en Visual Basic 6.0 706.1 Tratamiento del color 70

    6.1.1 Representacin hexadecimal de los colores 706.1.2 Acceso a los colores del sistema 706.1.3 Funcin RGB 71

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    5/106

    ndice

    6.1.4 Paleta de colores 716.2 Formatos grficos 726.3 Controles grficos 72

    Control Line 72Control Shape 726.3.3 Ejemplo 6.1: Uso de los controles Line y Shape 73

    Control Image 736.3.5 Control PictureBox 74

    6.4 Mtodos grficos 756.4.1 Mtodo Print 756.4.2 Dibujo de puntos: mtodo PSet 766.4.3 Dibujo de lneas y rectngulos: mtodo Line 766.4.4 Dibujo de circunferencias, arcos y elipses: mtodo Circle 776.4.5 Otros mtodos grficos 78

    6.5 Sistemas de coordenadas 786.5.1 Mtodo Scale 79

    6.6 Eventos y propiedades relacionadas con grficos 796.6.1 El evento Paint 796.6.2 La propiedad DrawMode 806.6.3 Planos de dibujo (Layers) 816.6.4 La propiedad AutoRedraw 816.6.5 La propiedad ClipControl 82

    6.7 Ejemplos 826.7.1 Ejemplo 6.1: Grficos y barras de desplazamiento 826.7.2 Ejemplo 6.2: Representacin grfica de la solucin de la ecuacin de segundo grado 83

    6.8 Barras de Herramientas (Toolbars) 86

    7. Archivos y Entrada/Salida de Datos 877.1 Cajas de dilogo InputBox y MsgBox 877.2 Mtodo Print 88

    7.2.1 Caractersticas generales 887.2.2 Funcin Format 89

    7.3 Utilizacin de impresoras 907.3.1 Mtodo PrintForm 907.3.2 Objeto Printer 90

    7.4 Controles FileList, DirList y DriveList 917.5 Tipos de ficheros 927.6 Lectura y escritura en ficheros secuenciales 93

    7.6.1 Apertura y cierre de ficheros 937.6.2 Lectura y escritura de datos 93

    7.6.2.1 Sentencia Input 937.6.2.2 Funcin Line Input y funcin Input 947.6.2.3 Funcin Print # 947.6.2.4 Funcin Write # 95

    7.7 Ficheros de acceso aleatorio 957.7.1 Abrir y cerrar archivos de acceso aleatorio 957.7.2 Leer y escribir en una archivo de acceso aleatorio. Funciones Get y Put 95

    7.8 Ficheros de acceso binario 96

    8. ANEXO A: Consideraciones adicionales sobre datos y variables 978.1 Caracteres y cdigo ASCII 978.2 Nmeros enteros 988.3 Nmeros reales 98

    8.3.1 Variables tipo Single 988.3.2 Variables tipo Double 99

    8.4 Sistema binario, octal, decimal y hexadecimal 99

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    6/106

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    7/106

    Captulo 1: Introduccin pgina 1

    1. INTRODUCCIN

    Visual Basic 6.0 es uno de los lenguajes de programacin que ms entusiasmo despiertan entre losprogramadores de PCs, tanto expertos como novatos. En el caso de los programadores expertos por

    la facilidad con la que desarrollan aplicaciones complejas en poqusimo tiempo (comparado con loque cuesta programar en Visual C++, por ejemplo). En el caso de los programadores novatos por elhecho de ver de lo que son capaces a los pocos minutos de empezar su aprendizaje. El precio quehay que pagar por utilizarVisual Basic 6.0 es una menor velocidad o eficiencia en las aplicaciones.

    Visual Basic 6.0 es un lenguaje de programacin visual, tambin llamado lenguaje de 4generacin. Esto quiere decir que un gran nmero de tareas se realizan sin escribir cdigo,simplemente con operaciones grficas realizadas con el ratn sobre la pantalla.

    Visual Basic 6.0 es tambin un programa basado en objetos, aunque no orientado a objetoscomo C++ o Java. La diferencia est en que Visual Basic 6.0 utiliza objetos con propiedades y

    mtodos, pero carece de los mecanismos de herencia y polimorfismo propios de los verdaderoslenguajes orientados a objetos comoJava y C++.

    En este primer captulo se presentarn las caractersticas generales de Visual Basic 6.0, juntocon algunos ejemplos sencillos que den idea de la potencia del lenguaje y del modo en que seutiliza.

    1.1 PROGRAMAS SECUENCIALES, INTERACTIVOS Y ORIENTADOS A EVENTOS

    Existen distintos tipos de programas. En los primeros tiempos de los ordenadores los programaseran de tiposecuencial(tambin llamados tipo batch) Un programa secuencial es un programa quese arranca, lee los datos que necesita, realiza los clculos e imprime o guarda en el disco losresultados. De ordinario, mientras un programa secuencial est ejecutndose no necesita ningunaintervencin del usuario. A este tipo de programas se les llama tambin programas basados uorientados a procedimientos o aalgoritmos (procedurallanguages). Este tipo de programas siguenutilizndose ampliamente en la actualidad, pero la difusin de los PCs ha puesto de actualidad otrostipos de programacin.

    Los programas interactivos exigen la intervencin del usuario en tiempo de ejecucin, bienpara suministrar datos, bien para indicar al programa lo que debe hacer por medio de mens. Losprogramas interactivos limitan y orientan la accin del usuario. Un ejemplo de programa interactivopodra serMatlab.

    Por su parte los programas orientados a eventos son los programas tpicos de Windows, talescomoNetscape, Word,ExcelyPowerPoint. Cuando uno de estos programas ha arrancado, lo nicoque hace es quedarse a la espera de las acciones del usuario, que en este caso son llamadas eventos.El usuario dice si quiere abrir y modificar un fichero existente, o bien comenzar a crear un ficherodesde el principio. Estos programas pasan la mayor parte de su tiempo esperando las acciones delusuario (eventos) y respondiendo a ellas. Las acciones que el usuario puede realizar en un momentodeterminado son variadsimas, y exigen un tipo especial de programacin: la programacinorientada a eventos. Este tipo de programacin es sensiblemente ms complicada que la secuencialy la interactiva, pero Visual Basic 6.0 la hace especialmente sencilla y agradable.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    8/106

    ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero pgina 2

    1.2 PROGRAMAS PARA EL ENTORNO WINDOWS

    Visual Basic 6.0 est orientado a la realizacin de programas para Windows, pudiendo incorporartodos los elementos de este entorno informtico: ventanas, botones, cajas de dilogo y de texto,

    botones de opcin y de seleccin, barras de desplazamiento, grficos, mens, etc.Prcticamente todos los elementos de interaccin con el usuario de los que dispone Windows

    95/98/NTpueden ser programados en Visual Basic 6.0 de un modo muy sencillo. En ocasiones bastan unas pocas operaciones con el ratn y la introduccin a travs del teclado de algunassentencias para disponer de aplicaciones con todas las caractersticas de Windows 95/98/NT. En lossiguientes apartados se introducirn algunos conceptos de este tipo de programacin.

    1.2.1 Modo de Diseo y Modo de Ejecucin

    La aplicacin Visual Basic deMicrosoftpuede trabajar de dos modos distintos: en modo de diseoy en modo de ejecucin. En modo de diseo el usuario construye interactivamente la aplicacin,colocando controles en elformulario, definiendo suspropiedades, y desarrollandofunciones paragestionar los eventos.

    La aplicacin se prueba en modo de ejecucin. En ese caso el usuario acta sobre el programa(introduce eventos) y prueba cmo responde el programa. Hay algunas propiedades de loscontroles que deben establecerse en modo de diseo, pero muchas otras pueden cambiarse entiempo de ejecucin desde el programa escrito en Visual Basic 6.0, en la forma en que ms adelantese ver. Tambin haypropiedades que slo pueden establecerse en modo de ejecucin y que no sonvisibles en modo de diseo.

    Todos estos conceptos controles, propiedades, eventos, etc.- se explican en los apartados

    siguientes.

    1.2.2 Formularios y Controles

    Cada uno de los elementos grficos que pueden formar parte de una aplicacin tpica de Windows95/98/NTes un tipo de control: los botones, las cajas de dilogo y de texto, las cajas de seleccindesplegables, los botones de opcin y de seleccin, las barras de desplazamiento horizontales yverticales, los grficos, los mens, y muchos otros tipos de elementos son controles para Visual

    Basic 6.0. Cada control debe tener un nombre a travs del cual se puede hacer referencia a l en elprograma. Visual Basic 6.0proporciona nombrespor defecto que el usuario puede modificar. En elApartado 1.2.4 se exponen algunas reglas para dar nombres a los distintos controles.

    En la terminologa de Visual Basic 6.0 se llama formulario (form) a una ventana. Unformulario puede ser considerado como una especie de contenedor para los controles. Unaaplicacin puede tener varios formularios, pero un nico formulario puede ser suficiente para lasaplicaciones ms sencillas. Los formularios deben tambin tener un nombre, que puede crearsesiguiendo las mismas reglas que para los controles.

    1.2.3 Objetos y Propiedades

    Los formularios y los distintos tipos de controles son entidades genricas de las que puede habervarios ejemplares concretos en cada programa. En programacin orientada a objetos (ms bienbasada en objetos, habra que decir) se llama clase a estas entidades genricas, mientras que sellama objeto a cada ejemplar de una clase determinada. Por ejemplo, en un programa puede habervarios botones, cada uno de los cuales es un objeto del tipo de control command button, que serala clase.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    9/106

    Captulo 1: Introduccin pgina 3

    Cada formulario y cada tipo de control tienen un conjunto de propiedades que definen suaspecto grfico (tamao, color, posicin en la ventana, tipo y tamao de letra, etc.) y su forma deresponder a las acciones del usuario (si est activo o no, por ejemplo). Cada propiedad tiene unnombre que viene ya definido por el lenguaje.

    Por lo general, las propiedades de un objeto son datos que tienen valores lgicos (True,False)o numricos concretos, propios de ese objeto y distintos de las de otros objetos de su clase. As

    pues, cada clase, tipo de objeto o control tiene su conjunto de propiedades, y cada objeto o controlconcreto tiene unos valores determinados para las propiedades de su clase.

    Casi todas las propiedades de los objetos pueden establecerse en tiempo de diseo y tambin-casi siempre- en tiempo de ejecucin. En este segundo caso se accede a sus valores por medio delas sentencias del programa, en forma anloga a como se accede a cualquier variable en un lenguajede programacin. Para ciertas propiedades sta es la nica forma de acceder a ellas. Por supuestoVisual Basic 6.0 permite crear distintos tipos de variables, como ms adelante se ver.

    Se puede acceder a una propiedad de un objeto por medio del nombre del objeto a quepertenece, seguido de unpunto y el nombre de la propiedad, como por ejemplo optColor.objName.En el siguiente apartado se estudiarn las reglas para dar nombres a los objetos.

    1.2.4 Nombres de objetos

    En principio cada objeto de Visual Basic 6.0 debe tener un nombre, por medio del cual se hacereferencia a dicho objeto. El nombre puede ser el que el usuario desee, e incluso Visual Basic 6.0

    proporciona nombres por defecto para los diversos controles. Estos nombres por defecto hacenreferencia al tipo de control y van seguidos de un nmero que se incrementa a medida que se vanintroduciendo ms controles de ese tipo en el formulario (por ejemplo VScroll1, para una barra de

    desplazamiento -scroll bar- vertical,HScroll1, para una barra horizontal, etc.).Los nombres por defecto no son adecuados porque hacen referencia al tipo de control, pero

    no al uso que de dicho control est haciendo el programador. Por ejemplo, si se utiliza una barra dedesplazamiento para introducir una temperatura, conviene que su nombre haga referencia a la

    palabra temperatura, y as cuando haya que utilizar ese nombre se sabr exactamente a qu controlcorresponde. Un nombre adecuado sera por ejemplo hsbTemp, donde las tres primeras letrasindican que se trata de una horizontal scroll bar, y las restantes (empezando por una mayscula)que servir para definir una temperatura.

    Existe una convencin ampliamente aceptada que es la siguiente: se utilizan siempre tresletras minsculas que indican el tipo de control, seguidas por otras letras (la primera mayscula, a

    modo de separacin) libremente escogidas por el usuario, que tienen que hacer referencia al usoque se va a dar a ese control. La Tabla 1.1 muestra las abreviaturas de los controles ms usuales,

    junto con la nomenclatura inglesa de la que derivan. En este mismo captulo se vern unos cuantosejemplos de aplicacin de estas reglas para construir nombres.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    10/106

    ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero pgina 4

    Abreviatura Control Abreviatura Controlchk check box cbo combo y drop-list boxcmd command button dir dir list boxdrv drive list box fil file list box

    frm form fra framehsb horizontal scroll bar img imagelbl label lin linelst list mnu menuopt option button pct pictureBoxshp shape txt text edit boxtmr timer vsb vertical scroll bar

    Tabla 1.1. Abreviaturas para los controles ms usuales.

    1.2.5 EventosYa se ha dicho que las acciones del usuario sobre el programa se llaman eventos. Son eventostpicos el clicar sobre un botn, el hacer doble clic sobre el nombre de un fichero para abrirlo, elarrastrar un icono, el pulsar una tecla o combinacin de teclas, el elegir una opcin de un men, elescribir en una caja de texto, o simplemente mover el ratn. Ms adelante se vern los distintostipos de eventos reconocidos porWindows 95/98/NTy porVisual Basic 6.0.

    Cada vez que se produce un evento sobre un determinado tipo de control, Visual Basic 6.0arranca una determinadafuncin oprocedimiento que realiza la accin programada por el usuario

    para ese evento concreto. Estos procedimientos se llaman con un nombre que se forma a partir delnombre del objeto y el nombre del evento, separados por el carcter (_), como por ejemplotxtBox_click, que es el nombre del procedimiento que se ocupar de responder al evento clicken elobjeto txtBox.

    1.2.6 Mtodos

    Los mtodos son funciones que tambin son llamadas desde programa, pero a diferencia de los procedimientos no son programadas por el usuario, sino que vienen ya pre-programadas con ellenguaje. Los mtodos realizan tareas tpicas, previsibles y comunes para todas las aplicaciones. Deah que vengan con el lenguaje y que se libere al usuario de la tarea de programarlos. Cada tipo deobjeto o de control tiene sus propios mtodos.

    Por ejemplo, los controles grficos tienen un mtodo llamadoLine que se encarga de dibujarlneas rectas. De la misma forma existe un mtodo llamado Circle que dibuja circunferencias yarcos de circunferencia Es obvio que el dibujar lneas rectas o circunferencias es una tarea comn

    para todos los programadores y que Visual Basic 6.0 da ya resuelta.

    1.2.7 Proyectos y ficheros

    Cada aplicacin que se empieza a desarrollar en Visual Basic 6.0 es un nuevo proyecto. Unproyecto comprende otras componentes ms sencillas, como por ejemplo los formularios (que sonlas ventanas de la interface de usuario de la nueva aplicacin) y los mdulos (que son conjuntos defunciones y procedimientos sin interface grfica de usuario).

    Cmo se guarda un proyecto en el disco? Un proyecto se compone siempre de variosficheros (al menos de dos) y hay que preocuparse de guardar cada uno de ellos en el directorioadecuado y con el nombre adecuado. Existe siempre un fichero con extensin *.vbp (Visual Basic

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    11/106

    Captulo 1: Introduccin pgina 5

    Project) que se crea con el comando File/Save Project As. El fichero del proyecto contiene toda lainformacin de conjunto. Adems hay que crear un fichero por cada formulario y por cadamduloque tenga el proyecto. Los ficheros de los formularios se crean con File/Save Filename Asteniendo como extensin *.frm. Los ficheros de cdigo o mdulos se guardan tambin con el

    comando File/Save Filename As y tienen como extensin *.bas si se trata de un mdulo estndaro*.cls si se trata de un mdulo de clase (class module).

    Clicando en el botn Save en la barra de herramientas se actualizan todos los ficheros delproyecto. Si no se haban guardado todava en el disco, Visual Basic 6.0 abre cajas de dilogoSaveAspor cada uno de los ficheros que hay que guardar.

    1.3 EL ENTORNO DE PROGRAMACIN VISUAL BASIC 6.0

    Cuando se arranca Visual Basic 6.0aparece en la pantalla una configuracin

    similar a la mostrada en la Figura 1.1. Enella se pueden distinguir los siguienteselementos:

    1. La barra de ttulos, la barra de mensy la barra de herramientas de Visual

    Basic 6.0 en modo Diseo (partesuperior de la pantalla).

    2. Caja de herramientas (toolbox) con loscontroles disponibles (a la izquierda dela ventana).

    3. Formulario (form) en gris, en que sepueden ir situando los controles (en elcentro). Est dotado de una rejilla (grid) para facilitar la alineacin de los controles.

    4. Ventana de proyecto, que muestra los formularios y otros mdulos de programas que formanparte de la aplicacin (arriba a la derecha).

    5. Ventana dePropiedades, en la que se pueden ver las propiedades del objeto seleccionado o delpropio formulario (en el centro a la derecha). Si esta ventana no aparece, se puede hacer visiblecon la tecla .

    6. Ventana FormLayout, que permite determinar la forma en que se abrir la aplicacin cuandocomience a ejecutarse (abajo a la derecha).

    Existen otras ventanas para edicin de cdigo (Code Editor) y para ver variables en tiempo deejecucin con el depurador o Debugger (ventanas Immediate, Locals y Watch). Todo esteconjunto de herramientas y de ventanas es lo que se llama un entorno integrado de desarrollo oIDE (Integrated Development Environment).

    Construir aplicaciones con Visual Basic 6.0 es muy sencillo: basta crear los controles en elformulario con ayuda de la toolboxy del ratn, establecer suspropiedades con ayuda de la ventanade propiedades y programar el cdigo que realice las acciones adecuadas en respuesta a los eventoso acciones que realice el usuario. A continuacin, tras explicar brevemente cmo se utiliza elHelp

    de Visual Basic, se presentan algunos ejemplos ilustrativos.

    Figura 1.1. Entorno de programacin de Visual Basic 6.0.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    12/106

    ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero pgina 6

    1.4 EL HELP DE VISUAL BASIC 6.0

    El Help de Visual Basic 6.0 es de los mejores que existen. Adems de que se puede buscarcualquier tipo de informacin con la funcinIndex, basta seleccionar una propiedad cualquiera en

    la ventana de propiedades o un control cualquiera en el formulario (o el propio formulario), paraque pulsando la tecla aparezca una ventana de ayuda muy completa. De cada control demuestran las propiedades, mtodos y eventos que soporta, as como ejemplos de aplicacin.Tambin se muestra informacin similar o relacionada.

    Existe adems un breve pero interesante curso introductorio sobre Visual Basic 6.0 que seactiva con la opcinHelp/Contents, seleccionando luego MSDN Contents/Visual Basic Documen-tation/Visual Basic Start Page/Getting Started.

    1.5 EJEMPLOS

    El entorno de programacin de Visual Basic 6.0 ofrece muchas posibilidades de adaptacin a losgustos, deseos y preferencias del usuario. Los usuarios expertos tienen siempre una forma propia dehacer las cosas, pero para los usuarios noveles conviene ofrecer unas ciertas orientaciones alrespecto. Por eso, antes de realizar los ejemplos que siguen se recomienda modificar laconfiguracin de Visual Basic 6.0 de la siguiente forma:

    1. En el men Tools elegir el comando Options; se abre un cuadro de dilogo con 6 solapas.

    2. En la solapaEnvironmentelegir Promp to Save Changes en When a Program Starts paraque pregunte antes de cada ejecucin si se desean guardar los cambios realizados. En la solada

    Editorelegir tambin Require Variable Declaration en Code Settings para evitar errores alteclear los nombres de las variables.

    3. En la solapaEditor, en Code Settings, dar a Tab Width un valor de 4 y elegir la opcin AutoIndent (para que ayude a mantener el cdigo legible y ordenado). En Windows Settings elegir Default to Full Module View (para ver todo el cdigo de un formulario en una mismaventana) y Procedure Separator (para que separe cada funcin de las dems mediante unalnea horizontal).

    1.5.1 Ejemplo 1.1: Sencillo programa de coloresy posiciones

    En la Figura 1.2 se muestra el formulario y loscontroles de un ejemplo muy sencillo que permite

    mover una caja de texto por la pantalla, permitiendoa su vez representarla con cuatro colores diferentes.

    En la Tabla 1.2 se describen los controlesutilizados, as como algunas de sus propiedades msimportantes (sobre todo las que se separan de losvalores por defecto). Los ficheros de este proyectose llamarn Colores0.vbp y Colores0.frm. Figura 1.2. Formulario y controles del Ejemplo 1.1.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    13/106

    Captulo 1: Introduccin pgina 7

    Control Propiedad Valor Control Propiedad ValorfrmColores0 Name frmColores0 optVerde Name optVerde

    Caption Colores Caption VerdefraColores Name fraColor fraPosicion Name fraPosicion

    Caption Colores Caption PosicinoptAzul Name optAzul optArriba Name optArriba

    Caption Azul Caption ArribaoptRojo Name optRojo optAbajo Name optAbajo

    Caption Rojo Caption AbajooptAmarillo Name optAmarillo txtCaja Name txtCaja

    Caption Amarillo Text

    Tabla 1.2. Objetos y propiedades del ejemplo Colores0.

    A continuacin se muestra el cdigo correspondiente a los procedimientos de este ejemplo.Option Explicit

    Private Sub Form_Load()txtCaja.Top = 0

    End Sub

    Private Sub optArriba_Click()txtCaja.Top = 0

    End Sub

    Private Sub optAbajo_Click()txtCaja.Top = frmColores0.ScaleHeight - txtCaja.Height

    End Sub

    Private Sub optAzul_Click()txtCaja.BackColor = vbBlue

    End Sub

    Private Sub optRojo_Click()txtCaja.BackColor = vbRed

    End Sub

    Private Sub optVerde_Click()txtCaja.BackColor = vbGreen

    End Sub

    Private Sub optAmarillo_Click()txtCaja.BackColor = vbYellow

    End Sub

    Sobre este primer programa en Visual Basic 6.0 se pueden hacer algunos comentarios:

    1. El comando Option Explicitsirve para obligar a declarartodas las variables que se utilicen.Esto impide el cometer errores en los nombres de las variables (confundirmasa con mesa, porejemplo). En este ejemplo esto no tiene ninguna importancia, pero es convenienteacostumbrarse a incluir esta opcin.Declarar una variable es crearla con un nombre y de untipo determinado antes de utilizarla.

    2. Cada una de las partes de cdigo que empieza con unPrivate Sub y termina con unEnd Subes unprocedimiento, esto es, una parte de cdigo independiente y reutilizable. El nombre deuno de estos procedimientos, por ejemplo optAzul_Click(), es tpico de Visual Basic. La

    primera parte es el nombre de un objeto (control); despus va un separador que es el carcterde subrayado (_); a continuacin el nombre de un evento -click, en este caso-, y finalmenteunos parntesis entre los que iran los argumentos, en caso de que los hubiera.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    14/106

    ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero pgina 8

    3. Es tambin interesante ver cmo se accede desde programa a la propiedad backColorde lacaja de texto que se llama txtCaja: se hace utilizando el punto en la forma txtCaja.BackColor.Los colores se podran tambin introducir con notacin hexadecimal (comenzando con &H,seguidos por dos dgitos entre 00 y FF (es decir, entre 0 y 255 en base 10) para los tres

    colores fundamentales, es decir para el Red, Green y Blue (RGB), de derecha a izquierda.Aqu se han utilizado las constantes simblicas predefinidas en Visual Basic 6.0: vbRed,vbGreen y vbBlue (ver Tabla 6.1, en la pgina 70).

    4. Recurdese que si se desea que el cdigo de todos los eventos aparezca en una misma ventanahay que activar la opcin Default to Full Module Viewen la solapa Editor del comandoTools/Options. Tambin puede hacerse directamente en la ventana de cdigo con uno de los

    botones que aparecen en la parte inferior izquierda ( ).

    5. Es muy importante crear primero el control frame y despus, estando seleccionado, colocarlos botones de opcin en su interior. No sirve hacerlo a la inversa. Visual Basic supone quetodos los botones de opcin que estn dentro del mismoframe forman parte del mismo grupoy slo permite que uno est seleccionado.

    1.5.2 Ejemplo 1.2: Minicalculadora elemental

    En este ejemplo se muestra una calculadora elementalque permite hacer las cuatro operaciones aritmticas(Figura 1.3). Los ficheros de este proyecto se puedenllamarminicalc.vbp y minicalc.frm.

    El usuario introduce los datos y clica sobre el botn correspondiente a la operacin que desea

    realizar, apareciendo inmediatamente el resultado enla caja de texto de la derecha.

    La Tabla 1.3 muestra los objetos y las propie-dades ms importantes de este ejemplo.

    Control Propiedad Valor Control Propiedad ValorfrmMinicalc Name frmMinicalc lblEqual Name lblEqual

    Caption Minicalculadora Caption =txtOper1 Name txtOper1 cmdSuma Name cmdSuma

    Text Caption +txtOper2 Name txtOper2 cmdResta Name cmdResta

    Text Caption -txtResult Name txtResult cmdMulti Name cmdProd

    Text Caption *lblOp Name lblOp cmdDivi Name cmdDiv

    Caption Caption /

    Tabla 1.3. Objetos y propiedades del ejemplo Minicalculadora.

    A continuacin se muestra el cdigo correspondiente a los procedimientos que gestionan loseventos de este ejemplo.

    Option Explicit

    Private Sub cmdDiv_Click()txtResult.Text = Val(txtOper1.Text) / Val(txtOper2.Text)lblOp.Caption = "/"

    End Sub

    Figura 1.3. Minicalculadora elemental.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    15/106

    Captulo 1: Introduccin pgina 9

    Private Sub cmdProd_Click()txtResult.Text = Val(txtOper1.Text) * Val(txtOper2.Text)lblOp.Caption = "*"

    End Sub

    Private Sub cmdResta_Click()txtResult.Text = Val(txtOper1.Text) - Val(txtOper2.Text)lblOp.Caption = "-"

    End Sub

    Private Sub cmdSuma_Click()txtResult.Text = Val(txtOper1.Text) + Val(txtOper2.Text)lblOp.Caption = "+"

    End Sub

    En este ejemplo se ha utilizado repetidamente la funcin Val() de Visual Basic. Esta funcinconvierte una serie de caracteres numricos (un texto formado por cifras) en el nmero entero o de

    punto flotante correspondiente. Sin la llamada a la funcin Val() el operador + aplicado a cadenasde caracteres las concatena, y como resultado, por ejemplo, 3+4 dara 34. No es lo mismo loscaracteres 1 y 2 formando la cadena ostring12 que el nmero 12; la funcin val() conviertecadenas de caracteres numricos con los que no se pueden realizar operaciones aritmticas- en losnmeros correspondientes con los que s se puede operar matemticamente-. Visual Basic 6.0transforma de modo automtico nmeros en cadenas de caracteres y viceversa, pero este es un casoen el que dicha transformacin no funciona porque el operador + tiene sentido tanto con nmeroscomo con cadenas.

    1.5.3 Ejemplo 1.3: Transformacin de unidades de temperatura

    La Figura 1.4 muestra un programa sencillo que permite ver la equivalencia entre las escalas detemperaturas en grados centgrados y gradosFahrenheit. Los ficheros de este proyecto se puedenllamarTemperat.vbp y Temperat.frm.

    En el centro del formulario aparece una barrade desplazamiento vertical que permite desplazarsecon incrementos pequeos de 1 C y grandes de 10C. Como es habitual, tambin puede cambiarse elvalor arrastrando con el ratn el cursor de la barra.Los valores mximos y mnimo de la barra son 100

    C y -100 C.A ambos lados de la barra aparecen dos

    cuadros de texto (color de fondo blanco) dondeaparecen los grados correspondientes a la barra en ambas escalas. Encima aparecen dos rtulos(labels) que indican la escala de temperaturas correspondiente. Completan la aplicacin un botn

    Salirque termina la ejecucin y un men File con la nica opcin Exit, que termina asimismo laejecucin del programa.

    La Tabla 1.4 indica los controles utilizados en este ejemplo junto con las propiedades y losvalores correspondientes.

    Figura 1.4. Equivalencia de temperaturas.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    16/106

    ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero pgina 10

    Control Propiedad Valor Control Propiedad ValorfrmTemp Name frmTemp vsbTemp Name vsbTemp

    Caption Conversor detemperaturas

    Min 100

    mnuFile Name mnuFile Max -100Caption &File SmallChange 1

    mnuFileExit Name mnuFileExit LargeChange 10Caption E&xit Value 0

    cmdSalir Name cmdSalir lblCent Name lblCentCaption Salir Caption Grados CentgradosFont MS Sans Serif, Bold, 14 Font MS Sans Serif, 10

    txtCent Name txtCent lblFahr Name lblFahrtext 0 Caption Grados Fahrenheit

    txtFahr Name txtFahr Font MS Sans Serif, 10text 32

    Tabla 1.4. Controles y propiedades del Ejemplo 1.3.

    Por otra parte, el cdigo con el que este programa responde a los eventos es el contenido enlos siguientes procedimientos:

    Option Explicit

    Private Sub cmbSalir_Click()BeepEnd

    End Sub

    Private Sub mnuFileExit_Click()End

    End Sub

    Private Sub vsbTemp_Change()txtCent.Text = vsbTemp.ValuetxtFahr.Text = 32 + 1.8 * vsbTemp.Value

    End Sub

    Sobre este tercer ejemplo se puede comentar lo siguiente:

    1. Se ha utilizado la propiedad Value de la barra de desplazamiento, la cual da el valor actual dela misma con respecto a los lmites inferior y superior, previamente establecidos (-100 y 100).

    2. Mediante el procedimiento cmdSalir_Click, se cierra el programa, gracias a la instruccinEnd. El cometido de Beep no es otro que el de emitir un pitido a travs del altavoz delordenador, que indicar que en efecto se ha salido del programa.

    3. La funcin mnuFileExit_Click() y activa desde el men y termina la ejecucin sin emitirningn sonido.

    4. Finalmente, la funcin vsbTemp_Change() se activa al cambiar el valor de la barra dedesplazamiento; su efecto es modificar el valor de la propiedad texten las cajas de texto quemuestran la temperatura en cada una de las dos escalas.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    17/106

    Captulo 1: Introduccin pgina 11

    1.5.4 Ejemplo 1.4: Colores RGB

    La Figura 1.5 muestra el formulario y loscontroles del proyecto Colores. Los ficheros deeste proyecto se pueden llamar Colores.vbp yColores.frm.

    En este ejemplo se dispone de tres barras dedesplazamiento con las que pueden controlarselas componentes RGB del color del fondo y delcolor del texto de un control label. Dos botonesde opcin permiten determinar si los valores delas barras se aplican al fondo o al texto. Cuandose cambia del texto al fondo o viceversa losvalores de las barras de desplazamiento (y la

    posicin de los cursores) cambian de modo

    acorde.A la dcha. de las barras de desplazamiento

    tres cajas de texto contienen los valores num-ricos de los tres colores (entre 0 y 255). A la izda. tres labels indican los colores de las tres barras.La Tabla 1.5 muestra los controles y las propiedades utilizadas en el este ejemplo.

    Control Propiedad Valor Control Propiedad ValorfrmColores Name frmColores hsbColor Name hsbColor

    Caption Colores Min 0lblCuadro Name lblCuadro Max 255

    Caption INFORMTICA 1 SmallChange 1Font MS Sans Serif, Bold, 24 LargeChange 16

    cmdSalir Name cmdSalir Index 0,1,2Caption Salir Value 0Font MS Sans Serif, Bold, 10 txtColor Name txtColor

    optColor Name optColor Text 0Index 0,1 Locked TrueCaption Fondo, Texto Index 0,1,2Font MS Sans Serif, Bold, 10 lblColor Name lblColor

    Caption Rojo,Verde,AzulIndex 0,1,2Font MS Sans Serif, 10

    Tabla 1.5. Objetos y propiedades del ejemplo Colores.

    Una caracterstica importante de este ejemplo es que se han utilizado vectores (arrays) decontroles. Las tres barras se llaman hsbColory se diferencian por la propiedadIndex, que toma losvalores 0, 1 y 2. Tambin las tres cajas de texto, las tres labels y los dos botones de opcin sonarrays de controles. Para crear un array de controles basta crear el primero de ellos y luego hacerCopy yPaste tantas veces como se desee, respondiendo afirmativamente al cuadro de dilogo que

    pregunta si desea crear un array.

    El procedimiento Sub que contiene el cdigo que gestiona un evento de un array es nicopara todo el array, y recibe como argumento la propiedadIndex. De este modo que se puede saber

    exactamente en qu control del array se ha producido el evento. As pues, una ventaja de los arraysde controles es que pueden compartir el cdigo de los eventos y permitir un tratamiento conjunto

    Figura 1.5. Colores de fondo y de texto.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    18/106

    ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero pgina 12

    por medio de buclesfor. A continuacin se muestra el cdigo correspondiente a los procedimientosque tratan los eventos de este ejemplo.

    Option ExplicitPublic Brojo, Bverde, Bazul As Integer

    Public Frojo, Fverde, Fazul As Integer

    Private Sub cmdSalir_Click()End

    End Sub

    Private Sub Form_Load()Brojo = 0Bverde = 0Bazul = 0Frojo = 255Fverde = 255Fazul = 255lblCuadro.BackColor = RGB(Brojo, Bverde, Bazul)

    lblCuadro.ForeColor = RGB(Frojo, Fverde, Fazul)End Sub

    Private Sub hsbColor_Change(Index As Integer)If optColor(0).Value = True Then

    lblCuadro.BackColor = RGB(hsbColor(0).Value, hsbColor(1).Value, _hsbColor(2).Value)

    Dim i As IntegerFor i = 0 To 2

    txtColor(i).Text = hsbColor(i).ValueNext i

    ElselblCuadro.ForeColor = RGB(hsbColor(0).Value, hsbColor(1).Value, _

    hsbColor(2).Value)

    For i = 0 To 2txtColor(i).Text = hsbColor(i).Value

    Next iEnd If

    End Sub

    Private Sub optColor_Click(Index As Integer)If Index = 0 Then 'Se pasa a cambiar el fondo

    Frojo = hsbColor(0).ValueFverde = hsbColor(1).ValueFazul = hsbColor(2).ValuehsbColor(0).Value = BrojohsbColor(1).Value = BverdehsbColor(2).Value = Bazul

    Else 'Se pasa a cambiar el textoBrojo = hsbColor(0).ValueBverde = hsbColor(1).ValueBazul = hsbColor(2).ValuehsbColor(0).Value = FrojohsbColor(1).Value = FverdehsbColor(2).Value = Fazul

    End IfEnd Sub

    El cdigo de este ejemplo es un poco ms complicado que el de los ejemplos anteriores yrequiere unas ciertas explicaciones adicionales adelantando cuestiones que se vern posteriormente:

    1. La funcinRGB() crea un cdigo de colora partir de sus argumentos: las componentes RGB(Red, Green andBlue). Estas componentes, cuyo valor se almacena en un byte y puede oscilarentre 0 y 255, se determinan por medio de las tres barras de desplazamiento.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    19/106

    Captulo 1: Introduccin pgina 13

    2. El color blanco se obtiene con los tres colores fundamentales a su mxima intensidad. Elcolornegro se obtiene con los tres colores RGB a cero. Tambin se pueden introducir con lasconstantes predefinidas vbWhite y vbBlack, respectivamente.

    3. Es importante disponer de unas variables globales que almacenen los colores del fondo y deltexto, y que permitan tanto guardar los valores anteriores de las barras como cambiar stas asus nuevos valores cuando se clica en los botones de opcin. Las variables globales, definidasen la parte de definiciones generales del cdigo, fuera de cualquier procedimiento, sonvisibles desde cualquier parte del programa. Las variables definidas dentro de una funcin o

    procedimiento slo son visibles desde dentro de dicha funcin o procedimiento (variableslocales).

    4. La funcin hsbColor_Change(Index As Integer) se activa cada vez que se cambia el valor enuna cualquiera de las barras de desplazamiento. El argumentoIndex, que Visual Basic defineautomticamente, indica cul de las barras del array es la que ha cambiado de valor (la 0, la 1 la 2). En este ejemplo dicho argumento no se ha utilizado, pero est disponible por si se

    hubiera querido utilizar en el cdigo.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    20/106

    ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero pgina 14

    2. ENTORNO DE PROGRAMACIN VISUAL BASIC 6.0

    2.1 INTRODUCCIN: QU ES VISUAL BASIC 6.0?

    Visual Basic 6.0 es una excelente herramienta de programacin que permite crear aplicacionespropias (programas) para Windows 95/98 o Windows NT. Con ella se puede crear desde una simplecalculadora hasta una hoja de clculo de la talla deExcel(en sus primeras versiones...), pasando porun procesador de textos o cualquier otra aplicacin que se le ocurra al programador. Susaplicaciones en Ingeniera son casi ilimitadas: representacin de movimientos mecnicos o defunciones matemticas, grficas termodinmicas, simulacin de circuitos, etc.

    Este programa permite crear ventanas, botones, mens y cualquier otro elemento de Windowsde una forma fcil e intuitiva. El lenguaje de programacin que se utilizar ser el Basic, que sedescribir en el siguiente captulo.

    A continuacin se presentarn algunos aspectos del entorno de trabajo de Visual Basic 6.0:mens, opciones, herramientas, propiedades, etc.

    2.2 EL ENTORNO DE VISUAL BASIC 6.0

    Visual Basic 6.0 tiene todos los elementos que caracterizan a los programas de Windows e inclusoalguno menos habitual. En cualquier caso, el entorno de Visual Basic 6.0 es muy lgico y natural, yadems se puede obtener una descripcin de la mayora de los elementos clicando en ellos paraseleccionarlos y pulsando luego la tecla .

    2.2.1 La barra de mens y las barras de herramientasLa barra de mens de Visual Basic 6.0 resulta similar a la de cualquier otra aplicacin deWindows, tal y como aparece en la Figura 2.2. Bajo dicha barra aparecen las barras deherramientas, con una serie de botones que permiten acceder fcilmente a las opciones msimportantes de los mens. En Visual Basic 6.0 existen cuatro barras de herramientas:Debug,Edit,Form Editory Standard. Por defecto slo aparece la barra Standard, aunque en la Figura 2.2 semuestran las cuatro. Clicando con el botn derecho sobre cualquiera de las barras de herramientasaparece un men contextual con el que se puede hacer aparecer y ocultar cualquiera de las barras.Al igual que en otras aplicaciones de Windows 95/98/NT, tambin pueden modificarse las barrasaadiendo o eliminando botones (opcin Customize).

    En la barra de herramientas Standardtambin se pueden ver a laderecha dos recuadros con nmeros, que representan cuatro propiedadesdel formulario referentes a su posicin y tamao que se vern msadelante: Top y Left, que indican la posicin de la esquina superiorizquierda del formulario, y tambin Heighty Width, que describen eltamao del mismo en unas unidades llamadas twips, que secorresponden con la vigsima parte de un punto (una pulgada tiene 72

    puntos y 1440 twips). Las dimensiones de un control aparecen tambincuando con el ratn se arrastra sobre el formulario, segn se puede veren la Figura 2.1. Los botones de la barra de herramientas Standardresponden a las funciones ms

    importantes: abrir y/o guardar nuevos proyectos, aadir formularios, hacer visibles las distintasventanas del entorno de desarrollo, etc. Todos los botones tienen su correspondiente comando en

    Figura 2.1. Informacin visualsobre el tamao de un control.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    21/106

    Captulo 2: El entorno de programacin Visual Basic 6.0 pgina 15

    alguno de los mens. Son importantes los botones que permiten arrancar y/o parar laejecucin de un proyecto, pasando de modo diseo a modo de ejecucin y viceversa.

    Figura 2.2. Barra de mens y barras de herramientas de Visual Basic 6.0.

    El men File tiene pocas novedades. Lo ms importante es la distincin entre proyectos ytodos los dems ficheros. Como ya se ha dicho, un proyecto rene y organiza todos los ficheros quecomponen el programa o aplicacin (hace la funcin de una carpeta que contuviera apuntes). Estosficheros pueden serformularios, mdulos, clases, recursos, etc. Visual Basic 6.0permite tener ms

    de un proyecto abierto simultneamente, lo cual puede ser til en ocasiones. Con el comandoAddProjectse aade un nuevo proyecto en la ventana Project Manager. Con los comandos OpenProjecto New Projectse abre o se crea un nuevo proyecto, pero cerrando el o los proyectos queestuvieran abiertos previamente. En este men est el comando Make ProjectName.exe, que

    permite crear ejecutables de los proyectos.

    Tampoco el menEditaporta cambios importantes sobre lo que es habitual. Por el contrarioel men View, generalmente de poca utilidad, es bastante propio de Visual Basic 6.0. Este men

    permite hacer aparecer en pantalla las distintas ventanas del entorno de desarrollo, as como accedera un formulario o al cdigo relacionado con un control (que tambin aparece si se clica dos veces endicho control), y manejar funciones y procedimientos.

    El men Project permite aadir distintos tipos de elementos a un proyecto (formularios,mdulos, etc.). Con Project/Properties se puede elegir el tipo de proyecto y determinar elformulario con el que se arrancar la aplicacin (Startup Object). Con el comando Components se

    pueden aadir nuevos controles a la Toolboxque aparece a la izquierda de la pantalla.

    El men Format contiene opciones para controlar el aspecto de la aplicacin (alinearcontroles, espaciarlos uniformemente, etc.). Los mens Debug y Run permiten controlar laejecucin de las aplicaciones. ConDebugse puede ver en detalle cmo funcionan, ejecutando pasoa paso, yendo hasta una lnea de cdigo determinada, etc. Esto es especialmente til cuando hayaque encontrar algunos errores ejecutando paso a paso, o viendo resultados intermedios.

    En el men Tools se encuentran los comandos para arrancar el Menu Editor(para crearmens, como se ver en el Apartado 5, a partir de la pgina 64, dedicado a los Mens) y paraestablecer las opciones del programa. En Tools/Options se encuentran las opciones relativas al

    proyecto en el que se trabaja. La lengetaEnvironmentdetermina las propiedades del entorno delproyecto, como las opciones para actualizaro no los ficheros antes de cada ejecucin; en Generalse establece lo referente a la retcula o gridque aparece en el formulario;Editorpermite establecerla necesidad de declarartodas las variables junto con otras opciones de edicin, como si se quierenver o no todos los procedimientos juntos en la misma ventana, y si se quiere ver una lneaseparadora entre procedimientos; Editor Formatpermite seleccionar el tipo de letra y los cdigosde color con los que aparecen los distintos elementos del cdigo. La opcin Advanced hacereferencia entre otras cosas a la opcin de utilizar Visual Basic 6.0 en dos formatos SDI (Single

    Document Interface) y MDI (Multiple Document Interface descritos en el Apartado 4.5, en lapgina 61).

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    22/106

    ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero pgina 16

    Por ltimo, la ayuda (siempre imprescindible y en el caso de VisualBasic 6.0particularmente bien hecha) que se encuentra en el menHelp, se basa fundamentalmente en una clasificacin temtica ordenada de lainformacin disponible (Contents), en una clasificacin alfabtica de la

    informacin (Index) y en la bsqueda de informacin sobre algn tema porel nombre (Search). Como ya se ha mencionado, la tecla permite unaayuda directa sensible al contexto, esto es dependiente de donde se hayaclicado con el ratn (o de lo que est seleccionado).

    2.2.2 Las herramientas (toolbox)

    La Figura 2.3 muestra la caja de herramientas, que incluye los controlescon los que se puede disear la pantalla de la aplicacin. Estos controlesson por ejemplo botones, etiquetas, cajas de texto, zonas grficas, etc. Paraintroducir un control en el formulario simplemente hay que clicar en el

    icono adecuado de la toolboxy colocarlo en el formulario con la posicin yel tamao deseado, clicando y arrastrando con el ratn. Clicando dos vecessobre el icono de un control aparece ste en el centro del formulario y se

    puede modificar su tamao y/o trasladar con el ratn como se desee.

    El nmero de controles que pueden aparecer en esta ventana varacon la configuracin del sistema. Para introducir nuevos componentes seutiliza el comando Components en el menProject, con lo cual se abre elcuadro de dilogo mostrado en la Figura 2.4.

    2.3 FORMULARIOS (FORMS) Y MDULOSLosformularios son las zonas de la pantalla sobrelas que se disea el programa y sobre las que sesitan los controles o herramientas de la toolbox.Al ejecutar el programa, el form se convertir enla ventana de la aplicacin, donde aparecern los

    botones, el texto, los grficos, etc.

    Para lograr una mejor presentacin existeuna malla o retcula (grid) que permite alinear loscontroles manualmente de una forma precisa(evitando tener que introducir coordenadascontinuamente). Esta malla slo ser visible en el

    proceso de diseo del programa; al ejecutarlo nose ver. De cualquier forma, se puede desactivarla malla o cambiar sus caractersticas en el menTools/Options/General, cambiando la opcin

    Align Controls to Grid.

    Exteriormente, los formularios tienen una estructura similar a la de cualquier ventana. Sinembargo, tambin poseen un cdigo de programacin que estar escrito enBasic, y que controlaralgunos aspectos del formulario, sobre todo en la forma de reaccionar ante las acciones del usuario

    (eventos). El formulario y los controles en l situados sern el esqueleto o la base del programa.Una aplicacin puede tener varios formularios, pero siempre habr uno con el que arrancar laaplicacin; este formulario se determina a partir del menProject/Properties, enStartup Objects.

    Figura 2.3. Caja decomponentes (Toolbox).

    Figura 2.4. Cuadro de dilogo Components.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    23/106

    Captulo 2: El entorno de programacin Visual Basic 6.0 pgina 17

    Resumiendo, cuando se vaya a crear un programa en Visual Basic 6.0 habr que dar dospasos:

    1. Disear y preparar la parte grfica (formularios, botones, mens, etc.)

    2. Realizar la programacin que gestione la respuesta del programa ante los distintos eventos.

    2.4 LA VENTANA DE PROYECTO (PROJECT)

    Esta ventana, mostrada en la Figura 2.5, permite acceder alos distintos formularios y mdulos que componen el

    proyecto. Desde ella se puede ver el diseo grfico dedichos formularios (botn View Object ), y tambin

    permite editar el cdigo que contienen (botn View Code). Estos botones estn situados en la parte superior de

    la ventana, debajo de la barra de ttulos.

    Los mdulos estndar (ficheros *.bas) contienenslo cdigo que, en general, puede ser utilizado pordistintos formularios y/o controles del proyecto e incluso

    por varios proyectos. Por ejemplo puede prepararse unmdulo estndar de funciones matemticas que sea deutilidad general. Normalmente contienen siempre algunasdeclaraciones de variables globales o Public, que sernaccesibles directamente desde todos los formularios.

    Los mdulos de clase (ficheros *.cls) contienen

    clases definidas por el usuario. Las clases son comoformularios o controles complejos, sin interface grfica deusuario.

    2.5 LA VENTANA DE PROPIEDADES (PROPERTIES)

    Todos los objetos Visual Basic 6.0 tienen unas propiedades que los definen: su nombre (Name), suetiqueta o ttulo (Caption), el texto que contiene (Text),su tamao y posicin, su color, si est activo o no(Enabled), etc. La Figura 2.6 muestra parcialmente las

    propiedades de un formulario. Todas estas propiedades sealmacenan dentro de cada control o formulario en formade estructura (similar a las del lenguaje C). Por tanto, si

    por ejemplo en algn momento se quiere modificar elnombre de un botn basta con hacerlo en la ventana de

    propiedades (al disear el programa) o en el cdigo enBasic (durante la ejecucin), mediante el operador punto(.), en la forma:

    Boton1.Name = "NuevoNombre"

    Para realizar una modificacin de las propiedades

    de un objeto durante el diseo del programa, se activar laventana de propiedades (con el men, con el botn de la

    barra de herramientas o pulsando ). Esta ventana

    Figura 2.5. Ventana de proyecto.

    Figura 2.6. Ventana de propiedades.

    Figura 2.7. Ventana Form Layout.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    24/106

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    25/106

    Captulo 2: El entorno de programacin Visual Basic 6.0 pgina 19

    2.7 CMO UTILIZAR EL HELP

    Visual Basic 6.0 dispone de un Helpexcelente, como la mayora de las

    aplicaciones de Microsoft. En estanueva versin la ayuda se ofrece atravs de una interface de usuariosimilar a la de Internet Explorer.Estando seleccionado un control, una

    propiedad o un formulario, o estandoseleccionada una palabra clave en unaventana de cdigo, esta ayuda se

    puede utilizarde modo sensible alcontexto pulsando la tecla .Tambin se puede ver toda la

    informacin disponible de modogeneral y ordenado por temas con elcomandoHelp/Contents.

    Otra forma de acceder a laayuda es mediante las opciones delmen Help. As mediante la opcin

    Index se puede obtener informacinsobre muchos trminos relacionadoscon Visual Basic 6.0.

    Una vez obtenida la ayuda sobreel trmino solicitado se puedenencontrar temas relacionados con esetrmino en la opcin See Also. En elcaso de que se haya solicitado ayudasobre un determinado tipo de control(en la Figura 2.9 se ha hecho con los

    botones de comando), se podraacceder tambin a la ayuda sobretodos y cada uno de sus propiedades, eventos y mtodos con las opciones Properties, Methods y

    Events, respectivamente.

    La solapa Contents de la ventana de ayuda sirve para acceder a una pantalla en la que laayuda est ordenada por temas, la de Indexsirve para acceder a una pantalla en la que se podrrealizar una bsqueda a partir de un trmino introducido por el usuario, entre una gran lista detrminos ordenados alfabticamente. Al teclear las primeras letras del trmino, la lista de palabrasse va desplazando de modo automtico en busca de la palabra buscada. El botn Backsirve pararegresar a la pantalla desde la que se ha llegado a la actual y con el botnPrintse puede imprimir elcontenido de la ayuda.

    2.8 UTILIZACIN DEL CODE EDITOR

    El editor de cdigo o Code Editor de Visual Basic 6.0 es la ventana en la cual se escriben lassentencias del programa. Esta ventana presenta algunas caractersticas muy interesantes queconviene conocer para sacar el mximo partido a la aplicacin.

    Figura 2.8. Ayuda de Visual Basic 6.0.

    Figura 2.9. Ayuda sobre el botn de comando.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    26/106

    ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero pgina 20

    Para abrir la ventana del editor de cdigo se elige Code en el men View. Tambin se abreclicando en el botn View Code de laProject Window, o clicando dos veces en el formulario o encualquiera de sus controles. Cada formulario, cada mdulo de clase y cada mdulo estndar tienensu propia ventana de cdigo. La Figura 2.10 muestra un aspecto tpico de la ventana de cdigo.

    Aunque el aspecto de dicha ventana no tiene nada de particular, el Code Editorde Visual Basic 6.0ofrece muchas ayudas al usuario que requieren una explicacin ms detenida.

    En primer lugar, el Code Editorutiliza uncdigo de colores (accesible y modificable enTools/Options/Editor Format) para destacarcada elemento del programa. As, el cdigoescrito por el usuario aparece en negro, las

    palabras clave deBasic en azul, los comentariosen verde, los errores en rojo, etc. Esta simpleayuda visual permite detectar y corregir

    problemas con ms facilidad.En la parte superior de esta ventana apare-

    cen dos listas desplegables. La de la izquierdacorresponde a los distintos elementos delformulario (la parte General, que es comn atodo el formulario; el propio formulario y losdistintos controles que estn incluidos en l). Lalista desplegable de la derecha muestra los distintos procedimientos que se corresponden con elelemento seleccionado en la lista de la izquierda. Por ejemplo, si en la izquierda est seleccionadoun botn de comando, en la lista de la derecha aparecer la lista de todos los posibles

    procedimientosSub que pueden generar sus posibles eventos. Estas dos listas permiten localizarfcilmente el cdigo que se desee programar o modificar.

    El cdigo mostrado en la Figura 2.10 contiene en la parte superior una serie de declaracionesde variables y la opcin de no permitir utilizar variables no declaradas (Option Explicit). sta es la

    parte General de cdigo del formulario. En esta parte tambin se pueden definirfunciones yprocedimientos Sub no relacionados con ningn evento o control en particular. A continuacinaparecen dos procedimientos Sub (el segundo de ellos incompleto) que se corresponden con elevento Clickdel botn cmdSaliry con el eventoLoaddel formulario. Estos procedimientos estnseparados por una lnea, que se activa conProcedure Separatoren Tools/Options/Editor.

    Para ver todos los procedimientos del formulario y de sus controles simultneamente en la

    misma ventana (con o sin separador) o ver slo un procedimiento (el seleccionado en las listasdesplegables) se pueden utilizar los dos pequeos botones que aparecen en la parte inferiorizquierda de la ventana. El primero de ellos es el Procedure Viewy el segundo el Full ModuleView. Esta opcin est tambin accesible en Tools/Options/Editor.

    Otra opcin muy interesante es la de completar automticamente el cdigo (AutomaticCompletion Code). La Figura 2.11 muestra cmo al teclear el punto (o alguna letra inicial de una

    propiedad despus del punto) detrs del nombre de un objeto, automticamente se abre una lista conlas propiedades de ese objeto. Pulsando la tecla Tab se introduce el nombre completo de la

    propiedad seleccionada. A esta caracterstica se le conoce como AutoListMembers.

    Por otra parte, la opcin AutoQuickInfo hace que al comenzar a teclear el nombre de una

    funcin aparezca informacin sobre esa funcin: nombre, argumentos y valor de retorno (ver Figura2.12). Tanto la opcinAutoListMembers como la opcinAutoQuickInfo se activan en el cuadro dedilogo que se abre con Tools/Options/Editor.

    Figura 2.10. Ventana del Code Editor.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    27/106

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    28/106

    ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero pgina 22

    ejecute una lnea del cdigo. En el caso de que sta se trate de la llamada a un procedimiento ofuncin, la ejecucin se trasladar a la primera lnea de ese procedimiento o funcin. En el caso deque se desee ejecutar toda la funcin en un nico paso (por ejemplo porque se tiene constancia deque esa funcin funciona correctamente) se puede hacer mediante la opcinStep Over, pulsando las

    teclas y simultneamente, o clicando en el botn correspondiente ( ). Eneste caso la ejecucin se traslada a la lnea inmediatamente posterior a la llamada a la funcin. En elcaso de que la lnea a ejecutar no sea la llamada a una funcin ambas opciones (Step Into y StepOver) operan idnticamente. El comando y botnStep Out( ) hace que se salga de la funcin o

    procedimiento que se est ejecutando y que la ejecucin se detenga en la sentencia inmediatamentesiguiente a la llamada a dicha funcin o procedimiento.

    La utilizacin del Debuggerpermite tambin otras opciones muy interesantes como la deejecutar el programa hasta la lnea en la que se encuentre posicionado el cursor (con Step ToCursoro Ctrl+); la de continuar con la ejecucin del programa hasta el siguiente breakpointen el caso de que lo haya o hasta el final del mismo si no hay ninguno (con Continue, botn o

    ); y la posibilidad de volver a comenzar la ejecucin (con Restarto Maysculas + ).Adems de las ya mencionadas, tambin existe la posibilidad de detener momentneamente laejecucin del programa mediante el botnPause ( ) o la combinacin de teclas Ctrl+Pausa.

    2.9.2 Ventanas Immediate, Locals y Watches

    El Debuggerde Visual Basic 6.0 dispone de varias formas para consultar el valor de variables y propiedades, as como para ejecutar funciones y procedimientos comprobando su correctofuncionamiento. En ello juegan un papel importante tres tipos de ventanas: Immediate, Locals yWatch.

    La ventanaImmediate (ver Figura 2.14) permite realizar diversas acciones:

    1. Imprimir el valor de cualquier variable y/o propiedad accesible la funcin o procedimiento que se est ejecutando. Esto se puede hacer utilizando el mtodo PrintVarName (o su equivalente ?VarName) directamente en dicha ventana o introduciendoen el cdigo del programa sentencias del tipoDebug.Print VarName. En este ltimo casoel valor de la variable o propiedad se escribe en la ventana Immediate sin necesidad de

    parar la ejecucin del programa. Adems esas sentencias se guardan con el formulario yno hay que volver a escribirlas para una nueva ejecucin. Cuando se compila el programa

    para producir un ejecutable las sentencias Debug.Printson ignoradas. La utilizacin delmtodoPrintse explica en el Apartado 7.2, en la pgina 88.

    2. Asignar valores a variables y propiedades cuando la ejecucin est detenida y proseguir la

    ejecucin con los nuevos valores. Sin embargo, no se pueden crear nuevas variables.

    Figura 2.14. VentanaImmediate. Figura 2.15. VentanaLocals.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    29/106

    Captulo 2: El entorno de programacin Visual Basic 6.0 pgina 23

    3. Ejecutar expresiones y probar funciones y procedimientos incluyendo en la ventanaImmediate la llamada correspondiente.

    La ventanaLocals, mostrada en la Figura 2.15, muestra el valor de todas las variables visiblesen el procedimiento en el que est detenida la ejecucin.

    Otra opcin que puede resultar til es lade conocer permanentemente el valor de unavariable sin tener que consultarlo cada vez.Para conocer inmediatamente el valor de unavariable se puede utilizar la ventana QuickWatch, mostrada en la Figura 2.16. Paraobservar continuamente el valor de unavariable, o expresin hay que aadirla a laventana Watches. Esto se hace con la opcin

    Add Watch del menDebug. El valor de las

    variables incluidas en la ventana Watches (verFigura 2.18) se actualiza automticamente,indicndose tambin cuando no son accesiblesdesde el procedimiento que se est ejecutando(Out of Context).

    La ventana Add Watch mostrada en laFigura 2.17 permite introducir Breaks o

    paradas del programa condicionales, cuando secumple cierta condicin o cuando el valor de lavariable cambia.

    Las capacidades de Visual Basic 6.0paravigilar el valor de las variables puedenactivarse desde el men Debugo con algunos

    botones en la barra de herramientasDebug

    ( ).

    2.9.3 Otras posibilidades del Debugger

    El Debuggerde Visual Basic 6.0 permite noslo saber qu sentencia va a ser la prxima en

    ejecutarse (con Debug/Show Next Statement),sino tambin decidir cul va a ser dichasentencia (con Debug/Set Next Statement),

    pudiendo cambiar de esta forma el cursohabitual de la ejecucin: saltando sentencias,volviendo a una sentencia ya ejecutada, etc.

    Visual Basic 6.0 puede dar tambininformacin sobre las llamadas a funciones y procedimientos. Esto se hace con el comandoView/Call Stacko con el botn correspondiente de la barra Debug( ). De esta manera puedeconocerse qu funcin ha llamado a qu funcin hasta la sentencia donde la ejecucin est detenida.

    Figura 2.16. Ventana Quick Watch.

    Figura 2.17. VentanaAdd Watch.

    Figura 2.18. Ventana Watches.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    30/106

    ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero pgina 24

    3. LENGUAJE BASIC

    3.1 INTRODUCCIN

    En este captulo se explican los fundamentos del lenguaje de programacin Basic utilizado en elsistema de desarrollo para Visual Basic 6.0 deMicrosoft. En este manual se supone que el lector notiene conocimientos previos de programacin.

    Un programa en sentido informtico est constituido en un sentido general por variablesque contienen los datos con los que se trabaja y poralgoritmos que son las sentencias que operansobre estos datos. Estos datos y algoritmos suelen estar incluidos dentro de funciones o

    procedimientos.

    Un procesador digital nicamente es capaz de entender aquello que est constituido porconjuntos de unos y ceros. A esto se le llama lenguaje de mquina o binario, y es muy difcil demanejar. Por ello, desde casi los primeros aos de los ordenadores, se comenzaron a desarrollar losllamados lenguajes de alto nivel(tales como el Fortran, el Cobol, etc.), que estn mucho ms cercadel lenguaje natural. Estos lenguajes estn basados en el uso de identificadores, tanto para los datoscomo para las componentes elementales del programa, que en algunos lenguajes se llaman rutinas,

    procedimientos, o funciones. Adems, cada lenguaje dispone de una sintaxis o conjunto de reglascon las que se indica de modo inequvoco las operaciones que se quiere realizar.

    Los lenguajes de alto nivelson ms o menos comprensibles para el usuario, pero no para el procesador. Para que ste pueda ejecutarlos es necesario traducirlos a su propio lenguaje demquina. Al paso del lenguaje de alto nivel al lenguaje de mquina se le denomina compilacin. EnVisual Basic esta etapa no se aprecia tanto como en otros lenguajes donde el programador tiene queindicar al ordenador explcitamente que realice dicha compilacin. Los programas de Visual Basic

    se dice que son interpretados y no compilados ya que el cdigo no se convierte a cdigo mquinasino que hay otro programa que durante la ejecucin interpreta las lneas de cdigo que ha escritoel programador. En general durante la ejecucin de cualquier programa, el cdigo es cargado por elsistema operativo en la memoria RAM.

    3.2 COMENTARIOS Y OTRAS UTILIDADES EN LA PROGRAMACIN CON VISUAL BASIC

    Visual Basic 6.0 interpreta que todo lo que est a la derecha del carcter (') en una lnea cualquieradel programa es un comentario y no lo tiene en cuenta para nada. El comentario puede empezar alcomienzo de la lnea o a continuacin de una instruccin que debe ser ejecutada, por ejemplo:

    ' Esto es un comentarioA = B*x+3.4 ' tambin esto es un comentario

    Los comentarios son tremendamente tiles para poder entender el cdigo utilizado,facilitando de ese modo futuras revisiones y correcciones. En programas que no contengan muchaslneas de cdigo puede no parecer demasiado importante, pero cuando se trata de proyectosrealmente complejos, o desarrollados por varias personas su importancia es tremenda. En el caso deque el cdigo no est comentado este trabajo de actualizacin y revisin puede resultarcomplicadsimo.

    Otro aspecto prctico en la programacin es la posibilidad de escribir una sentencia en msde una lnea. En el caso de sentencias bastante largas es conveniente cortar la lnea para que entre

    en la pantalla. En otro caso la lectura del cdigo se hace mucho ms pesada. Para ello es necesariodejar un espacio en blanco al final de la lnea y escribir el carcter (_) tal y como se muestra en elsiguiente ejemplo:

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    31/106

    Captulo 3: Lenguaje BASIC pgina 25

    str1 = "Londres" : str2 = "Pars" 'Se inicializan las variablesFrase = "Me gustara mucho viajar a " &_

    str1 & " y a " & str2'El contenido de Frase sera: "Me gustara mucho viajar a Londres y a Pars

    Una limitacin a los comentarios en el cdigo es que no se pueden introducir en una lnea enla que se ha introducido el carcter de continuacin (_).

    La sintaxis de Visual Basic 6.0 permite tambin incluirvarias sentencias en una mismalnea. Para ello las sentencias deben ir separadas por el carcter dos puntos (:). Por ejemplo:

    m = a : n = b : resto = m Mod n ' Tres sentencias en una lnea

    3.3 PROYECTOS Y MDULOS

    Un proyecto realizado en Visual Basic 6.0 es el conjunto de todos los ficheros o mdulosnecesarios para que un programa funcione. La informacin referente a esos ficheros se almacena en

    un fichero del tipoProjectName.vbp. La extensin *.vbp del fichero hace referencia a Visual BasicProject.

    Si se edita este fichero con cualquier editor de texto se comprueba que la informacin quealmacena es la localizacin en los discos de los mdulos que conforman ese proyecto, los controlesutilizados (ficheros con extensin .ocx), etc. En el caso ms simple un proyecto est formado por unnico formulario y constar de dos ficheros: el que define el proyecto (*.vbp) y el que define elformulario (*.frm).

    Los mdulos que forman parte de un proyecto pueden ser de varios tipos: aquellos que estnasociados a un formulario (*.frm), los que contienen nicamente lneas de cdigo Basic (*.bas)llamados mdulos estndary los que definen agrupaciones de cdigo y datos denominadas clases

    (*.cls), llamados mdulos de clase.Un mdulo *.frm est constituido por un formulario y toda la informacin referente a los

    controles (y a sus propiedades) en l contenidos, adems de todo el cdigo programado en loseventos de esos controles y, en el caso de que existan, las funciones yprocedimientos propios deese formulario. En general se llamafuncin a una porcin de cdigo independiente que realiza unadeterminada actividad. En Visual Basic existen dos tipos de funciones: las llamadasfunction, quese caracterizan por tener valor de retorno, y los procedimientos oprocedures, que no lo tienen. Enotros lenguajes, como C/C++/Java, lasfunction realizan los dos papeles.

    Un mdulo de cdigo estndar *.bas contendr una o varias funciones y/o procedimientos,adems de las variables que se desee, a los que se podr acceder desde cualquiera de los mdulos

    que forman el proyecto.

    3.3.1 mbito de las variables y los procedimientos

    Se entiende por mbito de una variable (ver Apartado 3.3.1, en la pgina 25) la parte de laaplicacin donde la variable es visible (accesible) y por lo tanto puede ser utilizada en cualquierexpresin.

    3.3.1.1 Variables y funciones de mbito local

    Un mdulo puede contener variables y procedimientos o funciones pblicos y privados. Los

    pblicos son aquellos a los que se puede acceder libremente desde cualquier punto del proyecto.Para definir una variable, un procedimiento o una funcin como pblico es necesario preceder a ladefinicin de la palabraPublic, como por ejemplo:

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    32/106

    ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero pgina 26

    Public Variable1 As IntegerPublic Sub Procedimiento1 (Parametro1 As Integer, )Public Function Funcion1 (Parametro1 As Integer, ) As Integer

    Para utilizar una variable Public o llamar a una funcin Public definidas en un formulario

    desde otro mdulo se debe preceder el nombre de la variable o procedimiento con el nombre delformulario al que pertenece, como por ejemplo:Modulo1.Variable1Call Modulo1.Procedimiento1(Parametro1, )Retorno = Modulo1.Funcion1(Parametro1, )

    Sin embargo si el mdulo al que pertenecen la variable o el procedimiento Public es unmdulo estndar (*.bas) no es necesario poner el nombre del mdulo ms que si hay coincidenciade nombres con los de otro mdulo tambin estndar. Una variable Private, por el contrario, no esaccesible desde ningn otro mdulo distinto de aqul en el que se haya declarado.

    Se llama variable local a una variable definida dentro de un procedimiento o funcin. Las

    variables locales no son accesibles ms que en el procedimiento o funcin en que estn definidas.Una variable local es reinicializada (a cero, por defecto) cada vez que se entra en el

    procedimiento. Es decir, una variable localno conserva su valor entre una llamada alprocedimientoy la siguiente. Para hacer que el valor de la variable se conserve hay que declarar la variable como

    static (como por ejemplo: Static n As Integer). Visual Basic inicializa una variable estticasolamente la primera vez que se llama al procedimiento. Para declarar una variable esttica, seutiliza la palabra Static en lugar de Dim. Un poco ms adelante se ver que Dim es una palabrautilizada para crear variables. Si un procedimiento se declara Static todss sus variables localestienen carcterStatic.

    3.3.1.2 Variables y funciones de mbito global

    Se puede acceder a una variable o funcinglobal desde cualquier parte de la aplicacin. Para hacerque una variable sea global, hay que declararla en la parte generalde un mdulo *.bas o de unformulario de la aplicacin. Para declarar una variable global se utiliza la palabra Public. Porejemplo:

    Public var1_global As Double, var2_global As String

    De esta forma se podr acceder a las variables var1_global, var2_global desde todos losformularios. La Tabla 3.1 muestra la accesibilidad de las variable en funcin de dnde y cmo sehayan declarado1.

    La diferencia entre las variables y/o procedimientos Public de los formularios y de losmdulos estndar est en que las de los procedimientos deben ser cualificadas (precedidas) por elnombre del formulario cuando se llaman desde otro mdulo distinto, mientras que las de un mduloestndar (*.bas) slo necesitan ser cualificadas si hay colisin o coincidencia de nombres.

    1 Las palabras GlobalyDim proceden de versiones antiguas de Visual Basic y debe preferirse la utilizacin de laspalabras clavePublic yPrivate, que expresan mejor su significado.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    33/106

    Captulo 3: Lenguaje BASIC pgina 27

    Tipo de variable Lugar de declaracin AccesibilidadGlobal o Public Declaraciones de *.bas Desde todos los formularios

    Dim o Private Declaraciones de *.bas Desde todas las funciones de esemdulo

    Public Declaraciones de *.frm Desde cualquier procedimientodel propio formulario y desdeotros precedida del nombre delmodulo en el que se ha declarado

    Dim o Private Declaraciones de *.frm Desde cualquier procedimientodel propio formulario

    Dim Cualquier procedimiento deun mdulo

    Desde el propio procedimiento

    Tabla 3.1. Accesibilidad de las variables.

    3.4 VARIABLES

    3.4.1 Identificadores

    La memoria de un computador consta de un conjunto enorme de bits (1 y 0), en la que se almacenandatos y programas. Las necesidades de memoria de cada tipo de dato no son homogneas (porejemplo, un carcter alfanumrico ocupa un byte(8 bits), mientras que un nmero real con 16 cifrasocupa 8 bytes), y tampoco lo son las de los programas. Adems, el uso de la memoria cambia a lolargo del tiempo dentro incluso de una misma sesin de trabajo, ya que el sistema reserva o liberamemoria a medida que la va necesitando.

    Cada posicin de memoria en la que un dato est almacenado (ocupando un conjunto de bits)puede identificarse mediante un nmero o una direccin, y ste es el modo ms bsico de referirse auna determinada informacin. No es, sin embargo, un sistema cmodo o prctico, por la nularelacin nemotcnica que una direccin de memoria suele tener con el dato contenido, y porque como se ha dicho antes la direccin fsica de un dato cambia de ejecucin a ejecucin, o incluso enel transcurso de una misma ejecucin del programa. Lo mismo ocurre con partes concretas de un

    programa determinado.

    Dadas las citadas dificultades para referirse a un dato por medio de su direccin en memoria,se ha hecho habitual el uso de identificadores. Un identificador es un nombre simblico que serefiere a un dato o programa determinado. Es muy fcil elegir identificadores cuyo nombre guardeestrecha relacin con el sentido fsico, matemtico o real del dato que representan. As por ejemplo,es lgico utilizar un identificador llamado salario_bruto o salarioBruto para representar el costeanual de un empleado. El usuario no tiene nunca que preocuparse de direcciones fsicas dememoria: el sistema se preocupa por l por medio de una tabla, en la que se relaciona cadaidentificador con el tipo de dato que representa y la posicin de memoria en la que estalmacenado.

    Visual Basic 6.0, como todos los dems lenguajes de programacin, tiene sus propias reglaspara elegir los identificadores. Los usuarios pueden elegir con gran libertad los nombres de susvariables y funciones, teniendo siempre cuidado de respetar las reglas del lenguaje y de no utilizarun conjunto de palabras reservadas (keywords), que son utilizadas por el propio lenguaje. En elApartado 3.4.3, en la pgina 28, se explicarn las reglas para elegir nombres y cules son las

    palabras reservadas del lenguaje Visual Basic 6.0.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    34/106

    ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero pgina 28

    3.4.2 Variables y constantes

    Una variable es un nombre que designa a una zona de memoria (se trata por tanto de unidentificador), que contiene un valor de un tipo de informacin.

    Tal y como su nombre indica, las variablespueden cambiar su valor a lo largo de la ejecucin deun programa. Completando a las variables existe loque se denomina constantes las cuales sonidentificadores pero con la particularidad de que elvalor que se encuentra en ese lugar de la memoriaslo puede ser asignado una nica vez. Eltratamiento y tipos de datos es igual al de lasvariables.

    Para declarar un dato como constante

    nicamente es necesario utilizar la palabra Constenla declaracin de la variable. Si durante la ejecucinse intenta variar su valor se producir un error.

    Ejemplos:

    Const MyVar = 459 ' Las constantes son privadas por defecto.Public Const MyString = "HELP" ' Declaracin de una constante pblica.Private Const MyInt As Integer = 5 ' Declaracin de un entero constante.Const Str = "Hi", PI As Double = 3.14 ' Mltiples constantes en una lnea.

    Visual Basic 6.0 tiene sus propias constantes, muy tiles por cierto. Algunas ya se han vistoal hablar de los colores. En general estas constantes empiezan por ciertos caracteres como vb (u

    otros similares que indican a que grupo pertenecen) y van seguidas de una o ms palabras queindican su significado. Para ver las constantes disponibles se puede utilizar el comando View/ObjectBrowser, tal como se muestra en la Figura 3.1.

    3.4.3 Nombres de variables

    El nombre de una variable (o de una constante) tiene que comenzar siempre por una letra y puedetener una longitud hasta 255 caracteres. No se admiten espacios o caracteres en blanco, ni puntos(.), ni otros caracteres especiales.

    Los caracteres pueden ser letras, dgitos, el carcter de subrayado (_) y los caracteres dedeclaracin del tipo de la variable (%, &, #, !, @, y $ ). El nombre de una variable no puede ser una

    palabra reservada del lenguaje (For, If, Loop, Next, Val, Hide, Caption, And, ...). Para sabercules son las palabras reservadas en Visual Basic 6.0 puede utilizarse elHelp de dicho programa,

    buscando la referenciaReserved Words. De ordinario las palabras reservadas del lenguaje aparecende color azul en el editor de cdigo, lo que hace ms fcil saber si una palabra es reservada o no.

    A diferencia de C, Matlab, Maple y otros lenguajes de programacin, Visual Basic6.0 nodistingue entre minsculas y maysculas. Por tanto, las variables LongitudTotaly longitudtotalson consideradas como idnticas (la misma variable). En Visual Basic 6.0 es habitual utilizar lasletras maysculas para separar las distintas palabras que estn unidas en el nombre de una variable,como se ha hecho anteriormente en la variable LongitudTotal. La declaracin de una variable o la

    primera vez que se utiliza determnan cmo se escribe en el resto del programa.

    Tambin es habitual entre los programadores, aunque no obligado, el utilizar nombres contodo maysculas para los nombres de las constantes simblicas, como por ejemplo PI.

    Figura 3.1. Constantes de color predefinidas.

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    35/106

    Captulo 3: Lenguaje BASIC pgina 29

    3.4.4 Tipos de datos

    Al igual que Cy otros lenguajes de programacin, Visual Basic dispone de distintos tipos de datos,aplicables tanto para constantes como para variables. La Tabla 3.2 muestra los tipos de datosdisponibles en Visual Basic.

    Tipo Descripcin Carcter dedeclaracin

    Rango

    Boolean Binario True o False

    Byte Entero corto 0 a 255

    Integer Entero (2 bytes) % -32768 a 32767

    Long Entero largo (4 bytes) & -2147483648 a 2147483647

    Single Real simple precisin (4 bytes ) ! -3.40E+38 a 3.40E+38

    Double Real doble precisin ( 8 bytes) # -1.79D+308 a 1.79D+308

    Currency Nmero con punto decimal fijo (8bytes) @ -9.22E+14 a 9.22E+14

    String Cadena de caracteres (4 bytes + 1byte/car hasta 64 K)

    $ 0 a 65500 caracteres.

    Date Fecha (8 bytes) 1 de enero de 100 a 31 de diciembre de9999. Indica tambin la hora, desde 0:00:00a 23:59:59.

    Variant Fecha/hora;

    nmeros enteros, reales, o caracteres(16 bytes + 1 byte/car. en cadenas decaracteres)

    ninguno F/h: como Date

    nmeros: mismo rango que el tipo de valoralmacenado

    User-defined Cualquier tipo de dato o estructura dedatos. Se crean utilizando la sentenciaType (Ver Apartado 3.10)

    ninguno

    Tabla 3.2. Tipos de datos en Visual Basic 6.0.

    En el lenguaje Visual Basic 6.0 existen dos formas de agrupar varios valores bajo un mismonombre. La primera de ellas son los arrays (vectores y matrices), que agrupan datos de tipohomogneo. La segunda son las estructuras, que agrupan informacin heterognea o de distintotipo. En Visual Basic 6.0 las estructuras son verdaderos tipos de datos definibles por el usuario.

    Para declarar las variables se utiliza la sentencia siguiente:

    Dim NombreVariable As TipoVariablecuyo empleo se muestra en los ejemplos siguientes:

    Dim Radio As Double, Superficie as SingleDim Nombre As StringDim Etiqueta As String * 10Dim Francos As CurrencyDim Longitud As Long, X As Currency

    Es importante evitar declaraciones del tipo:Dim i, j As Integer

    pues contra lo que podra parecer a simple vista no se crean dos variablesInteger, sino unaInteger

    (j) y otra Variant(i).En Visual Basic 6.0 no es estrictamente necesario declarar todas las variables que se van a

    utilizar (a no ser que se elija la opcin Option Explicitque hace obligatorio el declararlas), y hay

  • 8/14/2019 Aprenda Visual Basic 6 Como Si Estuviera en Primero - is - (Libros Tutorial Manual Cu

    36/106

    ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero pgina 30

    otra forma de declarar las variables anteriores, utilizando los caracteres especiales vistosanteriormente. As por ejemplo, el tipo de las variables del ejemplo anterior se puede declarar alutilizarlas en las distintas expresiones, ponindoles a continuacin el carcter que ya se indic en laTabla 3.2, en la forma:

    Radio# doble precisinNombre$ cadena de caracteresFrancos@ unidades monetariasLongitud& entero largo

    Esta forma de indicar el tipo de dato no es la ms conveniente. Se mantiene en las sucesivasversiones de Visual Basic por la compatibilidad con cdigos anteriores. Es preferible utilizar lanotacin donde se escribe directamente el tipo de dato.

    3.4.5 Eleccin del tipo de una variable

    Si en el cdigo del programa se utiliza una variable que no ha sido declarada, se considera que esta

    variable es de tipo Variant. Las variables de este tipo se adaptan al tipo de informacin o dato quese les asigna en cada momento. Por ejemplo, una variable tipo Variantpuede contener al principiodel programa un string de caracteres, despus una variable de doble precisin, y finalmente unnmero entero. Son pues variables muy flexibles, pero su uso debe restringirse porque ocupan msmemoria (almacenan el tipo de dato que contienen, adems del propio valor de dicho dato) yrequieren ms tiempo de CPUque los restantes tipos de variables.

    En general es el tipo de dato (los valores que puede tener en la realidad) lo que determina qutipo de variable se debe utilizar. A continuacin se muestran algunos ejemplos:

    Integerpara numerar las filas y columnas de una matriz no muy grande

    Longpara numerar los habitantes de una ciudad o los nmeros de telfonosBoolean para una variable con slo dos posibles valores (s o no)

    Single para variables fsicas con decimales que no exijan precisin

    Double para variables fsicas con decimales que exijan precisin

    Currency para cantidades grandes de dinero

    Es muy importante tener en cuenta que se debe utilizar el tipo de dato ms sencillo querepresente correctamente el dato realya que en otro caso se ocupar ms memoria y la ejecucinde los programas o funciones ser ms lenta.

    3.4.6 Declaracin explcita de variables

    Una variable que se utiliza sin haber sido declarada toma por defecto el tipo Variant. Puede ocurrirque durante la programacin, se cometa un error y se escriba mal el nombre de una variable. Porejemplo, se puede tener una variable " declarada como entera, y al programar referirse a ella porerror como "; Visual Basic supondra que sta es una nueva variable de tipo Variant.

    Para evitar este tipo de errores, se puede indicar a Visual Basic que genere un mensaje deerror siempre que encuentre una variable no declarada previamente. Para ello lo ms prctico esestablecer una opcin por defecto, utilizando el comandoEnvironmentdel men Tools/Options; enel cuadro que se abre se debe poner Yes en la opcin Require Variable Declaration. Tambin se

    puede hacer esto escribiendo la sentencia siguiente en la seccin de declaraciones de cadaformulario y de cada mdulo:

    Option Explicit

  • 8