Está en la página 1de 191

MANUAL DE VISUAL BASIC

Visual Basic

Indice

CAPITULO 1.- INTRODUCCIN AL VISUAL BASIC................................ 1.1.Instalacin Visual Basic........................................................................... 1.1.1. Ediciones Visual Basic............................................................ 1.1.2. Requerimientos....................................................................... 1.2. Ayuda en Visual Basic............................................................................ CAPTULO 2.- ESTRUCTURA BSICA DE UNA APLICACIN.............. 2.1. Estructura de una aplicacin.................................................................... 2.1.1. Funcionamiento de windows................................................... 2.1.2. Aplicacin controlada por eventos.......................................... 2.1.3. Proceso de desarrollo.............................................................. 2.2. Conceptos Bsicos................................................................................... 2.2.1. Formularios............................................................................. 2.2.2. Propiedades............................................................................. 2.2.3. Mtodos y Eventos.................................................................. 2.2.4. Funciones y procedimientos.................................................... 2.2.5. Proyectos................................................................................. 2.2.6. Clases y objetos...................................................................... 2.2.7. Controles................................................................................. 2.3. El entorno de Desarrollo Integrado.......................................................... 2.4. Opciones generales de Trabajo y Entorno............................................... 2.5. Adminsitracin de Proyectos................................................................... 2.5.1. Tipos de archivos y objetos de un proyecto............................ 2.5.2. Crear, Abrir y guardar proyectos............................................. 2.6. Creacin y Ejecucin de un archivo ejecutable....................................... 2.7. Definicin de opciones del proyecto........................................................ 2.8. Diseo de un formulario.......................................................................... 2.9. Asociar cdigo a eventos......................................................................... 2.10. Ejemplo: Primera aplicacin.................................................................. CAPITULO 3.- FUNDAMENTOS DEL LENGUAJE..................................... 3.1. Mdulos de cdigo: formulario, estndar y de clase................................ 3.2. Uso del editor de cdigo.......................................................................... 3.2.1. Ayuda a la escritura de cdigo................................................ 3.2.2. Divisin de una nica instruccin en varias lneas.................. 3.2.3. Combinacin de instrucciones en una lnea............................ 3.2.4. Insercin de comentarios......................................................... 3.3. Elementos del lenguaje............................................................................ 3.3.1. Identificadores........................................................................ 3.3.2. Variables................................................................................. 3.3.3. Constantes............................................................................... 3.3.4. Operadores.............................................................................. CAPTULO 4.- ESTRUCTURAS AVANZADAS...................................... 4.1. Estructuras de control.............................................................................. 4.1.1. Estructuras de decisin............................................................ 4.1.2. Estructuras repetitivas (Bucles)............................................... 4.2. Matrices (Arrays9..................................................................................

1 3 3 3 3 5 7 7 7 8 8 8 8 9 9 9 9 10 10 12 15 16 18 19 20 21 22 23 27 29 29 30 31 32 32 32 32 33 35 36 39 41 41 44 48
I

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Indice

Visual Basic

4.2.1. Arrays de variables estticos................................................... 4.2.2. Arrays de variables dinmicos................................................ 4.2.3. Arrays de controles................................................................. 4.3. Definicin de tipos.................................................................................. CAPTULO 5.-. PROCEDIMIENTOS Y FUNCIONES........................... 5.1. Introduccin............................................................................................ 5.2. Funciones (Function)............................................................................... 5.3. Procedimientos (Sub).............................................................................. 5.4. Paso de argumentos................................................................................. 5.4.1. Argumenos por referencia y por valor..................................... 5.4.2. Uso de argumentos opcionales................................................ 5.4.3. Uso de un nmero indefinido de argumentos.......................... 5.5. Trabajo con nmeros, cadenas, fechas, ................................................... 5.5.1. Nmeros.................................................................................. 5.5.2. Cadenas................................................................................... 5.5.3. Fechas..................................................................................... 5.5.4. Variant.................................................................................... 5.6. Trabajo con objetos................................................................................. 5.6.1. Propiedades............................................................................. 5.6.2. Variables que representan objetos........................................... 5.6.3. Objetos pasados a procedimientos.......................................... 5.6.4. Tipo de un dato pasado por argumento................................... 5.6.5. Colecciones de objetos............................................................ 5.7. Convecciones de codificacin en visual basic.........................................

48 50 50 51 53 55 56 57 58 58 59 60 62 62 64 64 64 65 65 66 68 68 69 70

CAPTULO 6.- CONTROLES ESTNDAR.................................................... 6.1. Introduccin............................................................................................ 6.2. Botones (CommandButton)..................................................................... 6.3. Entrada/Salida de datos........................................................................... 6.3.1. Funcin InputBox................................................................... 6.3.2. Funcin MSGBox................................................................... 6.3.3. Etiquetas (Label)..................................................................... 6.3.4. Cajas de Texto (TextBox)....................................................... 6.3.5. Entrada formateada (maskedbox)............................................ 6.3.6. Descripcin del enfoque.......................................................... 6.3.7. Configuracin del orden de tabulacin.................................... 6.4. Controles para opciones de usuario......................................................... 6.4.1. Frames.................................................................................... 6.4.2. CheckBox............................................................................... 6.4.3. OptionButton.......................................................................... 6.4.4. ListBox................................................................................... 6.4.5. ComboBox.............................................................................. CAPTULO 7.- CONTROLES VARIOS.......................................................... 7.1. Barras de desplazamiento........................................................................ 7.2. Timer....................................................................................................... 7.3. Controles para examinar el Sistema de Archivos.....................................
II

73 75 76 77 77 78 80 81 85 86 87 89 89 89 91 92 96 99 101 103 104

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Indice

7.3.1. Lista de unidades..................................................................... 7.3.2. Lista de directorios.................................................................. 7.3.3. Lista de ficheros...................................................................... 7.4. Lneas (Line)........................................................................................... 7.5. Figuras (Shape)........................................................................................ 7.6. Imgenes (Image).................................................................................... CAPTULO 8.- MATRIZ DE COLORES........................................................ 8.1. Matriz (Array) de controles..................................................................... 8.2. Creacin de controles durante la Ejecucin............................................. CAPTULO 9.- MENS..................................................................................... 9.1. Diseo de un men.................................................................................. 9.1.1. Aadir opciones en tiempo de ejecucin................................. 9.2. Mens Emergentes.................................................................................. CAPTULO 10.- FORMULARIOS Y CUADROS DE DILOGO................. 10.1. Formularios........................................................................................... 10.2. Cuadros de dilogos comunes................................................................ 10.2.1. Abrir y guardar archivos....................................................... 10.2.2. Seleccin de un tipo de letra................................................. 10.2.3. Opciones de impresin.......................................................... 10.2.4. Elegir un color...................................................................... CAPTULO 11.- CONTROLES DE INTERFAZ DE USUARIO 11.1. Rich TextBox............................................................................................... 11.2. ImageLIst..................................................................................................... 11.3. Toolbar......................................................................................................... 11.4. Statusbar....................................................................................................... 11.5. Progressbar................................................................................................... 11.6. Slider .......................................................................................................... 11.7. Updown........................................................................................................ 11.8. Tabstript....................................................................................................... 11.9. Sstab .......................................................................................................... 11.10. Treeview.................................................................................................... 11.11. Listview...................................................................................................... 11.12. Animation.................................................................................................. CAPTULO 12.- FICHEROS............................................................................. 12.1. Introduccin................................................................................................. 12.2. Tipos y modos de acceso.............................................................................. 12.3. Operaciones.................................................................................................. 12.4. Acceso secuencial........................................................................................ 12.5. Acceso Aleatorio.......................................................................................... 12.6. Acceso dinmico o binario........................................................................... 145

104 105 105 107 108 110 113 115 118 121 123 125 125 129 131 138 138 140 140 141

147 147 148 149 156 156 156 158 161 164 168 174 177 179 179 179 180 181 182

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

III

Indice

Visual Basic

IV

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 1

Captulo 1 Introduccin a Visual Basic

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Captulo 1

Visual Basic

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 1

1.1.- INSTALACIN VISUAL BASIC


Una vez instalado Visual Basic dispondremos en nuestro equipo del Visual Basic propiamente dicho, el sistema de ayuda, las aplicaciones de ejemplo, los Libros en pantalla de Visual Basic y otros componentes del producto. La instalacin se har a partir del CR-ROM correspondiente.

1.1.1.- EDICIONES VISUAL BASIC


Visual Basic se encuentra disponible en tres versiones: . La Edicin de aprendizaje permite a los programadores crear aplicaciones. Incluye los controles bsicos, adems de los controles de cuadrcula, de fichas y los controles enlazados a datos. La documentacin que se proporciona con esta edicin incluye Learn VB Now, un Manual del programador, la ayuda en pantalla y los Libros en pantalla de Visual Basic. La Edicin profesional incluye todas las caractersticas de la edicin de aprendizaje, asi como controles Active X adicionales, incluidos controles para internet y el generador de informes de Crystal Reports. La documentacin que se proporciona con la edicin profesional incluye el manual del programador, la ayuda en pantalla, la gua de herramientas componentes y el manual de usuario de Crystal Reports para Visual Basic. La Edicin empresarial incluye todas las caractersticas de la edicin profesional, asi como el administrador de automatizacin, la galeria de objetos, las herramientas de administracin de bases de datos, el sistema de control de versiones orientado a proyectos Microsoft Visual SourceSafe, etc. La documentacin impresa que se proporciona incluye toda la documentacin de la edicin profesional, la gua para la creacin de aplicaciones cliente-servidor con Visual Basic y el manual del usuario de SourceSafe.

1.1.2.- REQUERIMIENTOS HARDWARE & SOFTWARE


Los requisitos mnimos del sistema son: . . . . . Microsoft Windows o Microsoft Windows NT 3.51 o superiores Microprocesador 80486 o superiores Espacio mnimo en disco duro: 50 Mb. (para una instalacin completa) Unidad de CD-ROM Pantalla VGA o superior . 16 Mb de Ram

1.2.- AYUDA EN VISUAL BASIC


El sistema de documentacin de visual basic incluye: Libros en pantalla de visual basic

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Captulo 1

Visual Basic

Ayuda en pantalla, que contiene informacin acerca del entorno y el lenguaje de programacin. Servicios de soporte tcnico de productos de Microsoff Ejecucin de ejemplos de cdigo desde la ayuda Obtencin de ayuda interactiva desde el entorno integrado de desarrollo. Direccin webError: Reference source not found

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 2

Captulo 2 Estructura basica de una aplicacin visual basic

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Captulo 2

Visual Basic

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 2

2.1.- ESTRUCTURA DE UNA APLICACIN EN VISUAL BASIC (APLICACIN CONTROLADA POR EVENTOS)
2.1.1.- FUNCIONAMIENTO DE WINDOWS
Un estudio reducido del funcionamiento de Windows incluye tres conceptos bsicos : ventanas, eventos y mensajes. Una ventana es simplemente una zona rectangular. Hay varios tipos de ventanas: una ventana de aviso de un mensaje, una ventana de documento dentro de su programa de proceso de textos, un cuadro de dilogo, etc. Hay otros muchos tipos de ventanas: un botn de comando es una ventana, los iconos, cuadros de texto, botones de opcin y barras de mens son todos ventanas. El sistema operativo Microsoft Windows administra todas estas ventanas asignando a cada una un nico nmero identificador (controlador de ventana o hWnd). El sistema controla continuamente cada una de estas ventanas para ver si existen signos de actividad o eventos. Los eventos pueden producirse mediante acciones del usuario, como hacer clic con el mouse (ratn) o presionar una tecla, mediante programacin o incluso como resultado de acciones de otras ventanas. Cada vez que se produce un evento se enva un mensaje al sistema operativo. El sistema procesa el mensaje y lo transmite a las dems ventanas. Entonces, cada ventana puede realizar la accin apropiada, basndose en sus propias instrucciones para tratar ese mensaje en particular (por ejemplo, volverse a dibujar cuando otra ventana la ha dejado al descubierto). Tratar todas las combinaciones posibles de ventanas, eventos y mensajes podra ser una tarea excesivamente larga. Visual Basic evita tener que tratar con todos los controladores de mensajes de bajo nivel. Muchos de los mensajes los controla automticamente Visual Basic, mientras que otros se tratan como procedimientos de evento. Esto permite crear rpidamente aplicaciones sin tener que tratar detalles innecesarios.

2.1.2.- APLICACIN CONTROLADA POR EVENTOS


En las aplicaciones tradicionales o "por procedimientos", la aplicacin es la que controla qu partes de cdigo y en qu secuencia se ejecutan. La ejecucin comienza con la primera lnea de cdigo y contina con una ruta predefinida a travs de la aplicacin, llamando a los procedimientos segn se necesiten. En una aplicacin controlada por eventos, el cdigo no sigue una ruta predeterminada; ejecuta distintas secciones de cdigo como respuesta a los eventos. Los eventos pueden desencadenarse por acciones del usuario, por mensajes del sistema o de otras aplicaciones, o incluso por la propia aplicacin. La secuencia de estos eventos determina la secuencia en la que se ejecuta el cdigo, por lo que la ruta a travs del cdigo de la aplicacin es diferente cada vez que se ejecuta el programa. Puesto que no puede predecir la secuencia de los eventos, el cdigo debe establecer ciertos supuestos acerca del "estado actual" cuando se ejecute. Es decir, se deben planificar los estados anteriores a un evento dado. El cdigo tambin puede desencadenar eventos durante la ejecucin. Por ejemplo, cambiar mediante programacin el texto de un cuadro de texto hace que se produzca el evento Change del cuadro de texto. Esto causara la ejecucin del cdigo (si lo hay) contenido en el evento Change. Si se supone que este evento slo se desencadenar mediante la interaccin del usuario, podran verse

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Captulo 2

Visual Basic

resultados inesperados. Por esta razn es importante comprender el modelo controlado por eventos y tenerlo en cuenta cuando se disee la aplicacin.

2.1.3.- PROCESO DE DESARROLLO


El proceso de desarrollo de las aplicaciones tradicionales se puede dividir en tres etapas diferentes: escritura, compilacin y depuracin (comprobacin) del cdigo. A diferencia de los lenguajes tradicionales, Visual Basic utiliza una aproximacin interactiva para el desarrollo, difuminando la distincin entre los tres pasos. En la mayora de los lenguajes, si comete un error al escribir el cdigo, el compilador intercepta este error cuando comience a compilar la aplicacin. Debe encontrar y corregir el error y comenzar de nuevo con el ciclo de compilacin, repitiendo el proceso para cada error encontrado. Visual Basic interpreta el cdigo a medida que lo escribe, interceptando y resaltando la mayora de los errores de sintaxis en el momento. Adems, para interceptar errores sobre la marcha, Visual Basic tambin compila parcialmente el cdigo segn se escribe. Cuando est preparado para ejecutar y probar la aplicacin, tardar poco tiempo en terminar la compilacin. Si el compilador encuentra un error, quedar resaltado en el cdigo. Puede corregir el error y seguir compilando sin tener que comenzar de nuevo. A causa de la naturaleza interactiva de Visual Basic, se encontrar ejecutando la aplicacin frecuentemente a medida que la desarrolle. De esta forma se pueden probar los efectos del cdigo segn se escriban, en lugar de esperar a compilarlo ms tarde.

2.2.- CONCEPTOS BSICOS


2.2.1.- FORMULARIOS
El formulario es el elemento de desarrollo bsico de una aplicacin Visual Basic, o sea, las ventanas windows que sirven de interface para el usuario. Los formularios tienen sus propios eventos, propiedades y mtodos con los que se controla su apariencia y comportamiento. Una aplicacin puede contener varios de estos formularios. La finalidad principal de un formulario es agrupar una serie de controles por medio de los cuales poder presentar y solicitar informacin al usuario.

2.2.2.- PROPIEDADES
Todos los objetos (formularios y controles) tienen una serie de propiedades o atributos. Estas propiedades son las que definen al objeto indicando su posicin, color, tamao, aspecto, etc. El valor de las propiedades se puede establecer en tiempo de diseo o en tiempo de ejecucin o en ambos, segn el tipo de propiedad que sea. El trabajo de diseo consiste bsicamente en insertar objetos en un formulario y establecer cada una de sus propiedades.

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 2

2.2.3.- METODOS Y EVENTOS


Windows es un entorno gestionado por eventos que son generados por una accin exterior por parte del usuario, como el movimiento del ratn, la pulsacin de una tecla o bien por el propio Windows. Las aplicaciones desarrolladas para funcionar sobre este entorno tienen que trabajar dirigidas por estos eventos y no siguiendo la metodologa clsica de programacin utilizada en sistemas como DOS. Cada uno de los controles que se pueden insertar en un formulario, incluido el propio formulario, pueden recibir una serie de eventos, unos comunes y otros especficos de cada control. Por defecto, Visual Basic no asocia ninguna funcin a los controles para que respondan a estos eventos; existen una serie de procedimientos de respuesta (acciones), llamados mtodos que en principio estn vacos y a los cuales se les puede asociar el cdigo necesario. Por ejemplo, se puede insertar un botn en un formulario y asociar un cdigo al evento Click, con ello estamos creando el mtodo asociado al evento Click. Al ejecutar el programa cuando se haga click sobre el botn se ejecutar el cdigo asociado al control botn para cuando se produzca el evento Click (se ejecuta el mtodo).

2.2.4.- FUNCIONES Y PROCEDIMIENTOS


Adems del cdigo contenido en los mtodos, que es ejecutado en respuesta a un evento, en ocasiones una aplicacin necesita realizar otro tipo de operaciones que por claridad y facilidad de mantenimiento (evitar redundancia, etc) no es adecuado incluirlas en los propios mtodos. Para estos casos, hay que crear un mdulo independiente incluyendo el cdigo necesario estructurado en procedimientos y funciones. Un procedimiento o funcin es un conjunto de lneas de cdigo agrupado bajo un nombre, que luego se utilizar en el resto del cdigo para invocar la ejecucin del mismo en una lnea de cdigo determinada(llamada al procedimiento o funcin). La nica diferencia entre procedimiento y funcin es que el primero no devuelve ningn valor o varios y el segundo devuelve siempre un nico valor.

2.2.5.- PROYECTOS
Al conjunto de formularios, con sus controles y mtodos, mdulos de cdigo con definiciones de procedimientos y funciones y cualquier otro archivo necesario para una aplicacin se denomina proyecto.

2.2.6.- CLASES Y OBJETOS


Visual Basic permite definir clases de objetos, estableciendo que propiedades y mtodos tendrn. Una clase es como una plantilla del objeto que deseamos crear. Cuando se necesite un objeto de esa clase(instancia) se crear en base a la definicin de clase y se establecen las propiedades y mtodos del nuevo objeto al que se podr acceder como a cualquier control. Un control o formulario es una clase y al colocar un control sobre un formulario o aadir un formulario se est creando un objeto (instancia o elemento particular ) perteneciente a una clase. Una clase encapsula en su interior todo lo necesario para su funcionamiento, no slo cdigo, sino tambin todas aquella variables (propiedades) u otros objetos necesarios.

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Captulo 2

Visual Basic

El objeto no se ejecuta sin ms, como un procedimiento o funcin, sino que se crea, se establecen y obtienen propiedades y se ejecutan sus mtodos. Es una entidad muy superior a un procedimiento o funcin.

2.2.7.- CONTROLES
La creacin de aplicaciones en este entorno se basa principalmente en el uso de distintos controles. Algunos sirven para presentar o solicitar informacin al usuario, otros para generar un evento cada cierto tiempo, otros para buscar un archivo, etc. Estos controles se encuentran almacenados en archivos separados ya compilados, conteniendo el cdigo necesario para ser utilizados accediendo a sus propiedades y mtodos. Los controles ActiveX son controles creados con un estndar de tal manera que pueden ser utilizados por distintos entornos de programacin (Delphi, C++ Builder, etc) . Existen proveedores independientes de estos controles. Visual Basic permite crear controles ActiveX.

2.3.- EL ENTORNO DE DESARROLLO INTEGRADO (EDI)


Barra de mens Barra de herramientas Ventana de propiedades

Explorador de proyectos

Cuadro de herramientas Diseador de Formulario

Ayuda de propiedades

Posicin formulario

10

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 2

- Barra de Mens: Presenta los mens estndard de Visual Basic para acceder a todas las opciones del entorno. Archivo: Aqu se encuentran las opciones necesarias para crear un nuevo proyecto o cargar uno ya existente, aadir un nuevo proyecto, salvar un proyecto individual, salvar todo el proyecto, imprimir los formularios o el cdigo de la aplicacin y generar un ejecutable. Al final de la ventana se encuentra la lista con los ltimos archivos usados. Edicin: En este men adems de las opciones tpicas de deshacer, rehacer, cortar, copiar, pegar, bsqueda y sustitucin, se encuentran otras que permiten controlar la identacin del cdigo, insertar un archivo, controlar marcas en el texto o abrir distintas ventanas de ayuda con listas de constantes, mtodos, etc. Ver: Dentro de este men se encuentran todas aquellas opciones que permiten seleccionar la informacin que se desea ver en un momento dado: El cdigo asociado a un control, el formulario, el proyecto, la barra de herramientas,, la paleta de colores, la lista de propiedades o la ventana de ejecucin inmediata. Tambin est la opcin Barras de Herramientas para eliminar o visualizar las diferentes barras de botones disponibles. Proyecto: Este men permite insertar en el proyecto nuevos formularios, mdulos de cdigo o definiciones de clases, nuevas funciones y procedimientos e incluso insertar archivos de datos externos. Tambin tiene opciones para acceder a la ventana de componentes que pueden aparecer en la paleta de herramientas o de propiedades del proyecto. Formato: desde este men se puede gestionar la alineacin, el espaciado, la posicin en profundidad y todo lo que afecta al formato de los componentes en el formulario. Bloqueo de Controles: Permite bloquear controles para evitar su desplazamiento o redimensionamiento, una vez que ya estn situados. Depuracin: Aqu se muestran mltiples opciones para facilitar la depuracin de los programas, permitiendo la ejecucin paso a paso, disposicin de puntos de interrupcin, evaluacin de expresiones, etc. Ejecutar: Este men contiene todas las opciones relacionadas con la ejecucin del programa. Herramientas: aqu estn las herramientas que permiten aadir nuevos procedimientos de cdigo, inspeccionar los atributos de los ya existentes, disear mens o establecer las opciones generales de trabajo y entorno Complementos: En l se encuentran opciones externas tales como el Administrador Visual de Datos, Diseador de informes y una opcin mediante la cul es posible aadir otras opciones a este men. Ventana: Este men contiene las tpicas opciones que permiten disponer las ventanas del entorno en una determinada posicin. Ayuda: En l se encuentra una referencia de todas las funciones, objetos y propiedades de Visual Basic, as como explicaciones tcnicas y un acceso a los libros en pantalla.

Barra de Herramientas: Barras de Botones para acceder rpida y cmodamente a las opciones ms usuales del entorno. En Ver/Barras de Herramientas se pueden activar o desactivar las mismas.
Este manual ha sido desarrollado por el departamento tcnico de DELTA PC 11

Captulo 2

Visual Basic

Cuadro de Herramientas: Presenta los controles que se podrn incorporar a un determinado formulario. En el men Proyectos/Componentes (o usando el men contextual) se podrn incorporar nuevos controles. Para incorporar un control en el formulario no hay ms que seleccionar el control en la paleta y luego dibujarlo con el ratn en el formulario. Diseador de Formulario: Permite definir o disear el interfaz de la aplicacin. Aqu se agregarn los controles, grficos e imgenes necesarios para la aplicacin. Explorador de Proyectos: Enumera los objetos disponibles que pueden usarse en un proyecto y proporciona una manera rpida de desplazarse a travs del cdigo. Contiene dos botones: Ver Objeto y Ver Cdigo; el primero permitir abrir el formulario para editarlo y el otro abre la ventana de cdigo asociada. Ventana de Propiedades: Presenta las propiedades y sus valores del control o formulario seleccionado. Una propiedad es una caracterstica de un objeto. Ayuda de Propiedades: Muestra una breve descripcin de la propiedad que se est editando. Posicin del Formulario: Aqu se podr establecer la posicin del formulario con respecto a la pantalla.

2.4.- OPCIONES GENERALES DE TRABAJO Y ENTORNO


En el men Herramientas/Opciones se tiene acceso a la configuracin del entorno de trabajo de Visual Basic. Opciones: Editor

12

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 2

En las opciones de cdigo permite decidir si debe comprobar la sintaxis segn se va escribiendo, si obliga a declarar siempre las variables, si ofrece ayuda automtica de funciones, definir el comportamiento de la sangra y el salto. En las opciones de Ventana, afecta al comportamiento de la ventana dnde se escribe el cdigo. Opciones: Formato del Editor

Permite establecer distintos formatos de texto para diferenciar los distintos elementos que concurren a la hora de escribir el cdigo. Visual Basic ya dispone de una configuracin por defecto, que esta pantalla nos permite modificar. Opciones: General

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

13

Captulo 2

Visual Basic

La cuadricula nos facilita la colocacin y alineacin de los controles dentro de un formulario. Esta ventana de opciones tambin nos permite configurar el modo de interceptar los errores. Opciones: Acople

Esta opcin nos permite decidir que ventanas del EDI se vern inicialmente acopladas, es decir, adosadas unas a otras. Opciones: Entorno

Aqu se define el comportamiento de Visual Basic al arrancar, as como cuando grabar los cambios al ejecutar un programa y el uso de plantillas

14

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 2

Opciones: Avanzado

Las ventanas elegidas en la pestaa de Acople se vern adosadas si no se ha seleccionado la opcin Entorno de desarrollo SDI, se estara eligiendo un entorno MDI, en caso contrario (el SDI) cada ventana aparecera como independiente de las dems.

2.5.- ADMINISTRACIN DE PROYECTOS


Para crear una aplicacin con Visual Basic se trabaja con proyectos. Un proyecto es una coleccin de archivos que se usan para generar una aplicacin. Despus de ensamblar todos los componentes de un proyecto y escribir el cdigo, se puede compilar el proyecto para crear un archivo ejecutable.

Cuando desarrolla un aplicacin, se trabaja con un archivo de proyecto para administrar todos los diferentes archivos que crea. Un proyecto consta de lo siguiente:
Un archivo de proyecto que realiza el seguimiento de todos los componentes ( .vbp) Un archivo para cada formulario (.frm). Un archivo de datos binario para cada formulario que contenga datos sobre propiedades de controles del formulario ( .frx). Estos archivos no se pueden modificar y los genera automticamente cualquier archivo .frm que tenga propiedades en formato binario, como Picture o Icon. Un archivo para cada mdulo de clase (.cls). [Opcional] Un archivo para cada mdulo estndar (.bas). [Opcional] Uno o ms archivos con controles ActiveX (.ocx). [Opcional] Un nico archivo de recursos (.res). [Opcional]

El archivo de proyecto es simplemente una lista de todos los archivos y objetos asociados con el proyecto, as como informacin sobre las opciones de entorno establecidas. Esta informacin
15

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Captulo 2

Visual Basic

se actualiza cada vez que guarda el proyecto. Todos los archivos y objetos tambin se pueden compartir con otros proyectos. Cuando ha completado todos los archivos del proyecto puede convertir el proyecto en un archivo ejecutable (.exe): en el men Archivo, elija el comando Generar proyecto.exe. Con las ediciones Profesional y Empresarial de Visual Basic tambin puede crear otro tipo de archivos ejecutables, como archivos .ocx y .dll. Cuando se crean, agregan o quitan archivos modificables de un proyecto, Visual Basic refleja los cambios en la ventana Explorador de proyectos, que contiene una lista actualizada de los archivos del proyecto. La ventana Explorador de proyectos de la figura 4.1 muestra algunos tipos de archivos que puede incluir en un proyecto de Visual Basic.

Cada vez que guarda un proyecto, Visual Basic actualiza el archivo de proyecto (.vbp). Un archivo de proyecto contiene la misma lista de archivos que aparece en la ventana Explorador de proyectos, as como referencias a los controles ActiveX y objetos insertables que se usan en el proyecto. Para abrir un archivo de proyecto existente, haga doble clic en su icono, elija el comando Abrir proyecto en el men Archivo o arrastre el archivo y colquelo en la ventana Explorador de proyectos.

2.5.1.- TIPOS DE ARCHIVOS Y OBJETOS DE UN PROYECTO


A continuacin se describen los tipos de archivos y objetos que se pueden incluir en un proyecto: Mdulos de formulario: Los mdulos de formularios (.frm) pueden contener descripciones en forma de texto del formulario y sus controles, incluyendo los valores de sus propiedades. Tambin pueden contener declaraciones a nivel de formulario de constantes, variables y procedimientos externos, procedimientos de evento y procedimientos generales. Mdulos de clase: Los mdulos de clase (.cls) son similares a los mdulos de formulario, excepto en que no tiene interfaz de usuario visible. Se pueden usar mdulos de clase para crear objetos, incluyendo cdigo para mtodos y propiedades.

16

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 2

Mdulos estndar: Los mdulos estndar (.bas) pueden contener declaraciones pblicas o a nivel de mdulo de tipos, constantes, variables, procedimientos externos y procedimientos pblicos. Archivos de recursos: Los archivos de recursos (.res) contienen mapas de bits, cadenas de texto y otros datos que se puede modificar sin volver a modificar el cdigo. Por ejemplo, si se piensa traducir una aplicacin a un idioma extranjero, se pueden guardar todas las cadenas de texto de la interfaz de usuario y los mapas de bits en un archivo de recursos, y simplemente traducir el archivo de recursos en vez de la aplicacin completa. Un proyecto slo puede contener un archivo de recursos. Documentos ActiveX: Los documentos ActiveX (.dob) son similares a los formularios, pero se muestran en un explorador de Internet como Internet Explorer. Las ediciones Profesional y Empresarial de Visual Basic son capaces de crear documentos ActiveX. Mdulos de controles de usuario y de pginas de propiedades: Los mdulos de controles de usuario (.ctl) y de pginas de propiedades (.pag) son similares a los formularios, pero se usan para crear controles ActiveX y las pginas de propiedades asociadas para mostrar propiedades en tiempo de diseo. Las versiones Profesional y Empresarial de Visual Basic pueden crear controles ActiveX. Componentes: Adems de archivos y mdulos, tambin es posible agregar otros tipos de componentes a un proyecto. Mediante el Men Proyectos/Componentes se pueden agregar/eliminar componentes a un proyecto.

Controles ActiveX: Los controles ActiveX (.ocx) son controles opcionales que se pueden agregar al cuadro de herramientas y se pueden usar en formularios. Cuando se instala Visual Basic, los archivos que contienen los controles incluidos en Visual Basic se copian a un directorio comn (el subdirectorio \Windows\System en Windows ). Existen controles ActiveX adicionales disponibles en diversas fuentes. Tambin se pueden crear propios controles mediante las ediciones Profesional y Empresarial de Visual Basic.

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

17

Captulo 2

Visual Basic

Objetos insertables: Los objetos insertables, como un objeto Hoja de clculo de Microsoft Excel, son componentes que puede usar como bloques para generar soluciones integradas. Una solucin integrada puede contener datos en diferentes formatos, como hojas de clculo, mapas de bits y texto creados por diferentes aplicaciones. Referencias: Tambin puede agregar referencias a componentes ActiveX externos que se pueden usar en su aplicacin. Para asignar referencias se usa el cuadro de dilogo Referencias, al que se tiene acceso mediante el elemento Referencias del men Proyecto.

Diseadores ActiveX: Los diseadores ActiveX son herramientas para disear clases a partir de las cuales es posible crear objetos. La interfaz de diseo para formularios es el diseador predeterminado. Puede haber disponibles otros diseadores adicionales desde otros orgenes. Controles estndar: Los controles estndar los proporciona Visual Basic. Los controles estndar, como CommandButton (botn de comando) o Frame (marco), siempre estn incluidos en el cuadro de herramientas, al contrario de lo que ocurre con los controles ActiveX y los objetos insertables, que se pueden agregar y quitar del cuadro de herramientas.

2.5.2.- CREAR, ABRIR Y GUARDAR PROYECTOS


Hay cuatro comandos del men Archivo que permiten crear, abrir y guardar proyectos. Nuevo proyecto: Cierra el proyecto actual y pregunta si se desean guardar los archivos modificados. Se puede elegir un tipo de proyecto desde el cuadro de dilogo Nuevo proyecto. Despus, Visual Basic crea un proyecto nuevo con un nico archivo nuevo. Abrir proyecto: Cierra el proyecto actual y pregunta si se desean guardar los cambios. Despus, Visual Basic abre un proyecto existente, incluyendo los formularios, mdulos y controles ActiveX enumerados en su archivo de proyecto (.vbp).

18

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 2

Guardar proyecto: Actualiza el archivo del proyecto actual y todos sus mdulos de formulario, estndar y de clase. Guardar proyecto como: Actualiza el archivo del proyecto actual, guardando el archivo de proyecto con un nombre que especifica el propio usuario. Visual Basic tambin pide que se guarde cualquier formulario o mdulo que se haya cambiado.

Tambin es posible compartir archivos entre proyectos. Un archivo concreto, como un formulario, puede formar parte de varios proyectos. Los cambios que realice a un formulario o un mdulo en un proyecto se propagarn por todos los proyectos que compartan ese mdulo. A travs del Men de Proyecto se pueden Agregar, Quitar y Guardar Archivos de/a un proyecto

2.6.- CREACIN Y EJECUCIN DE UN ARCHIVO EJECUTABLE


En Visual Basic se pueden crear archivos ejecutables (.exe). Para crear un archivo ejecutable en Visual Basic En el men Archivo/Generar archivo.exe donde archivo es el nombre de aplicacin para el proyecto. Escribir un nombre de archivo, o seleccione un nombre de archivo ejecutable existente para reemplazarlo por una nueva versin. Si hace clic en el botn Opciones se pueden especificar una serie de detalles especficos de la versin del archivo ejecutable mediante el cuadro de dilogo Propiedades del proyecto, como se muestra a continuacin:

Si se desea modificar el nmero de versin del proyecto, establecer los valores apropiados en Principal, Secundario y Revisin. Si se selecciona Incremento automtico, el nmero de Revisin se incrementa automticamente cada vez que ejecute el comando Generar archivo .exe para este proyecto. Para especificar un nombre nuevo para la aplicacin, escribir un nombre nuevo en Ttulo.

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

19

Captulo 2

Visual Basic

Si desea especificar un icono nuevo, elija uno en la lista. Tambin puede especificar comentarios especficos de la versin sobre diversos aspectos en el cuadro Informacin de versin (comentarios, nombre de la organizacin, marca comercial, derechos de autor, etc.) si se selecciona un tema del cuadro de lista y se escribe la informacin en el cuadro de texto. Elegir Aceptar para cerrar el cuadro de dilogo Propiedades del proyecto, y despus elegir Aceptar en el cuadro de dilogo Generar aplicacin .exe para compilar y vincular el archivo ejecutable.

2.7.- DEFINICIN DE OPCIONES DEL PROYECTO


Visual Basic permite personalizar cada proyecto estableciendo una serie de propiedades. Se accede a travs del men Proyecto/Propiedades de proyecto. Los valores de las propiedades se guardan en el archivo de proyecto (.vbp).

Las opciones mas importantes: Objeto inicial: El primer formulario que Visual Basic presenta en tiempo de ejecucin, o Sub Main ( ). Nombre de proyecto: Identifica el proyecto en el cdigo. No puede contener puntos (.) ni espacios en blanco y no debe comenzar por caracteres no alfabticos. Si es el nombre de una clase pblica, el nombre de proyecto y el nombre de clase no pueden exceder de 37 caracteres. Nombre del archivo de Ayuda: El nombre del archivo de Ayuda asociado con el proyecto.

Nota:
En la pestaa de Compilar se puede elegir entre generar cdigo nativo (mucho ms rpido) o pcode (interpretado). Tambin se pueden establecer opciones avanzadas.

20

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 2

2.8.- DISEO DE UN FORMULARIO


Bsicamente se trata de una ventana estndar de windows en el que podremos insertar los controles para presentar datos, solicitarlos o definir procesos.

Propiedades principales: Caption: Identifica al texto que aparece como ttulo de la ventana. Name: Es el nombre del control que se usar para identificarlo en el cdigo. ControlBox: Si est a True permite que se muestre el men del sistema (esquina superior izquierda de la ventana) desde el cual se puede cerrar, minimizar, etc. MinButton: Permite ver/ocultar el botn de minimizar de la ventana. MaxButton: Permite ver/ocultar el botn de maximizar de la ventana. BorderStyle: Especifica el tipo de borde de la ventana: Posibles valores: Tipo de borde La ventana no tiene borde alrededor Borde simple no redimensionable Borde grueso redimensionable (valor por defecto) Borde grueso no redimensionable Borde no redimensionable con rea de ttulo reducida Borde redimensionable con rea de ttulo reducida

Constante (valor) vbBSNone vbFixedSingle vbSizable vbFixedDouble vbFixedToolWindow vbSizableToolWindow

AutoRedraw: Solo tiene efecto cuando se dibuja o escribe sin usar controles (sobre el formulario). BackColor: Establece el color de fondo del formulario. Enabled: por defecto est a valor True, lo que significa que se puede interactuar con l, en caso contrario, estara desactivado. ForeColor: Establece el color de primer plano del formulario.

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

21

Captulo 2

Visual Basic

Height: Contiene la altura del formulario. Icon: Se puede asignar un icono que ser visto en la esquina superior izquierda de la ventana, y en la barra de tareas cuando se ejecute. KeyPreview: Cuando un formulario que contiene varios controles se pulsa una tecla, normalmente es el control que est activo el que recibe esa pulsacin y, en caso de no ser procesada, se pasa al formulario. Si se pone esta propiedad a True (por defecto es False), se le indica que la pulsacin pase primero al formulario en lugar de al control activo. Left: Contiene la posicin horizontal del formulario. MousePointer: Con esta propiedad se puede fijar el tipo de icono para el puntero del ratn cuando ste se encuentre sobre la ventana. Picture: Se puede establecer un grfico como fondo del formulario (BMP, WMF, JPG o GIF). ShowInTaskBar: Esta propiedad, que por defecto tiene el valor True, determina si en la barra de tareas de Windows debe aparecer o no un icono representando al formulario, durante la ejecucin. Tag: Su nica finalidad es almacenar algn dato que sea necesario. Top: Establece la posicin vertical del formulario. Visible: Indica si el formulario en tiempo de ejecucin est visible u oculta. Width: Almacena la anchura del formulario. WindowState: Cuando se ejecuta una aplicacin, el formulario aparece en pantalla en la posicin y dimensiones que se establecieron durante el diseo (Estado Normal). Valores posibles: 0Normal, 1-Minimizada, 2-Maximizada.

Eventos principales Resize: Este evento sucede siempre que se cambia el tamao de un formulario ya sea por una accin del usuario o a travs de cdigo. Activate/Deactivate: Se produce siempre que un formulario se convierte en el formulario activo/cuando otro formulario u otra aplicacin se convierte en activo. Load/Unload: Se produce cuando se carga/descarga un formulario.

Mtodos principales Show/Hide: Visualiza(carga si no lo est) / oculta un formulario. Load/UnLoad: Carga (sin visualizar)/Descarga un formulario en memoria.

2.9.- ASOCIAR CDIGO A EVENTOS

22

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 2

La Ventana Editor de Cdigo es la ventana dnde se escribe el cdigo de Visual Basic para la aplicacin que se est desarrollando. Para abrir la ventana de Cdigo: Realizar un Dbl-Click sobre el formulario o control para el que se desea escribir el cdigo En la ventana Explorador de Proyectos, seleccionar el nombre del formulario o mdulo y pulsar el botn o el men Ver Cdigo.

Por ejemplo, si se le da un Dbl-Click a un botn de comando aparecer la siguiente ventana:

Para escribir el cdigo, hay que seleccionar (hay uno por defecto) el evento al cul se desea asociar el cdigo y aparece automticamente un procedimiento cuyo nombre est formado por el nombre del control o formulario (establecido en la propiedad Name), un guin bajo( _ ) y el identificador del evento. Por ejemplo: Command1_Click. El cdigo se escribir entre las instrucciones Sub y End Sub.

2.10.- EJEMPLO: PRIMERA APLICACIN


Pasos para realizar esta aplicacin: 1.- Para realizar esta primera y sencilla aplicacin empezar un nuevo proyecto y colocar los siguientes controles:

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

23

Captulo 2

Visual Basic

En este formulario se han situado una etiqueta (Label) y tres botones (CommandBotton) 2.- Definir las propiedades del formulario y de los controles (para ello hay que seleccionar el objeto e ir a la ventana de propiedades: Para el formulario Form1 Caption = Mi Primera Aplicacin Para la etiqueta Label1 Alignment = 2-Center BorderStyle = 1-FixedSingle Font = [tamao 10] ForeColor = [azul] Name = Mensaje Caption=[nada] Para Command1 Caption = Lenguaje Name = Boton1 Para Command2 Caption = DeltaPc Name = Boton2 Para Command3 Caption = Salir Name = Boton3 3.- Escribir el cdigo para cada uno de los objetos La forma general de Visual Basic para referirse a una propiedad de un determinado objeto es: Objeto.Propiedad Como ya se ha comentado, una aplicacin en windows es conducida por sucesos y orientada a objetos. Esto significa que se liga el cdigo escrito para un determinado objeto a un suceso(evento) que puede ocurrir sobre dicho objeto, de tal forma que durante la ejecucin, cuando ocurra el suceso, dicho cdigo se ejecute. Para escribir cada procedimiento realizar un Dbl-Click para cada Botn.

24

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 2

As, por ejemplo, al realizar un click sobre el Boton1 se ejecutar el cdigo asociado que establecer el texto a visualizar en la etiqueta Mensaje (propiedad Caption de la etiqueta) 4.- Guardar la aplicacin. en este caso se guarda el fichero formulario (.frm) y el proyecto (.vbp) 5.- Ejecutar la aplicacin. Se pueden usar, aparte de los mens, la barra de herramientas: Iniciar/Interrumpir/Terminar: la ejecucin de la aplicacin.

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

25

Captulo 2

Visual Basic

26

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 3

Capitulo 3 Fundamentos del lenguaje

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

27

Captulo 3

Visual Basic

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

28

Visual Basic

Captulo 3

3.1.- MDULOS DE CDIGO: FORMULARIO, ESTNDAR Y DE CLASE


El cdigo en Visual Basic se almacena en mdulos. Hay tres tipos de mdulos: de formulario, estndar y de clase. Cada mdulo estndar, de clase y de formulario puede contener lo siguiente: Declaraciones: Puede colocar declaraciones de constantes, tipos, variables y procedimientos de bibliotecas de vnculos dinmicos (DLL) al nivel de mdulo de formulario, de clase o estndar. Procedimientos/Funciones: Un procedimiento Sub, Function o Property contiene partes de cdigo que se pueden ejecutar como una unidad. Se describiran ms adelante en el manual. Mdulos de formulario Los mdulos de formulario (.frm) pueden contener procedimientos que controlen eventos, procedimientos generales y declaraciones a nivel de formulario de variables, constantes, tipos y procedimientos externos. Mdulos estndar Los mdulos estndar (.bas) son contenedores de los procedimientos y declaraciones a los que tienen acceso otros mdulos de la aplicacin. Pueden contener declaraciones globales (disponibles para toda la aplicacin) o a nivel de mdulo de variables, constantes, tipos, procedimientos externos y procedimientos globales. El cdigo que se escribe en un mdulo estndar no est ligado necesariamente a una aplicacin determinada; si se tiene cuidado de no hacer referencia a controles o formularios por su nombre, puede reutilizar un mdulo estndar en distintas aplicaciones. Mdulos de clase Los mdulos de clase (.cls) son la base de la programacin orientada a objetos en Visual Basic. Puede escribir cdigo en mdulos de clase para crear nuevos objetos. Estos objetos nuevos pueden incluir propiedades y mtodos personalizados.

3.2.- USO DEL EDITOR DE CDIGO


El Editor de cdigo de Visual Basic es la ventana donde se escribe el cdigo. Para pasar de una seccin a otra se utiliza el cuadro de lista Objeto. En un mdulo de formulario, la lista incluye: una seccin general, una seccin para el formulario una seccin para cada control del formulario.

Para un mdulo de clase, la lista incluye: una seccin general y

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

29

Captulo 3

Visual Basic

una seccin de clase

Para un mdulo estndar slo se muestra una seccin general.

Cada seccin de cdigo puede contener varios procedimientos distintos, a los que se tiene acceso mediante el cuadro de lista Procedimiento. La lista de procedimientos de un mdulo de formulario contiene una seccin distinta para cada procedimiento de evento del formulario o el control. Los mdulos de clase slo muestran los procedimientos de evento para la propia clase (Initialize y Terminate). Los mdulos estndar no muestran ningn procedimiento de evento, ya que un mdulo estndar no acepta eventos.

3.2.1.- AYUDA A LA ESCRITURA DE CDIGO


Visual Basic hace que la escritura de cdigo sea mucho ms sencilla mediante caractersticas que llenan automticamente instrucciones, propiedades y argumentos. A medida que va introduciendo cdigo, el editor muestra listas de elecciones adecuadas, prototipos de instrucciones o funciones, o valores. Hay opciones para activar o desactivar estas como ya se ha descrito antriormente: Herramientas/Opciones/Editor. Cuando especifica el nombre de un control en el cdigo, la caracterstica Lista de miembros automtica presenta una lista desplegable con las propiedades disponibles para ese control . Al escribir las primeras letras del nombre de la propiedad se seleccionar en la lista; la tecla TAB completar la escritura.

30

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 3

La caracterstica Informacin rpida automtica muestra la sintaxis de las instrucciones y funciones . Cuando se escriba el nombre de una instruccin o funcin vlida de Visual Basic se mostrar la sintaxis inmediatamente debajo de la lnea actual. Segn sevayan escribiendo los argumentos estos se muestran en negrita. (Tecla rpida de informacin Ctrl+I)

3.2.2.- DIVISIN DE UNA NICA INSTRUCCIN EN VARIAS LNEAS


El final de una lnea de cdigo viene determinado por el <INTRO>. Cuando una sentencia es muy larga lo ms apropiado es dividirla en varias lneas. Para ello, se debe usar el carcter: _ (guin bajo); que indicar que la instruccin continua en la lnea siguiente. Text1.Text=DeltaPc. Centro de Estudios Especializados _ & Informtica y Administracin

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

31

Captulo 3

Visual Basic

Nota:
No puede poner un comentario despus de un carcter de continuacin de lnea en la misma lnea.

3.2.3.- COMBINACIN DE INSTRUCCIONES EN UNA LNEA


Normalmente hay una instruccin de Visual Basic por lnea y no hay ningn terminador de instruccin. Para colocar dos o ms instrucciones en una lnea hay que utilizar un signo de dos puntos (:) para separarlas: Label1.Caption = "Bienvenidos a Visual Basic 6.0" : Text1.Text=Label1.Caption Se recomienda, para hacer el cdigo ms legible, colocar cada instruccin en una lnea distinta.

3.2.4.- INSERCIN DE COMENTARIOS


Los comentarios aclaran cual es la finalidad de una variable o qu hace una cierta lnea de cdigo Una frase precedida de una comilla simple () se interpreta como un comentario Clculo de la Media suma=0 inicializacin de la variable suma

3.3.- ELEMENTOS DEL LENGUAJE


3.3.1.- IDENTIFICADORES
Cuando se escribe cdigo en Visual Basic, se declaran y asignan nombres(identificadores) a muchos elementos (procedimientos Sub y Function, variables, constantes, etc.). Los nombres de procedimientos, variables y constantes que declara en el cdigo de Visual Basic deben seguir las siguientes reglas: Deben comenzar por una letra. No pueden contener puntos o caracteres de declaracin de tipos (caracteres especiales que especifican tipos de datos. No pueden superar los 255 caracteres. Los nombres de controles, formularios, clases y mdulos no deben exceder los 40 caracteres.

No pueden ser iguales que las palabras clave restringidas (forman parte del lenguaje): If, Loop, Len, Mod, etc.

32

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 3

3.3.2.- VARIABLES Una variable contiene un valor que puede cambiar durante la ejecucin de la aplicacin.
En Visual Basic se pueden utilizar variables para almacenar valores temporalmente durante la ejecucin de una aplicacin. Las variables tienen un nombre (el identificador) y un tipo de dato (la clase de datos que la variable puede almacenar). Declaracin de variables Antes de utilizar una variable se debe de declarar (Declaracin Explcita). Sintaxis: Dim nombre_variable As tipo_dato Tipos de Datos Tipo Boolean Byte Integer Long Single Double Currency Decimal String Date Object Variant Valores que pueden contener True o False Enteros de 0 a 255 Enteros de 32768 a 32767 Enteros largos de 2147483648 a 2147483647 Punto Flotante simple precisin Punto Flotante doble precisin Entero con punto decimal fijo Entero o decimal con 28 digitos significativos Cadena de Longitud fija o variable Fechas en el rango 1/1/100 a 31/12/9999 Referencias a objetos Cualquier tipo de dato Ejemplos de Valores True, False 12, 50 200, 25000 5000000 12,78 3,5 12,1200 12,565 Hola 31/12/1997

Ejemplos de Definiciones Dim I As Integer entero Dim Mensaje As String cadena de caracteres de long. varable Dim Nombre As String*10 cadena de 10 caracteres fijo Dim L As Long, X As Currency Inicializacin por defecto El valor por defecto con el que se inicializa una variable se depende de su tipo. Si la variable es numrica el valor tomado ser 0; Si es una cadena ser una cadena vaca; Si es una fecha ser el 30/12/1899; si es de tipo Boolean tomar el valor False; y si es de tipo Variant el valor Empty. Declaracin Implicita vs Explcita de una variable Se puede utilizar una variable sin tener que declararla previamente (declaracin implcita) frente a la declaracin previa (declaracin explcita). La primera puede dar lugar a errores, ya que cuando Visual Basic encuentra un nuevo nombre, no puede determinar si es debido a un error o a la definicin de una variable. Para evitar este tipo de errores, se puede indicar a Visual Basic que genere un mensaje de error siempre que encuentre una variable no declarada explicitamente. Se le puede indicar de dos formas: aadir al principio del cdigo la sentencia Option Explicit; o en el men Herramientas/Opciones, ir a la pestaa de Editor y activar la opcin Requerir declaracin de variables.
Este manual ha sido desarrollado por el departamento tcnico de DELTA PC 33

Captulo 3

Visual Basic

Alcance de las Variables El alcance de una variable define en qu partes del cdigo es accesible. Cuando declara una variable en un procedimiento, slo el cdigo de dicho procedimiento puede tener acceso o modificar el valor de la variable; tiene un alcance que local al procedimiento. A veces, sin embargo, se necesita utilizar una variable con un alcance ms general, como aquella cuyo valor est disponible para todos los procedimientos del mismo mdulo o incluso para todos los procedimientos de toda la aplicacin. Dependiendo de cmo se declara, una variable tiene como alcance un procedimiento (local) o un mdulo. Alcance Nivel de procedimiento Nivel de mdulo Privado Pblico Las variables son privadas del No es aplicable. No puede procedimiento en el que aparecen declarar variables pblicas dentro de un procedimiento Las variables son privadas del Las variables estn disponibles mdulo en el que aparecen para todos los mdulos

Las variables a nivel de procedimiento slo se reconocen en el procedimiento en el que se han declarado (variables locales). Se declaran mediante las palabras clave Dim o Static. Por ejemplo: Dim Total As Integer Una variable a nivel de mdulo est disponible para todos los procedimientos del mdulo, pero no para el cdigo de otros mdulos. Para crear variables a nivel de mdulo hay que declarlas con la palabra clave Private (o Dim) en la seccin Declaraciones al principio del mdulo. Por ejemplo: Private Total As Integer Para que una variable a nivel de mdulo est disponible para otros mdulos (variables globales), hay que declaralas con la palabra clave Public. Los valores de las variables pblicas estn disponibles para todos los procedimientos de la aplicacin. Al igual que todas las variables a nivel de mdulo, las variables pblicas se declaran en la seccin Declaraciones al principio del mdulo. Por ejemplo: Public Total As Integer Variables con el mismo nombre en diferentes niveles Una variable local, otra a nivel de mdulo y otra global pueden tener el mismo nombre, pero no son la misma variable. La regla en estos casos es que el procedimiento siempre utiliza la variable de nivel ms cercano (local, mdulo, global) Se puede hacer referencia explcita al nivel dnde se encuentra la variable definida anteponiendo a la variable el mdulo dnde se encuentra definido. Por ejemplo: Form1.Total= 10

34

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 3

Modificacin del tipo por defecto Las sentencias de la familia Defxxx, pueden tomar uno o varios parmetros, cada uno de los cuales puede ser una letra o un rango. De esta forma, cualquier variable que se declare sin especificar un tipo y comience por la letra o letras indicadas ser del tipo deseado. Funcin DefBool DefByte DefInt DefLng DefCur DefSng DefDbl DefStr DefDate DefObj DefVar Por ejemplo: DefDate D-F, P Dim DiaActual Todas aquellas variables que comiencen por las letras D, E, F o P y que se declaren sin especificar el tipo, sern de tipo Date, como DiaActual. Conversiones entre tipos Funcin CBool(<expresin>) CByte(<expresin>) CInt(<expresin>) CLng(<expresin>) CSng(<expresin>) CDbl(<expresin>) CCur(<expresin>) CStr(<expresin>) CDate(<expresin>) CVar(<expresin>) Tipo que devuelve Boolean Byte Integer Long Single Double Currency String Date Variant Tipo de Dato Boolean Byte Integer Long Currency Single Double String Date Object Variant

3.3.3.- CONSTANTES
Una constante no es ms que un nombre, como el de una variable, al que se asigna un valor que no podr ser modificado posteriormente. Aporta claridad al programa. Sintaxis para declarar una constante: [Public|Private] Const nombre_cte [As tipo] = <expresin> Por ejemplo: Const conPI = 3.141592

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

35

Captulo 3

Visual Basic

Public Const conMax As integer = 100 Alcance de las Constantes Una instruccin Const tiene igual alcance que una declaracin de variable y se le aplican las mismas reglas: Para crear una constante que slo exista en un procedimiento, hay que declararla dentro del procedimiento. Para crear una constante disponible para todos los procedimientos de un mdulo, pero no para el cdigo que est fuera del mdulo, hay que declararla en la seccin Declaraciones del mdulo. Para crear una constante disponible en toda la aplicacin, hay que declararle la constante en la seccin Declaraciones de un mdulo estndar y hay que colocar delante de Const la palabra clave Public. No se pueden declarar las constantes pblicas en un mdulo de clase o de formulario.

Tipos de contantes Constantes intrnsecas o definidas por el sistema proporcionadas por aplicaciones y controles. Las contantes de las bibilotecas de objetos de Visual Basic(VB) y Visual Basic para aplicaciones (VBA) tienen el prefijo vb; por ejemplo vbTileHorizontal. Las constantes de la biblioteca de objetos de acceso a datos tienen el prefijo db; por ejemplo dbRelationUnique. Constantes simblicas o definidas por el usuario se declaran mediante la instruccin Const, como ya se ha descrito antes.

3.3.4.- OPERADORES
Para contruir las expresiones que realizarn la mayora de los clculos son necesarios los openados y los operadores. Existen operadores de varios tipos: Operadores aritmticos Operador + * / \ ^ Mod N1 <operador_aritmtico> N2 Operacin aritmtica que efecta Suma N1 y N2 Halla la diferencia entre N1 y N2 Multiplica N1 por N2 Divide N1 entre N2 Divide N1 entre N2 sin hallar decimales (div. entera) Eleva N1 al exponente N2 Resto de la operacin N1 \ N2

36

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 3

Notas: Si se suma (o resta) un numero a una fecha se obtiene la fecha trancurridos los dias especificados por el nmero. Si se restan dos fechas se halla el nmero de dias transcurridos entre ambas. Si se suman dos cadenas (String), el resultado es la concatenacin de ambas. Existe para esto un operador especial: & Prioridad de los operadores: ^, /, *, \, Mod, +, -. Se usan los parntesis para alterar la prioridad. Operadores Relacionales Operador = <> < <= > >= N1 <operador_relacional> N2 Devuelve True si N1 y N2 son iguales N1 y N2 son distintos N1 es menor que N2 N1 es menor o igual a N2 N1 es mayor que N2 N1 es mayor o igual a N2 Devuelve False si N1 y N2 son distintos N1 y N2 son iguales N1 es igual o mayor que N2 N1 es mayor que N2 N1 es igual o menor que N2 N1 es menor que N2

Normas Al comparar dos cadenas se tendr en cuenta la diferencia entre maysculas y minsculas Al comparar dos fechas se usa el foemato interno que incluye la hora, por lo tanto dos fechas iguales no da la igualdad si tienen horas distintas.

Operadores relacionales Operador And Or Xor Eqv Imp Not E1 <operador_relacional> E2 (E1 y E2 dos expresiones lgicas) Devuelve True si Devuelve False si E1=True y E2=True En cualquier otro caso E1=True o E2=True E1=False y E2=False E1=True y E2=False o E1=True y E2=True o E1=False y E2=True E1=False y E2=False E1 es igual a E2 E1 es distinto de E2 E1=True y E2=True o E1=True y E2=False E1=False y E2=True o E1=False y E2=False E1=False E1=True

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

37

Captulo 3

Visual Basic

38

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 4

Captulo 4 Estructuras Avanzadas

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

39

Captulo 4

Visual Basic

40

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 4

4.1.- ESTRUCTURAS DE CONTROL


4.1.1. ESTRUCTURAS DE DECISIN IF ... THEN ... ELSE
Estructura condicional que puede escribirse de las formas siguientes: If condicin Then sentencia(s) [Else sentencia(s)] If condicin Then sentencia(s) [Else sentencia(s) ] End If If condicin-1 Then sentencias-1 [ElseIf condicin-2 Then sentencias-2 ... [Else sentencias-n] End If Las condiciones son expresiones booleanas (una expresin de Bool d un resultado verdadero o falso). Se utilizan operadores de relacin y lgicos. Ejemplo: If A > 10 And B > 100 Then Suma = Suma + K ElseIf A < 5 Or B = 0 Suma = Suma - K Else Suma = Suma + K/2 End If

Comparar dos nmeros

Comenzar un nuevo proyecto, aadirle un botn de comando. Al botn de comando cambiarle las siguientes propiedades: Caption: Ejecutar Name: cmdEjecutar

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

41

Captulo 4

Visual Basic

Cdigo asociado al cotn de ejecutar:

Private Sub cmdEjecutar_Click() Dim intNum1 As Integer Dim intNum2 As Integer 'Pedir Datos intNum1 = InputBox("Nmero 1", "Entrada de Datos", 0) intNum2 = InputBox("Nmero 2", "Entrada de Datos", 0) If intNum1 > intNum2 Then Print intNum1 & " es mayor a " & intNum2 Else If intNum1 < intNum2 Then Print intNum1 & " es menor a " & intNum2 Else Print intNum1 & " es igual a " & intNum2 End If End If End Sub Ejemplo de resultado:

SELECT CASE

Esta estructura permite ejecutar una o varias sentencias en funcin del valor de una expresin. Sintaxis: Select Case expresin Case lista-1 [sentencias-1] [Case lista-2 [sentencias-2]]... [Case Else [sentencias-n]] End Select

42

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 4

donde expresin es una expresin numrica o alfanumrica y lista-i es una lista de posibles valores que puede tomar expresin y que puede tener cualquiera de las siguientes formas: exprexin_lista[,expresin_lista]... exprexin_lista To exprexin_lista Is operador_de_relacin expresin_lista combinacin de las anteriores separadas por comas Ejemplos: Case Is < K ' expresin < K Case 100 ' expresin = 100 Case A To 10 ' expresin = A, A+1, ... , 10 Case 10, D ' expresin = 10, D Case "si", "SI" ' expresin = "si", "SI" Case -20, x To 20 ' expresin = -20, x, x+1, ... , 20 Ejemplos de Select: Select Case K Case 1 Text1.Text = "1" Case 2, 3 Text1.Text = "2 o 3" Case 4 To 9 Text1.Text = "4 a 9" Case Else Text1.Text = "K<1 0 K>9" End Select

Convierte Nmero de Mes en Nombre de mes

Comenzar un nuevo proyecto, aadirle un botn de comando. Al botn de comando cambiarle las siguientes propiedades: Caption: Ejecutar Name: cmdEjecutar Cdigo asociado al cotn de ejecutar:

Private Sub cmdEjecutar_Click() Dim intNumMes intNumMes = InputBox("Nmero de mes", "Entrada de Datos", 1) Select Case intNumMes Case 1 Print "Enero" Case 2 Print "Febrero"
Este manual ha sido desarrollado por el departamento tcnico de DELTA PC 43

Captulo 4

Visual Basic

Case 3 Print "Marzo" Case 4 Print "Abril" Case 5 Print "Mayo" Case 6 Print "Junio" Case 7 Print "Julio" Case 8 Print "Agosto" Case 9 Print "Septiembre" Case 10 Print "Octubre" Case 11 Print "Noviembre" Case 12 Print "Diciembre" Case Else Print "Mes inexistente" End Select End Sub Ejemplo de resultado:

4.1.2.- ESTRUCTURAS REPETITIVAS (BUCLES) FOR ... NEXT


Bucle por contador. Estructura de control repetitiva. Sintaxis: For variable = expresin-1 To expresin-2 [Step expresin-3] [sentencias] [Exit For] [sentencias] Next [variable- [, variable] ... ] La sentencia Exit For permite salir del bucle For ... Next antes de que este finalice.
44

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 4

Ejemplo: Suma = 0 For I = 1 To 100 Step 2 Suma = Suma + I Next I

' Suma de los nmeros impares desde 1 hasta 100

Imprimir nmeros desde el 1 al nmero elegido


Comenzar un nuevo proyecto, aadirle un botn de comando. Al botn de comando cambiarle las siguientes propiedades: Caption: Ejecutar Name: cmdEjecutar Cdigo asociado al cotn de ejecutar:

Private Sub cmdEjecutar_Click() Dim intTope As Integer Dim intI As Integer intTope = InputBox("Tope", "Entrada de datos", 10) For intI = 1 To intTope Print intI Next intI End Sub Ejemplo de resultado:

FOR EACH ... NEXT

Este bucle es similar al bucle For..Next, pero repite un grupo de instrucciones por cada elemento de una coleccin de objetos o de una matriz en vez de repetir las instrucciones un nmero especificado de veces.

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

45

Captulo 4

Visual Basic

Sintaxis: For Each elemento In grupo [sentencias] Next elemento

Imprime un array de cadenas

Comenzar un nuevo proyecto, aadirle un botn de comando. Al botn de comando cambiarle las siguientes propiedades: Caption: Ejecutar Name: cmdEjecutar Cdigo asociado al cotn de ejecutar:

Private Sub cmdEjecutar_Click() Dim strCadenas(10 To 15) As String Dim intI As Integer Dim vntElemento As Variant For intI = 10 To 15 strCadenas(intI) = InputBox("Texto para la cadena " & intI) Next For Each vntElemento In strCadenas Print vntElemento Next End Sub Ejemplo de resultado:

46

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 4

DO ... LOOP

Bucles por condicin Esta estructura de control repetitiva ejecuta un conjunto de sentencias mientras se cumpla una determinada condicin.. Hay dos formatos: Formato en el cul la condicin se evala antes de ejecutarse el grupo de sentencias incluidas en el bucle: Do [{While/Until} condicin ] [sentencias] [Exit Do] [sentencias] Loop En este otro formato, la condicin se evala despus de la ejecucin del bucle: Do [sentencias] [Exit Do] [sentencias] Loop [{While/Until} condicin] Las condiciones pueden ser cualquier expresin numrica, relacional o lgica. La sentencia Exit Do permite salir de un bucle Do ... Loop antes de finalizar ste. Ejemplos: I = 1: Suma = 0 Do While I < 100 Suma = Suma + I I=I+2 Loop I = 1: Suma = 0 Do Suma = Suma + I I=I+1 Loop Until I < 100

Notas: Para las colecciones, elemento slo puede ser una variable Variant, Object o un objeto mostrado en el Examinador de objetos. Para las matrices solo puede ser Variant No se puede utilizar For Each..Next con una matriz de tipos definidos por el usuario (estructuras). Variant no puede almacenar tipos definidos por el usuario.

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

47

Captulo 4

Visual Basic

Suma Nmeros hasta introduccir el 0

Comenzar un nuevo proyecto, aadirle un botn de comando. Al botn de comando cambiarle las siguientes propiedades: Caption: Ejecutar Name: cmdEjecutar Cdigo asociado al cotn de ejecutar:

Private Sub cmdEjecutar_Click() Dim intNum As Integer Dim lngTotal As Long lngTotal = 0 Do intNum = InputBox("Nmero (0->para terminar)", "Entrada de Datos", 0) lngTotal = lngTotal + intNum 'acumular Loop While intNum <> 0 Print "La suma es " & lngTotal End Sub Ejemplo de resultado:

4.2.- MATRICES (ARRAYS)


Un matriz o array permite referirse a una serie de variables por un mismo nombre y referenciar una nica variable de la serie utilizando un ndice. Visual Basic permite definir arrays de variables de una o ms dimensiones y de cualquier tipo de dato; y adems tambin permite definir arrays de controles, necesarios para escribir mens, para crear nuevos controles en tiempo de ejecucin, o para hacer que una serie de controles tengan asociado un mismo procedimiento para cada tipo de suceso.

4.2.1.- ARRAYS DE VARIABLES ESTTICOS

48

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 4

Un array de ese tipo tiene que declararse utilizando cdigo y puede tener una o ms dimensiones. Para declarar un array esttico (con un nmero fijo de elementos), Visual Basic hace tres consideraciones: Para declarar un array en un mdulo global, usar la sentencia Public. Para declarar un array a nivel de mdulo o de la forma, usar la sentencia Dim. Dentro de un procedimiento, usar la sentencia Static.

Ejemplos: Dim Datos(20) As Integer Dim Datos(10, 1 To 100) As Integer Static Datos(5 To 30, 10 To 50) As Long Public Datos(1 To 100) As String El ndice debe estar en el rango: -32768 a 32767.

Notas: Por defecto, los ndices de las matrices comienzan en el 0. Para modificar se debe usar la sentencia Option Base 1, antes de cualquier definicin de arrays. En caso de no conocer los lmites de un array, stos se pueden conocer haciendo uso de la funcin LBound(<array>) y UBound(<array>), que nos devuelven el lmite inferior y superior respectivamente.

Lista de 5 Notas

Comenzar un nuevo proyecto, aadirle un botn de comando. Al botn de comando cambiarle las siguientes propiedades: Caption: Ejecutar Name: cmdEjecutar Cdigo asociado al cotn de ejecutar:

Private Sub cmdEjecutar_Click() Dim Notas(5) As Variant Dim intI As Integer 'Entrada de datos For intI = 0 To 4 Notas(intI) = InputBox("Nota " & intI) Next 'Calculo de la media Dim vntMedia As Variant vntMedia = 0 For intI = 0 To 4 vntMedia = vntMedia + Notas(intI) Next

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

49

Captulo 4

Visual Basic

'Imprimir resultados Print "Las Notas Obtenidas son " For intI = 0 To 4 Print "Nota " & intI & "=" & Notas(intI) Next Print "La Media es " & (vntMedia / 5) End Sub Ejemplo de resultado:

4.2.2.- ARRAYS DE VARIABLES DINMICOS


El espacio necesario para un array esttico se asigna al iniciarse el programa y permanecer fijo. El espacio para un array dinmico ser asignado durante la ejecucin de programa. Un array dinmico puede ser redimensionado en cualquier momento durante la ejecucin. Para crear un array dinmico: Declarar el array con una sentencia Dim o Public, y una lista de dimensiones vaca. Asignar el nmero actual de elementos con la sentencia ReDim.

Sintaxis ReDim:

ReDim [Preserve] Nom_Array (dimensiones) [As tipo] , ...

Preserve: Preserva los datos existentes en el array desde la ltima dimensin.


La sentencia ReDim puede aparecer solamente en un procedimiento y permite cambiar el nmero de elementos del array, no el nmero de dimensiones. Por ejemplo si usamos Redim A(10,10), luego no se puede usar ReDim A(12,12,12).

4.2.3.- ARRAYS DE CONTROLES

50

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 4

Un array de controles se crea al asignar el mismo nombre a dos o ms controles (propiedad Name) durante el diseo de una aplicacin, o bien, asignando un valor a la propiedad Index de un control. La ltima forma genera un array de un solo elemento, lo cul es til cuando se quiere crear controles en tiempo de ejecucin. A diferencia de un array normal, un array de controles no se declara en el cdigo, est limitado a una sola dimensin, no tiene definido el lmite superior (el lmite inferior es 0), no puede ser pasado como un nico argumento (cada elemento debe ser pasado como un argumento por separado) y los ndices no son necesariamente consecutivos. Cuando Visual Basic crea un array de controles, asigna por defecto los ndices 0, 1, 2 , ... , los cuales pueden modificarse a voluntad del usuario, cambiando el valor de la propiedad Index. Esta operacin solo puede realizarse durante el diseo. Cuando cualquier control del array reconoce un suceso, Visual Basic pasa el ndice como un argumento extra. Este argumento siempre va antes que cualquier otro argumento. Por ejemplo: Sub MiArray_Click (Index As Integer, Dato As Integer) El valor de Index puede utilizarse dentro del procedimiento para determinar qu control ha recibido el suceso. Un elemento del array de controles puede referenciarse escribiendo NombreArray(Index), nomenclatura que puede utilizarse en cualquier lugar donde pueda especificarse el nombre del control.

4.3.- DEFINICIN DE TIPOS


Una estructura o registro es un nuevo tipo de dato que puede ser manipulado de la misma forma que los tipos predefinidos. Una estructura puede definirse como una coleccin de datos de diferentes tipos relacionados lgicamente. Sintaxis: [Private|Public]Type tipo-usuario Nombre-elemnto [(dimension)] As tipo [Nombre-elemnto [(dimension)] As tipo] ... End Type Esta sentencia solamente puede aparecer en los mdulos. Si es declarada como Private slo ser accesible en el mdulo dnde se halla definido, en caso contrario, ser accesible desde cualquier mdulo o formulario. Ejemplo: Type Fecha Dia As Integer Mes As Integer Ao As Integer End Type Una vez definido un tipo de estructura, podemos declarar variables de ese tipo. Por ejemplo:

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

51

Captulo 4

Visual Basic

Dim Fec_Nac As Fecha Y, para referirse a un determinado miembro de una estructura se utiliza la notacin variable.miembro. Por ejemplo: Fec_Nac.Da = 30 Un miembro de una estructura puede ser, a su vez, de un tipo definido por el usuario. Type Alumnos Nombre As String Alta As Fecha End Type En este caso el acceso a un miembro de fecha sera: Alum.Alta.Dia Tambin, una estructura puede asignarse a otra estructura. Por ejemplo: Dim A1 As Alumnos, A2 As Alumnos2 A1.Alta.Mes = 2 A2 = A1

52

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 5

Captulo 5 Procedimientos y Funciones

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

53

Captulo 5

Visual Basic

54

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 5

5.1.- INTRODUCCIN
Para simplificar las tareas de programacin se divide el programa en bloques ms pequeos llamados procedimientos (subrutinas). Estos resultan muy tiles para evitar tareas repetitivas y clculos usados frecuentemente. Hay dos ventajas principales cuando se programa con procedimientos: En Visual Basic se utilizan varios tipos de procedimientos: Procedimientos Sub que no devuelven un valor. Procedimientos Function que devuelven un valor. Procedimientos Property que pueden devolver y asignar valores, as como establecer referencias a objetos. (Se ver en el captulo de Programacin Orientada a Objetos) Los procedimientos permiten dividir los programas en unidades lgicas discretas, cada una de las cuales se puede depurar ms fcilmente que un programa entero sin procedimientos. Los procedimientos que se utilizan en un programa pueden actuar como bloques de construccin de otros programas, con pocas o ninguna modificacin.

Cada formulario (.frm) y cada mdulo (.bas) de una aplicacin pueden contener: Declaraciones (constantes, tipos, variables y procedimientos de las DLL).

Procedimientos conducidos por sucesos: Los procedimientos conducidos por sucesos son la base de las aplicaciones de Visual Basic. Un procedimiento de este tipo contiene el cdigo que es invocado cuando un objeto reconoce que ha ocurrido un determinado suceso. Un procedimiento de este tipo debe ser siempre un procedimiento Sub. Procedimientos generales: Los procedimientos generales son invocados cuando se hace una llamada explcita sobre ellos, desde cualquier parte de la aplicacin. La razn de la existencia de los mismos es evitar cdigo repetido. Un procedimiento general puede escribirse como Sub o como Function. mbito de un procedimiento Cuando un procedimiento es llamado para su ejecucin, Visual Basic busca ese procedimiento en la forma o mdulo actual. Si no lo encuentra, entonces contina la bsqueda en el resto de los mdulos de la aplicacin. Consecuentemente, un procedimiento definido en un mdulo puede invocarse desde cualquier parte de la aplicacin, pero un procedimiento ligado a una forma solo puede ser llamado desde otros procedimientos ligados tambin a esa forma. Por lo tanto, el nombre para un procedimiento definido en un mdulo debe ser nico para todos los mdulos, sino habr que anteponer a la llamada el nombre del mdulo dnde se encuentra, mientras que el nombre para un procedimiento definido en una forma puede utilizarse tambin en otra forma. Crear un procedimiento general

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

55

Captulo 5

Visual Basic

Para crear un procedimiento general, primero hay que abrir la ventana de cdigo correspondiente a la forma o al mdulo y a continuacin ejecutar la orden New Procedure del men Code. Para editar un procedimiento general existente, seleccionar "(general)" de la caja de objetos en la ventana de cdigo y a continuacin seleccionar el procedimiento de la caja de procedimientos.

5.2.- FUNCIONES (FUNCTION)


En Visual Basic se pueden definir funciones propias o usar funciones incorporadas en el sistema. La sintaxis de una funcin es la siguiente: [Static][Private] Function nombreF ([parmetros]) [As tipo] [sentencias] [nombreF = expresin] [Exit Function] [sentencias] [nombreF = expresin] End Function Static: Indica que todas las variables locales a un procedimiento sean por defecto estticas, es decir, que conserven los resultados entre llamadas al procedimiento o funcin. Private: Indica que la funcin solo es accesible por otros procedimientos existentes en el mismo mdulo dnde sta est definida. nombreF: es el nombre de la funcin y tipo de datos que devuelve, especificado por un sufijo de tipo de dato (%, &, etc) o utilizando la clusula As tipo (Integer, Long, etc) expresin: define el valor devuelto por la funcin. Este valor es almacenado en el propio nombre de la funcin, que acta como variable dentro del cuerpo de la misma. Si no se efecta esta asignacin, el resultado devuelto es 0 si sta es numrica. o nulo ("") si la funcin es de caracteres. Si no se ha especificado el tipo de dato a devolver devuelve False. Exit Function: permite salir de una funcin. La ejecucin contina con la sentencia inmediatamente a continuacin de la que efectu la llamada. End Function: Indica el final de la funcin.

parmetros: lista de identificadores separados por comas, cogen los valores que se indican cuando se llama a la funcin.

Los parmetros o argumentos de la funcin tienen la siguiente sintaxis: [ByVal] variable [()] [As tipo] [, [ByVal] variable [()][ As tipo]]... ByVal: Indica que este parmetro es pasado por valor, en caso de omitirse, el parmetro es pasado por referencia. As tipo: Declara el tipo de dato de la variable. el tipo puede ser Integer, Single, Double, Currency, String, Variant, un tipo definido por el usuario o un tipo de objeto. Se debe especificar el tipo por cada argumento.

56

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 5

La llamada a una funcin es de la forma: variable = nombreF([argumentos]) Los argumentos son una lista de constantes, variables o expresiones separadas por comas. El nmero de argumentos debe ser igual al nmero de parmetros de la funcin. Los tipos de los argumentos deben coincidir con los tipos de sus correspondientes parmetros. Ejemplo de funcin: Function Factorial (N As Integer) As Long Dim F As Long If N = 0 Then Factorial = 1 Else F=1 Do While N > 0 F=N*F N = N -1 Loop Factorial = F End If End Function Ejemplo de llamada a la funcin anterior: Fact = Factorial (Num) Nota: Los parntesis como se explicar ms adelante indican que el parmetro Num se pasa por valor. Las variables declaradas explcitamente en una funcin o procedimiento son locales a dicha funcin o procedimiento. Si se usa una variable no declarada en el procedimiento puede tener conflicto si est definida con el mismo nombre en la seccin de declaraciones. Si un procedimiento hace referencia a una variable no declarada que tiene el mismo nombre en otro procedimiento, o en el Global, o a nivel de mdulo, o en un objeto, Visual Basic asume que el procedimiento se refiere a la declarada a nivel de mdulo. Para evitar conflictos, es mejor explicitar la declaracin de las variables (Option Explicit), como ya se ha explicado.

5.3.- PROCEDIMIENTOS (SUB)


La sintaxis que define un procedimiento es la siguiente: [Static][Private] Sub nombreP [(parmetros)] [sentencias] [Exit Sub] [sentencias] End Sub La explicacin es anloga a la dada para funciones.

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

57

Captulo 5

Visual Basic

Los nombres de los procedimientos pueden corresponderse a procedimientos declarados en Visual Basic o declarados en una DLL (Dynamic-Link Library).

La llamada a un procedimiento puede ser de alguna de las dos formas siguientes: Call nombreP [(argumentos)] nombreP [argumentos] A diferencia de una funcin, un procedimiento no puede ser utilizado en una expresin, ni asignado a una variable puesto que no devuelve ningn valor. Para declarar procedimientos externos, esto es, procedimientos contenidos en una DLL, utilizar la sentencia Declare. Una sentencia Declare puede aparecer en el mdulo Global o en la seccin de declaraciones de la forma o del mdulo. Ejemplo Sub Form_Click () Dim A, B A = InputBox("Longitud?") B = InputBox("Ancho?") SubDemo A, B ' llamada al procedimiento SubDemo End Sub Sub SubDemo(Rl, Ra) Dim Area Area = Rl * Ra MsgBox "El rea es: " & Area End Sub Ejemplo de llamadas: SubDemo A, B Call SubDemo(A, B)

5.4.- PASO DE ARGUMENTOS


5.4.1.- ARGUMENTOS POR REFERENCIA Y POR VALOR
En las funciones y en los procedimientos, los argumentos se pasan por referencia o por valor. Si un argumento se pasa por referencia, cualquier cambio de valor que sufra ste en el cuerpo de la funcin o del procedimiento, tambin se produce en el argumento correspondiente de la llamada a la funcin a al procedimiento. Un argumento ser pasado por valor, cuando dicho argumento no se ver cambiado aunque en el cuerpo de la funcin o procedimiento se le asignen valores distintos. Si no se especifica ByVal en la declaracin del parmetro o no se indica el parmetro pasado en la llamada entre parntesis, se asume que el parmetro es pasado por referencia, en caso contrario, se pasa por valor.

58

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 5

Ejemplos: Factorial (Num), Fact ' Num es pasado por valor Sub Factorial (ByVal N As Integer, F As Long) ... End Sub

5.4.2.- USO DE ARGUMENTOS OPCIONALES


Se pueden especificar argumentos a un procedimiento como opcionales si coloca la palabra clave Optional en la lista de argumentos. Si especifica un argumento opcional, todos los argumentos subsiguientes de la lista de argumentos deben ser tambin opcionales y se deben declarar con la palabra clave Optional. Por ejemplo

Este cdigo proporciona todos los argumentos como opcionales:


Dim strNombre As String Dim strApellido As String Sub PonNombre(Optional x As String, Optional y As Variant) lblNomCompleto=x & y End Sub Private Sub Command1_Click() strNombre = "elnombre" strApellido = elapellido ' Se proporcionan ambos argumentos. Call PonNombre(strNombre, strApellido) End Sub Sin embargo, este cdigo no proporciona todos los argumentos como opcionales: Dim strNombre As String Dim varApellido As Variant Sub PonNombre(x As String, Optional y As Variant) lblNomCompleto=x If Not IsMissing(y) Then lblNomCompleto=lblNomCompleto & y End If End Sub Private Sub Command1_Click() strNombre = "elnombre" Call PonNombre(strNombre) End Sub ' No se proporciona el segundo argumento.

En caso de que no se proporcione un argumento opcional, se asigna el argumento como un tipo Variant con el valor Empty. El ejemplo anterior muestra cmo probar si se han perdido argumentos opcionales mediante la funcin IsMissing. Proporcionar un valor predeterminado a un argumento opcional

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

59

Captulo 5

Visual Basic

Es posible especificar un valor predeterminado para un argumento opcional. Ejemplo: Dim strNombre As String Dim varApellido As Variant Sub PonNombre(x As String, Optional y As Variant= ) lblNomCompleto=x& y End Sub Private Sub Command1_Click() strNombre = "elnombre" Call PonNombre(strNombre) End Sub ' No se proporciona el segundo argumento.

5.4.3.- USO DE UN NMERO INDEFINIDO DE ARGUMENTOS


Normalmente, el nmero de argumentos en la llamada a un procedimiento debe ser el mismo que los especificados en el procedimiento. Si se usa la palabra clave ParamArray se puede especificar que el procedimiento acepte un nmero indefinido de argumentos. Eso permite escribir funciones como Sum: Function Sum(ParamArray intNums()) As Long Dim intSum As long Dim x as Variant intSum=0; For Each x In intNums intSum =intSum + x Next x Sum =intSum End Sub Private Sub Command1_Click() lblResultado=Sum(1, 3, 5, 7, 8) End Sub

PROGRAMA QUE OBTIENE LA CALIFICACIN DE UN ALUMNO.

Comenzar un nuevo proyecto, aadirle un botn de comando. Al botn de comando cambiarle las siguientes propiedades: Caption: Ejecutar Name: cmdEjecutar Cdigo asociado

Option Explicit Private Notas(5) As Variant

60

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 5

Function Calificacion(vntNota As Variant) As String Dim strRes As String If vntNota < 5 Then strRes = "Suspenso" ElseIf vntNota < 6 Then strRes = "Aprobado" ElseIf vntNota < 9 Then strRes = "Notable" Else strRes = "Sobresaliente" End If Calificacion = strRes End Function Sub PedirNotas() Dim intI As Integer 'Entrada de datos For intI = 0 To 4 Notas(intI) = InputBox("Nota " & intI + 1) Next End Sub Sub ImprimeCalificaciones() Dim intI As Integer 'Entrada de datos Print "Calificaciones" For intI = 0 To 4 Print "Nota " & intI + 1 & "="; Notas(intI) & " -> " & Calificacion(Notas(intI)) Next End Sub Private Sub cmdEjecutar_Click() PedirNotas ImprimeCalificaciones End Sub Ejemplo de resultado:

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

61

Captulo 5

Visual Basic

5.5.- TRABAJO CON NUMEROS, CADENAS, FECHAS, ....


5.5.1.- NMEROS
Los operadores aritmticos permiten realizar operaciones bsicas, para realizar operaciones ms complejas, Visual Basic dispone de una serie de funciones ya implementadas. A continuacin se mostrarn las funciones ms habituales: Funciones Generales Funcin Abs Sgn Sqr Exp Log Descripcin Devuelve el valor absoluto del nmero dado Indica el sigo de un nmero(-1: Negativo; 0: Cero; 1:Positivo) Halla la raiz cuadrada de un nmero Calcula el nmero e elevado al exponente indicado Halla el logaritmo natural del nmero dado

Funciones Trigonomtricas Funcin Sin Cos Tan Atn Descripcin Seno de un ngulo Coseno de un ngulo Tangente de un ngulo Arco de una tangente

Funciones Financieras Funcin DDB FV Ipmt IRR MIRR Nper NPV Pmt PPmt
62

Descripcin Clculo de la depreciacin en un periodo de tiempo Valor futuro de unas aportaciones periodicas Inters pagado en un determinado periodo Tasa interna de retorno Tasa interna de retorno modificada Nmero de periodos de un pago contante Valor actual de una inversin Importe de un pago peridico constante Capital pagado en un determinado periodo

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 5

PV Rate

Valor actual de un pago futuro Tipo de inters por periodo Nmeros Aleatorios Visual Basic dispone de dos funciones para la obtencin de nmeros aleatorios:

Randomize: inicializa el generador de nmeros aleatorios Rnd: genera un nmero aleatorio entre 0 y 1 (el valor 1 nunca se dar)

Ejemplo: generar nmeros aleatorios entre 1 y 10 Print CInt(Rnd * 9 +1) CInt para evitar la parte decimal

Calculo de los datos de un prstamo para un ao

Comenzar un nuevo proyecto, aadirle un botn de comando. Al botn de comando cambiarle las siguientes propiedades: Caption: Ejecutar Name: cmdEjecutar Cdigo asociado al cotn de ejecutar:

Private Sub cmdEjecutar_Click() Dim lngImporte As Long, bytTipo As Byte, bytAos As Byte Dim intMesInicio As Integer Dim intI As Integer intMesInicio = 1 ' mes de partida 'entrada de datos lngImporte = InputBox("Importe del prstano", "Entrada de Datos", 10000) bytTipo = InputBox("Tipo de Inters", "Entrada de Datos", 10) bytAos = InputBox("Nmero de Aos", "Entrada de Datos", 5) ' Calcular la cuota mensual Print "Cuota mensual -> " & Abs(CLng(Pmt(bytTipo / 100 / 12, bytAos * 12, lngImporte))) & " pesetas" Print , "Capital", "Intereses" ' Mostrar la parte de capital e intereses 'por un periodo de un ao a partir del mes indicado For intI = intMesInicio To intMesInicio + 12 Print "Mes " & intI & "-> ", Print Abs(CLng(PPmt(bytTipo / 100 / 12, intI, bytAos * 12, lngImporte))), Print Abs(CLng(IPmt(bytTipo / 100 / 12, intI, bytAos * 12, lngImporte))) Next End Sub

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

63

Captulo 5

Visual Basic

Ejemplo de resultado:

5.5.2.- CADENAS
Funciones para tratamiento de cadenas Funcin Left Right Mid Ltrim Rtrim Trim Lcase Ucase StrConv Space String Len InStr Descripcin Extrae caracteres contando de izquierda a derecha Extrae caracteres contando de derecha a izquierda Extrae caracteres de cualquier punto de la cadena Elimina espacios al principio de una cadena Elimina espacios al final de una cadena Elimina espacios tanto al principio como al final Convierte las maysculas a minsculas Convierte las minsculas a maysculas Convierte una cadena segn una opcin Genera una cadena de espacios Genera una cadena de un cierto carcter indicado Devuelve la longitud de una cadena Busca una cadena dentro de otra cadena

5.5.3.- FECHAS
Funciones para manipulacin de fechas Funcin Date Now Time Day Month Year WeekDay Hour Minute Second DateAdd DateDiff
64

Descripcin Devuelve la fecha actual Devuelve la fecha y horas actuales Devuelve la hora actual Obtiene el dia de una fecha Obtiene el mes de una fecha Obtiene el ao de una fecha Devuelve el da de la semana correspondiente Obtiene la hora Obtiene el minuto Obtiene el segundo Aade un intervalo de tiempo a una fechas Obtiene el intevalo transcurrido entre dos fechas
Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 5

DatePart DateSerial TimeSerial

Devuelve una parte de una fecha (semana, trimestre, etc) Compone una fecha a partir de parmetros relativos Compone una hora a partir de parmetros relativos

5.5.4.- VARIANT
Un variable Variant no es una variable sin tipo; ms bien, es una variable que puede cambiar su tipo libremente (una variable genrica). Si se desea conocer el tipo de dato que almacena una variable Variant, se puede utilizar la funcin VarType. La funcin Vartype devuelve una constante que indicar el tipo de la variable, segn la siguiente tabla:

Constante vbBoolean vbByte vbInteger vbLong vbCurrency vbSingle vbDouble vbDate vbString vbObject vbDataObject vbArray vbNull vbEmpty vbError

Tipo de Valor Contiene un Boolean Contiene un Byte Contiene un Integer Contiene un Long Contiene un Currency Contiene un Single Contiene un Double Contiene un Date Contiene un string Referencia a un objeto OLE Referencia a un objeto no OLe Contiene una matriz Contenido Nulo No se ha inicializado Contiene un error

Tambin se pueden utilizar funciones como: Funcin IsNumeric IsDate IsObject IsArray IsNull IsEmpty IsError Devuelve True si tiene Cualquier tipo numrico Una fecha u hora Una referencia a un objeto Una matriz Contenido nulo No se ha inicializado Contiene un error

5.6.- TRABAJO CON OBJETOS


Cuando se crea una aplicacin en Visual Basic, se trabaja con objetos, se crean formularios y sobre ellos se dibujan controles: los formularios y los controles son objetos. Cada objeto tiene asociado un conjunto de propiedades predefinidas. Las reglas para nombrar los formularios y los controles son las mismas que las especificadas para nombrar las variables.
Este manual ha sido desarrollado por el departamento tcnico de DELTA PC 65

Captulo 5

Visual Basic

5.6.1.- PROPIEDADES
Un objeto (forma o control) tiene asociadas varias propiedades. Para referirse a una propiedad de un objeto se utiliza la forma: objeto.propiedad Ejemplo: Suma = Val(Texto.Text) Texto.Text = "El total es" + Str$(Total)

Propiedades y controles de otros formularios Cuando una aplicacin tiene varios formularios y/o mdulos, para referirse a una propiedad de un formulario desde otro formulario o mdulo, debe especificarse el nombre del formulario. Form1.Caption = Formulario 1" Para referirse a un control de un formulario desde otro formulario o mdulo, debe especificarse el nombre del formulario separado del nombre del control por el operador !: Form1!Text1.Text = Introduce un nmero

5.6.2.- VARIABLES QUE REPRESENTAN OBJETOS


Para manipular objetos se pueden utilizar variables objeto. Usando variables objeto se pueden crear en tiempo de ejecucin mltiples instancias (ejemplares) de formularios. Una instancia o ejemplar de un formulario es una copia que existe independientemente del original. Una variable objeto no contiene una copia de un objeto, sino una referencia a dicho objeto. Declaracin de una variable objeto Sintaxis: {Dim/ReDim/Static/Global} VarObj As [New] TipoObj dnde VarObj es el nombre dado a la variable y TipoObj se refiere a: un formulario ya existente en la aplicacin

Ejemplos: Dim F1 As New Form1 Dim F2 As Form1 Un tipo de objeto genrico de alguno de los siguientes: Form: Cualquier formulario de la aplicacin.

66

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 5

Control: Cualquier control de la aplicacin. MDIForm: El formulario MDI de la aplicacin, si existe. (En una aplicacin solo puede haber uno). Ejemplos: Dim F As Form Dim C As Control Un tipo de objeto especfico de alguno de los siguientes: CheckBox, ComboBox, CommandButton, CommonDialog, Data, DirListBox, DriveListBox, FileListBox, Frame, Grid, HScrollBar, Image, Label, Line, ListBox, Menu, OLE, OptionButton, PictureBox, Shape, TextBox, Timer y VScrollBar

Ejemplo: Dim Cbd As HscrollBar

Nota: Observar que no es posible declarar una variable objeto a un control particular de la aplicacin. New no se puede utilizar para declarar variables que se refieran a controles.

La finalidad de New es asegurar que exista un ejemplar del formulario cuando se utilice la variable declarada. Visual Basic crea automticamente un ejemplar del formulario particular especificado siempre que la variable objeto no se refiera ya a uno. Asignacin de un valor a una variable objeto Para asignar un objeto a una variable objeto, usar la sentencia Set: Set VarObj = RefObj dnde VarObj es la variable objeto y RefObj es un objeto o una referencia a unobjeto (otra variable objeto). Cuando una variable objeto no se refiere a un determinado objeto, tiene asignado el valor especial Nothing. Cuando se declara una variable objeto, se debe de inicializar antes de utilizar: Dim FormaA As Form Dim TextA As Control Set FormaA = Screnn.ActiveForm Set TextA = Text1 se refiere al formulario activo

Algunas veces, una variable objeto puede ser til para abreviar cdigo Las variables objeto son similares a los punteros de C. (Direcciones).

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

67

Captulo 5

Visual Basic

Tambin se puede utilizar New con Set para crear un nuevo ejemplar o instancia de un formulario. Sintaxis: Set VarObj = New TipoObj Cuando se declara una variable objeto, inicialmente vale Nothing. Si la variable se declara con New(Dim MiForm As New Form1), vale Nothing hasta que la variable sea utilizada; en este momento, Visual Basic crea automticamente un nuevo ejemplar del formulario, con lo que la variable objeto se refiere a ese ejemplar en lugar de a Nothing. En cambio, si la variable se declara utilizando New con Set, la variable s puede ser comparada con Nothing, ya que Visual Basic no intenta crear un nuevo ejemplar del formulario cada vez que se utiliza la variable. Mltiples ejemplares(instancias) de un formulario Todos los ejemplares de un tipo particular de formulario comparten el mismo cdigo, pero cada ejemplar de ese formulario tiene su propia copia de los datos, por ello si se necesita compartir datos entre ejemplares de un mismo formulario hay que utilizar variables globales.

5.6.3.- OBJETOS PASADOS A PROCEDIMIENTOS


Los tipos de datos Form y Control solo pueden utilizarse en las declaraciones de los parmetros de un procedimiento (Sub o Function). Un parmetro declarado de tipo Form puede operar sobre cualquier nmero de formas. Por Ejemplo: Sub ColorForma (FormaN As Form) FormaN.BackColor = &HFFFFFF FormaN.ForeColor = &H0& End Sub Un parmetro declarado de tipo Control tambin puede operar sobre cualquier nmero de controles. Por Ejemplo: Sub ColorControl (ControlN As Control) ControlN.BackColor = &HFFFF& ControlN.ForeColor = &H0& End Sub Para tener acceso a estos procedimientos desde cualquier parte de la aplicacin, se incluir en un mdulo. Cuando estos procedimientos sean invocados, recibirn como argumento el nombre de cualquier forma o control que queramos inicializar a los colores en ellos definidos. Ejemplos: Sub Form_Load() ColorForma Form1 ColorControl Text1 ColorControl Text2 Form2.Show End Sub 'Pone color a la forma Form1 'Pone color al control Text1 'Pone color al control Text2 'Carga y visualiza la forma Form2

Nota:
Load ocurre cuando se carga una forma. 68 El suceso Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 5

5.6.4.- TIPO DE UN DATOS PASADO POR ARGUMENTO


Cuando se llama a un procedimiento al que se le pasa como argumento un control, se puede determinar el tipo exacto de control que se ha pasado utilizando la sentencia siguiente: {If | ElseIf } TypeOf control Is tipo-de-control Then ... donde control es el valor pasado y tipo-de-control es una palabra clave de las siguientes:

CheckBox, ComboBox, CommandButton, CommonDialog, Data, DirListBox, DriveListBox, FileListBox, Frame, Grid, HScrollBar, Image, Label, Line, ListBox, Menu, OLE, OptionButton, PictureBox, Shape, TextBox, Timer y VScrollBar. Ejemplo: Sub InicioControl (ControlN As Control) ... If TypeOf ControlN Is TextBox Then ContrlN.Text = "Correcto" EndIf ... End Sub

5.6.5.- COLECCIONES DE OBJETOS


Una coleccin se define como un grupo de objetos. Visual Basic provee de colecciones que podemos utilizar para acceder a todos los formularios de una aplicacin, o a todos los controles de un formulario en particular. Coleccin de formularios La coleccin de formularios contiene solamente los formularios cargados. Los formularios descargados no aparecen en la coleccin hasta que no sean cargados. Sintaxis: Forms(indice) Dnde ndice es un valor entre 0 y Forms.Count-1. La propiedad Count retorna el nmero de formularios en la coleccin. Ejemplo: If Not (MiForm Is Forms(i)) Then Forms(i).BackColor = QBColor(1) Set Miform = Forms(i) End Sub No existe una relacin entre cada uno de los formularios y su posicin dentro de la coleccin. Coleccin de controles

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

69

Captulo 5

Visual Basic

La coleccin de controles permite referirse solamente a los controles cargados en un formulario. Cuando en un formulario hay arrays de controles, cada elemento de cada array es incluido en la coleccin. Sintaxis: [formulario.]Controls(ndice) ndice es un valor entre 0 y Controls.Count-1. La propiedad count retorna el nmero de controles en la coleccin El siguiente procedimiento ejemplo cambia el color a cada control de un formulario: Sub CambiarColor (FrmFuente As Form, Bcolor, Fcolor ) Dim i As Integer On Error Resume Next controles que no tienen estas propiedades For i=0 To FrmFuente.Controls.Count-1 FrmFuente.Controls(i).BackColor = Bcolor FrmFuente.Controls(i).ForeColor = Fcolor Next i End Sub No existe relacin entre cada uno de los controles y su posicin dentro de la coleccin.

5.7.- CONVENCIONES DE CODIFICACIN EN VISUAL BASIC


La razn principal de usar un conjunto coherente de convenciones de cdigo es estandarizar la estructura y el estilo de codificacin de una aplicacin de forma que el creador y otras personas puedan leer y entender el cdigo fcilmente. Las convenciones de codificacin correctas dan como resultado un cdigo fuente preciso, legible y sin ambigedad.

Prefijos sugeridos para controles Tipo de control Panel 3D Botn animado Casilla de verificacin Cuadro combinado, cuadro de lista desplegable Botn de comando Dilogo comn Comunicaciones Control (dentro de procedimientos cuando no se conoce el tipo especfico) Control de datos Cuadro combinado enlazado a datos Cuadrcula enlazada a datos Cuadro de lista enlazado a datos Cuadro de lista de directorios Prefijo pnl ani chk cbo cmd dlg com ctr dat dbcbo dbgrd dblst dir Ejemplo pnlGrupo aniBuzn chkSloLectura cboIngls cmdSalir dlgArchivoAbrir comFax ctrActivo datBiblio dbcboLenguaje dbgrdResultadoConsulta dblstTipoTarea dirOrigen

70

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 5

Cuadro de lista de unidades Cuadro de lista de archivos Formulario Marco Medidor Grfico Cuadrcula Barra de desplazamiento horizontal Imagen (Image) Estado de tecla Etiqueta Lnea Cuadro de lista Mensaje MAPI Sesin MAPI MCI Formulario MDI secundario Men MS Flex Grid MS Tab ActiveX Esquema Pen Bedit Pen Hedit Trazo de pluma Imagen (Picture) Clip de imagen Informe Forma Cuadro de nmero Cuadro de texto Cronmetro Arriba-abajo Barra de desplazamiento vertical Control deslizante Lista de migenes Vista de rbol Barra de herramientas TabStrip Barra de estado Lista Barra de progreso

drv fil frm fra gau gra grd hsb img key lbl lin lst mpm mps mci mdi mnu msg mst ole out bed hed ink pic clp rpt shp spn txt tmr upd vsb sld ils tre tlb tab sta lvw prg

drvDestino filOrigen frmEntrada fraLenguaje gauEstado graIngresos grdPrecios hsbVolumen imgIcono keyMaysculas lblMsjAyuda linVertical lstCdigosDePoltica mpmEnviarMsj mpsSesin mciVdeo mdiNota mnuArchivoAbrir msgClientes mstPrimero oleHojaDeTrabajo outDiagramaDeOrg bedNombre hedFirma inkMapa picVGA clpBarraDeHerramientas rptGananciasTrimestre1 shpCrculo spnPginas txtApellido tmrAlarma updDireccin vsbVelocidad sldEscala ilsTodosLosIconos treOrganizacin tlbAcciones tabOpciones staFechaHora lvwEncabezados prgCargarArchivo

RichTextBox

rtf

rtfInforme

Prefijos sugeridos para los objetos de acceso a datos (DAO) Objeto de base de datos Contenedor Base de datos Motor de base de datos Documento Prefijo con db dbe doc Ejemplo conInformes dbCuentas dbeJet docInformeVentas
71

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Captulo 5

Visual Basic

Campo Grupo ndice Parmetro Definicin de consulta Conjunto de registros Relacin Definicin de tabla Usuario Espacio de trabajo Prefijos sugeridos para mens Secuencia del ttulo del men Archivo Abrir Archivo Enviar correo Archivo Enviar fax Formato Carcter Ayuda Contenido Prefijos de alcance de variables Alcance Global Nivel de mdulo Local del procedimiento Tipos de datos de variables Tipo de datos Boolean Byte Objeto Collection Currency Date (Time) Double Error Integer Long Object Single String Tipo definido por el usuario Variant

fld grp idx prm qry rec rel tbd usr wsp

fldDireccin grpFinanzas idxEdad prmCdigoTarea qryVentasPorRegin recPrevisin relDeptDeEmpleados tbdClientes usrNuevo wspMo

Nombre del controlador del men mnuArchivoAbrir mnuArchivoEnviarCorreo mnuArchivoEnviarFax mnuFormatoCarcter mnuAyudaContenido

Prefijo g m Ninguno

Ejemplo gstrNombreUsuario mblnProgresoDelClculo dblVelocidad

Prefijo bln byt col cur dtm dbl err int lng obj sng str udt vnt

Ejemplo blnEncontrado bytDatosImagen colWidgets curIngresos dtmInicio dblTolerancia errNmDeOrden intCantidad lngDistancia objActivo sngMedia strNombreF udtEmpleado vntCheckSum

Nombres descriptivos de variables y procedimientos El cuerpo de un nombre de variable o procedimiento se debe escribir en maysculas y minsculas y debe tener la longitud necesaria para describir su funcionalidad. Adems, los nombres de funciones deben empezar con un verbo, como IniciarNombreMatriz o CerrarDilogo.

72

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 5

Para nombres que se usen con frecuencia o para trminos largos, se recomienda usar abreviaturas estndar para que los nombres tengan una longitud razonable. Cuando se usen abreviaturas, hay que asegurarse de que sean coherentes en toda la aplicacin. Alternar aleatoriamente entre Cnt y Contar dentro de un proyecto provoca una confusin innecesaria.

Tipos definidos por el usuario En un proyecto grande con muchos tipos definidos por el usuario, suele ser til dar a cada uno de estos tipos un prefijo de tres caracteres personal. Si estos prefijos comienzan con "u", ser fcil reconocerlos cuando se est trabajando con tipos definidos por el usuario. Por ejemplo, ucli se podra usar como prefijo para las variables de un tipo Cliente definido por el usuario.

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

73

Captulo 6

Visual Basic

Captulo 6 Controles Estndard

74

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 6

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

75

Captulo 6

Visual Basic

6.1.- INTRODUCCIN
Los controles se utilizan para obtener datos y presentar resultados. Entre los controles que se pueden utilizar en las aplicaciones se incluyen los cuadros de texto, los botones de comando y los cuadros de lista. Cada control tiene su propio conjunto de propiedades, mtodos y eventos. Categoras de controles Hay tres categoras generales de controles en Visual Basic: Controles intrnsecos, como los controles de botn de comando y de marco. Estos controles se encuentran dentro del archivo .exe de Visual Basic. Los controles intrnsecos estn siempre incluidos en el cuadro de herramientas, no como los controles ActiveX y los objetos insertables, que se pueden quitar o agregar al cuadro de herramientas. Controles ActiveX, que existen como archivos independientes con extensin de nombre de archivo .ocx. Entre stos se incluyen los controles disponibles en todas las ediciones de Visual Basic (controles cuadrcula, cuadro combinado, etc). Tambin se encuentran disponibles muchos controles ActiveX de otros fabricantes. Objetos insertables, como un objeto Calendar de Microsoft Project que contiene la informacin del calendario de un proyecto. Puesto que estos objetos se pueden agregar al cuadro de herramientas, se les considera controles. Algunos de estos objetos tambin aceptan Automatizacin (OLE), que permite programar objetos de otra aplicacin desde una aplicacin de Visual Basic.

Valor de un Control (Propiedad Implcita) Todos los controles tienen una propiedad que se puede utilizar para almacenar u obtener valores mediante una referencia al control, sin mencionar el nombre de la propiedad. Esto se denomina valor del control y normalmente es la propiedad ms importante o la ms frecuentemente utilizada del control. Control Casilla de verificacin Cuadro combinado Botn de comando Dilogo comn Datos Cuadro combinado enlazado a datos Cuadrcula enlazada a datos Cuadro de lista enlazado a datos Cuadro de lista de directorios Cuadro de lista de unidades Cuadro de lista de archivos Marco Barra de desplazamiento horizontal Imagen Etiqueta Lnea Cuadro de lista Botn de opcin Cuadro de imagen Propiedad Value Text Value Action Caption Text Text Text Path Drive FileName Caption Value Picture Caption Visible Text Value Picture

76

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 6

Forma Cuadro de texto Cronmetro Barra de desplazamiento vertical

Shape Text Enabled Value

Por ejemplo, esta lnea de cdigo establece la propiedad Caption de un control de Etiqueta: lblTitulo = "Visual Basic 6.0"

6.2.- BOTONES (COMMANDBUTTON)


El control Botn se usa para ejecutar un proceso. Cuando se hace clic en l, se ejecuta el cdigo escrito en el procedimiento de evento Click. PROPIEDADES Caption Establece el texto que aparece sobre el botn

Creacin de mtodos abreviados de teclado Se puede utilizar la propiedad Caption para crear teclas de acceso directo en los botones de comando si se inserta un carcter & delante de la letra que quiere utilizar como tecla de acceso directo. Ejemplo: cmdBoton.Caption= &Ver La V aparecer subrayada en el botn. Si se pulsa la combinacin ALT+V se seleccionar el botn. Default y Cancel En cada formulario, se puede hacer que un botn de comando sea el botn de comando predeterminado; es decir, siempre que el usuario presione la tecla ENTRAR, el botn de comando recibir el clic independientemente del control que tenga el enfoque dentro del formulario. Para especificar un botn de comando como el predeterminado, hay que establecer la propiedad Default a True. Paralelamente se puede establecer un botn de cancelacin predeterminado. Cuando la propiedad Cancel de un botn de comando es True, ste recibir un clic cuando el usuario presione la tecla ESC, independientemente del control que tenga el enfoque dentro del formulario. Value Cuando se selecciona un botn de comando, su propiedad Value se establece a True y se desencadena su evento Click. El valor False (predeterminado) indica que el botn no est seleccionado. Se puede utilizar la propiedad Value en el cdigo para desencadenar el evento Click de un botn de comando. Por ejemplo:

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

77

Captulo 6

Visual Basic

cmdEjecutar.Value = True Style, Picture, DownPicture y DisabledPicture

Mejoras visuales para el control CommandButton Puede mejorar la apariencia del control CommandButton, al igual que la de los controles CheckBox y OptionButton, si altera el valor de la propiedad Style y utiliza despus las propiedades Picture, DownPicture y DisabledPicture. Por ejemplo, puede que desee agregar un icono o un mapa de bits a un botn de comando o presentar una imagen diferente cuando se hace clic en el control o cuando est deshabilitado. EVENTOS Click Cuando se hace clic en un botn de comando, se desencadena el evento Click y se ejecuta el cdigo escrito en el procedimiento de evento Click. Al hacer clic en un botn de comando tambin se generan los eventos MouseDown y MouseUp. Si se van a adjuntar procedimientos para estos eventos relacionados, hay que asegurarse de que sus acciones no entren en conflicto. El orden en que ocurren estos tres eventos vara de un control a otro. En el control CommandButton, dichos eventos ocurren en este orden: MouseDown, Click, MouseUp.

6.3.- ENTRADA/SALIDA DE DATOS


6.3.1.- FUNCIN INPUTBOX
Presenta una ventana de dilogo para que el usuario introduzca un valor. Devuelve un tipo String. Sintaxis InputBox(prompt[, title][, default][, xpos][, ypos][, helpfile, context]) prompt: Mensaje que se muestra en el cuadro de dilogo. La longitud mxima de prompt es de aprox. 1024 caracteres. Si se quiere escribir ms de una lnea se puede hacer el avance de lnea (Chr(10)) o Chr(13) y Chr(10)) . Es Obligatorio. title: Indica el ttulo que se muestra en la barra de ttulo del cuadro de dilogo. Si omite, aparece el nombre de la aplicacin. default: Indica el valor por defecto que se mostrar en el cuadro de texto dnde se pide el dato a introducir, si omite se muestra vaco. xpos, ypos: posicin (en twips) dnde va a aparecer la ventana de inputbox, se indica la distancia desde la esquina superior de la pantalla. Si se omite cualquiera de ellos, se centrar vertical y/o horizontalmente en la pantalla. helpfile, context: Permite aadir ayuda a la ventana de inputbox. El tema de las Ayudas se estudiar ms adelante.

78

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 6

Nota: Si el usuario hace clic en Cancelar, la funcin devuelve una cadena de caracteres de longitud cero ("").

Ejemplo InputBox

Cdigo de llamada a la funcin InputBox Dim strCiudad As String strCiudad = InputBox("Datos Personales" & Chr(10) & "Ciudad:", "Clientes", "A Corua") Resultado

6.3.2.- FUNCION MSGBOX


Muestra un mensaje en un cuadro de dilogo y espera a que el usuario haga clic en un botn para terminar. Sintaxis MsgBox(prompt[, buttons][, title][, helpfile, context]) prompt: Mensaje que se muestra en el cuadro de dilogo. La longitud mxima de prompt es de aprox. 1024 caracteres. Si se quiere escribir ms de una lnea se puede hacer el avance de lnea (Chr(10)) o Chr(13) y Chr(10)) . Es Obligatorio. buttons: Nmero que se calcula sumando varios valores que van a especificar cuantos botones y de que tipo pretenden mostrar, el estilo de icono, cul ser el botn por defecto y la modalidad de la ventana de mensaje. El valor por defecto es 0

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

79

Captulo 6

Visual Basic

Tabla de valores Constante vbOKOnly VbOKCancel VbAbortRetryIgnore VbYesNoCancel VbYesNo VbRetryCancel VbCritical VbQuestion VbExclamation VbInformation VbDefaultButton1 VbDefaultButton2 VbDefaultButton3 VbDefaultButton4 VbApplicationModal VbSystemModal Valor Descripcin Muestra solamente el botn Aceptar. Muestra los botones Aceptar y Cancelar. Muestra los botones Anular, Reintentar e Ignorar. Muestra los botones S, No y Cancelar. Muestra los botones S y No. Muestra los botones Reintentar y Cancelar. Muestra el icono de mensaje crtico. Muestra el icono de pregunta de advertencia. Muestra el icono de mensaje de advertencia. Muestra el icono de mensaje de informacin. El primer botn es el predeterminado. El segundo botn es el predeterminado. El tercer botn es el predeterminado. El cuarto botn es el predeterminado. Aplicacin modal; el usuario debe responder al cuadro de mensajes antes de poder seguir trabajando en la aplicacin actual. 4096 Sistema modal; se suspenden todas las aplicaciones. hasta que el usuario responda al cuadro de mensajes 0 1 2 3 4 5 16 32 48 64 0 256 512 768 0

El primer grupo de valores (0 a 5) indica cuntos y el tipo de los botones mostrados en el cuadro de dilogo; el segundo grupo (16, 32, 48, 64) describe el estilo del icono, el tercer grupo (0, 256, 512) determina el botn predeterminado y el cuarto grupo (0, 4096) determina la modalidad del cuadro de mensajes. Para obtener el valor para el argumento buttons se debe sumar solamente un valor de cada grupo. title: Indica el ttulo que se muestra en la barra de ttulo del cuadro de dilogo. Si omite, aparece el nombre de la aplicacin. helpfile, context: Permite aadir ayuda a la ventana de inputbox. El tema de las Ayudas se estudiar ms adelante. Nota: MsgBox (si se utiliza como funcin). devuelve un valor indicando el botn que se ha pulsado. Lista de valores posibles: Constante vbOK vbCancel vbAbort vbRetry vbIgnore vbYes vbNo Valor 1 2 3 4 5 6 7 Descripcin Aceptar Cancelar Anular Reintentar Ignorar S No

80

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 6

Ejemplo MsgBox

Cdigo Dim intRes As Integer intRes = MsgBox("Desea Continuar?", vbYesNo + vbCritical + vbDefaultButton2, "Control de Datos") If intRes = vbYes Then MsgBox "Ha elegido SI" Else MsgBox "Ha elegido NO" End If Resultado

6.3.3.- ETIQUETAS (LABEL)


Los controles Label se utilizan para presentar texto. El usuario no puede modificarlos. PROPIEDADES Caption: Indica el texto que se mostrar en la etiqueta. Puede tener una longitud mxima de 1024 bytes. Alignment: permite establecer la alineacin del texto dentro del control Label (izquierda, centro, derecha). AutoSize y WordWrap: De forma predeterminada, cuando el texto escrito en la propiedad Caption sobrepasa el ancho del control, el texto se ajusta a la lnea siguiente y se recorta si sobrepasa el alto del control. Para permitir que el control se ajuste automticamente al tamao del contenido, establecer la propiedad AutoSize a True. Para permitir que el contenido pase a la lnea siguiente y se expanda verticalmente, establezca la propiedad WordWrap a True.

NOTA El control Label no puede recibir el enfoque


Este manual ha sido desarrollado por el departamento tcnico de DELTA PC 81

Captulo 6

Visual Basic

6.3.4.- CAJAS DE TEXTO (TEXTBOX)

El control TextBox se utiliza para presentar/pedir informacin. PROPIEDADES Text: Establece el contenido de la caja de texto. Por defecto permite escribir hasta 2048 caracteres. En el caso de que tenga la propiedad Multiline a True puede almacenar hasta 32 Kb. de texto.

Locked: Si est a True no permite que se modifique su contenido. Por defecto est a False. Permite cambiar el contenido mediante programa, no por el usuario directamente. Multiline: Permite escribir el contenido en varias lneas. ScrollBars: Es caso de establecer la propiedad Multiline a True se pueden agregar barras de desplazamiento (Horizontal, Vertical o ambas). En este caso no estar disponible el ajuste automtico de texto. Alignment: Permite alinear el texto. Solo ser efectivo si la propiedad Multiline est a True. SelStart, SelLength y SelText: Permiten controlar el comportamiento del punto de insercin y el modo de seleccin de los cuadros de texto. SelStart indica la posicin de comienzo de la seleccin; SelLength indica la longitud de la seleccin; y SelText almacena el texto seleccionado. PasswordChar: Especifica el carcter presentado en el cuadro de texto. As permite almacenar texto sin que se muestre en pantalla. MaxLength: Limita el nmero mximo de caracteres que se pueden introducir en un cuadro de texto.

EVENTOS KeyPress: Este suceso ocurre cuando se introduce un carcter ASCII. Este suceso utiliza el argumento KeyAscii el cual contiene el valor ASCII del carcter. Incluye el conjunto de caracteres ANSI, las combinaciones Ctrl+(A-Z) y otros caracteres como Enter (ASCII 13) y BackSpace (ASCII 8). Para interceptar cualquier otra tecla o combinacin de teclas que no produzcan un cdigo ASCII, se debern utilizar los sucesos KeyDown y KeyUp. El valor almacenado en el parmetro KeyAscii puede ser convertido a un carcter utilizando la funcin Chr$ y puede ser comparado utilizando los operadores de relacin (=,<,>,<=,>=,<>). Otras funciones relacionadas con caracteres son: - Asv(c$): devuelve el valor ASCII del carcter c$ - Ucase$(c$): convierte el carcter c$ a maysculas. Ejemplo: Sub Car_KeyPress (KeyAscii As Integer) c$ = Chr$(KeyAscii) Convierte a carcter
82

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 6

c$ = Ucase$(c$) KeyAscii = Asc (c$) End Sub

Convierte a mayscula Convierte a valor ASCII

Ejemplo: Cancela un carcter si no est en el rango permitido: Sub Text1_KeyPress (KeyAscii As Integer) c$ = Chr$(KeyAscii) Convertir a carcter If c$ < 0" Or c$ > 9" Then Si fuera de rango KeyAscii = 0 cancelar carcter Beep Pitido End If End Sub KeyDown y KeyUp: Estos sucesos utilizan los argumentos KeyCode y Shift. El primer argumento contiene el cdigo ANSI de la tecla pulsada y el segundo argumento contiene un valor: - 1 : si se ha pulsado Shift - 2 : si se ha pulsado Ctrl - 4: si se ha pulsado Alt - 0: si no se ha pulsado ninguna de estas teclas - valor suma de las anteriores: si se han pulsado dos o ms teclas simultneamente Los sucesos KeyDown y KeyUp no hacen distincin entre minsculas y minsculas, para hacer dicha distincin habr que ver si el argumento Shift es 0 (minscula) o 1 (mayscula)

6.3.4.1.-

Formatos de Salida Formatos para Nmeros

6.3.4.1.1.-

Si se desea presentar en una caja de texto un valor numrico, una forma de hacerlo es utilizar la funcin Str$ para convertirlo en una cadena de caracteres y asignar esta cadena a la propiedad Text de la caja de texto. Por ejemplo: TResultado.Text = Str$(Importe) La funcin Format$ realiza la misma operacin que Str$, pero adems da formato a la salida de acuerdo con el patrn especificado: Smbolo # 0 % -+$() y espacio Ejemplos: Patrn Entrada: 5 Entrada: -5 Entrada: .5 Descripcin Representa un dgito cualquiera, excepto los ceros no significativos. Representa un dgito cualquiera, incluyendo los ceros no significativos y adems redondea el resultado. Presenta el valor por 100 y aade ese smbolo al resultado. Estos smbolos se visualizan tal cual.

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

83

Captulo 6

Visual Basic

Sin Patrn 0 0.00 #,##0 #,##0.00 #,###.## 0% 0.00% 0.00E+00 0.00E-00

5 5 5,00 5 5,00 5, 500% 500,00% 5,00E+00 5,00E00

-5 -5 -5,00 -5 -5,00 -5, -500% -500,00% -5,00E+00 -5,00E00

,5 1 0,50 1 0,50 ,5 50% 50,00% 5,00E-01 5,00E-01

Nota: Si se utiliza una versin de Windows con idioma espaol, al utilizar Format$ un pto. Decimal en la entrada o en el patrn es convertido a coma decimal y la coma de los miles es convertida en pto. Esta conversin no tiene lugar si utiliza Str$ en vez de Format$.

6.3.4.1.2.-

Formatos para Fechas y Horas

La funcin Now obtiene la fecha y la hora del sistema. Para visualizar la fecha y la hora se puede utilizar la funcin Format$ con distintos patrones. Smbolos especiales: d m y h m s da mes ao horas minutos segundos

Ejemplos: Patrn d-m-y dd/mm/yy dd-mmmm-yyyy d-mmm m-yyyy dddd dd mmm m - yyyy h:m:m, d-mmm-yy hh:mm:ss AM/PM, dd-mmm-yyyy Format$(Now,Patrn) 16-1-96 16/01/96 16-Enero-1996 15-Ene 1-1996 Jueves 16 - Ene 1 - 1996 20:25:45, 16-Ene-96 20:25:45 PM, 16-Ene-1996

Si se desea que al ejecutar la aplicacin la fecha aparezca en su caja de texto se beber colocar el siguiente cdigo: Sub Form_Load () Fecha.Text = Format$(Now, dddd dd-mmm-yyyy) End sub

Nota: Uno de los sucesos que ocurre cuando una aplicacin se ejecuta es el suceso Load debido a la carga del formulario con el que arranca la aplicacin
84 Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 6

CONVERSIN DE TEMPERATURAS

Programa: Presenta la fecha del sistema y permite cambiar de grados centgrados a grados fharenheit y viceversa. Objetos:
Objeto= Label Name=lblFecha BorderStyle=1-Fixed

Objeto= TextBox Name=txtGradosF Text=0 Objeto= TextBox Name=txtGradosC Text=0

Objeto= CommandButton Name=cmdInc_GF Caption=+1

Objeto= CommandButton Name=cmdInc_GC Caption=+1

Objeto= CommandButton Name=cmdSalir Caption=Salir

Cdigo Private Sub cmdInc_GC_Click() txtGradosC = Format$(Val(txtGradosC) + 1, "#,##0.00") txtGradosC_KeyPress 13 End Sub Private Sub cmdInc_GF_Click() txtGradosF = Format$(Val(txtGradosF) + 1, "#,##0.00") txtGradosF_KeyPress 13 End Sub Private Sub cmdSalir_Click() End End Sub Private Sub Form_Load() lblFecha = Format$(Now, "ddd dd/mmm/yyyy") End Sub Private Sub txtGradosC_KeyPress(KeyAscii As Integer) Dim GF As Double If KeyAscii = 13 Then 'si se pulsa el Enter

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

85

Captulo 6

Visual Basic

GF = Val(txtGradosF) * 9 / 5 + 32 txtGradosF = Format$(GF, "#,##0.00") End If End Sub Private Sub txtGradosF_KeyPress(KeyAscii As Integer) Dim GC As Double If KeyAscii = 13 Then 'si se pulsa el Enter GC = (Val(txtGradosC) - 32) * 5 - 9 txtGradosC = Format$(GC, "#,##0.00") End If End Sub

6.3.5.- ENTRADA FORMATEADA (MASKEDBOX)


El control Masked Edit proporciona una entrada de datos restringida as como un resultado de datos con formato. Este control es del tipo Active X. Para incluirlo se deber hacerlo a travs del men Proyecto/Componentes y elegir: Microsoft Masked Edit Control 6.0. El control Masked Edit generalmente se comporta como un cuadro de texto estndar con mejoras opcionales de mscara de entrada y de salida con formato. Nombre de archivo MSMASK32.OCX PROPIEDADES Mask: A travs de esta propiedad se define una mscara de entrada. Cada posicin de carcter del control Masked Edit se asigna a un marcador de posicin de un tipo especfico o a un carcter literal. Si se intenta especificar un carcter que entra en conflicto con la mscara de entrada, el control generar un evento ValidationError. La mscara de entrada le impide especificar caracteres no vlidos en el control. Caracteres Especiales: #: Cualquier dgito numrico ?: Cualquier letra A: Cualquier dgito o letra &: Cualquier smbolo Text: Establece el contenido del control. Si se establece la propiedad Text de modo que entre en conflicto con la mscara de entrada, el control generar un error en tiempo de ejecucin. Format: Aqu se especifica el formato para mostrar nmeros, fechas, horas y texto. PromptInclude: Si vale True hace que la propiedad Text contenga los datos ms la plantilla, en caso contrario Text solo contendr los datos. Por defecto est a True. FormattedText: incluye siempre los datos con la mscara.

86

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 6

PromptChar: especifica el carcter que se va a presentar en las posiciones de entrada de datos. Por defecto es _ .

Entrada Formateada

Objetos:
Objeto=MaskEdBox Name=mskNombre Mask=Nombre : ???????????????????? MaxLength=29

Objeto=MaskEdBox Name=mskEdad Mask=Ed\ad : ## MaxLength=9

Objeto=MaskEdBox Name=mskTelefono Mask=Telfono : (###)-##.##.## MaxLength=25

Cdigo: Private Sub mskEdad_ValidationError(InvalidText As String, StartPosition As Integer)

MsgBox ("Ha introducido el carcter invlido '" & Mid(InvalidText, StartPosition + 1, 1) & "'")
End Sub

6.3.6.- DESCRIPCIN DEL ENFOQUE


El enfoque es la capacidad de recibir entradas del usuario a travs del mouse o del teclado. Cuando un objeto tiene el enfoque, puede recibir entradas del usuario. En un formulario de Visual Basic con varios cuadros de texto, slo el cuadro de texto que tiene el enfoque mostrar el texto escrito desde el teclado. Los eventos GotFocus y LostFocus se producen cuando un objeto recibe o pierde el enfoque. Los formularios y la mayora de los controles admiten estos eventos. GotFocus: se produce cuando un objeto recibe el enfoque. LostFocus: se produce cuando un objeto pierde el enfoque. El procedimiento de evento LostFocus se usa principalmente para actualizaciones de comprobacin y validacin, o para invertir o modificar las condiciones establecidas en el procedimiento GotFocus del objeto.

Formas de dar el enfoque a un objeto:

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

87

Captulo 6

Visual Basic

Seleccionar el objeto en tiempo de ejecucin. Usar una tecla de mtodo abreviado para seleccionar el objeto en tiempo de ejecucin. Usar el mtodo SetFocus en el cdigo.

Notas: Un objeto slo puede recibir el enfoque si sus propiedades Enabled y Visible estn establecidas a True. Los marcos, etiquetas, mens, lneas, formas, imgenes y cronmetros no pueden recibir el enfoque.

6.3.7.- CONFIGURACIN DEL ORDEN DE TABULACIN


El orden de tabulacin es el orden en que un usuario se mueve de un control a otro presionando la tecla TAB. Por defecto, el orden de tabulacin es igual al orden en que se han creado los controles. Para cambiar el orden de tabulacin de un control, hay que establecer la propiedad TabIndex. TabIndex: esta propiedad determina el lugar que ocupa en el orden de tabulacin. De forma predeterminada, el primer control dibujado tiene un valor TabIndex de 0, el segundo un valor TabIndex de 1, etc.. La numeracin comienza en 0. Quitar un control del orden de tabulacin TabStop: Al presionar la tecla TAB en tiempo de ejecucin se selecciona cada control del orden de tabulacin. Puede quitar un control del orden de tabulacin si establece su propiedad TabStop a False(0) . Un control cuya propiedad TabStop se ha establecido a False sigue manteniendo su posicin en el orden de tabulacin actual, aunque el control se salta al ir de un control a otro con la tecla TAB. Notas Un grupo de botones de opcin tiene una nica tabulacin. El botn seleccionado (es decir, el botn cuya propiedad Value es True) tiene la propiedad TabStop establecida automticamente a True, mientras que los dems botones tienen la propiedad TabStop establecida a False. Los controles que no pueden obtener el enfoque, al igual que los controles desactivados o invisibles, no tienen una propiedad TabIndex y no estn incluidos en el orden de tabulacin. Cuando el usuario presiona la tecla TAB, estos controles se saltan.

88

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 6

TANTO POR CIENTO

Objetos:

Objeto= TextBox Name= txtImporte Text=0 Objeto= TextBox Name= txtPorcentaje Text=0

Objeto= CommandButton Name= cmdSalir Caption=Salir

Objeto= CommandButton Name= cmdIncPor Caption=+1%

Cdigo: Private Sub Calcular() 'Procedimiento general para calcular el total lblTotal = Format$(Val(txtImporte) * (1 + Val(txtPorcentaje) / 100), "#,##0") End Sub Private Sub cmdIncPor_Click() txtPorcentaje = Str$(Val(txtPorcentaje) + 1) Calcular cmdSalir.SetFocus End Sub Private Sub cmdSalir_Click() End End Sub Private Sub txtImporte_GotFocus() 'Seleccionar todo el contenido al recibir el enfoque txtImporte.SelStart = 0 txtImporte.SelLength = Len(txtImporte) End Sub Private Sub txtImporte_KeyPress(KeyAscii As Integer) 'si Enter: calcular y pasar el enfoque al siguiente If KeyAscii = 13 Then Calcular
Este manual ha sido desarrollado por el departamento tcnico de DELTA PC 89

Captulo 6

Visual Basic

txtPorcentaje.SetFocus End If End Sub Private Sub txtImporte_LostFocus() If Not IsNumeric(txtImporte) Then 'en caso de que no sea un nmero MsgBox "Error: El importe debe ser numrico", vbCritical txtImporte = 0 'establecer valor por defecto txtImporte.SetFocus 'enfocar otra vez el control End If End Sub Private Sub txtPorcentaje_GotFocus() 'Seleccionar todo el contenido al recibir el enfoque txtPorcentaje.SelStart = 0 txtPorcentaje.SelLength = Len(txtPorcentaje) End Sub Private Sub txtPorcentaje_KeyPress(KeyAscii As Integer) 'si Enter: calcular y pasar el enfoque al siguiente If KeyAscii = 13 Then Calcular cmdIncPor.SetFocus End If End Sub Private Sub txtPorcentaje_LostFocus() If Not IsNumeric(txtPorcentaje) Then 'en caso de que no sea un nmero MsgBox "Error: El porcentaje debe ser numrico", vbCritical txtPorcentaje = 0 'establecer valor por defecto txtPorcentaje.SetFocus 'enfocar otra vez el control End If End Sub

6.4.- CONTROLES PARA OPCIONES DE USUARIO


6.4.1.- FRAMES
Los controles Frame se utilizan para agrupar otros controles. Se pueden utilizar para subdividir la funcionalidad de un formulario, por ejemplo, para separar grupos de controles OptionButton. Las propiedades ms sobresalientes son: Name, Caption y Font. Tambin responde a una serie de eventos, aunque no sea usual su uso. Colocacin de controles dentro del marco o frame Para agregar otros controles al marco, seleccionar primero el marco y luego aadir los controles para que queden dentro de ste, y as, si se mueve el marco los controles se movern con l.

6.4.2.- CHECKBOX

90

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 6

El control CheckBox presenta una marca de verificacin(Activo/Desactivo). Se suelen utilizar los controles CheckBox en grupos para presentar varias opciones entre las que el usuario pueda seleccionar una o varias. Con los controles CheckBox se puede activar cualquier nmero de casillas de verificacin. (a diferencia de los OptionButton, que solo permiten una) PROPIEDADES Value: esta propiedad indica si la casilla de verificacin est activada, desactivada o no disponible (atenuada). Valor 0 1 2 Constante vbUnchecked vbChecked vbGrayed

Estado Desactivada Activada No disponible

NOTAS: El evento Clic del control CheckBox tambin se desencadena cuando se cambia el enfoque al control mediante el teclado, con la tecla TAB y la tecla BARRA ESPACIADORA. Se puede alternar la seleccin de la casilla de verificacin si se inserta un carcter & delante de una letra en la propiedad Caption para crear una tecla de acceso directo. Mejoras visuales para el control CheckBox El control CheckBox, al igual que los controles CommandButton y OptionButton, puede mejorar su apariencia si modifica el valor de la propiedad Style y utiliza despus las propiedades Picture, DownPicture y DisabledPicture.

Ejemplo de CheckBox

Objetos:

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

91

Captulo 6

Visual Basic

Objeto=Frame Caption=Opciones

Objeto=CheckBox Name=chkCD Caption=&CD-ROM Objeto=CheckBox Name=chkAudio Caption=&Adaptador de audio Objeto=CheckBox Name=chkMIDI Caption=&Salidas MIDI Objeto=CheckBox Name=chkMPEG Caption=&MPEG Objeto=TextBox Name=txtEquipo Text= Objeto=CommandButton Name=cmdVale Caption=&Vale Default=True

Cdigo: Private Sub cmdVale_Click() Dim Cadena As String, Separador As String Cadena = "Ordenador con " Separador = "" If chkCD.Value = 1 Then Cadena = Cadena & "CD-ROM": Coma = " - " If chkAudio.Value = 1 Then Cadena = Cadena & Coma & "tarjeta de sonido":Coma= "- " If chkMIDI.Value = 1 Then Cadena = Cadena & Coma & "conexin MIDI": Coma= " - " If chkMPEG.Value = 1 Then Cadena = Cadena & Coma & "MPEG" txtEquipo.Text = Cadena End Sub

6.4.3.- OPTIONBUTTON
Los controles OptionButton se utilizan para presentar opciones, normalmente en grupos de botones de opcin, entre los que el usuario puede elegir uno. Creacin de grupos de botones de opcin

92

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 6

Objeto= OptionButton Name=optP486 Caption=486 100Mhz Value=True Objeto= OptionButton Name=optPentium66 Caption=Pentium 66Mhz Objeto= OptionButton Name=optPentium100 Caption=Pentium 100Mhz Objeto= OptionButton Name=optMB4 Caption=4 Mb Objeto= OptionButton Name=optMB8 Caption=8 Mb Objeto= OptionButton Name=optMB16 Caption=16 Mb Objeto= OptionButton Name=optDisco420 Caption=420 Mb

Objeto= Frame Caption=Disco

Objeto= Frame Caption=Memoria

Objeto= Frame Caption=Procesador

Objeto= OptionButton Name=optDisco730 Caption=730 Mb Objeto= OptionButton Name=optDisco1Gb Caption=1.1 Gb Objeto= CommandButton Name=cmdSeleccionar Caption=&Seleccionar Default=True

Objeto= TextBox Name=txtEquipo Caption= TabStop=False Multiline=True

Los controles OptionButton se agrupan al dibujarlos en un contenedor, como un control Frame, un control PictureBox o un formulario. En tiempo de ejecucin, el usuario puede seleccionar un nico botn de opcin en cada grupo de botones de opcin distinto. PROPIEDADES Value: indica si el botn de opcin est seleccionado. Cuando est seleccionado, su valor cambia a True. Enabled: sirve para deshabilitar un botn de. En tiempo de ejecucin, el botn de opcin aparecer atenuado, lo que significa que no est disponible. NOTAS Mejoras visuales del control OptionButton. Se puede mejorar la apariencia del control OptionButton si se modifica la propiedad Style y las propiedades Picture, DownPicture y DisabledPicture.

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

93

Captulo 6

Visual Basic

Ejemplo de OptionButton

Objetos:
Cdigo: Private Sub cmdSeleccionar_Click() Dim Cadena As String Dim Memoria As Integer Cadena = "Equipo compuesto por procesador " If optP486 Then Cadena = Cadena & "486 a 100Mhz" Else If optPentium66 Then Cadena = Cadena & "Pentium a 66Mhz" Else Cadena = Cadena & "Pentium a 100 Mhz" Cadena = Cadena & ", " If optMB4 Then Memoria = 4 Else If optMB8 Then Memoria = 8 Else Memoria = 16 Cadena = Cadena & Memoria & " Mb de memoria RAM y disco de " If optDisco420 Then Memoria = 420 Else If optDisco730 Then Memoria = 730 Else Memoria = 1100 Cadena = Cadena & Memoria & " Mb." txtEquipo.Text = Cadena End Sub

6.4.4.- LISTBOX
Un control ListBox presenta una lista de elementos entre los que el usuario puede seleccionar uno o varios. Los cuadros de lista presentan al usuario una lista de opciones. De forma predeterminada, las opciones se presentan verticalmente en una nica columna, aunque tambin puede establecer mltiples columnas. Si el nmero de elementos excede de los que se pueden presentar en el cuadro de lista, aparecen automticamente barras de desplazamiento en el control. METODOS Agregar elementos a una lista Para agregar elementos a un cuadro de lista, utilice el mtodo AddItem, que tiene la siguiente sintaxis: cuadro.AddItem elemento[, ndice] cuadro: nombre del cuadro de lista. elemento: expresin de cadena que se agrega a la lista. ndice: especifica la posicin de la lista en la que se insertar el nuevo Elemento. Un ndice de 0 representa la primera posicin. Si se omite ndice, el elemento se inserta al final (o en el orden apropiado).

Ejemplo: Carga una lista (Name: lstLista)

94

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 6

Private Sub Form_Load () lstLista.AddItem "A Corua" lstLista.AddItem "Lugo" lstLista.AddItem "Orense" lstLista.AddItem "Pontevedra End Sub Nota: Tambin puede insertar elementos en la lista en tiempo de diseo si establece la propiedad List en la ventana Propiedades del control ListBox Agregar un elemento en una posicin determinada Para agregar un elemento a una lista en una posicin especfica, indique el valor del ndice del nuevo elemento. Por ejemplo: Aade Galicia en la primera posicin lstLista.AddItem "Galicia", 0 Nota: Slo puede agregar elementos al final de la lista. Por tanto, si se quiere ordenar alfabticamente la lista, hay que establecer la propiedad Sorted a True Quitar elementos de una lista Se puede utilizar el mtodo RemoveItem para quitar elementos de un cuadro de lista. RemoveItem tiene un argumento, ndice, que especifica el elemento que va a quitar: cuadro.RemoveItem ndice Por ejemplo, Lnea que elimina el primer elemento de la lista: lstLista.RemoveItem 0 Para quitar todas las entradas de una lista o de un cuadro combinado, se usa el mtodo Clear: lstLista.Clear PROPIEDADES Text: contiene el elemento seleccionado actualmente en el cuadro de lista Acceso a Sorted: indica si la lista se va a mantener automticamente ordenada (orden alfabtico) o no. List: proporciona acceso a todos los elementos de la lista. Esta propiedad contiene una matriz en la que cada elemento de la lista es un elemento de la matriz. Para hacer referencia a un elemento de la lista, usar la sintaxis: cuadro.List(ndice)
Este manual ha sido desarrollado por el departamento tcnico de DELTA PC 95

Captulo 6

Visual Basic

ListIndex. Esta propiedad establece o devuelve el ndice del elemento seleccionado actualmente en el control y slo est disponible en tiempo de ejecucin. El valor de esta propiedad es 0 si est seleccionado el primer elemento, 1 si el elemento seleccionado es el segundo y as sucesivamente. ListIndex es 1 si no hay ningn elemento seleccionado. NewIndex: permite hacer un seguimiento del ndice del ltimo elemento agregado a la lista. Esto puede ser til cuando inserta un elemento en una lista ordenada. ListCount :esta propiedad permite obtener el nmero de elementos de un cuadro de lista,. Columns: permite especificar el nmero de columnas de un cuadro de lista. Esta propiedad puede tener los valores siguientes: Descripcin Cuadro de lista de una nica columna con desplazamiento vertical. Cuadro de lista de una nica columna con desplazamiento horizontal. Cuadro de lista de mltiples columnas con desplazamiento horizontal.

Valor 0 1 >1

MultiSelect: controla la seleccin de mltiples elementos en los cuadros de lista estndar. Dicha propiedad puede tener los valores siguientes: Tipo de seleccin Ninguna Seleccin mltiple simple Seleccin mltiple extendida Descripcin Cuadro de lista estndar. Con un click o con la tecla BARRA ESPACIADORA se seleccionan o se anulan la seleccin de elementos adicionales de la lista. Con las combinaciones MAYUS+ click o MAYS+ una tecla de direccin se extiende la seleccin para incluir todos los elementos que estn entre la seleccin actual y la anterior. CTRL+ click selecciona o anula la seleccin de un elemento de la lista.

Valor 0 1 2

Ejemplo de ListBox

Objetos:

96

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 6

Objeto= ListBox Name=lstNombres Sorted=True

Objeto= TextBox Name=txtNombre

Objeto= label Name=lblSeleccionActual

Objeto= CommandButton Name=cmdAadir Caption=&Aadir default=True

Objeto= CommandButton Name=cmdEliminar Caption=&Eliminar

Objeto= CommandButton Name=cmdNueva Caption=&Nueva

Cdigo: Private Sub cmdAadir_Click() lstNombres.AddItem txtNombre.Text txtNombre.SelStart = 0 txtNombre.SelLength = Len(txtNombre.Text) End Sub Private Sub cmdEliminar_Click() If lstNombres.ListIndex >= 0 Then lstNombres.RemoveItem lstNombres.ListIndex End Sub Private Sub lstNombres_Click() lblSeleccionActual.Text = lstNombres.ListIndex & "-" & lstNombres.List (lstNombres.ListIndex) End Sub Private Sub cmdNueva_Click() lstNombres.Clear End Sub

6.4.5.- COMBOBOX
El control ComboBox permite que el usuario seleccione un elemento escribiendo texto en el cuadro de texto o seleccionndolo en la lista.

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

97

Captulo 6

Visual Basic

METODOS Tiene los mismos mtodos que ListBox PROPIEDADES Style: Especifica el estilo del cuadro combinado Hay tres estilos de cuadros combinados: Estilo Cuadro combinado desplegable Cuadro combinado simple Cuadro de lista desplegable Cuadro combinado desplegable El usuario puede escribir texto directamente (como en un cuadro de texto) o hacer click en la flecha de la parte derecha del cuadro combinado para abrir una lista de opciones. Cuadro combinado simple Especifica un cuadro combinado simple en el que la lista se presenta siempre. El usuario tambin puede escribir texto directamente o seleccionar una opcin de la lista. Cuadro combinado de lista desplegable Presenta una lista de elementos entre los que el usuario tiene que elegir. La principal diferencia entre este estilo y el cuadro combinado desplegable es que el usuario no puede escribir en el cuadro, slo puede seleccionar un elemento de la lista. El resto de las propiedades funcionan igual que en las listas: ListBox NOTA ListIndex vale 1 si no hay ningn elemento seleccionado o si el usuario escribe una opcin en el cuadro combinado (Style 0 1) en vez de seleccionar un elemento de la lista. Valor 0 1 2 Constante vbComboDropDown vbComboSimple vbComboDropDownList

Ejemplo de ComboBox

Objetos:

98

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 6

Objeto=ComboBox Name=cmbLista

Objeto=Label Name=lblEtiqueta

Cdigo: Private Sub cmbLista_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then cmbLista.AddItem cmbLista.Tex: cmbLista.SelStart = 0: cmbLista.SelLength = Len(cmbLista.Text) lblEtiqueta.Caption = "Hay " & cmbLista.ListCount & " elementos" End Sub

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

99

Captulo 6

Visual Basic

100

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 7

Captulo 7 Controles Varios

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

101

Captulo 7

Visual Basic

102

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 7

7.1.BARRAS VSCROLLBAR)

DE

DESPLAZAMIENTO

(HSCROLLBAR

Una barra de desplazamiento representa un valor entero. Cada barra de desplazamiento tiene un cuadro que se desplaza a lo largo de la misma para fijar un valor. La posicin ms a la izquierda o ms arriba (segn sea horizontal o vertical) se corresponde con el valor mnimo, la posicin ms a la derecha o ms abajo se corresponde con el valor mximo, y cualquier otra posicin es un valor entre estos dos. PROPIEDADES Min Max Value especifica el valor mnimo especifica el valor mximo representa el valor que determina la posicin del cuadro. (Valor actual).

LargeChange Cuando el usuario hace click encima o debajo del cuadro de desplazamiento ste se desplaza una cantidad fija, negativa o positiva, con respecto a la posicin actual. Este salto lo determina esta propiedad. SmallChange Cuando el usuario hace click en alguna de las flechas de los extremos de la barra, el cuadro de desplazamiento se mueve una cantidad fija , negativa o positiva, con respecto a la posicin actual. Este valor lo fija esta propiedad.

EVENTOS Change se produce despus de que el cuadro de desplazamiento haya sido movido. Scroll. Este suceso slo ocurre cuando el cuadrado se arrastra, no ocurre si se mueve haciendo click sobre la barra o sobre las flechas de los extremos.

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

103

Captulo 7

Visual Basic

EJEMPLO: CAJA DE COLORES


Objetos:
HScrollBar Name=hsbRojo Min=0 Max=255 SmallChange=1 LargeChange=20 HScrollBar Name=hsbVerde Min=0 Max=255 SmallChange=1 LargeChange=20 HScrollBar Name=hsbAzul Min=0 Max=255 SmallChange=1 LargeChange=20 Frame Caption=Color Personalizado

CommandButton Name=cmdCerrar Caption=Cerrar default=True

Frame Name=fraMuestra Caption=Muestra

Cdigo: Private Sub EstablecerColor() fraMuestra.BackColor = RGB(hsbRojo.Value, hsbVerde.Value, hsbAzul.Value) End Sub Private Sub cmdCerrar_Click() End End Sub Private Sub Form_Load() Dim Color As Long Color = Me.Point(0, 0) hsbRojo.Value = Color And &HFF& Color = Color \ 256 hsbVerde.Value = Color And &HFF& Color = Color \ 256 hsbAzul.Value = Color And &HFF&
104

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 7

fraMuestra.BackColor = Me.BackColor End Sub Private Sub hsbAzul_Change() EstablecerColor End Sub Private Sub hsbAzul_Scroll() EstablecerColor End Sub Private Sub hsbRojo_Change() EstablecerColor End Sub Private Sub hsbRojo_Scroll() EstablecerColor End Sub Private Sub hsbVerde_Change() EstablecerColor End Sub Private Sub hsbVerde_Scroll() EstablecerColor End Sub

7.2.- TIMER
El control Timer responde a intervalos de tiempo independientemente de que se est realizando otras operaciones. PROPIEDADES: Interval especifica el nmero de milisegundos transcurridos entre un evento del cronmetro y el siguiente. Enabled activa o desactiva el evento Timer. (para o arranca)

Notas Si cualquier aplicacin carga mucho al sistema, por ejemplo con bucles muy largos, clculos intensivos o acceso a unidades, a la red o a puertos, puede que una aplicacin no reciba los eventos Timer con la frecuencia especificada en la propiedad Interval. El intervalo puede estar entre 0 y 64.767, ambos inclusive, lo que significa que incluso

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

105

Captulo 7

Visual Basic

EJEMPLO: RELOJ

Objetos:
Label Name= lblReloj BorderStyle=Fixed Alignment=Center Caption=(nada)

Timer Name= tmrReloj Interval=1000 (Solo es visible en Diseo)

Cdigo: Private Sub tmrReloj_Timer() lblReloj = Format$(Time, "hh:mm:ss") End Sub

Ejercicio propuesto: Realizar un cronometro(Start, Stop y Pause) [Minutos, Segundos, Dcimas]

7.3.- CONTROLES PARA EXAMINAR EL SISTEMA DE ARCHIVOS


Para buscar un fichero por todo el disco, hay que elegir en una ventana la unidad de disco, despus en otra, elegir el directorio, y por ltimo, en la ventana de ficheros, elegir el nombre del fichero que se desea leer. Para realizar estas operaciones, Visual Basic tiene disponibles en la caja de herramientas tres controles: Lista de unidades de disco Lista de directorios Lista de ficheros

7.3.1.- LISTA DE UNIDADES (DRIVELISTBOX)


PROPIEDADES

106

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 7

Drive permite saber cul es la unidad actual. Propiedad solo disponible en tiempo de ejecucin. Un cambio de unidad de disco genera el suceso Change.

NOTA Cuando se elige una unidad de disco de la lista, la unidad de trabajo actual no cambia automaticamente. Si se desea hacerlo, se deber ejecutar la sentencia: ChDrive Drive1.Drive

7.3.2.- LISTA DE DIRECTORIOS (DIRLISTBOX)


PROPIEDADES Path devuelve el camino completo del directorio actual, incluyendo el nombre de la unidad. Propiedad solo disponible en tiempo de ejecucin. Un cambio de directorio actual genera el suceso PathChange

NOTA Cuando se elige una unidad de disco de la lista., la unidad de trabajo actual no cambia automticamente. Si se desea hacerlo, se deber ejecutar la sentencia: ChDir Dir1.Path

Identificacin de directorios individuales Cada directorio del cuadro tiene asociado un identificador entero que permite identificar directorios concretos. El directorio especificado por la propiedad Path (Dir1.Path) siempre tiene el valor 1 en ListIndex. El directorio inmediatamente superior a l tiene un valor de 2 en ListIndex, el superior a ste tiene 3 y as sucesivamente hasta el directorio raz. El primer subdirectorio de Dir1.Path tiene un valor de 0 en ListIndex. Si hay mltiples directorios en el nivel del primer subdirectorio, el siguiente tiene un valor de 1 en ListIndex, si hay ms en este nivel 2 y as sucesivamente.

7.3.3.- LISTA DE FICHEROS (FILELISTBOX)


PROPIEDADES FileName esta propiedad permite especificar el fichero que se quiere utilizar o devuelve el nombre del fichero seleccionado en la lista. Esta propiedad slo est disponible en tiempo de ejecucin. Ejemplo: NombreF$ = File1.FileName

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

107

Captulo 7

Visual Basic

Pattern esta propiedad de la lista de ficheros permite que se visualicen solamente los ficheros que cumplan el patrn especificado por sta. Se pueden establecer varios patrones separados por (;). Por ejemplo, *.mak; *.exe Multiselect esta propiedad permite seleccionar varios ficheros de la lista. Archive Normal Hidden permite visualizar archivos permite visualizar todos los ficheros menos los ocultos y los del sistema permite visualizar archivos ocultos

ReadOnly permite visualizar archivos con el atributo de solo lectura SetAttr Establece atributos.

GetAttr

Obtener atributos.

EJEMPLO: SELECCIN DE UN FICHERO

Objetos:
DirListBox Name= dirDirectorios

ComboBox Name= cmbPatrones

FileListBox Name= filFicheros

Label Name= lblFicheroSeleccionado

DriveListBox Name= drvUnidades

108

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 7

Cdigo: Private Sub cmbPatrones_Click() Select Case cmbPatrones.Text Case "Todos" filFicheros.Pattern = "*.*" Case "Ejecutables" filFicheros.Pattern = "*.exe; *.com; *.bat; *.pif" Case "Grficos" filFicheros.Pattern = "*.ico; *.bmp; *.wmf" End Select End Sub Private Sub cmbPatrones_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then filFicheros.Pattern = cmbPatrones.Text End If End Sub Private Sub dirDirectorios_Change() filFicheros.Path = dirDirectorios.Path End Sub Private Sub drvUnidades_Change() dirDirectorios.Path = drvUnidades.Drive End Sub Private Sub filFicheros_Click() lblFicheroSeleccionado = filFicheros.filename End Sub Private Sub Form_Load() cmbPatrones.AddItem "Todos" cmbPatrones.AddItem "Ejecutables" cmbPatrones.AddItem "Graficos" End Sub

7.4.- LNEAS (LINE)


El control Line se utiliza para crear lneas en un formulario, un marco o un cuadro de imagen. PROPIEDADES BorderStyle y BorderColor puede establecer el color y el estilo de una lnea. La propiedad BorderStyle proporciona seis estilos de lnea: Transparente Continua Guin Punto

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

109

Captulo 7

Visual Basic

Guin-punto Guin-punto-punto

Nota:
Cuando BorderStyle es 0 (Transparente), se pasa por alto la propiedad BorderColor. Continua interna BackColor se utiliza para especificar el color de la lnea. X1, X2, Y1 e Y2 establecen las coordenadas horizontal y vertical de la lnea

7.5.- FIGURAS (SHAPE)


El control Shape se utiliza para crear en los formularios, en los marcos o en los cuadros de imagen las siguientes formas predefinidas: rectngulo, cuadrado, elipse, crculo, rectngulo redondeado y cuadrado redondeado. PROPIEDADES Style proporciona seis formas predefinidas. Forma Rectngulo Cuadrado Elipse Crculo Rectngulo redondeado Cuadrado redondeado Estilo 0 1 2 3 4 5 Constante vbShapeRectangle vbShapeSquare vbShapeOval vbShapeCircle vbShapeRoundedRectangle vbShapeRoundedSquare

FillStyle proporciona varios modelos de relleno predefinidos. Estos estilos son: Slido, Transparente, Lnea horizontal, Lnea vertical, Diagonal hacia arriba, Diagonal hacia abajo, Cruz y Cruz diagonal. BorderStyle proporciona varios estilos de borde predefinidos. Estos estilos son: Transparente, Continuo, Guin, Punto, Guin-punto, Guin-punto-punto y Continuo interior. BackColor y FillColor permiten agregar color a la forma y a sus bordes.

110

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 7

EJEMPLO: RELOJ ANALGICO

Objetos:

Formulario Caption=Reloj Analgico Height=5000 Width=5000 Shape Shape=Circle Height=4450 Width=4700 Left=120 Top=120 BorderWidth=3 Line Name=LinHoras X1=2500 Y1=2500 BorderWidth=3 Line Name=LinMinutos X1=2500 Y1=2500 BorderWidth=2

Line Name=LinSegundos X1=2500 Y1=2500 BorderWidth=1

Timer Name=tmrReloj Interval=1000

Cdigo: Private Sub tmrReloj_Timer() Const Radianes = 3.1415927 / 180 linHoras.X2 = 2500 + Sin(Hour(Now) * 30 * Radianes) * 1000 linHoras.Y2 = 2500 - Cos(Hour(Now) * 30 * Radianes) * 1000 linMinutos.X2 = 2500 + Sin(Minute(Now) * 6 * Radianes) * 1500 linMinutos.Y2 = 2500 - Cos(Minute(Now) * 6 * Radianes) * 1500 linSegundos.X2 = 2500 + Sin(Second(Now) * 6 * Radianes) * 2000 linSegundos.Y2 = 2500 - Cos(Second(Now) * 6 * Radianes) * 2000 End Sub

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

111

Captulo 7

Visual Basic

7.6.- IMGENES (IMAGE)


El control Image se utiliza para presentar grficos. Los controles Image pueden presentar grficos en los siguientes formatos: mapa de bits, icono, metarchivo, metarchivo mejorado o archivos JPEG o GIF. Adems, los controles Image responden al evento Click y se pueden utilizar como substitutos de los botones de comando, como elementos de una barra de herramientas o para crear animaciones sencillas. PROPIEDADES Picture indica la imagen a cargar en tiempo de diseo. Se puede cargar una imagen en tiempo de ejecucin a travs del mtodo LoadPicture. Image1.Picture = LoadPicture("c:\imagenes\dibujo.bmp") Stretch determina si la imagen se va a reducir al cambiar el tamao del control Image en tiempo de diseo.

EJEMPLO: FICHERO ANIMADO

Resultado:

Objetos:

112

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 7

Image Name=imgFicheroCerrado Picture=...\Fich5a.ico Strech=true Image Name=imgFicheroAbierto Picture=...\Fich5b.ico Strech=true Image Name=imgFichero Picture=(nada) Strech=true
Cdigo: Private Sub Form_Load() imgFichero.Picture = imgFicheroCerrado.Picture End Sub Private Sub imgFichero_Click() If imgFichero = imgFicheroCerrado Then imgFichero = imgFicheroAbierto Else imgFichero = imgFicheroCerrado End If End Sub

Ejercicio propuesto:Realizar un visualizador de imgenes(Usar controles de acceso al sistema de archivos y la funcin LoadPicture().

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

113

Captulo 7

Visual Basic

114

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 8

Captulo 8 Matriz de Controles

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

115

Captulo 8

Visual Basic

116

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 8

8.1.- MATRIZ (ARRAY) DE CONTROLES


Una matriz de controles es un grupo de controles que comparten el mismo nombre y el mismo tipo. Tambin comparten los mismos procedimientos de evento. Las matrices de controles tienen al menos un elemento. El ndice mximo que puede utilizar en una matriz de controles es 32767. Los elementos de una misma matriz de controles tienen su propio valor de propiedades. El camino mas fcil para la creacin de una matriz de controles es el siguiente: Insertar en el formulario el primer control, asignar el nombre y las propiedades comunes que vayan a tener todos los controles de la matriz. A continuacin usando Copiar/Pegar aadir todas las copias que se necesiten. Al Pegar aparece una ventana que nos indicar si deseamos crear un array de controles. Las copias de los nuevos controles tendrn los mismos datos excepto en la propiedad Index, que ir incrementndose de uno en uno. Tambin se puede crear un array de controles a partir de una serie de controles ya insertados en el formulario, lo nico que hay que hacer es modificar la propiedad Name y asignarles el mismo nombre a todos. La parte ms interesante de los arrays de controles es que stos comparten un mismo cdigo. Si una vez creado el array se realiza un doble-click sobre cualquiera de los controles, se ver que en la ventana de cdigo aparece el procedimiento correspondiente y que ste aparece (o recibe) un parmetro entero llamado Index. Este parmetro ser el valor de la propiedad Index, por la cual se podr tratar individualmente cada uno de los controles del array.

EJEMPLO: CALCULADORA
Objetos:

Cdigo:
Label Name=lblPantalla CommandButton Name=cmdCancelar Caption=C CommandButton Name=cmdCancelarEntrada Caption=CE CommandButton (Array) Name=cmdOperador Caption=(cada uno el suyo) CommandButton Name=cmdPorcentaje Caption=% CommandButton Name=cmdPtoDecimal Caption=.
Este manual ha sido desarrollado por el departamento tcnico de DELTA PC 117

CommandButton (Array) Name=cmdNum Caption=(cada uno el suyo)

Captulo 8

Visual Basic

Dim Op1, Op2 ' Operando introducido previamente. Dim PtoDecimal As Integer ' Est presente la coma decimal? Dim NumOps As Integer ' Nmero de operandos. Dim UltimaEntrada ' Indica el tipo del ltimo evento Keypress. Dim Operador ' Indica la operacin pendiente. Dim TempPantalla ' Procedimiento de evento Click para la tecla C (cancelar). ' Restablece la presentacin e inicializa las variables. Private Sub cmdCancelar_Click() lblPantalla = Format(0, "0.") Op1 = 0 Op2 = 0 Form_Load End Sub ' Procedimiento de evento Click para la tecla CE (cancelar entrada). Private Sub cmdCancelarEntrada_Click() lblPantalla = Format(0, "0.") PtoDecimal = False UltimaEntrada = "CE" End Sub ' Procedimiento de evento Click para la tecla de la coma decimal (,). ' Si la ltima tecla presionada fue un operador, inicializa ' la lectura a "0". Si no, agrega la coma decimal ' a la presentacin. Private Sub cmdPtoDecimal_Click() If UltimaEntrada = "NEG" Then lblPantalla = Format(0, "-0.") ElseIf UltimaEntrada <> "NUMERO" Then lblPantalla = Format(0, "0.") End If PtoDecimal = True UltimaEntrada = "NUMERO" End Sub ' Subrutina de inicializacin del formulario. ' Establece todas las variables a sus valores iniciales. Private Sub Form_Load() PtoDecimal = False NumOps = 0 UltimaEntrada = "NADA" Operador = " " lblPantalla = Format(0, "0.") 'Decimal.Caption = Format(0, ".") End Sub ' Procedimiento de evento para las teclas de los nmeros (0-9). ' Agrega el nmero nuevo a la cantidad presentada. Private Sub cmdNum_Click(Index As Integer) If UltimaEntrada <> "NUMERO" Then lblPantalla = Format(0, ".") PtoDecimal = False End If
118

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 8

If PtoDecimal Then lblPantalla = lblPantalla + cmdNum(Index).Caption Else lblPantalla = Left(lblPantalla, InStr(lblPantalla, Format(0, ".")) - 1) + cmdNum(Index).Caption + Format(0, ".") End If If UltimaEntrada = "NEG" Then lblPantalla = "-" & lblPantalla UltimaEntrada = "NUMERO" End Sub ' Procedimiento de evento para las teclas de operacin (+, -, x, /, =). ' Si la ltima tecla presionada formaba parte de un nmero, ' incrementa NumOps. Si ya hubiera presente un operando, ' establece Op1. Si hubiera dos, establece Op1 al resultado ' de la operacin sobre Op1 y la cadena de entrada actual, ' y presenta el resultado. Private Sub cmdOperador_Click(Index As Integer) TempPantalla = lblPantalla If UltimaEntrada = "NUMERO" Then NumOps = NumOps + 1 End If Select Case NumOps Case 0 If cmdOperador(Index).Caption = "-" And UltimaEntrada <> "NEG" Then lblPantalla = "-" & lblPantalla UltimaEntrada = "NEG" End If Case 1 Op1 = lblPantalla If cmdOperador(Index).Caption = "-" And UltimaEntrada <> "NUMERO" And Operador <> "=" Then lblPantalla = "-" UltimaEntrada = "NEG" End If Case 2 Op2 = TempPantalla Select Case Operador Case "+" Op1 = CDbl(Op1) + CDbl(Op2) Case "-" Op1 = CDbl(Op1) - CDbl(Op2) Case "X" Op1 = CDbl(Op1) * CDbl(Op2) Case "/" If Op2 = 0 Then MsgBox "Imposible dividir entre cero", 48, "Calculadora" Else Op1 = CDbl(Op1) / CDbl(Op2) End If Case "=" Op1 = CDbl(Op2) Case "%" Op1 = CDbl(Op1) * CDbl(Op2) End Select lblPantalla = Op1
119

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Captulo 8

Visual Basic

NumOps = 1 End Select If UltimaEntrada <> "NEG" Then UltimaEntrada = "OPS" Operador = cmdOperador(Index).Caption End If End Sub ' Procedimiento de evento para la tecla de porcentaje (%). ' Calcula y presenta el porcentaje del primer operando. Private Sub cmdPorcentaje_Click() lblPantalla = lblPantalla / 100 UltimaEntrada = "Ops" Operador = "%" NumOps = NumOps + 1 PtoDecimal = True End Sub

EJERCICIO PROPUESTO: JUEGO DEL AHORCADO

8.2.- CREACIN DE CONTROLES DURANTE LA EJECUCIN


Si se usan arrays de controles se pueden crear controles adicionales en tiempo de ejecucin. Para ello se debe usar la sentencia Load, seguida del nombre del control y entre parntesis el ndice del nuevo elemento que no puede estar asignado ya a otro control de la misma matriz. Inicialmente cualquier control que se cree durante la ejecucin hereda las propiedades del elemento del array que tenga el ndice menor, a excepcin de la propiedad Visible, que ser False. Esto permite, despus de haber creado el control con Load, modificar sus propiedades adaptndolo a nuestras necesidades y luego hacerlo visible asignando el valor True a la propiedad Visible.

120

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 8

Aquellos elementos que hayan sido creados en tiempo de ejecucin tambin pueden ser liberados o destruidos, utilizando la sentencia UnLoad.

EJEMPLO: TANTO POR CIENTO

Objetos:
TextBox Name=txtCantidad CommandButton (Array) Name=cmdPorcentaje Index=0,1,2 respect. Label Name=lblTipoPor Caption=% Label Name=lblPorcentaje Label Name=lblTotal CommandButton Name=cmdCerrar

Cdigo: Private HayBoton54 As Boolean Private Sub cmdCerrar_Click() End End Sub Private Sub cmdPorcentaje_Click(Index As Integer) lblTipoPor = Mid(cmdPorcentaje(Index).Caption, 2, Len(cmdPorcentaje(Index).Caption)) lblPorcentaje = Val(txtCantidad) * Val(cmdPorcentaje(Index).Caption) / 100 lblTotal = Val(txtCantidad) + Val(lblPorcentaje) End Sub Private Sub Form_Load() HayBoton54 = False End Sub Private Sub txtCantidad_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then cmdPorcentaje(0).SetFocus
Este manual ha sido desarrollado por el departamento tcnico de DELTA PC 121

Captulo 8

Visual Basic

End If End Sub Private Sub txtCantidad_LostFocus() If Val(txtCantidad) >= 100000000 Then If Not HayBoton54 Then Load cmdPorcentaje(3) cmdPorcentaje(3).Left = 3000 cmdPorcentaje(3).Top = 840 cmdPorcentaje(3).Caption = "+54%" cmdPorcentaje(3).Visible = True HayBoton54 = True End If ElseIf HayBoton54 Then Unload cmdPorcentaje(3) HayBoton54 = False End If End Sub

122

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 9

Captulo 9 Mens

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

123

Captulo 9

Visual Basic

124

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 9

9.1.- DISEO DE UN MEN


Un men es una forma de proveer al usuario de un conjunto de rdenes agrupadas bajo un mismo ttulo. El conjunto de todos los ttulos correspondientes a los mens diseados aparecern en la barra de mens situada debajo del ttulo del formulario. Para disear un men, se deber utilizar la ventana de diseo de mens que se muestra en la figura siguiente:

Cuando el usuario haga un click en un ttulo correspondiente a un men, se desplegar una lista visualizando los elementos que contiene el men, o, si no contiene elementos, se ejecutar directamente una accin. Los elementos de un men pueden ser: Ordenes: si se hace un click sobre uno de estos elementos se ejecuta una accin o se despliega una caja de dilogo. Submens: cuando se hace un click sobre uno de estos elementos se despliega una nueva lista de elementos. Separadores Para crear un men, los pasos a ejecutar son los siguientes: 1. Abrir la ventana de diseo de mens (Herramientas/Editor de Mens). Para ello, seleccionar el formulario para el que se desea crear el men, o bien, hacer click en el botn rpido. 2. Introduccir datos en la ventana . En la caja de texto Caption se escribe el nombre del men que se desea crear, el cual aparecer en la barra de mens. Insertar & antes de la letra que d acceso al men. As, el usuario podr seleccionar este men pulsando la tecla Alt ms la tecla que da acceso al men, la cual aparece subrayada. 3. En la caja Name, se escribe el nombre utilizado en el cdigo para referirse al men. 4. A continuacin, para crear el men especificado en la caja Caption, hacer click en el botn Next o pulse Entrar. 5. Introduccir los elementos que componen el men. En la caja de texto Caption se escribe el nombre del elemento del men, y en la caja de texto Name se escribe el nombre utilizado en el cdigo para referirse a dicho elemento.

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

125

Captulo 9

Visual Basic

6. Para diferenciar un elemento de un men del propio men, hay que sangrar el elemento. Para sangrar un elemento, hay que seleccionarlo y hacer click en el botn flecha hacia la derecha. 7. Crear un submen.Un elemento puede ser una orden si el siguiente elemento aparece sangrado al mismo nivel, o el ttulo de un submen si el siguiente elemento aparece sangrado un nivel ms. 8. Aadir una lnea de separacin. Utilizando lneas de separacin pueden agruparse las rdenes en funcin de su actividad. Para crear una lnea de separacin, escribir un guin(-) en la caja Caption de la ventana de diseo de mens. Tiene que especificarse tambin un nombre cualquiera ( Name). 9. Cerrar la ventana del diseo de mens. Una vez que haya finalizado el diseo pulsar la tecla OK y observar como en la barra de mens del formulario aparecen los mens diseados. Para definir cmo debe responder cada orden de un men al suceso Click, hay que escribir un procedimiento para cada una de ellas. Las rdenes de un men solo responden al suceso Click. Para crear un procedimiento para una orden de un men, hacer click sobre el men y a continuacin hacer click sobre la orden y se observar que se visualiza el esquema del procedimiento, lo que permitir escribir el cdigo del mismo.

PROPIEDADES DE UN MENU
Las propiedades que pueden seleccionarse en la ventana de diseo de mens son: Shortcut: Permite definir una combinacin de teclas rpidas para activar un elemento. Las combinaciones vlidas se visualizan en la lista correspondiente a esta propiedad. Por ejemplo: Ctrl+S para Salir. Checked: Indica si una orden est activa o no lo est. Cuando se especifica esta propiedad aparece una marca a la izquierda del elemento del men. Enabled: Es til para desactivar una orden en un momento en el cual no tiene sentido que est activa. Visible: til cuando en tiempo de ejecucin se desea ocultar una orden. Index: Permite que un conjunto de rdenes sean agrupadas en una matriz de controles. As cuando un usuario selecciona una orden de un array de controles, Viasual Basic utiliza el valor Index para identificar qu orden del array fue seleccionada. WindowList: Permite especificar si un men mantiene una lista de las ventanas abiertas, con una marca a la izquierda del elemento de la lista que representa la ventana activa. Por ejemplo: lista de ventanas de documentos de Word. HelpContextID: Se utiliza para proveer de ayuda en lnea para una aplicacin. Para proveer de ayuda sobre un objeto de una aplicacin, se debe asignar el mismo nmero de contexto al objeto y al tema de ayuda asociado. NegotiatePosition: Esta propiedad determina si el men aparece o no en un formulario contenedor y cmo aparece.

126

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 9

9.1.1.- AADIR OPCIONES EN TIEMPO DE EJECUCIN


En el captulo anterior, dedicado a las matrices de controles era posible crear controles en tiempo de ejecucin. Estos heredan todas las propiedades del primer elemento (el de ndice Index menor), a excepcin de la propiedad Visible que siempre toma el valor False. Es posible aadir elementos a un men en tiempo de ejecucin utilizando exactamente la misma tcnica que se vio en el captulo anterior.

9.2.- MENS EMERGENTES


Un men desplegable flotante es visualizado sobre un formulario, independientemente de la barra de mens. Para visualizar un men desplegable flotante, se debe usar el mtodo PopupMenu, cuya sintaxis es: PopupMenu NombreMenu [flags],[x],[y],[BoldMenu] donde: NombreMenu:es el nombre (Name) del men. Flags: define la ubicacin y comportamiento del men.

La siguiente tabla enumera los indicadores disponibles para describir la ubicacin de un men emergente. Constantes de ubicacin vbPopupMenuLeftAlign vbPopupMenuCenterAlign vbPopupMenuRightAlign Descripcin Predeterminado. La ubicacin x especificada define el borde izquierdo del men emergente. El men emergente est centrado alrededor de la ubicacin x especificada. La ubicacin x especificada define el borde derecho del men emergente.

La siguiente tabla enumera los indicadores disponibles para describir el comportamiento de los mens emergentes. Constantes de comportamiento vbPopupMenuLeftButton vbPopupMenuRightButton

Descripcin Predeterminado. El men emergente se presenta slo cuando el usuario hace clic en un elemento de men con el botn primario del mouse. El men emergente se presenta cuando el usuario hace clic en un elemento de men con el botn primario o secundario del mouse.

NOTA: Para especificar un indicador, combine una constante de cada grupo mediante el operador Or.

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

127

Captulo 9

Visual Basic

x e y: son la coordenadas que definen dnde ser visualizado el men. Por defecto, estas coordenadas coinciden con las coordenadas del cursor del ratn. BoldMenu: Especifica el nombre de un control Menu del men emergente para presentar su ttulo en negrita. Si se omite, ningn control del men emergente aparecer en negrita.

Mientras el men flotante se est visualizando, las llamadas a PopupMenu son ignoradas. Las sentencias que estn a continuacin de la llamada no se jecutarn hasta que el usuario seleccione una orden del men o lo cancele. Si no se desea que el men desplegable flotante est disponible tambin en la barra de mens, se deber abrir la ventana de diseo de mens y poner la propiedad Visible a False. Ejemplo de Llamada a un menu Emergente: Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = vbRightButton Then PopupMenu mnuFile End If End Sub

EJEMPLO DE MENS

DISEO MENU

Caption &Salir &Estilo ...&Negrita

Name MnuSalir MnuEstilo MnuEstiloX

Index 0

Shortcut Ctrl+N

Checked -

128

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 9

...&Cursiva ...&Subrayado &Tamao ...&Nuevo ......10 ...12 &Color ...&Texto ... ...&Negro ... ...&Blanco ...&Fondo ... ...&Negro ... ...&Blanco OBJETOS

MnuEstiloX MnuEstiloX MnuTamao MnuTamaoNuevo Separador MnuTamaoX MnuTamaoX MnuColor MnuColorTexto MnuColorTextoX MnuColorTextoX MnuColorFondo MnuColorFondoX MnuColorFondoX

1 2 0 1 0 1 0 1

Ctrl+C Ctrl+S -

Checked Checked

TextBox Name=txtEditor Caption=(nada) Multiline=True ScrollBars=Both

CODIGO: Private Sub mnuTamaoNuevo_Click() Static NumTamao As Byte ' NmTamao conservar su valor entre llamadas Dim NTam As Integer NTam = CInt(InputBox("Tamao letra", , 10)) txtEditor.FontSize = NTam Load mnuTamaoX(NumTamao + 3) ' Crear una nueva opcin en el men mnuTamaoX(NumTamao + 3).Caption = NTam mnuTamaoX(NumTamao + 3).Visible = True NumTamao = NumTamao + 1 ' Incrementar para la prxima opcin End Sub Private Sub mnuEstiloX_Click(Index As Integer)

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

129

Captulo 9

Visual Basic

Select Case Index ' Dependiendo del valor de Index Case 0 ' Si es 0 activa/desactiva la negrita txtEditor.FontBold = Not txtEditor.FontBold Case 1 ' Si es 1 activa/desactiva la cursiva txtEditor.FontItalic = Not txtEditor.FontItalic Case 2 ' Si es 2 activa/desactiva la subrayada txtEditor.FontUnderline = Not txtEditor.FontUnderline End Select ' En cualquier caso invierte la marca del atributo mnuEstiloX(Index).Checked = Not mnuEstiloX(Index).Checked End Sub Private Sub mnuColorFondoX_Click(Index As Integer) If Index Then ' Si Index <> 0 se eligi Blanco mnuColorFondoX(0).Checked = False ' Quitar la marca de Negro mnuColorFondoX(1).Checked = True ' Poner la marca en Blanco txtEditor.BackColor = vbWhite ' Y cambiar el color de la etiqueta Else ' Index = 0 mnuColorFondoX(0).Checked = True ' Poner la marca en Negro mnuColorFondoX(1).Checked = False ' Quitar la marca de Blanco txtEditor.BackColor = vbBlack ' Y cambiar el color de la etiqueta End If End Sub Private Sub mnuTamaoX_Click(Index As Integer) txtEditor.FontSize = mnuTamaoX(Index).Caption ' Aplicar el tamao seleccionado End Sub Private Sub mnuColorTextoX_Click(Index As Integer) If Index Then mnuColorTextoX(0).Checked = False mnuColorTextoX(1).Checked = True txtEditor.ForeColor = vbWhite Else mnuColorTextoX(0).Checked = True mnuColorTextoX(1).Checked = False txtEditor.ForeColor = vbBlack End If End Sub Private Sub txtEditor_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = vbRightButton Then PopupMenu mnuEstilo End Sub Private Sub mnuSalir_Click() End End Sub

130

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 10

Captulo 10 Formularios Y Cuadros de Dilogo

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

131

Captulo 10

Visual Basic

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

132

Visual Basic

Captulo 10

10.1.- FORMULARIOS
Hasta ahora, en los programas que se han desarrollado slo se ha utilizado un formulario. cualquier aplicacin de una cierta complejidad necesitar utilizar ms de un formulario (ventana), por lo que habr que insertar varios formularios. Insertar Varios Formularios Proyecto/Agregar formulario En la ventana de Proyectos se podr cambiar de formulario

Formulario Inicial Si no se especifica lo contrario, el formulario inicial que aparece al ejecutar la aplicacin, es el primero que se cre. Si se desea cambiar hay que seleccionar Proyecto/Propiedades y en el apartado Objeto Inicial aparece una lista con todos los formularios existentes y un elemento llamado Sub Main. Se podr elegir el formulario inicial o Sub Main, en este caso el programa lo inicia un procedimiento al que se ha denominado Main.

Acceso a controles de Otro formulario <<>>

EVENTOS

Initialize y Terminate

Initialize: Se produce cuando una aplicacin crea una instancia de un control Terminate: Se produce cuando todas las referencias a una instancia de un Form se quitan de la memoria estableciendo a Nothing todas las variables que hacen referencia al objeto.

Observaciones En todos los objetos excepto en las clases, el evento Terminate se produce despus del evento Unload.

Load y UnLoad

Load: Ocurre cuando se carga un formulario. Normalmente utiliza un procedimiento de evento Load para incluir cdigo de inicializacin para un formulario

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

133

Captulo 10

Visual Basic

Unload: Ocurre cuando un formulario est a punto de quitarse de la pantalla. Este evento se desencadena porque un usuario cierra el formulario mediante el comando Cerrar del men Control o una instruccin Unload La sintaxis del evento Unload consta de las siguientes partes: Parte Cancel ar Descripcin Un entero que determina si el formulario se quita de la pantalla. Si cancelar es 0, el formulario se quita. Establecer cancelar a cualquier valor distinto de cero impide que el formulario se quite.

Observaciones El evento Load ocurre tras el evento Initialize. Cuando en cdigo hace referencia a una propiedad de un formulario descargado, el formulario se carga automticamente pero no se hace visible El evento QueryUnload ocurre antes que el evento Unload. El evento Unload ocurre antes que el evento Terminate.

Activate y Deactivate

Activate: ocurre cuando un objeto se convierte en la ventana activa. Deactivate: ocurre cuando un objeto deja de ser la ventana activa.

Observaciones Un objeto puede convertirse en activo mediante una accin del usuario, como hacer clic en l, o mediante los mtodos Show o SetFocus en cdigo. El evento Activate slo puede ocurrir cuando un objeto es visible. Por ejemplo, un formulario cargado con la instruccin Load no es visible a menos que utilice el mtodo Show o establezca la propiedad Visible del formulario a True. Los eventos Activate y Deactivate slo ocurren al mover el enfoque dentro de una aplicacin. Mover el enfoque hacia o desde un objeto de otra aplicacin no desencadena ningn evento. El evento Deactivate no ocurre al descargar un objeto. El evento Activate ocurre antes que el evento GotFocus y el evento LostFocus ocurre antes que el evento Deactivate.

QueryUnload
QueryUnload: Ocurre antes de que se cierre un formulario o una aplicacin La sintaxis del evento QueryUnload consta de las siguientes partes:

134

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 10

Parte Cancelar modo_descarga

Descripcin Un entero. Establecer este argumento a cualquier valor distinto de 0 detiene el evento QueryUnload en todos los formularios cargados y detiene el cierre del formulario y de la aplicacin. Un valor o una constante que indica la causa del evento QueryUnload, tal y como se describe en Valores que se pueden obtener.

El argumento modo_descarga devuelve los siguientes valores: Constante vbFormControlMenu vbFormCode vbAppWindows vbAppTaskManager Valor 0 1 2 3 Descripcin El usuario eligi el comando Cerrar del men Control del formulario. Se invoc la instruccin Unload desde el cdigo. La sesin actual del entorno operativo Microsoft Windows est finalizando. El Administrador de tareas de Microsoft Windows est cerrando la aplicacin.

vbFormMDIForm

Un formulario MDI secundario se est cerrando porque el formulario MDI tambin se est cerrando.

Observaciones: Normalmente este evento se utiliza para asegurarse de que no hay tareas sin finalizar en los formularios incluidos en una aplicacin antes de que esa aplicacin se cierre. Por ejemplo, si un usuario no ha guardado todava algunos datos nuevos de cualquier formulario, su aplicacin puede pedir al usuario que los guarde. Cuando una aplicacin se cierra, puede utilizar los procedimientos de evento QueryUnload o Unload para establecer la propiedad Cancel a True, deteniendo el proceso de cierre. Sin embargo, el evento QueryUnload ocurre en todos los formularios antes de que se descargue ninguno de ellos y el evento Unload ocurre conforme se descarga cada formulario.

Paint
Paint: Ocurre cuando un objeto entero o una parte del mismo se expone despus de haberse movido o ampliado, o despus de haberse movido una ventana que lo estaba cubriendo.

Observaciones Un procedimiento de evento Paint es til si tiene resultado de mtodos grficos en el cdigo. Con un procedimiento Paint puede asegurarse de que ese resultado se vuelva a dibujar cuando sea necesario. El evento Paint se invoca cuando se utiliza el mtodo Refresh. Si la propiedad AutoRedraw est establecida a True, se redibuja de forma automtica, por lo que no son necesarios los eventos Paint.
135

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Captulo 10

Visual Basic

Resize
Resize: Ocurre cuando un objeto se muestra primero o cuando cambia el estado de una ventana. (Por ejemplo, cuando se maximiza, minimiza o restaura un formulario.) La sintaxis del evento Resize consta de las siguientes partes:

Parte Descripcin alto Un nmero que especifica el nuevo valor para el alto del control. Ancho Un nmero que especifica el nuevo valor para el ancho del control. GotFocus y LostFocus

GotFocus: Ocurre cuando un formulario recibe el enfoque, ya sea mediante una accin del usuario, como clic en el formulario, o cambiando el enfoque en el cdigo mediante el mtodo SetFocus. Un formulario recibe el enfoque slo cuando todos los controles visibles estn desactivados. LostFocus: Ocurre cuando un formulario pierde el enfoque, ya sea por una accin del usuario, como hacer clic en otro formulario, o bien mediante un cambio del enfoque en el cdigo con el mtodo SetFocus. METODOS

Show

Show: Presenta un Formulario


La sintaxis del mtodo Show consta de las siguientes partes: Parte Estilo Formulario_propietario Descripcin Opcional. Un entero que determina si el formulario es modal o no modal. Si estilo es 0, el formulario es no modal; si estilo es 1(vbModal), el formulario es modal. Opcional. Una expresin de cadena que especifica el componente que "posee" el formulario que se muestra. Para los formularios estndar de Visual Basic, usar la palabra clave Me.

Observaciones Una ventana Modal se muestra sobre todas las dems ventanas de la aplicacin y no es posible realizar ninguna otra operacin con el programa mientras no se cierre. Al contrario, los formularios no modales permiten cambiar a cualquier otra ventana de la aplicacin sin cerrarlos. Si el formulario especificado no est cargado cuando se invoca el mtodo Show, Visual Basic lo carga automticamente.

136

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 10

Hide

Hide: Oculta un Formulario pero no lo descarga.

Observaciones: Si el formulario no est cargado cuando se llama al mtodo Hide, el mtodo Hide carga el formulario pero no lo presenta. Los controles de un formulario oculto no son accesibles para el usuario, pero estn disponibles para la aplicacin de Visual Basic en ejecucin

PrintForm
PrintForm: Enva a la impresora una imagen bit a bit de un Formulario. Observaciones: PrintForm imprime todos los objetos visibles y los mapas de bits del Formulario. PrintForm tambin imprime los grficos agregados a un Formulario o a un control PictureBox en tiempo de ejecucin si la propiedad AutoRedraw es True cuando se dibujan los grficos.

PROPIEDADES:(Propiedades ms caractersticas) ActiveControl: Devuelve el control que tiene el enfoque AutoRedraw: Permite dibujar con los mtodos grficos sobre el formulario BackColor y ForeColor: establecen el color de fondo y el color de primer plano utilizado para mostrar texto y grficos en un objeto. BorderStyle: Devuelve o establece el estilo del borde de un objeto. Los estilos se han descrito en un capitulo anterior. Caption: Establece el ttulo de la ventana ClipControls: Devuelve o establece un valor que determina si los mtodos grficos en eventos Paint vuelven a dibujar el objeto entero o slo las reas recin expuestas ControlBox: Devuelve o establece un valor que indica si se muestra un cuadro del men Control en un formulario Icon: Devuelve el icono que aparece al minimizar un formulario KeyPreview: Devuelve o establece un valor que determina si los eventos de teclado de los formularios se invocan antes que los eventos de teclado de los controles. Los eventos de teclado son KeyDown, KeyUp y KeyPress. MaxButton y MinButton: Devuelve un valor que indica si un formulario tiene un botn Maximizar y de Minimizar, respectivamente. MouseIcon: Devuelve o establece un icono personalizado de mouse (ratn).

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

137

Captulo 10

Visual Basic

MousePointer: Devuelve o establece un valor que indica el tipo de puntero de mouse que aparece cuando se sita el mouse sobre un formulario. Los valores admitidos para valor son:

Constante VbDefault VbArrow VbCrosshair VbIbeam VbIconPointer VbSizePointer VbSizeNESW VbSizeNS VbSizeNWSE VbSizeWE VbUpArrow VbHourglass VbNoDrop VbArrowHourglass VbArrowQuestion VbSizeAll VbCustom

Valor 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 99

Descripcin (Predeterminado) Forma determinada por el objeto. Flecha. Cruz (puntero en forma de cruz). Forma de I. Icono (pequeo cuadrado dentro de otro cuadrado). Tamao (flecha de cuatro puntas: norte, sur, este y oeste). Tamao NE SO (flecha doble que apunta al nordeste y al sudoeste). Tamao N S (flecha doble que apunta al norte y al sur). Tamao NO SE (flecha doble que apunta al noroeste y al sudeste). Tamao O E (flecha doble que apunta al oeste y al este). Flecha hacia arriba. Reloj de arena (espera). No colocar. Flecha y reloj de arena. Flecha y signo de interrogacin. Ajustar todo. Icono personalizado especificado en la propiedad MouseIcon.

Moveable: Devuelve o establece un valor que especifica si el objeto se puede mover. Picture: Devuelve o establece un grfico que se mostrar en el formulario. ShowInTaskbar: Devuelve o establece un valor que determina si debe aparecer un formulario en la barra de tareas de Windows Visible: Devuelve o establece un valor que indica si un objeto es visible o est oculto. WindowState: Devuelve o establece un valor que indica el estado visual de una ventana de formulario Valor 0 1 2 Descripcin (Predeterminado) Normal Minimizada (minimizada a un icono) Maximizada (ampliado al tamao mximo)

Los valores admitidos para valor son: Constante VbNormal VbMinimized VbMaximized

138

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 10

EJEMPLO DE FORMULARIOS

Formulario1:
Form Name=frmVentanaPrincipal Caption=Bsqueda

CommandButton(Array) Name=cmdBusqueda

Cdigo Formulario 1: Private Sub cmdBusqueda_Click(Index As Integer) Select Case Index ' Segn el botn pulsado Case 0 frmPorAutor.Show vbModal ' Ventana modal Case 1 ' Modificar el contenido de un control frmPorEditorial!txtEditorial.Text = "Visual Basic. Microsoft" frmPorEditorial.Visible = True ' Visualizar la ventana End Select End Sub Formulario 2:

Form Name=frmPorAutor Caption=Bsqueda por Autor TextBox Name=txtNombreAutor

Cdigo Formulario 2: Private Sub txtNombreAutor_Keypress(KeyAscii As Integer) If KeyAscii = 13 Then Unload Me End Sub

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

139

Captulo 10

Visual Basic

Formulario 3:
Form Name=frmPorEditorial Caption=Bsqueda por Editorial TextBox Name=txtEditorial

Cdigo Formulario 3: Private Sub txtEditorial_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Unload Me End Sub

10.2.- CUADROS DE DILOGOS COMUNES. COMMONDIALOG


Componentes: Microsoft Windows Common Dialog Control 6.0 El control CommonDialog proporciona un conjunto de cuadros de dilogo estndar para operaciones como abrir y guardar archivos, establecer opciones de impresin y seleccionar colores y fuentes. Este control tambin ofrece la posibilidad de presentar Ayuda mediante el sistema de Ayuda de Windows. El control CommonDialog permite presentar estos cuadros de dilogo de uso frecuente: Abrir Guardar como Color Fuente Imprimir

En tiempo de ejecucin, hay que usar el mtodo apropiado, segn se indica en la tabla siguiente, para presentar el cuadro de dilogo deseado. Mtodo ShowOpen ShowSave ShowColor ShowFont ShowPrinter ShowHelp Cuadro de dilogo presentado Abrir Guardar como Color Fuente Imprimir Invoca la Ayuda de Windows

10.2.1.- ABRIR Y GUARDAR ARCHIVOS


El cuadro de dilogo Abrir/Guardar permite que el usuario especifique una unidad, un directorio, una extensin de archivo y un nombre de archivo.

140

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 10

PROPIEDADES DialogTitle: Permite especificar un ttulo para la ventana. CancelError: (Booleano) Segn el estado que se fije, el cuadro de dilogo generar o no un error (cdlError) en caso de que se pulse el botn Cancelar. FileName: Indica el camino completo del fichero FileTitle: Indica solamente el nombre del archivo.. Filter: Permite especificar una lista (Archivos de Tipo) de categoras de archivos. Nos permite aplicar una seleccin de archivos segn la extensin. Se especifica a travs de una secuencia de pares descripcin/referencia separados por el smbolo |. Ejemplo: dlgDialogo.Filter=Todos los Archivos|*.*|Archivos de Texto|*.txt FilterIndex: Indica el nmero de filtro activo. El primero es el 1. DefaultExt: Indica la extensin por defecto sino se especifica la misma. InitDir: Permite establecer un directorio de inicio MaxFileSize: La longitud mxima de un nombre completo de archivo es 256, MaxFileSize permite especificar una longitud mayor. Flags: Permite establecer una serie de indicadores que harn que los cuadros de dilogo se comporten de una forma u otra. Para activar uno u otro indicador se deben usar los operadores And y Or. Algunos indicadores para el cuadro de dilogo Abrir/Salvar Indicadores cdlOFNReadOnly cdlOFNHideReadOnly cdlOFNFileMustExist cdlOFNPathMustExist cdlOFNNoChangeDir cdlOFNOverwritePrompt cdlOFNCreatePrompt cdlOFNAllowMultiselect cdlOFNExtensionDiferent Descripcin Activa la opcin Abrir como slo lectura que aparece en la parte inferior del cuadro del dilogo Oculta la opcin anterior, no permitiendo seleccionarla El usuario slo podr seleccionar nombre de archivo que existan El usuario podr indicar un nombre de archivo nuevo, pero el camino deber existir No se permitir al usuario cambiar el directorio actual Pregunta al usuario si desea sobreescribir en caso de que el archivo seleccionado para salvar exista Pregunta al usuario si desea crear el archivo en caso de que el que se desea abrir no exista Permite al usuario seleccionar varios archivos Indica que el usuario utiliz una extensin diferente a la facilitada por defecto

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

141

Captulo 10

Visual Basic

dclOFNExplorer cdlOFNLongNames cdlOFNNoLongNames

Muestra una ventana al estilo del Explorador Utilizar nombres de archivo largos No utilizar nombres de archivo largos

10.2.2.- SELECCIN DE UN TIPO DE LETRA


El cuadro de dilogo Fuente permite que el usuario seleccione una fuente por el tamao, el color y el estilo.

PROPIEDADES FontName, FontSize, FontBold, FontItalic, FontUnderline y FontstrikeThru : respectivamente, fuente, tamao, negrita, cursiva, subrayado y tachado. Max, Min: Tamaos mnimo y mximos permitidos Flags: Permite establecer una serie de indicadores que harn que los cuadros de dilogo se comporten de una forma u otra. Para activar uno u otro indicador se deben usar los operadores And y Or. Algunos indicadores para el cuadro de dilogo Fuente Indicadores CdlCFTTOnly CdlCFScreenFonts CdlCFPrinterFonts cdlCFBoth cdlCFANSIOnly cdlCFScalableOnly cdlCFFixedPitchOnly CdlCFEffects CdlCFLimitSize CdlCFNoFaceSel CdlCFNoSizeSel CdlCFNoStyleSel Descripcin Mostrar slo fuentes True Type Mostrar slo las fuentes disponibles para pantalla Mostrar slo las fuentes disponibles para impresora Mostrar las fuentes de pantalla y de impresora No mostrar fuentes de smbolos, slo de caracteres Mostrar slo fuentes escalables mostrar slo fuentes de espaciado fijo Activar las opciones de color, tachado y subrayado No permitir tamaos fuera del rango especificado No seleccionar ninguna fuente por defecto No seleccionar ningn tamao por defecto No seleccionar ningn estilo por defecto

10.2.3.- OPCIONES DE IMPRESIN

142

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 10

El cuadro de dilogo Imprimir permite seleccionar impresora, tamao de papel, nmero de copias, pginas, etc.

PROPIEDADES PrinterDefault: en caso de que el usuario seleccione una impresora distinta a la establecida por defecto, esta nueva impresora pasar a ser la impresora por defecto si se ha establecido esta propiedad a True Max, Min: Rango de pginas posible a seleccionar. FromPage, ToPage: indican el rango elegido. Copies: sirve para obtener el nmero de copias que se hayan especificado en el cuadro de dilogo. Flags: Permite establecer una serie de indicadores que harn que los cuadros de dilogo se comporten de una forma u otra. Para activar uno u otro indicador se deben usar los operadores And y Or. Algunos indicadores para el cuadro de dilogo Imprimir Indicadores cdlPDAllPages cdlPDPageNums cdlPDSelection cdlPDNoPageNums cdlPDNoSelection cdlPDDisablePrintToFile cdlPDHidePrintToFile cdlPDPrintToFile cdlPDCollate CdlPDPrintSetup CdlPDUseDevModeCopies Descripcin Estado de la opcin Todo Estado de la opcin Pginas Estado de la opcin Seleccin No permite la seleccin de la opcin Pginas No permite la seleccin de la opcin Seleccin No permite la seleccin de impresin a fichero Oculta la opcin de impresin a fichero Estado de la opcin de impresin a fichero Estado de la opcin Intercalar copias Mostrar directamente la ventana de configuracin No permitir especificar un nmero de copias si la impresora no soporta la impresin de mltiples copias

10.2.3.- ELEGIR UN COLOR

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

143

Captulo 10

Visual Basic

En el cuadro de dilogo Color permite seleccionar un color e incluso definirlo, a partir de los componentes rojo, verde y azul.

PROPIEDADES Color: permite obtener el color seleccionado Flags: Permite establecer una serie de indicadores que harn que los cuadros de dilogo se comporten de una forma u otra. Para activar uno u otro indicador se deben usar los operadores And y Or. Algunos indicadores para el cuadro de dilogo Color Indicadores cdlCCPreventFullOpen cdlCCFullOpen cdlCCRGBInit Descripcin Impide que se pueda acceder a la parte de Definicin de colores personalizados. Permite que aparezcan las dos partes ya abiertas. Permite establecer un color por defecto.

EJEMPLO: VISOR DE GRFICOS

Formulario:
CommandButton Name=cmdAbrirImagen CommandButton Name=cmdGuardarImagen CommonDialog Name=dlgComun

CommandButton Name=cmdSalir 144

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC Image Name=imgVisor

Visual Basic

Captulo 10

Cdigo: Private Sub cmdGuardarImagen_Click() On Error GoTo ERROR_GUARDAR With dlgComun .DialogTitle = "Guardar Imagen" .DefaultExt = "wmf" .Filter = "Windows MetaFile|*.wmf|Bitmaps|*.bmp|iconos|*.ico|jpg|*.jpg" .Flags = cdlOFNFileMustExist .ShowSave SavePicture imgVisor.Picture, .filename End With Exit Sub ERROR_GUARDAR: MsgBox "No se ha Podido Guardar" End Sub Private Sub cmdAbrirImagen_Click() On Error GoTo ERROR_ABRIR With dlgComun .DialogTitle = "Abrir Imagen" .DefaultExt = "wmf" .Filter = "Windows MetaFile|*.wmf|Bitmaps|*.bmp|iconos|*.ico|jpg|*.jpg" .ShowOpen imgVisor.Picture = LoadPicture(.filename) End With Exit Sub ERROR_ABRIR: MsgBox "No se ha podido Abrir" End Sub Private Sub cmdSalir_Click() End End Sub

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

145

Captulo 10

Visual Basic

146

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 11

Captulo 11 Controles de Interfaz de Usuario de Windows

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

147

Captulo 11

Visual Basic

148

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 11

11.1.- RICH TEXTBOX


Microsoft Rich Testbox Control 6.0 (RICHTX32.OCX) El control RichTextBox permite al usuario escribir y modificar texto al tiempo que proporciona caractersticas de formato ms avanzadas que el control TextBox convencional. Nos permite implementar un editor de texto completo en cualquier aplicacin. PROPIEDADES SelFontName, SelFontSize y SelFontColor: para cambiar los atributos de la fuente de texto. SelIndent, SelHangingIndent, BulletIndent: Permite definir sangras, sangras francesas y vietas. METODOS LoadFile, SaveFile: Abrir y guardar archivos tanto en formato RTF como en formato de texto ASCII. SelPrint: Imprimir todo o parte del texto de un control RichTextBox. EVENTOS SelChange: Se produce cuando ha cambiado la seleccin actual de texto del control RichTextBox o se ha movido el punto de insercin.

NOTA: El control RichTextBox admite la mayora de las propiedades, eventos y mtodos utilizados con el control TextBox estndar: MaxLength, MultiLine, ScrollBars, SelLength, SelStart y SelTex.

11.2.- IMAGELIST
Microsoft Windows Common Control 6.0 (CINCTK32,OCX) Un control ImageList contiene una coleccin de imgenes que pueden utilizar otros controles comunes de Windows, especficamente los controles ListView, TreeView, TabStrip, Toolbar. Por ejemplo, el control ImageList puede almacenar todas las imgenes que aparecen en los botones de un control Toolbar. PROPIEDADES Y METODOS El control utiliza archivos de mapa de bits (.bmp) o de icono (.ico) de una coleccin de objetos ListImage. Puede agregar o quitar imgenes en tiempo de diseo o en tiempo de ejecucin. El objeto ListImage tiene las propiedades estndar de las colecciones: Key, Index y Count. Tambin dispone de mtodos estndar, como Add, Remove y Clear.

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

149

Captulo 11

Visual Basic

11.3.- TOOLBAR
Microsoft Windows Common Control 6.0 (COMCTL32.OCX) Un control Toolbar contiene un conjunto de objetos Button con los que se crea una barra de herramientas que puede asociar a una aplicacin. El control Toolbar tambin puede contener otros controles, como ComboBox o TextBox. PROPIEDADES ImageList: Indica el control ImageList que contiene las imgenes a presentar en los botones de la barra de herramientas. Wrappable: Devuelve o establece un valor que determina si los botones del control Toolbar se ajustarn automticamente cuando la ventana cambie de tamao. AllowCustomize: Devuelve o establece un valor que determina si el usuario final puede personalizar un control Toolbar con el cuadro de dilogo Personalizar barra de herramientas. ShowTips: Habilita los mensajes de la propiedad ToolltipText A travs de esta ventana se podrn definir los botones que compondrn la barra de botones.

Caption: determina el texto que se muestra en el botn. Key: establece o devuelve una cadena que identifica nicamente a un botn. Value: estado del botn (tbrPressed, tbrUnpressed) Style: determina el comportamiento de un botn. Valor 0 1 2 3 4 Uso posible Predeterminado. Puede utilizar este estilo Default cuando la funcin que representa el botn no depende de otras funciones, al hacer clic en el botn, vuelve a su posicin normal cuando la funcin ha terminado Verificacin. Debe utilizar este estilo Check cuando el botn representa una alternancia de algn tipo, o no estarlo. Grupo de botones. Puede utilizar este estilo ButtonGroup cuando un grupo de funciones sean mutuamente exluyentes. Separador. Este estilo Separador no tiene otra funcin que crear un botn de ocho pxeles de ancho. Marcador de posicin. Este estilo Placeholder funciona como un botn ficticio. Puede utilizarlo para crear un espacio en el control Toolbar donde desee que aparezca otro control (como por ejemplo un control

Constante tbrDefault TbrCheck tbrButtonGroup TbrSeparator TbrPlaceholder

150

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 11

ComboBox o ListBox). Tag: almacena cualquier dato adicional necesario para su programa. ToolTipText: muestra informacin sobre un botn. Image: indica que imagen del control ImageList asociado se va a mostrar en el botn. Visible: indica si el botn est visible o no. Enabled: indica si el botn esta activado o no. MixedState: determina si el botn aparece en un estado indeterminado.

11.4.- STATUSBAR
Microsoft Windows Common Control 6.0 (COMCTL32.OCX) El control StatusBar proporciona una ventana, normalment ubicada en la parte inferior de un formulario primario, a travs de la cual una aplicacin puede mostrar varios tipos de datos de estado. El control StatusBar puede dividirse hasta un mximo de 16 objetos Panel contenidos en una coleccin Panels. PROPIEDADES

Text: texto a mostar en el panel ToolTip Text, Key y Tag: tienen el mismo uso que el descrito en el control anterior. Alignment: establece la alineacin del texto del ttulo (sbrLeft, dbrCenter, sbrRight) Style: establece el estilo de un objeto Panel

Los valores admitidos son: Constante SbrText SbrCaps SbrNum Valor 0 1 2 Descripcin (Predeterminado). Texto y mapa de bits. Establece el texto con la propiedad Text. Tecla BLOQ MAYUS. Muestra las letras MAYS en negrita cuando BLOQ MAYS est activada y atenuada cuando est desactivada. Tecla BLOQ NUM. Muestra las letras NM en negrita cuando BLOQ NUM est activada y atenuadas cuando no lo est.
151

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Captulo 11

Visual Basic

SbrIns SbrScrl SbrTime SbrDate sbrKana

3 4 5 6 7

Tecla INSERT. Muestra las letras INS en negrita cuando INSERT est activada y atenuadas cuando no lo est. Tecla BLOQ DESPL. Muestra las letras DESPL en negrita cuando BLOQ DESPL est activada y atenuadas cuando no lo est. Hora. Muestra la hora actual con el formato del sistema. Fecha. Muestra la fecha actual con el formato del sistema. Kana. Muestra las letras KANA en negrita cuando BLOQ DESPL est activada y atenuada cuando est desactivada.

Bevel: establece el estilo de bisel (sbrNoBevel, sbrInset, sbrRaised) Autosize: establece un valor que determina el ancho de un objeto Panel despus de que se haya ajustado el tamao de un control StatusBar. Los valores posibles son: Valor 0 1 Descripcin (Predeterminado). Ninguna. No se ajusta automticamente el tamao. El ancho de Panel es el especificado por la propiedad Width. Divisin. Cuando cambia el tamao del formulario primario y hay espacio adicional disponible, los paneles con este valor se reparten el espacio y su tamao aumenta. Sin embargo, el ancho de los paneles nunca ser inferior al especificado en la propiedad Min Width. Contenido. El tamao del objeto Panel se ajusta para adaptarlo al de su contenido; sin embargo, el ancho nunca sobrepasar el valor especificado por la propiedad Min Width.

Constante sbrNoAutoSize SbrSpring

sbrContents

EJEMPLO: EDITOR DE TEXTO

Objetos:

ToolBar Name=tlbBarra RichTextBox Name=rtfEditor StatusBar Name=staEstado

CommonDialog Name=dlgComun

ImageList Name=imgBarra

152

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 11

Menu:

ImageList:

StatusBar:

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

153

Captulo 11

Visual Basic

Cdigo: Option Explicit Private Nfichero As String Nombre Fichero Private HayCambios As Boolean Private Sub Form_Load() mnuArchivoNuevo_Click End Sub Private Sub Form_QueryUnload8Cancel As Integer, UnloadMode As Integer) mnuArchivoSalir_Click End Sub Private Sub Form_Resize() With rtfeditor .Left = 15 .Top = 400 .Width = Me.Width 150 .Height = Me.Height 150 End With End Sub Private Sub mnuArchivoAbrir_Click() Dim res As Integer If HayCambios Then res = MsgBox(Desea guardar cambios?, vbDefaultButton3, Editor:) If res = vbYes Then mnuArchivoGuardar_Clic If res = vbCancel Then Exit Sub End If On Error GoTo Error_cancelacion UIT dlgComun vbQuestion + vbYesNoCancel +

154

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 11

.DialogTitle = Abrir .DefaultExt = rtf .Filter = Archivos de Texto (RTF)\*.rtf .CancelError = True .ShowOpen Nfichero = .filename End With rtfeditor.LoadFile Nfichero HayCambios = False staEstado. Panels(1).Text = Nfichero Exit Sub Error_cancelacin: If Err <> cdlCancel Then MsgBox Error: No se puedo recuperar fichero End If End Sub Private Sub mnuArchivoGuardar_Clic() If HayCambios Then If Nfichero = Sin Nombre Then mnuArchivoGuardarComo_Clic Else rtfeditor.SaveFile NFichero HayCambios = False End If End If End Sub Private Sub mnuArchivoGuardarComo_Click() On Error GoTo Error_cancelacion With dlgComun .DialogTitle = Guardar Como .DefaultExt = rtf .Filter = Archivos de Texto (RTF)\*.rtf .Flags = cdlOFOverwritePrompt aviso sobrescribir .CancelError = True .ShowSave Nfichero = .filename End With rtfeditor.SaveFile Nfichero HayCambios = False staEstado.Panels(1).Text = NFichero Exit Sub Error_cancelacion: If Err <> cdlCancel Then MsgBox Error: No se pudo guardar fichero End If End Sub Private Sub mnuArchivoImprimir_Clic()

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

155

Captulo 11

Visual Basic

On Error GoTo Error_cancelacion With dlgComun .Flags = cdlPDHidePrintToFile Or cdlPDNoSelection Or cdlPDNoPageNums .PrinterDefault = True .CancelError = True .ShowPinter Printer.Print rtfeditor.SelPrint Printer.hDC End With Exit Sub Error_cancelacion: If Err <> cdlCancel Then MsgBox Error: No se pudo imprimir End If End Sub Private Sub mnuArchivoNuevo_Clic() Dim res As Integer If HayCambios Then res = MsgBox(Desea guardar cambios?, vbQuestion + vbYesCancel + vbDefaultButton3, Editor:) If res = vbYes Then mnuArchivoGuardar_Clic If res = vbCancel Then Exit Sub End If rtfeditor.Text = staEstado.Panels(1) = Sin Nombre Nfichero = Sin Nombre End Sub Private Sub mnuArchivoSalir_Clic() Dim res As Integer If HayCambios Then res = MsgBox(Desea guardar cambios?, vbDefaultButton2, " If res = vbYes Then mnuArchivoGuardar_Clic If res = vbCancel Then Exit Sub End If End End Sub Private Sub mnuEditarBorrar_Click() rtfeditor.SelText = End Sub Private Sub mnuEditarCopiar_Click() Clipboard.SetText rtfeditor.SelText End Sub Private Sub mnuEditarCortar_Click() rtfeditor.SetText rtfeditor.SelText rtfeditor.SelText =
156

vbQuestion

vbYesNoCancel

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 11

End Sub Private Sub mnEditarPegar_Click() rtfeditor.SelText = Clipboard.GetText End Sub Private Sub mnuFormatoFuente_Click() With dlgComun If Not IsNull(rtfeditor.SelFontName) Then .FontName = rtfeditor.SelFontName If Not IsNull(rtfeditor.SelFontSize) Then .FontSize = rtfeditor.SelFontSize If Not IsNull(rtfeditor.SelBold) Then .FontBold = rtfeditor.SelBold If Not IsNull(rtfeditor.SelItalic) Then .FontItalic = rtfeditor.SelItalic If Not IsNull(rtfeditor.SelUnderline) Then .FontUnderline = rtfeditor.SelUnderline If Not IsNull(rtfeditor.SelStrikeThru) Then .FontStrikethru = rtfeditor.SelStrikeThru If Not IsNull(rtfeditor.SelColor) Then.Color = rtfeditor.SelColor .Flags = cdlCFBoth Or cdlCFEffects .ShowFont If Not IsNull(.FontName) Then rtfeditor.SelFontName = .FontName If Not IsNull(.FontSize) Then rtfeditor.SelFontSize = .FontSize If Not IsNull(.FontBold) Then rtfeditor.SelBold = .FontBold If Not IsNull(.FontItalic) Then rtfeditor.SelItalic = .FontItalic If Not IsNull(.FontUnderline) Then rtfeditor.SelUnderline = .FontUnderline If Not IsNull(.FontStrikethru) Then rtfeditor.SelStrikeThru = .FontStrikethru If Not IsNull(.Color) Then rtfeditor.SelColor = .Color En Whith End Sub Private Sub rtfeditor_Change() HayCambios = True End Sub Private Sub rtfeditor_SelChange() If rtfeditor.SelBold Then tlbBarra.Buttons(9).Value = tbrPressed Else tlbBarra.Buttons(9).Value = tbrUnpressed End If If rtfeditor.SelUnderline Then tlbBarra.Buttons(10).Value = tbrPressed Else tlbBarra.Buttons(10).Value = tbrUnpressed End If If rtfeditor.SelItalic Then tlbBarra.Buttons (11).Value = tbrPressed Else tlbBarra.Buttons(11).Value = tbrUnpressed End If End Sub Private Sub tlbBarra_ButtonClick(ByVal Button As ComctlLib.Button) Select Case Button.Index Case 1 Nuevo mnuArchivoNuevo_Click Case 2 Abrir mnuArchivoAbrir_Click
157

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Captulo 11

Visual Basic

Case 3 Guardar mnuArchivoGuardar_Click Case 6 Cortar mnuEditarCortar_Click Case 7 Copiar mnuEditarCopiar_Click Case 8 Pegar mnuEditarPegar_Click Case 9 Negrita rtfeditor.SelBold = Button.Value Case 10 Subrayado rtfeditor.SelUnderline = Button.Value Case 11 Cursiva rtfeditor.SelItalic = Button.Value End Select End Sub

11.5.- PROGRESSBAR
Microsoft Windows Common Control 6.0 (COMCTL32.OCX) El Control ProgressBar muestra la evolucin de una operacin prolongada llenando un rectngulo en bloques de izquierda a derecha. Muestra la evolucin de una operacin hacia su trmino. PROPIEDADES Min, Max: rango de valores enteros entre los que se mueve la barra. Value: Establece o devuelve el valor que tiene el ProgressBar.

11.6.- SLIDER
Microsoft Windows Common Control 6.0 (COMCTL32.OCX) Un control Slider es una ventana que contiene un control deslizante y unas marcas opcionales. Puede mover el control deslizante si se arrastra, hacer click con el ratn en uno de sus lados o a travs del teclado. PROPIEDADES Min, Max: establece el valor mnimo y mximo de la propiedad Value de una barra de desplazamiento. LargeChange: establece el nmero de marcas que se desplazar el control deslizante al presionar las teclas RE PG o AV PG o al hacer clic con el mouse a la izquierda o a la derecha de dicho control. SmallChange: establece el nmero de marcas que se desplazar el control deslizante al presionar las teclas FLECHA IZQUIERDA o FLECHA DERECHA.

158

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 11

11.7.- UPDOWN
Microsoft Windows Common Control-2 6.0 (COMCT232.OCX) El control UpDown tiene dos botones con flechas en los que el usuario puede hacer clic para incrementar o disminuir un valor. PROPIEDADES Min, Max: intervalo de desplazamiento del control UpDown. Value: la posicin actual del valor de desplazamiento. Increment: determina la cantidad en que vara la propiedad Value cuando se hace clic en los botones del control UpDown. BuddyControl: Establece o devuelve el control utilizado como control auxiliar. AutoBuddy: Establece o devuelve un valor que determina si el control UpDown utiliza automticamente un control como control auxiliar en base a su orden de tabulacin. SyncBuddy: Establece o devuelve un valor que determina si el control UpDown sincroniza la propiedad Vaue con una propiedad del control auxiliar. BuddyProperty: Establece o devuelve la propiedad empleada para sincronizar el control UpDown con su control auxiliar.

Ejemplo:Temporizador

Objetos:

Slider Name = sldSegundos Min = 0 Max = 60 SmallChange = 1 LargeChange = 15 SelectRange = True TextBox Name = txtSegundos ProgressBar Name = prgTiemp

TextBox Name = txtTiempo

UpDown Name = updSegundos Min = 0 Timer CommandButton Maz = 60 Name = tmrReloj Name = cmdRealizar Increment = 1 BuddyControl = sldSegundos SyncBuddy = True BuddyProperty = manual Value ha sido desarrollado por el departamento tcnico de DELTA PC 159 Este

Captulo 11

Visual Basic

Cdigo: Option Explicit Private Sub cmdRealizar_Click() Dim Tiempo As Integer Tiempo = Val(txtSegundos) If Tiempo > 1 Then tmrReloj.Interval = 1000 seg.a seg. prgTiempo.Min = 1 prgTiempo.Max = Tiempo + 1 prgTiempo.Value = 1 txtTiempo = 0 tmrReloj = True act.reloj End If End Sub Private Sub Form_Load() tmrReloj = False txtSegundos = 0 txtTiempo = 0 End Sub Private Sub sldSegundos_Change() txtSegundos = sldSegundos.Value sldSegundos.SelStart = 0 sldSegundos.SelLength = sldSegundos End Sub Private Sub sldSegundos_MouseUp(Button As Integer, Shif As Integer, x As Single, Y As Single) txtSegundos = sldSegundos.Value sldSegundos.SelStart = 0 sldSegundos.SelLength = sldSegundos End Sub Private Sub tmrReloj_Timer() If prgTiempo <= Val(txtSegundos) Then prgTiempo = prgTiempo + 1 txtTiempo = txtTiempo + 1 Else tmrReloj = False MsgBox Tiempo completado End If End Sub

11.8.- TABSTRIPT
160 Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 11

Microsoft Windows Common Control 6.0 (COMCTL32.OCX) Un control TabStrip es como los separadores de un cuaderno o las etiquetas de un grupo de carpetas de archivo. Mediante un control TabStrip se pueden definir varias pginas para la misma rea de una ventana o cuadro de dilogo en una aplicacin. PROPIEDADES MultiRow: indica si un control TabStrip puede mostrar ms de una fila de fichas. ShowTips: determina si se presenta informacin sobre herramientas (toolpittext). Style: Devuelve o establece la apariencia, fichas o botones, de un control TabStrip.

Posibles valores: Constante tabTabs tabButtons Valor 0 1 Descripcin (Predeterminado) Fichas. Las fichas aparecen como separadores de cuadernos y el rea interna tiene un borde tridemiensional alrededor Botones. Las fichas aparecen como botones de comando normales y el rea interna no tiene borde alrededor

Tab WidthStyle: determina la justificacin o ancho de todos los objetos Tab de un control.

Posibles valores: Constante tabJustified Valor 0 Descripcin (Predeterminado) Justificado. Si la propiedad MultiRow es True, cada ficha es lo suficientemente ancha como para dar cabida a su contenido y, si es necesario, el ancho de cada ficha se incrementa de manera que cada fila ocupa el ancho del control. Si la propiedad MultiRow es False, o si slo hay una fila de fichas, este valor no tiene ningn efecto. No justificado. Cada ficha es lo suficientemente ancha como para dar cabida a su contenido. Las filas no se justifican, por lo que terminan de manera irregular. Fijo. Todas las fichas tienen un ancho idntico que se determina por la propiedad TabFixedWidth.

tabNonJustified tabFixed

1 2

ImageList: si existe, el control ImageList que est asociado a un control. TabFixedHeight, TabFixedWidth: alto y ancho fijo de todos los objetos Tab de un control TabStript, pero slo si la propiedad TabWidthStyle est establecida a tabFixed.

El control TabScript consiste en uno o ms objetos Tab de una coleccin Tabs. Tanto en tiempo de diseo como en tiempo de ejecucin se pueden cambiar la apariencia del objeto Tab estableciendo en propiedades. Tambin se pueden agregar y quitar fichas utilizando la Pgina de propiedades del control TabScript en tiempo de diseo (como se muestra en la imagen anterior) o bien agregar o quitar objetos Tab en tiempo de ejecucin mediante mtodos.

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

161

Captulo 11

Visual Basic

Por cada Ficha se pueden rellenar los valores de las propiedades Caption, Key, Tag, ToolTipText e Image que ya fueron descritos en objetos como ToolBar o StatusBar. Tabs: Una coleccin Tabs contiene un conjunto de objetos Tab.

Sintaxis Tabstrip.Tabs (ndice) Tabstrip.Item (ndice) La coleccin Tabs utiliza la propiedad Count para devolver el nmero de fichas de la coleccin. Para manipular los objetos Tab de la coleccin Tabs, usar estos mtodos en tiempo de ejecucin: Add: Agrega objetos Tab al control TabStrip. Item: recupera el objeto Tab identificado por su Key o Index de la coleccin. Clear: quita todos los objetos Tab de la coleccin. Remove: quita el objeto Tab identificado mediante su Key o Index de la coleccin.

SelectedItem: Referencia a un objeto Tab seleccionado.

Ejemplo: Pestaas

Objetos: TabStript Name = tabStript

TextBox Name = txtTitulo

CommandButton Name = cmdAadir

CommandButton Name = cmdEditar

CommandButton Name = cmdEliminar

Cdigo: Option Explicit

162

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 11

Private Sub cmdAadir_Clic() Dim Pestaa As Strig Pestaa=InputBox (Nueva pestaa:) If Pestaa= Then Exit Sub Tabstript.Tabs.Add , , Pestaa End Sub Private Sub cmdEditar_Clic() Dim Pestaa As Strig If tabStript.Tabs.Count > 0 Then Pestaa=InputBox (Nuevo nombre: , , tabStript.SelectedItem.Caption) If Pestaa= Then Exit Sub Tabstript.SelectedItem.Caption = Pestaa End If End Sub Private Sub cmdEliminar_Click () Dim Res As Integer If tabStript.Tabs.Count >0 Then Res = MsgBos(Eliminar & tabStript.SelectedItem.Caption & ?, vbQuestion + Vb YesNo + vbDefaultButton2) If Res = vbYes Then TabStript.Tabs.Remove tabStript.SelectedItem.Index End If End If End Sub Private Sub tabStript_Click() TxTitulo =tabStript.SelectedItem.Caption End Sub

11.9.- SSTAB
Microsoft Tabbed Dialog Control 6.0 (TABCTL32.OCX) El control SSTab proporciona un grupo de fichas, cada una de las cuales acta como contenedor de otros controles. En el control slo hay al mismo tiempo una ficha activa; esta ficha muestra los controles que contiene al tiempo que oculta los de las dems fichas. PROPIEDADES TabCaption: ttulo de cada ficha de un control SSTab.

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

163

Captulo 11

Visual Basic

Tabs (Nmero de fichas): nmero total de fichas de un control SSTab. TabOrientation: ubicacin de las fichas en el control SSTab.

Posibles Valores: Constante SsTabOrientationTop SsTabOrientationBotton SsTabOrientationLeft SsTabOrientationRight Valor 0 1 2 3 Descripcin Las fichas aparecen en la parte superior del control. Las fichas aparecen en la parte inferior del control. Las fichas aparecen en la parte izquierda del control. Las fichas aparecen en la parte derecha del control.

TabsPerRow: nmero de fichas de cada fila de un control SSTab. Style: estilo de las fichas de un control SSTab.

Posibles valores: Constante SsStyleTabbedDialog Valor 0 Descripcin (Predeterminado) Las fichas de los cuadros de dilogo con fichas tienen la misma apariencia que en las aplicaciones de Microsoft Office para Microsoft Windows 3.1. Si selecciona este estilo, la fuente de la ficha a ctiva estar en negrita. Las fichas de los cuadros de dilgo con fichas tienen la misma apariencia que las de Microsoft Windows . Si elige este valor, la propiedad TabMaxWidth se pasa por alto y el ancho de cada ficha se adapta a la longitud del texto del ttulo. La fuente empleada para mostrar el texto de la ficha no est en negrita.

SsStylePropertyPage

TabHeight: alto de todas las fichas de un control SSTab. TabMaxWidth: ancho mximo de cda ficha de un control SSTab. TabPicture: mapa de bits o el icono que se muestra en la ficha especificada de un control SSTab. TabVisible: indica si una ficha de un control SSTab est visible u oculta. Tab: Devuelve o establece la ficha actual de un control SSTab. WordWrap: indica si el texto de cada ficha contina en la lnea siguiente cuando es demasiado largo y no cabe horizontalmente en una ficha de un control SSTab.

Ejemplo: Administrador de programas

164

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 11

Objetos: Sstab Name = sstPestaas Ficha :0. TabCaption = Microsoft Visual Basic Ficha :1. TabCaption = Accesorios Numero de fichas = 2 TabsPerRow = 2 CommandButton Name = cmdVisualBasic CommandButton Name = cmdLibros CommandButton Name = cmdCrystal

CommandButton Name = cmdNotas

CommandButton Name = cmdCalculadora

CommandButton Name = cmdPaint

Cdigo: Option Explicit Private Sub cmdCalculadora_Click() Dim id As Variant Id = Shell(D:\WinNT\System32\calc.exe, vbMaximizedFocus) End Sub

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

165

Captulo 11

Visual Basic

Private sub cmdCristal_click() Dimid as variant Id = Shell vbMaximizedFocus) End Sub Private sub cmdLibros_click() Dimid as variant Id = Shell vbMaximizedFocus) End Sub (D:\Archivos de Programa\DevStudio\VB\vbonline\VBONLINE.EXE, (D:\Archivos de Programa\DevStudio\VB\Report\Crw32.exe,

Private sub cmdNotas_click() Dimid as variant Id = Shell (D:\WinNT\System32\Notepad.exe, vbMaximizedFocus) End Sub Private sub cmdPaint_click() Dimid as variant Id = Shell (D:\WinNT\System32\Paint.exe, vbMaximizedFocus) End Sub Private sub cmdVisualBasic_click() Dimid as variant Id = Shell (D:\Archivos de programa\DevStudio\VB\VB5.exe, vbMaximizedFocus) End Sub

11.10.- TREEVIEW
Microsoft Windows Common Control 6.0 (COMCTL32.OCX) Un control TreeView muestra una lista jerrquica de obejtos Node, cda uno de los cuales consta de una etiqueta y un mapa de bits opcional. PROPIEDADES Style: Tipo de grficos (imgenes, texto, ms/menos y lneas) y texto que aparece para cada objeto Node de un control TreeView. Valor 0 1 2 3 4 5 6 Solo texto Imagen y texto Ms/menos texto Mas/menos imagen y texto Lneas y texto Lneas, imagen y texto Lneas, mas/menos y texto Descripcin

166

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 11

(Predeterminado) Lneas, ms/menos, imagen y texto. SelectedItem: referencia a un obejto Node seleccionado LineStyle: estilo de las lneas que aparecen entre los objetos Node.

Posibles valores: Constante TvwTreeLines TvwRootLines Valor 0 1 Descripcin (Predeterminado)Lneas de rbol. Muestra lneas entre los nodos del msmo nivel y su nodo primario. Lneas de raz. Adems de las lneas entre los nodos del mismo nivel y su nodo primario, se muestran lneas entre los nodos raz.

LabelEdit: valor que determina si el usuario peude modificar las etiquetas de los objetos ListItem o Node de un control ListView o TreeView.

Posibles valores: Constante TvwAutomatic TvwManual Valor 0 1 Descripcin (Predeterminado) Automtico. Se genera el evento BeforeLabelEdit cuando el usario hace clic en la etiqueta de un nodo seleccionado. Manual. El evento BeforeLabelEdit slo se genera al invocar el mtodo StartLabelEdit.

ImageList: control ImageLIst que est asociado a un control (opcional) Identation: ancho de la sangra de un control TreeView. Cada nuevo objeto Node secundario se desplaza la cantidad que se establezca aqu. PathSeparator: carcter delimitador utilizado en la rta devuelta por la propiedad FullPath. HideSelection: determina si el texto seleccionado aparece resaltado cuando un control pierde el enfoque. Sorted: determina si los nodos del nivel raz de un control TreeView estn ordenados alfabticamente. Node: coleccin de objetos TreeView de un control Node.

PROPIEDADES DE LA COLECCIN NODES: Count: nmero de elementos de la coleccin. Child: hace referencia al primer hijo de un objeto Node. Children: nmero de objetos node hijos de un objeto Node. FirstSibling: referencia al primer objeto del mismo nivel de un objeto Node (primer hermano). LastSibling: referencia al ltimo objeto del mismo nivel que un objeto Node (ltimo hermano).

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

167

Captulo 11

Visual Basic

Root: referencia al objeto Node raz de un objeto Node seleccionado. Parent: devuelve o establece el objetoa primario de un objeto Node. Previus: referencia al nodo anterior del mismo nivel que un objeto Node. Next: referencia al siguiente nodo del mismo nivel que un objeto Node. Image: devuelve o establece un valor que especifica qu objeto ListImage de un control ImageList usar. SelectedImage: devuelve o establece el ndice o el valor de clave de un objeto ListImage de un control ImageList asociado. El objeto ListImage se muestra al seleccionar un objeto Node. FullPath: devuelve la ruta completa del objeto Node referenciado. La ruta completa es el resultado de concatenar el texto de la propiedad Text del objeto Node referenciado con los valores de las propiedades Text de todos sus predecesores. El valor de la propiedad PathSeparator determina si est seleccionado un objeto Node. Selected: valor que determina si est seleccionado un objeto Node. Sorted: devuelve o establece un valor que determina si los nodos secundarios de un objeto Node estn ordenados alfabticamente. Item: devuelve un miembro especfico de un objeto Collection por posicin o por clave. Sintaxis: objeto.Item(ndice). Index: nmero que identifica inequvocamente un objeto de una coleccin. Key: cadena que identifica unvocamente un miembro de una coleccin. Text: texto contenido en un objeto Node. Expanded: valor que determina si un objeto Node se encuentra expandido o contrado. ExpandedImage: ndice o el valor clave de un objeto ListImage en un control ImageList asociado. El objeto ListImage se muestra cuando un objeto Node est expandido. Visible: valor que indica si un objeto es visible u oculto.

Mtodos de la coleccin Nodes: Add: Agrega un objeto Node. Sintaxis: Objeto.Add(relativa, relacin, clave, texto, imagen, imagen_seleccionada) Parte Relacin Clave Texto Imagen Imagen_seleccionada Descripcin Opcional. Especifica la ubicacin relativa del objeto Node, como se describe en la tabla que se muestra despus. Opcional. Una cadena nica que peude utilizarse para recuperar el objeto Node con el mtodo Item. Requerido. La cadena que aparece en el objeto Node. Opcional. El ndice de una imagen de un control ImageList asociado Opcional. El ndice de una imagen de un contol ImageList asociado que se muestra cuando se selecciona el objeto Node.

Los valores vlidos para la relacin son: Constante TvwFirst TvwLast 0 1 Valor Descripcin Primero. El objeto Node se sita antes de todos los dems nodos al mismo nivel que el especificado en relativo. Ultimo. El objeto Node se sita despus de todos

168

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 11

TvwNext TvWPrevius TvwChild

2 3 4

los dems nodos al mismo nivel que el especificado en relativo. Los objetos Node se agregan secuencialmente se irn situando detrs del ltimo agregado. (Predeterminado) Siguiente. El objeto Node se sita despus del especificado en relativo. Anterior. El objeto Node se sita antes del especificado en relativo. Secundario. El objeto Node es secundario con respecto al nodo especificado en relativo.

Remove: Quita el miembro especificado de una coleccin. objeto. Remove ndice

Sintaxis:

Clear: Quita todos los objetos que hay en una coleccin. CreateDragImage: Crea una imagen de arrastre con una versin difuminada de la imagen asociada a un objeto. Normalmente, esa imagen se utiliza en las operaciones de arrastrar y colocar. EnsureVisible: Asegura que el objeto ListItem o Node especificado sea visible.

METODOS: GetVisibleCount: nmero de objetos Node que caben en el rea interna de un control TreeView. HiTest: Devuelve una referencia al objeto ListItem o Node situado en las coordenadas x e y. Se utiliza sobre todo en las operaciones de arrastrar y colocar para determinar si hay disponible en la ubicacin actual un elemento de destino de colocacin. StartLabelEdit: Permite al ususario modificar una etiqueta.

EVENTOS: BeforeLabelEdit, AfterLabelEdit: Antes y despus de modificar la etiqueta de un nodo. Collapse: Se genera al contraer cualquier objeto Node. Expand: Se produce al expandir un objeto Node NodeClick: Se produce al hacer clic en un objeto Node.

Ejemplo: Arbol

Objetos:

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

169

Captulo 11

Visual Basic

TreeView Name = tvwArbol Style = 7 ImageList = ilsIconos CommandButton Name = cmdAadir CommandButton Name = cmdEliminar ImageList Name = ilsIconos

CommandButton Name = cmdEditar

CommandButton Name = cmdSalir

Cdigo: Private Sub cmdAadir_Clic() Dim strNuevo As String StrNuevo=InputBox(Nuevo:) If strNuevo = Then Exit Sub If Not (tvwArbol.SelectedItem Is Nothing)Then TvwArbol.Nodes.Add tvwArbol.SelectedItem, tvwChild, strNuevo, 1, 1 TvwArbol.SelectedItem.Expanded = True Else MsgBox No hay elemento seleccionado, vbQuestion End if End Sub If Not (tvwArbol.SelectedItem Is Nothing) Then TvwARbol.StartLabelEdit End if End Sub Private Sub cmdEliminar_Click() Dim Res As Integer If Not (rvwArbol.SelectedItem Is Nothig) Then If tvwArbol.SelectedItem.Index = 1 Then MsgBox El Elemento Raiz no se puede Eliminar, vbInformation Else Res = MsgBox (Desea Eliminar & tvwArbol.SelectedItem.Text & ?, vbQuestion + vbYesNo + vbDefaultButton2) If Res = vb Yes Then TvwArbol.Nodes.Remove tvwARbol.SelectedItem.Index

170

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 11

End If End If End If End Sub Private Sub cmdSalir_Click() End End Sub Private Sub Form_Load () TvwArbol.Nodes.Add, , Raiz, Raiz, 1, 1 End Sub

11.11.- LISTVIEW
Microsoft Windows Common Control 6.0 (COMCTL32.OCX) El control ListView muestra elementos en una de cuatro vistas diferentes. Puede organizar los elementos en columnas con o sin encabezados, as como mostrar iconos y texto adjuntos. PROPIEDADES View: establece la apariencia de los objetos ListItem de un conrol ListView. Valor 0 1 2 Descripcin (Predeterminado) Icon. Cada objeto ListItem se representa por un icono de tamao completo (estndar) y una etiqueta de texto. SmallIcon. Cada objeto ListItem se representa por un icono pequeo y una etiqueta de texto que aparece a la derecha del icono. Los elementos aparecen horizontalmente. List. Cada objeto ListItem se representa por un icono pequeo y una etiqueta de texto que aparece a la derecha del icono. Los objeto ListItem se organizan verticalmente, cada uno en su propia lnea con la informacin dispuesta en columnas. Report. Cada objeto ListItem se muestra con su icono pequeo y etiquetas de texto. Puede proporcionar informacin adicional sobre cada objeto ListItem en un subelemento. Los iconos, las etiquetas de texto y la informacin aparecen en columnas. La columna situadaen el extremo izquierdo contiene el icono pequeo, seguido de la etiqueta de texto. Otras columnas adicionales muestran el texto de cada uno de los subelementos del elemento.

Constante LvwIcon LvwSmallIcon LvwList

LvwReport

LabelEdit: (igual que para TreeView) HideSelection: (igual que para treeView) HideColumnHeaders: establece si estarn visibles las columnas en modo Informe. MultiSelect: indica si un usuario puede seleccionar mltiples ListItems.
Este manual ha sido desarrollado por el departamento tcnico de DELTA PC 171

Captulo 11

Visual Basic

LabelWrap: determina si se produce o no ajuste de lnea en las etiquetas. SortOrder: determina si los objetos ListItem de un control ListView se muestran en orden ascendente o descendente. Valor 0 1 Descripcin (Predeterminado) Orden ascendente. Ordena desde el principio del alfabeto (A-Z) o la primera fecha. Los nmeros se ordenan como cadenas. Orden descendente. Ordena desde el final del alfabeto (Z-A) o la ltima fecha. Los nmeros se ordenan como cadenas.

Constante LvwAscending LvwDescending 0 >1

SortKey: determina cmo se ordenan los objetos ListItem de un control ListView. Valor Descripcin Ordena mediante la propiedad Text del objeto Text Ordena mediante el subelemento cuyo ndice de coleccin se especifica aqu.

Sorted: determina si se ordenan los objetos ListItem de un control ListView. SelectedItem: (igual que para TreeView) Icons, SmallIcons: controles ImageList asociados a las vistas Icon y SmallIcon en un control ListView. Arrange: valor que determina cmo se organizan los iconos en la vista Icon o SmallIcon de un control ListView. Valor 0 1 2 Descripcin (Predeterminado) Ninguno. Izquierda. Los elementos se alinean automticamente a lo largo de la parte izquierda del control. Superior. Los elementos se alinean automticamente a lo largo de la parte superior del control.

Constante LvwNone LvwAutoLeft LvwAutoTop

ListItems: coleccin de objetos ListItem de un control ListView.

Propiedades de la coleccin ListItems Ghosted: determina si un objeto ListItem est no disponible (aparece atenuado) Icon, SmallIcon: ndice o el valor de clave de un icono o un icono pequeo asociado a un objeto ListItem en un control ImageList. SubItems: establece una matriz de cadenas (un subelemento) que representa los datos del objeto ListItem. Sintaxis Objeto.SubItems(ndice) [= cadena]. (Coleccin ColumnHeaders). Count, Index, Item, Key, Selected, Text: (igual que en Nodes de TreeView)

Mtodos de la coleccin ListItems Add: Agrega un objeto ListItem a una coleccin ListItems y devuelve una referencia al objeto recin creado. Sintaxis: objeto.Add(ndice, clave, texto, icono, icono_pequeo) Parte Indice Descripcin Opcional. Un entero que especifica la posicin en la que desea insertar el

172

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 11

Clave Texto Icono Icono pequeo

ListItem. Si no se especifica ningn ndice, ListItem se agregar al final de la coleccin ListIems. Opcional. Una expresin de cadena nica que puede utilizarse para tener acceso a un miembro de la coleccin. Opcional. Una cadena asociada al control del objeto ListItem. Opcional. Un entero que establece el icono que se va a mostrar en un control ImageList, cuando el control ListView establece a la vista Icono. Opcional. Un entero que establece el icono que se va a mostrar en un control ImageLIst, cuando el control ListView se establece a la vista Icono pequeo.

Remove, Clear, CreateDragImage, EnsureVisible: (igual que en nodes de TreeView)

METODOS Parte Valor ndice FindItem: Busca y devuelve una referencia a un objeto ListItem de un control ListView. Sintasis: FindItem (cadena, valor, ndice, coincidencia) Descripcin Opcional. Un entero o una constante que especifica si la cadena coincidir con la propiedad Text, Subitems o Tag del objeto ListItem, como se describe en la tabla de Valores (descrita abajo) Opcional. Un entero o una cadena que identifica de forma nica a un miembro de una coleccin de objetos y especifica la ubicacin desde la cual debe comenzar la bsqueda. El entero es el valor de la propiedad Index; la cadena es el valor de la propiedad Key. Si no se especifica ningn ndice, el valor predeterminado ser 1. Opcional. Un entero o una constante que especifica que se encontrar una coincidencia si la propiedad Text del elemento es la misma que la cadena, como se describe en Valores.

Coincidencia

Tabla de Valores Constante LvwText LvwSubitem LvwTag Valor 0 1 2 Descripcin (Predeterminado) Hace coincidir la cadena con la propiedad Text de un objeto ListItem. Hace coincidir la cadena con cualquier cadena de la propiedad SubItems de un objeto ListItem. Hace coincidir la cadena con cualquier propiedad Tag de un objeto ListItem.

Los valores de coincidencia son: Constante Valor Descripcin LvwWholeWord 0 (Predeterminado) Un entero o una constante que especifica que se producir una coincidencia si la propiedad Text del elemento comienza por la palabra completa que se busca. Se pasa por alto si el criterio no es texto. LvwParciar 1 Un entero o una constante que especifica que se producir una coincidencia si la propiedad Text del elemento comienza la cadena que se busca. Se pasa por alto si el criterio no es texto.
173

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Captulo 11

Visual Basic

GetFirstVisible: primer objeto ListItem visible de un control ListView. HiTest, StartLabelEdit: (igual que para Tree View)

EVENTOS ItemClick: Se produce cuando se hace clic en un objeto ListItem de un control ListView. ColumnClick: Se produce cuando se hace clic en un objeto ColumnHeader de un control ListView. Slo est disponible en la vista Informe. BeforeLabelEdit, AfterLabelEdit: (igual que para TreeView)

174

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 11

Ejemplo: Lista de Libros

Objetos:

CommandButton Name = cmdAadir ListView Name = lvwLista Propiedades(img) Normal = ilsIconosNormal Pequeo = ilsIconosPeq Propiedades(Encab) Titulo Autor ImageList Name = ilsIconosNormal 32 X 32

CommandButton Name = cmdEliminar

CommandButton Name = cmdEditar

CommandButton Name = cmdSalir

ImageList Name = ilsIconosPeq 16 X 16

CommandButton Name = cmdDetalles Style = Graphical CommandButton Name = cmdIconGrande Style = Graphical

CommandButton Name = cmdLista Style = Graphical CommandButton Name = cmdIconPeque Style = Graphical

Cdigo: Option Explicit Private Sub cmdAadir_Click() Dim strTitulo As String, srAutor As String Dim Elemento As ListItem strTitulo = InputBox(Nuevo Ttulo:) If strTitulo = Then Exit Sub strAutor = InputBox(Autor:) If strAutor = Then Exit Sub Set Elemento =lvwLista.ListItems.Add(, , strTitulo, 1, 1) Elemento.SubItems(1) = strAutor

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

175

Captulo 11

Visual Basic

End Sub Private Sub cmdDetalles_Click() lvwLista.View = lvwReport End Sub Private Sub cmdEditar_Click() Dim strTitulo As String, strAutor As String Dim Elemento As ListItem If lvwLista.SelectedItem Is Nothing Then MsgBox No hay Elemento seleccionado, vbQuestion Exit Sub End If strTitulo = InputBox(Ttulo:, , lvwList.SelectedItem.Text) If strTitulo = Then Exti Sub strAutor = InputBox(Autor:, , lvwLista.SelectedItem.SubItems(1)) If strAutor = Then Exit Sub lvwLista.ListItems(lvwLista.SelectedItem.Index).Text = strTitulo lvwLista.ListItems(lvwLista.SelectedItem.Index).SubItems(1) = strAutor End Sub Private Sub cmdEliminar_Click() Dim Res As Integer If lvwLista.SelectedItem Is Nothing Then MsgBox No hay Elemento seleccionado, vbQuestion Exit Sub End If Res = MsgBox(Desea Eliminar & lvwLista.SelectedItem.Text &?, vbQuestion + vbYesNo + vbDefautlButton2) If Res = vbYes Then LvwLista.ListItems.Remove lvwLista.SelectedItem.Index End If End Sub Private Sub cmdIconGrande_Click() lvwLista.View = lvwIcon End Sub Private Sub cmdIconPeque_Click() lvwLista.View = lvwSmallIcon End Sub Private Sub cmdLista_Click() lvwLista.View = lvwList End Sub Private Sub cmdSalir_Click() End
176

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 11

End Sub Private Sub lvwLista_ColumnClick(ByVal ColumnHeader As ComctlLib.ColumnHeader) lvwLista.SortOrder = lvwAscending lvwLista.SortKey = ColumnHeader.Index 1 lvwLista.Sorted = True End Sub

11.12- ANIMATION
Microsoft Windows Common Control-2 6.0(COMCT232.OCX) El control Animation le permite crear botones que presenten animaciones, como archivos .avi, cuando se haga clic en ellos. El control slo puede reproducir archivos AVI que no tengan sonido. PROPIEDADES: AutoPlay: valor que determina si el control Animation empezar a reproducir un archivo .avi cuando ste se cargue en el control. Center: Determina si el archivo .avi se centrar dentro del control Animation.

METODOS: Close: hace que el control Animation cierre el archivo AVI abierto actualmente. Si no hay ningn archivo cargado, Close no hace nada y no se genera ningn errro. Open: Abre un archivo .avi para su reproduccin. Si la propiedad AutoPla es True, el clip empezar a reproducirse en cuanto termine de cargarse. Continuar reproducindose hasta que se cierre el archivo .avi o hasta que la propiedad Auto Play se establezca a False. Play: Reproduce un archivo .avi en el control Animation. Sintaxis: objeto.Play [= repetir, inicio, final] Descripcin Opcional. Un entero que especifica el nmero de veces que va a reproducirse el clip. El valor predeterminado es 1, que hace que el clip se repita de forma indefinida. Opcional. Un entero que especifica la trama inicial. El valor predeterminado es 0, que inicia el clip desde la primera trama. El valor mximo es 65535. Opcional. Un entero que especifica la trama final. El valor predeterminado es 1, que indica la ltima trama del clip. El valor mximo es 65535. Stop: Termina la reproduccin de un archivo .avi en el control Animation. El mtodo Stop slo termina las animaciones iniciadas con el mtodo Play. Si se intenta utilizar el mtodo Stop cuando la propiedad AutoPlay est establecida a True, se produce un error.

Parte Repetir Inicio Final

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

177

Captulo 11

Visual Basic

Ejemplo: Reproductor de Animaciones

Objetos: Animation Name = aniAnimacion Center = True

CommonDialog Name = dlgComun

Cdigo: Private Sub aniAnimacion_Click() With dlgComun .Filter = avi (*.avi)\*.avi .ShowOpen End With With aniAnimacion .AutoPlay = True .Open dlgComun.filename End With End Sub

178

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 11

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

179

Captulo 12

Visual Basic

Captulo 12 Ficheros

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

180

Visual Basic

Captulo 12

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

181

Captulo 12

Visual Basic

12.1.- INTRODUCCIN
Un fichero o archivo es una coleccin de datos almacenados. En este capitulo veremos como podemos acceder a estos archivos y como podremos trabajar con ellos.

12.2 TIPOS Y MODOS DE ACCESO


En Visual Basic existen tres tipos de acceso a los archivos: - Secuencial - Aleatorio - Binario En el primer caso, el secuencial, tendremos que recorrernos todo el archivo hasta el punto en el que se encuentre la informacin que deseamos leer, lo que no pasa con las otras dos formas de acceso. El modo de acceso significa como vamos a acceder al archivo para realizar las acciones sobre el. Es un punto muy importante puesto que segn escojamos el modo y el tipo de acceso podremos realizar unas acciones y otras no, en la siguiente tabla se describen estas acciones: MODO Input Output Append Random binary TIPO DE ACCESO Secuencial Secuencial Secuencial Aleatorio Binario LECTURA / ESCRITURA Lectura Escritura Escritura Lectura y escritura Lectura y escritura

12.3 OPERACIONES
Apertura: La instruccin que se utiliza para abrir un archivo es OPEN y su sintaxis es: OPEN ruta_acceso [modo_apertura] As nmero_archivo La ruta_acceso es la ruta (relativa) que hay que seguir en el ordenador para encontrar el archivo, el modo_apertura es el modo de acceso que tiene que utilizar el programa y por ltimo nmero_archivo es un nmero que le asigna el ordenador al archivo, para saber este nmero podemos utilizar la instruccin FREEFILE. Lectura: Para leer de un archivo tenemos diferentes mtodos que aparecen desglosados en la siguiente tabla: MTODOS SECUENCIAL X X X X X ALEATORIO X BINARIO X X

Get
Input Input# LineInput Print# Put

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

182

Visual Basic

Captulo 12

Write Cierre:

Para cerrar archivos podemos utilizar la instruccin CLOSE de cualquiera de las siguientes formas: CLOSE nmero_archivo CLOSE [lista_de_archivos] CLOSE A continuacin formalizaremos una tabla con distintos mtodos que nos ayudarn a trabajar con los archivos: MTODO DESCRIPCIN Cambiar de directorio Cambiar de unidad Unidad actual Busca carpetas y archivos segn un patrn Copiar archivos(Tiene que estar cerrado) Fecha y hora de creacin y modificacin Tamao en Bytes Devuelve los atributos de un archivo Elimina un archivo Devuelve la posicin actual de un archivo Tamao del archivo abierto Posiciona la cabeza lectora Cambia los atributos

ChDir
ChDrive CurDir Dir FileCopy FileDateTime FileLen GetAttr Kill Loc Lof Seek SetAttr

12.4 ACCESO SECUENCIAL


Apertura: OPEN ruta_archivo [FOR Input/Output/Append] AS nmero_archivo Notas: Si se abre el archivo con Input se puede leer. Si se abre el archivo con Append se puede aadir al final del archivo ms datos. Si se abre el archivo con Output y el archivo ya existe se elimina toda la informacin que haya en el y se puede aadir datos. Si no existe este es el modo para crearlo. Escritura: Mtodo: WRITE# intArchivo, strNombre, dtmFecha Salida: Juan Gutierrez Gutierrez, # 1974-06-05
Este manual ha sido desarrollado por el departamento tcnico de DELTA PC 183

Captulo 12

Visual Basic

Mtodo: PRINT# intArchivo, strNombre, dtmFecha Salida: Juan Gutierrez Gutierrez, 5/06/74 Lectura: Para esta accin se diferencia en como se ha escrito en el archivo: - Si se escribe con el mtodo WRITE# se tiene que leer con el mtodo INPUT# INPUT# intArchivo, lista_variables - Si se escribe con el mtodo PRINT# se tiene que leer con el mtodo LINEINPUT# LINEINPUT# intArchivo, lista_variables

12.5 ACCESO ALEATORIO


Creacin: TYPE nombre_archivo Apertura: OPEN ruta_archivo FOR RANDOM AS intArchivo Lectura: GET numArchivo, [numRegistro], variable Escritura: PUT numArchivo, [numRegistro], variable Tamao: Para saber el tamao de uno de estos archivos se utilizara la siguiente instruccin: IntTamao = LEN(variable perteneciente al tipo de dato del fichero)

184

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

Visual Basic

Captulo 12

12.6 ACCESO DINMICO O BINARIO


Apertura: OPEN ruta_archivo FOR BINARY AS nmero_archivo Lectura: GET nmero_archivo, [posicin], variable Escritura: PUT nmero_archivo, [posicin], variable

Este manual ha sido desarrollado por el departamento tcnico de DELTA PC

185