Visual Basic: guía del estudiante Descargada de ww.alucardwarez.

net Visual Basic: guía del estudiante
(Adaptados al programa de la Asignatura de Desarrollo en Entornos Gráficos del Módulo de Desarrollo de Aplicaciones Informáticas 2º Curso) Este libro, Visual Basic - Guía del Estudiante se ofrece a todos los estudiantes de habla hispana como texto de libre difusión para fines educativos. Prohibida la copia total o parcial con fines comerciales. Madrid, Julio de 1998 Visual Basic - Guía del Estudiante Cap. 1 INTRODUCCION Antecedentes históricos. ___________________________________ El lenguaje de programación BASIC (Beginner's All purpose Symbolic Instruction Code ) nació en el año 1964 como una herramienta destinado a principiantes, buscando una forma sencilla de realizar programas, empleando un lenguaje casi igual al usado en la vida ordinaria ( en inglés), y con instrucciones muy sencillas y escasas. Teniendo en cuenta el año de su nacimiento, este lenguaje cubría casi todas las necesidades para la ejecución de programas. Téngase en cuenta que las máquinas existentes en aquella época estaban estrenando los transistores como elementos de conmutación, los ciclos de trabajo llegaban a la impensable cifra de 10.000 por segundo y la memoria no pasaba de unos pocos k´s en toroides de ferrita. La evolución del BASIC por los años 70 fue escasa, dado el auge que tomaron en aquella época lenguajes de alto nivel como el FORTRAN y el COBOL. En 1978 se definió una norma para unificar los Basics existentes creándose la normativa BASIC STANDARD Con la aparición de los primeros ordenadores personales, dedicados comercialmente al usuario particular, allá por la primera mitad de los ochenta, el BASIC resurgió como lenguaje de programación pensado para principiantes, y muchos de estos pequeños ordenadores domésticos lo usaban como único sistema operativo (Sinclair, Spectrum, Amstrad) Con la popularización del PC, salieron varias versiones del BASIC que funcionaban en este tipo de ordenadores (Versiones BASICA, GW-BASIC), pero todas estas versiones del BASIC no hicieron otra cosa que terminar de rematar este lenguaje. Los programadores

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
profesionales no llegaron a utilizarlo, habida cuenta de las desventajas de este lenguaje respecto a otras herramientas (PASCAL, C, CLIPPER). El BASIC con estas versiones para PC llegó incluso a perder crédito entre los profesionales de la informática. Las razones para ello eran obvias: - No era un lenguaje estructurado. - No existían herramientas de compilación fiables. - No disponía de herramientas de intercambio de información. - No tenía librerías. - No se podía acceder al interior de la máquina. - Un largo etcétera de desventajas respecto a otros lenguajes de programación. Tal fue ese abandono por parte de los usuarios, que la aparición del Quick-BASIC de Microsoft, una versión ya potente del BASIC, que corregía casi todos los defectos de las versiones pasó prácticamente inadvertida, a no ser porque las últimas versiones del sistema operativo MS-DOS incluían una versión de Quick-BASIC algo recortada (Q-Basic) como un producto mas dentro de la amplia gama de ficheros ejecutables que acompañan al sistema operativo, y aprovecha de él el editor de textos (Cada vez que se llama al EDIT estamos corriendo el editor del Q-Basic). Esta versión del popular BASIC ya es un lenguaje estructurado, lo que permite crear programas modularmente, mediante subrutinas y módulos, capaz de crear programas ya competitivos con otros lenguajes de alto nivel. Sin embargo llegaba tarde, pues los entornos MS-DOS estaban ya superados por el entorno gráfico Windows. Sin embargo algo había en el BASIC que tentaba a superarse: su gran sencillez de manejo. Si a esto se le añade el entorno gráfico Windows, el aprovechamiento al máximo de las posibilidades de Windows en cuanto a intercambio de información, de sus librerías, de sus drivers y controladores, manejo de bases de datos, etc. el producto resultante puede ser algo que satisfaga todas las necesidades de programación en el entorno Windows. La suma de todas estas cosas es VISUAL - BASIC. Esta herramienta conserva del BASIC de los años 80 únicamente su nombre y su sencillez, y tras su lanzamiento al mercado, la aceptación a nivel profesional hizo borrar por fin el "mal nombre" asociado a la palabra BASIC. Actualmente se está comercializando la versión 5.0 de este producto. Desde su salida al mercado, cada versión supera y mejora la anterior. Dados los buenos resultados a nivel profesional de este producto, y el apoyo prestado por el fabricante para la formación de

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
programadores, Visual-Basic se ha convertido en la primera herramienta de desarrollo de aplicaciones en entorno Windows. Es obligado decir sin embargo, que sigue siendo BASIC. No se pueden comparar sus prestaciones con otros lenguajes cuando deseamos llegar al fondo de la máquina y controlar uno a uno sus registros. No es ese el fin perseguido con VB y si es necesario llegar a esas precisiones será necesario utilizar otro lenguaje que permita bajar el nivel de programación. (Visual-C). o realizar librerías (DLLs) que lo hagan. En la mayor parte de las aplicaciones, las herramientas aportadas por VB son mas que suficiente para lograr un programa fácil de realizar y de altas prestaciones. Características Generales de Visual-Basic Visual-Basic es una herramienta de diseño de aplicaciones para Windows, en la que estas se desarrollan en una gran parte a partir del diseño de una interface gráfica. En una aplicación Visual - Basic, el programa está formado por una parte de código puro, y otras partes asociadas a los objetos que forman la interface gráfica. Es por tanto un termino medio entre la programación tradicional, formada por una sucesión lineal de código estructurado, y la programación orientada a objetos. Combina ambas tendencias. Ya que no podemos decir que VB pertenezca por completo a uno de esos dos tipos de programación, debemos inventar una palabra que la defina : PROGRAMACION VISUAL. La creación de un programa bajo Visual Basic lleva los siguientes pasos: - Creación de un interface de usuario. Este interface será la principal vía de comunicación hombre máquina, tanto para salida de datos como para entrada. Será necesario partir de una ventana - Formulario - a la que le iremos añadiendo los controles necesarios. - Definición de las propiedades de los controles - Objetos - que hayamos colocado en ese formulario. Estas propiedades determinarán la forma estática de los controles, es decir, como son los controles y para qué sirven. - Generación del código asociado a los eventos que ocurran a estos objetos. A la respuesta a estos eventos (click, doble click, una tecla pulsada, etc.) le llamamos Procedimiento, y deberá generarse de acuerdo a las necesidades del programa. - Generación del código del programa. Un programa puede hacerse solamente con la programación de los distintos procedimientos que acompañan a cada objeto. Sin embargo, VB ofrece la posibilidad de establecer un código de programa separado de estos eventos. Este código puede introducirse en unos bloques llamados Módulos, en otros bloques llamados Funciones, y otros llamados Procedimientos. Estos Procedimientos no responden

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
a un evento acaecido a un objeto, sino que responden a un evento producido durante la ejecución del programa. No es necesario entender de momento lo anterior. Visual Basic introduce un concepto nuevo de programación, y es necesario cambiar hasta el argot del programador. Posiblemente se le habrán acumulado demasiados términos de una sola vez. Es normal. A poco que siga leyendo verá las cosas mas claras cuando se explique una por una. VARIABLES. DEFINICION Y ENTORNO Basic, desde siempre, al contrario de otros sistemas de programación, no exigió la definición previa de una variable. Una variable, como Vd. seguro que conoce, es un nombre que en el programa le asignamos a un dato. Ese dato podrá cambiar. Piense por ejemplo, en un programa consistente en la toma de datos de los alumnos de un centro escolar. Existirán varias variables para poder introducir los datos de los alumnos. Estas variables pueden tener nombre tales como: Nombre Apellido1 Apellido2 Dirección Teléfono DNI La variable Nombre tomará valores distintos según vayamos introduciendo los datos de los distintos alumnos. Es posible, que a lo largo de la ejecución del programa, esta variable Nombre valga: José Pedro María Luis Espero que su intuición o conocimiento anterior le lleve a conocer el concepto de variable. Mas adelante lo verá mas claro.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Decíamos que Basic no exige la definición previa de las variables. Otras herramientas exigen que se haga así. Por lo tanto es normal encontrar, en otros sistemas de programación, que un programa comienza de la siguiente forma: Declare Nombre As String Le dice que Nombre es una sucesión de letras Declare Apellido1 As String Declare Apellido2 As String Declare Dirección As String Declare Teléfono As String Le dice que Teléfono es una sucesión de letras Declare DNI As Número Le dice que DNI es un número Mediante estas declaraciones, el programa sabe de que tipo de dato se trata y por tanto cómo debe trabajar con él. En otros sistemas de programación distintos de Basic, es necesario realizar esta declaración antes de introducir una variable. Basic permite que no se declaren. Cuando a lo largo del programa le introducimos una variable nueva, asume que es una variable y que el tipo es el adecuado para el valor que le estamos introduciendo en ese momento. Por ejemplo, si Basic encuentra estas instrucciones DNI=50000000 Nombre ="Pedro" Teléfono = "1234567" entiende que DNI, Nombre y Teléfono son variables, que DNI es un número (No hemos metido su valor entre comillas), y que Nombre y Teléfono son sucesiones de caracteres alfanuméricos (su valor está entre comillas) Esta particularidad de no necesitar declarar las variables hace que sea sencillo introducir una variable nueva. Sin embargo entraña un gran peligro. Imagínese que en un paso posterior del programa, le mandamos escribir esos tres datos anteriores con la instrucción PRINT Print DNI Print Nombre

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Print Telwfono Habrá observado en tercer lugar la palabra Telwfono, que por error ha introducido el programador. Basic interpreta que Telwfono es una variable e irá a leer en memoria el valor que tiene. No tendrá ningún valor. Por lo tanto no escribirá nada y encima no dará ningún aviso de que se ha cometido un error. Nada es gratis en esta vida, y la facilidad para introducir variables se paga con la posibilidad de un error. Basic ha pensado en ese problema, y se puede solucionar con esta que será la primera instrucción BASIC que vamos a estudiar: OPTION EXPLICIT Obliga a declarar previamente las variables que se vayan a usar. De no haberla declarado antes de usarla, el programa dará una comunicación de error. TIPOS DE VARIABLES Las variables pueden ser de los siguientes tipos: (El número indicado en segundo lugar indica el número de Bytes que ocupa en memoria.) Booleana (2) Admite los valores 0 y 1, o True (verdadero) y False (falso) Byte (1) Números enteros, en el rango de 0 a 255 Integer (2) Números enteros en el rango de -32768 a 32767 Long (4) Números enteros en el rango de -2147483648 a 2147483647 Single (4) Punto flotante, simple precisión Doble (8) Punto flotante, doble precisión. Currency (8) Entero, con punto decimal fijo (Típico de monedas) String (*) Cadenas alfanuméricas de longitud variable o fija Date (8) Fechas Objet (4) Referencia a objetos Variant (**) Otros tipos de datos

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
(*) Una variable tipo String ocupa el mismo número de bytes que caracteres tenga la cadena. (**) Una variable tipo Variant ocupa 16 bytes si se trata de un número y 22 bytes + longitud de la cadena si se trata de un dato tipo cadena de caracteres. Existen también variables definidas por el usuario (Ya verá la sentencia Type). En este tipo de variables se pueden introducir muchos datos de distinto tipo. Los bytes necesarios para almacenar esa variable dependerá de los datos que se hayan definido. Dentro de las variables Objet (variables que se refieren a objetos) existe una gran variedad que a estas alturas del curso no debemos complicarnos con ellas. Pero para adelantar algo, veremos que una variable puede ser del tipo Form - Formulario - , tipo Picture, etc. etc. Cada tipo de variable ocupa unos determinados bytes. Si no se define una variable, VB toma como tipo por defecto para la variable el tipo Variant. Este tipo ocupa mas bytes que, por ejemplo, un integer. Si el tipo de dato que vamos a introducir en una variable es un integer, y no la hemos declarado como tal, VB asumirá para esa variable que es del tipo Variant, lo que le llevará a gastar mas bytes de memoria (16) que los que necesitaría (2) si la hubiésemos declarado previamente. Si esa variable va a estar en el rango de 0 a 255, y no declaramos previamente que la variable va a se del tipo Byte, o la declaramos como integer, p. e., estamos desperdiciando memoria RAM y posiblemente, retardando la ejecución del programa. Lo mismo podemos decir del resto de las variables, y lo importante que es definirlas y definirlas bien. NOTA. Observe en la lista anterior que un dato Booleano ocupa 2 Bytes, mientras que un dato tipo Byte ocupa un byte. En muchas ocasiones declaramos variables tipo Boolean con la intención de que ocupen menos espacio. Paradoja del VB. Si la declaramos como Byte ocupamos menos espacio en memoria. Declarar una variable como Boolean tiene también sus ventajas (escribirá menos código por lo general cuando necesite leer o escribir una variable tipo Boolean), pero tenga presente esta observación respecto a los datos Boolean. Puede declarar el tipo de la variable mediante un carácter después del nombre de la variable. Esta técnica, obligatoria en Quick-Basic, está en desuso en VB. No es recomendable definir el tipo de esta forma, pues existe un serio peligro de error. De cualquier forma, eso es potestativo del programador y de sus costumbres. Los caracteres que definen cada tipo de variable son: % Integer & Long ! Single # Double @ Currency $ String Ejemplos Prácticos de declaración de variables

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
En Visual Basic, cuando declaramos una variable como String (Cadena de caracteres), no es necesario declarar su longitud. VB aceptará cualquier número de caracteres. Si desea evitar que se puedan introducir más de un determinado número de caracteres, debe declarar su número. Por ejemplo : Dim Var1 as String Var1 puede tener cualquier número de caracteres Dim Var2 as String * 15 Var2 puede tener un máximo de 15 caracteres. En este segundo caso, si se introduce como Var2 una cadena de caracteres con mas de 15 caracteres, Var2 tomará solamente los 15 primeros. Visual basic no presenta ningún aviso de que esa variable ha omitido los caracteres que han sobrepasado la cifra de 15. Si desea que el usuario conozca esa circunstancia, debe introducir el código oportuno para producir el aviso. La declaración de variables tipo String con número de caracteres predefinido presenta también inconvenientes a la hora de tratar esa cadena de caracteres con sentencias tales como Mid, Left y Right, o a la hora de añadir una cadena a otra. La experiencia nos indica que NO merece la pena declarar variables tipo String con el número de caracteres prefijado. En una gran parte de los casos una variable que se compone de números debe declararse como una variable de cadena de caracteres (String), y no como numérica. Cuando pensamos por ejemplo en un número de DNI, compuesto por 7 u 8 cifras, un código postal, el número de una calle, el piso de un edificio, parecen invitar a que la variable que los contenga sea una variable de tipo numérico (Byte, Integer, Long, ...). Estas variables, aunque su contenido sean números, siempre se deben declarar como String, ya que se tratan en realidad de cadenas de caracteres, aunque estos sean números. Para aclarar mas estas ideas, piense en el número del DNI con la letra del NIF incluido, o que el lugar del DNI se deba rellenar con el número del permiso de residencia, (lleva letras). Piense en el código postal de una provincia que comienza por 0 ( 08XXX = Barcelona ) . Si la variable que va a contener ese código postal se declara como numérica, el cero de la izquierda lo desprecia, por lo que ese código postal quedaría reducido al 8XXX, número de 4 cifras que el cartero nunca reconocería como un código postal, que necesariamente ha de tener 5 cifras. Para terminar, piense la forma de introducir en una variable numérica el número 32Bis de una calle o el piso S2 de un edificio. O piense en una variable que va a contener un código de un producto. Ese código siempre va a ser un número, por ejemplo de 9 cifras. ¿Ha pensado como trataría el ordenador una variable numérica que contiene el código 000100123 ?. El resultado sería que convertiría ese código en la cifra 100123, y Vd. deberá buscarse la vida para añadir los ceros iniciales a la hora de sacarlo a una impresora, por ejemplo. En todos los casos anteriores, el número no representa una cantidad numérica, sino un nombre. Lo que ocurre es que ese nombre contiene solamente números.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
¿Qué variables debemos declarar entonces como numéricas ? La respuesta es bien sencilla : Aquellas que van a contener datos con lo que vamos a realizar operaciones matemáticas. Las variables booleanas (True/False) pueden en muchos casos sustituirse por una variable del tipo Byte. Si ese datos True / False se va a introducir en una base de datos o en fichero en el disco, puede ser mas prudente poner 0 en vez de False y 1 en vez de True. Una variable byte ocupa muy poco, simplemente 1 byte como su nombre indica. Pero no puede contener números mayores de 255 ni números negativos. Cada vez que declare una variable numérica piense en los valores que puede tener, sobre todo cuando esa variable va a ser el resultado de una operación matemática. Recuerde el escaso margen de una variable tipo Integer ( de -32768 a 32767) Si la aplicación va a tratar moneda, piense en la forma de expresar los números decimales y el número de ellos permitidos, así como el redondeo. La variable correcta para este caso es Currency, pero Currency le añade automáticamente el tipo de moneda de cada país (Pts. Para España) lo que con frecuencia es un engorro. Los datos del tipo de moneda los toma del sistema operativo del ordenador, por lo que no se extrañe si le expresa el número de pesetas en dólares. Cambie el país en su S. O. Ambito de las variables. Denominamos ámbito de una variable a las partes del programa donde esa variable está declarada. Para entenderlo mejor, veamos someramente la forma de un programa desarrollado en VB. Un programa VB tiene uno o varios formularios. Cada formulario tiene varios controles. Tanto el formulario como cada uno de sus controles tienen una parte del programa, justamente la parte relacionada con cada uno de los eventos que pueden suceder bien al formulario o a los controles. A estas partes las habíamos llamado Procedimientos. Podemos tener procedimientos que no estén relacionados con ningún evento ocurrido al formulario o a sus controles. (Los Procedimientos que iremos insertando a lo largo de la aplicación) Aparte de formularios y controles, un programa puede tener Módulos, y en cada uno de los módulos podemos insertar cuantos Procedimientos y Funciones queramos. La estructura de un programa VB puede ser de la siguiente forma: Formulario1 Formulario2 Formulario3 Módulo1 Modulo2 Declaraciones Declaraciones Declaraciones Declaraciones Declaraciones Proc. A1 Proc.B1 Proc.C1 Proc.D1 Proc.E1

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Proc. A2 Proc.B2 Proc.C2 Proc.D2 Proc.E2 Proc. A3 Proc.B3 Proc.C3 Proc.D3 FunciónE1 Proc. A4 Proc.B4 Proc.C4 Proc.D4 FunciónE2 Proc. A5 Proc.BB1 Proc.CC1 FunciónE3 Proc. AA1 Proc.BB2 Proc.CC2 FunciónE4 Proc. AA2 Proc.B33 Proc.CC3 FunciónE5 Proc. AA3 Proc.CC4 FunciónE6 Si se declara una variable dentro de un procedimiento o Función, esa variable "NO SALE" del Procedimiento o Función donde se declaró. El procedimiento puede estar en un Formulario (Cualquier procedimiento de un control o un procedimiento creado por nosotros) o en un Módulo (En este caso, el procedimiento solo puede ser creado por nosotros) En un Formulario, una variable puede declararse de dos formas : Privada o Pública. Para declarar una variable a nivel de formulario debe hacerse en la sección de declaraciones, que está la ventana de código Objeto = General, Proc. = Declaraciones. Si se declara Privada, esa variable se puede mover por todo el formulario, (es decir, por todos los procedimientos de todos los controles del formulario y por los Procedimientos que pudiésemos insertar en ese formulario), pero no sale de dicho formulario. Si se declara como Pública, esa variable puede moverse por todo el formulario, de la misma forma que lo haría declarada como Privada, y además puede ser usada desde otro Formulario o Módulo, citándola con el nombre del Formulario, seguido del nombre de la variable (Formulario.Variable) En un Módulo una variable puede declararse como Privada, con lo que no saldrá de ese Módulo, o Pública, pudiendo en este caso usarse en todo el programa. Cuando se declara una variable como pública en un Módulo, basta referirse a ella por su nombre, sin citar el nombre del Módulo donde se declaró. En VB es posible declarar varias veces las variables, es decir, pueden declararse a nivel de formulario, en su apartado de declaraciones, y esa variable conservará su valor en todas las partes de ese formulario. Sin embargo, si se declara una variable con el mismo nombre a un nivel inferior, por ejemplo al principio de un procedimiento, esa variable será una variable distinta a la anterior, aunque tenga el mismo nombre, a al declararla en un Procedimiento, solamente será válida en ese Procedimiento. Una vez que hayamos salido de ese procedimiento, la variable con ese nombre volverá a ser la declarada en el Formulario. En realidad, lo que tenemos son dos variables distintas, pero con el mismo nombre, una

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
declarada para todo el formulario excepto para el procedimiento donde se volvió a declarar, y otra para ese procedimiento concreto. NOTA.- No es recomendable declarar una variable a dos niveles. Es mucho mejor utilizar otro nombre para esa variable dentro del procedimiento donde se le declararía por segunda vez. A esta nota cabe exceptuar cuando declaramos variables para una operación tipo contador For I = 1 To N Esa variable I es práctico declararla con el mismo nombre en cada Procedimiento donde se use. Tipos de declaración de variables. Sentencia DIM Es la forma mas común de declarar una variable como Privada. Puede emplearse en un Procedimiento, Función, Formulario o Módulo. La sintaxis es de la siguiente forma: Dim nombrevariable As Integer(o el tipo que sea) Declarando una variable con la sentencia DIM, en un formulario, Función, procedimiento o módulo, el entorno de la variable será el explicado anteriormente para una variable declarada como Privada. Es decir, esa variable no sale del formulario, procedimiento ó módulo donde se declaró. Cada vez que entremos al formulario, procedimiento o módulo, esa variable tomará el valor cero (si es numérica) o nulo (si es string). Sentencia PRIVATE Es la forma de declarar una variable como Privada. Puede emplearse solamente en la sección de declaraciones de un Formulario o Módulo. La sintaxis es de la siguiente forma: Private nombrevariable As Tipovariable Declarando una variable mediante la sentencia PRIVATE en un Formulario o Módulo, esa variable puede usarse en todo ese Formulario o Módulo (En todos sus Procedimientos y Funciones), pero NO fuera del Formulario o Módulo donde se declaró. La sentencia Private no puede usarse en un procedimiento o función. Sentencia PUBLIC Es la forma de declarar una variable como Pública. Puede

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
emplearse solamente en la sección de declaraciones de un Formulario o Módulo. La sintaxis es de la siguiente forma: Publicnombrevariable As Tipovariable Declarando una variable de esta forma en la sección de declaraciones de un Módulo, esa variable puede usarse en cualquier parte del programa citándola simplemente por su nombre. Si se declara de esta forma en la sección de declaraciones de un Formulario, esa variable puede usarse en toda el programa. Para nombrarla, si estamos en el Formulario donde se declaró basta con citarla por su nombre. Si no estamos en ese Formulario, habrá que citarla por el nombre del Formulario, seguido del nombre de la variable, separados por un punto : NombreFormulario.Nombrevariable En un Módulo puede usarse también la sentencia Global en vez de Public : Sentencia GLOBALDeclara una variable que es válida en todo el programa. La sintaxis es: Global nombrevariable Astipovariable La sentencia Global sólo puede usarse en el apartado de declaraciones de un Módulo. Mediante la sentencia Global la variable puede usarse en todo el espacio del programa. Sentencia STATIC Como se dijo anteriormente, una variable declarada en un procedimiento pierde su valor al salir de él. Lo peor es que una vez que el programa vuelva a entrar en ese procedimiento, la variable estará puesta a cero. Afortunadamente, esto último tiene solución. Si declarásemos una variable en un procedimiento o función, como estática, esa variable, aunque no la podremos utilizar fuera de ese procedimiento o función, cuando volvamos a él conservará el valor que tenía cuando lo abandonamos. Esta declaración como estática se realiza mediante la intrucción Static Static nombrevariable Astipovariable El nombre de una variable puede ser tan largo como queramos. hasta un máximo de 40 caracteres. En la versión VB para España se pueden usar incluso la Ñ y vocales acentuadas. Es indiferente usar mayúscula ó minúsculas. No se sorprenda, si por ejemplo, la ha declarado con mayúsculas y luego la cita con minúsculas al escribir el código, que

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
automáticamente se cambie a mayúsculas. El nombre de una variable siempre debe comenzar por una letra. No hay problema por utilizar variables largas. Al compilar el programa no se lleva el nombre, es decir, no le va a ocupar mas espacio. Utilice siempre nombres que le definan la variable con algún sentido. Es muy útil a la hora de acordarse como se llaman, y sobre todo, a la hora de rehacer un programa que realizó hace seis meses. Pese a que Visual Basic no obliga a declarar variables, es muy útil hacerlo. De esta forma se tiene control sobre el programa. La experiencia se lo irá demostrando. Resumimos la forma de declarar una variable : En un Procedimiento (La variable no puede usarse fuera de esta Procedimiento) Dim Variable As Tipovariable En un Procedimiento, como permanente (La variable no puede usarse fuera de este procedimiento, y dentro de él conserva el valor aunque se salga y se vuelva a entrar) Static Variable As Tipovariable En un Formulario (En su sección de declaraciones) Como Privada (Solamente se puede usar en ese Formulario) Dim Variable As Tipovariable ó Private Variable As Tipovariable Como Pública (Puede usarse en toda la aplicación) Public Variable As Tipovariable En un Módulo Como Privada (Solamente puede usarse en ese Módulo) Dim Variable As Tipovariable ó Private Variable As Tipovariable Como Pública (Puede usarse en toda la aplicación)

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Public Variable As Tipovariable ó Global Variable As Tipovariable Error típico de un programador novel de Visual Basic Creo que esta costumbre viene del lenguaje C. Pero no vale en VB. Se trata de declarar varias variables juntas en una misma línea : Dim Variable1, Variable2, Variable3, Variable4 As String Esta declaración está MAL hecha. Visual Basic interpretará que Variable1, Variable2 y Variable3 son del tipo Variant, y solamente Variable4 la supone como tipo String La forma correcta de hacerlo, si queremos declarar esas variables un una sola línea, es la siguiente : Dim Variable1 As String, Variable2 As String, Variable3 As String, Variable4 As String. Lenguaje Basic del Visual Basic. No ha sido un juego de palabras. VB emplea unas instrucciones casi iguales a las que emplea Quick Basic. Sin embargo ha añadido otras nuevas instrucciones, inherentes con la programación visual. Vamos a estudiar aquí las instrucciones y definiciones mas sencillas, comunes a QB y VB. Sentencias condicionales. Llamamos sentencias condicionales a aquellas que se realizan si se cumple una determinada condición. Son las sentencias por las que empieza cualquier texto de Basic, y este no va ser menos. La sentencia condicional mas usada es: Si se cumple una condición Entonces Realiza estas instrucciones Si no se cumple Realiza estas otras instrucciones Fin de la sentencia.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Así de fácil es programar en Basic. Lo que ocurre es que esta herramienta habla inglés, y lo descrito anteriormente toma la forma: If condición Then Instrucciones Else Otras instrucciones End If En este ejemplo, la condición era que, o se cumple una condición y ejecuta unas determinadas instrucciones, o no se cumple, y ejecuta otras condiciones distintas. Puede ocurrir que, caso de no cumplirse la condicione primera, se abra un abanico de dos o tres posibilidades. La sentencia condicional tendría entonces la forma: If condición 1 Then Instrucciones ElseIf Condición 2 Otras instrucciones ElseIf Condición 3 Otro juego de instrucciones Else Instrucciones que debe realizar caso de no cumplir las condiciones 1, 2 y 3. End If Como decíamos anteriormente, este es el tipo de sentencia condicional mas usada. Existe otra: Select Case Su nombre casi nos define lo que es: Selecciona, dependiendo del caso, un determinado juego de instrucciones:

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Select Case variable ' variable es una variable que puede tomar los valores (p.e.) de 1 a 4 Case 1 Instrucciones a ejecutar en caso de que variable = 1 Case 2 Instrucciones a ejecutar en caso de que variable = 2 Case 3 Instrucciones a ejecutar en caso de que variable = 3 Case 4 Instrucciones a ejecutar en caso de que variable = 4 End Select Este procedimiento resulta mucho mas sencillo y rápido que las sentencias If Then Else vistas anteriormente, cuando el margen de elección es mayor que 2. Cuando lo que queremos es elegir un valor, no ejecutar instrucciones como hacíamos anteriormente, disponemos de otras dos funciones: Choose y Switch. Switch toma una serie de parámetros, todos por parejas. El primer término de cada pareja es la expresión a evaluar. El segundo es el valor que tiene que devolver. En realidad Switch es una función (las funciones las veremos muy pronto) A = Switch (B=1, 5, B=2, 7, B=3, 11) Esta instrucción obtiene un valor para A que dependerá del valor que tome B entre los valores posibles (1, 2 ó 3) La sentencia Choose es casi igual, cambia solamente la forma. La misma intrucción anterior puede realizarse con Choose de la siguiente forma: A = Choose ( B, 5, 7, 11 ) En estas sentencias, Switch y Choose, si el valor de B no coincide con ninguno de los valores que se le habían establecido (1, 2 ó 3 en nuestro caso), la sentencia devuelve el valor Nulo ( Null ). Esto puede producir algún error si no se contempla esa posibilidad.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Con estas sentencias condicionales es posible realizar bifurcaciones del programa, cambiar las propiedades de un objeto, obtener resultados de operaciones, .... Sentencias de bucle. Es muy común utilizar bucles a lo largo de un programa. Un bucle es una sucesión repetitiva de instrucciones, que se estarán realizando mientras se cumpla una condición o mientras no se cumpla otra condición. Es tan sencillo como esto: Mientras condición Instrucciones Fin del bucle Existen dos formas de bucle: Una, que realiza un número determinado de recorridos por el bucle. Es el denominado bucle por contador. Otra, realiza el bucle hasta que se cumpla (o deje de cumplirse) una condición. Es el llamado bucle por condición. Bucle por contador Realiza el bucle tantas veces como le indiquemos. Por ejemplo, en este bucle nos va a presentar las 26 letras mayúsculas del alfabeto inglés For N=65 To 90 Label1.caption = Chr ( N ) Next N Este "programa" nos presentará en una caja (Label) los caracteres cuyo número ASCII vaya desde el 65 (A) al 90 (Z) Comenzará presentando el correspondiente al número 65, e irá presentando sucesivamente el 66, el 67, etc., hasta llegar al 90, donde se parará. Bucles por condición Ejecuta las instrucciones del bucle mientras se cumple una condición X=0 Do While X < 1000 X=X+1

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Loop El programa toma una variable ( X ) que previamente tuvimos la curiosidad de ponerla a cero, e incrementa su valor una unidad. Analiza si el valor de X es menor que 1000, y si es cierto, vuelve a realizar el bucle. Así hasta que X ya no sea menor que 1000. Al dejar de cumplirse que X sea menor que 1000, sale del bucle. Acabamos de realizar un temporizador, y también de exponer las sentencias condicionales y los bucles, inicio de cualquier curso de Basic. Como final de lección, se propone un problema. Con el primer bucle, donde visualizábamos los caracteres A a la Z, posiblemente no nos diese tiempo de ver cada una de las letras que iban apareciendo en la pantalla, en la etiqueta Label1, dado que cambiaría con mucha velocidad, y solamente veríamos la Z, que es donde se detuvo el programa. Podemos poner un temporizador cada vez que presente una letra, y así nos dará tiempo a verla. Con los dos bucles vistos anteriormente ya podemos hacerlo. Si lo que queremos es que el programa se ejecute mientras no se cumpla una determinada condición, la sentencia será: X=0 Do Until X > 1000 X=X+1 Loop Observe que la diferencia entre una y otra es la condición, While para indicar Mientras se cumpla que ... y Until para indicar Mientras no se cumpla que .... Para terminar bien el programa anterior utilizaremos la condición de While (Mientras se cumpla la condición) For N=65 To 90 Label1.caption = Chr ( N ) Label1.RefreshN' Refresca la etiqueta X=0 Do While X < 1000 X=X+1 Loop

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Next N Este es nuestro primer programa en BASIC. En VISUAL BASIC es idéntico, pero nos falta la interface gráfica. Para realizarla basta con abrir el VB y sobre el formulario que aparece al abrirlo, introducir una etiqueta, (Label) que llevará el nombre por defecto de Label1. Solo nos queda pensar donde introducimos el código anterior. Podemos introducir un botón de comando (Command Button) que saldrá con el nombre por defecto de Command1. Haga doble click sobre el botón. Aparecerá el procedimiento Click. Este procedimiento es el que se realiza cuando hacemos click sobre ese botón. Escriba en ese procedimiento este código. Private Sub Command1_Click() ' Esta línea sale automáticamente For N=65 To 90 Label1.caption = Chr ( N ) Label1.RefreshN' Refresca la etiqueta X=0 Do While X < 1000' Bucle de temporización X=X+1 Loop Next N' Termina el bucle de temporización End Sub ' Esta línea sale automáticamente Hemos puesto nuestra primera piedra en Visual Basic. Este ejemplo es muy sencillo. Visual Basic es tan sencillo como este ejemplo. BASIC DE VISUAL BASIC (2) ___________________________ Funciones de cadenas Se denomina CADENA a una sucesión de caracteres. Una cadena puede tener uno o varios caracteres alfanuméricos. Una cadena es también una sucesión de números. Ejemplo de cadenas:

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Curso de Visual Basic abcdefghijklmnopqrstuvwxyz1234567890 123456789 Hagamos una distinción entre una cadena que contenga números y un número. Un número tiene un valor, pero también tiene una presentación escrita. El valor es algo que estará en el ordenador como una sucesión de bits. Dependiendo de como lo hayamos declarado, tendrá mas o menos bits. Pero esa información no es un número legible por el usuario. Lo que sí es legible por el usuario es la representación en numeración decimal (u octal, o hexadecimal, o incluso en binario) de ese número. Esa representación del número en un determinado sistema de numeración es una cadena. Así, el número nueve, que en la memoria del ordenador será una sucesión de bits, el ordenador puede presentárnoslo como: 9 En numeración decimal 9 En numeración hexadecimal 11 En numeración octal 1001 En numeración binaria Esas formas de presentarnos el número son CADENAS de caracteres. El valor del número dentro del ordenador es un NUMERO. Para presentar un número en la pantalla, el ordenador debe convertirlo previamente a una cadena. Cuando introducimos un valor numérico por teclado o pantalla, el ordenador para hacer operaciones con él, debe transformarlo a un número. Estas consideraciones nos llevan a las dos primeras funciones con cadenas: Str (número) Convierte un número a una cadena en numeración decimal. Val (cadena numérica) Obtiene el valor (el número) correspondiente a esa cadena. Ejemplos Variablenumerica = Val (TextBox1.Text)

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Este ejemplo convierte la cadena de caracteres (numéricos) que hubiese en la caja de texto TextBox1 en un número, y asocia este número a la variable Variablenumerica. Si el contenido de la caja de textos no fuesen caracteres numérico (abcd, por ejemplo), Variablenumerica tomaría el valor 0. Label1.Caption = Str (Variablenumerica) Este ejemplo pondría en la etiqueta Label1 los caracteres correspondientes al valor que tuviese la variable Variablenumerica . Nota para recordar: Siempre habrá que convertir un número a una cadena cuando queramos presentarlo en la pantalla. Siempre habrá que convertir a número la cadena de caracteres numéricos que hayamos introducido por teclado o por pantalla, cuando queramos operar con ese número. Un Label, cuando tiene que presentar un único número, no le pedirá que se lo convierta a cadena, pues VB hace automáticamente esa conversión. Sin embargo, cuando tiene que presentar un número, y además un texto en el mismo Label, VB no realizará automáticamente ese cambio, por lo que le dará un error. Le recomiendo que convierta los números a variables de cadena siempre que los quiera presentar en un Label o TextBox. Existe una función mas amplia que Str. Se trata de Cstr. Esta función no solamente transforma un número a una cadena, como hace Str, sino que convierte cualquier tipo de variable a una variable tipo String (cadena). Esta función transforma, por ejemplo, una variable tipo Booleana en una variable de cadena, devolviendo la cadena "Verdadero" si el valor de la variable booleana es True, y "Falso" si es False. Puede también transformar a una cadena de caracteres el valor de un CheckBox o de un OptionButton. En estos casos devuelve 0 y 1 para el CheckBox (Desactivado / Activado) y Verdadero ó Falso para el OptionButton (Activado / Desactivado) label1.Caption = CStr(booleana) Label1.Caption = Verdadero si booleana es true Label1.Caption = Falso si booleana es False Label2 = CStr(Check1.Value) Label2.Caption = 1 si Check1 está activado Label2.Caption = 0 si Check1 está desactivado Label3 = CStr(Option1.Value) Label3.Caption = Verdadero si Check1 está activado Label3.Caption = Falso si Check1 está desactivado

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Si se aplica Cstr a una variable tipo Fecha/Hora devuelve la fecha / Hora en formato corto. Mas funciones de cadena: Left (cadena, n) Extrae los n primeros caracteres de una cadena, comenzando por la izquierda. Si cadena = Curso de Visual Basic (Para todos los ejemplos) Resultado = Left (cadena, 10) ----> Resultado = Curso de V Right (cadena, n) Extrae lo n últimos caracteres de la cadena Resultado = Right (cadena, 10) ----> Resultado = sual Basic Mid (cadena, m, n) Extrae n caracteres de la cadena, siendo el primer carácter extraído el que ocupa el lugar m. (Vea Instrucción Mid mas abajo) Resultado = Mid (cadena, 3, 10) ----> Resultado = rso de Vis LCase (cadena) Devuelve otra cadena igual, pero con todos los caracteres en minúsculas. (LCase = Lower Case) Resultado = Lcase (cadena) ----> Resultado = curso de visual basic UCase (cadena) Devuelve otra cadena igual, pero con todos los caracteres en mayúsculas. (UCase = Upper Case) Resultado = UCase (cadena) ----> Resultado = CURSO DE VISUAL BASIC Len (cadena) Devuelve la longitud de la cadena Resultado = Len (cadena) ----> Resultado = 21 LenB (Cadena) Devuelve el número de Bytes empleados para almacenar la cadena. Sorpréndase, es el doble que Len (Cadena) String (n, carácter) Devuelve una cadena de n caracteres como el indicado

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Resultado = String (8, "a") ----> Resultado = aaaaaaaa Resultado = String (8, Chr(65)) ----> Resultado = AAAAAAAA Resultado = String (8, 65) ----> Resultado = AAAAAAAA Space (n) Devuelve una cadena formada por n espacios. Resultado = "A" + Space (6)+ "B" ----> Resultado = A B LTrim Elimina los posibles espacios que tenga una cadena por su izquierda. Rtrim Elimina los posibles espacios que tenga una cadena por su derecha. Trim Elimina los espacios que tenga una cadena, tanto por su izquierda como por su derecha. (No elimina los espacios centrales de la cadena) Estas tres funciones se emplean para quitar los posibles espacios que pueden resultar de una entrada de datos. Tienen especial importancia cuando se toman los datos de un archivo o base de datos, donde fueron introducidos por otro programa. No se pone ningún ejemplo de estas funciones, pues sería difícil verlo impreso. InStr (cadena, cadena1) Busca la cadena1 dentro de cadena y devuelve el número de orden dentro de cadena donde se encuentra la primera letra de cadena1 Resultado = InStr (cadena, "sua") ----> Resultado = 12 StrConvConvierte una cadena de caracteres en otra, según las instrucciones que le sigan. Puede sustituir a UCase o LCase si la instrucción es UpperCase o LowerCase respectivamente, o poner la primera letra de todas las palabras de la cadena en mayúsculas, si la instrucción es ProperCase. Resultado = StrConv (cadena, UpperCase) ----> Resultado = CURSO DE VISUAL BASIC Resultado = StrConv (cadena, LowerCase) ----> Resultado = curso de visual basic Resultado = StrConv (cadena, ProperCase) ----> Resultado = Curso De Visual Basic Instrucción Mid

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Mid puede usarse también para cambiar el contenido de una cadena. Observe la sutileza entre Mid como Función de cadena y Mid como Instrucción. La Instrucción Mid reemplaza un número especificado de caracteres en una variable de cadena con caracteres de otra cadena. Sintaxis Mid(cadena1, inicio[, longitud]) = cadena2 Resultado Mid (cadena, 7,2)="Sobre" ---- > Resultado = Curso sobre Visual Basic FUNCIONES CON NUMEROS _________________________ Visual Basic puede operar con números tal como lo haría cualquier persona. Conoce las 4 reglas, y puede utilizar paréntesis de la misma forma que los escribimos sobre el papel. Los operadores que utiliza para las operaciones básicas son: + Suma - Resta * Multiplicación / División \ División sin decimales Mod Resto de una división ^ Eleva a un exponente Ejemplos Resultado = 12 + 15 ----> Resultado = 27 Resultado = 15 - 12 ----> Resultado = 3 Resultado = 15 * 12 ----> Resultado = 180 Resultado = 15 / 12 ----> Resultado = 1.25

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Resultado = 15 \ 12 ----> Resultado = 1 Resultado = 15 Mod 12 ----> resultado = 3 Resultado = 12 ^ 2 ----> Resultado = 144 resultado = ( ( 4 * 3 ) / 2 ) ^ 2 ----> Resultado = 36 Estos operadores se denominan Operadores aritméticos. Existen otras operaciones que se pueden realizar con números: comparaciones. Los operadores que realizan comparaciones se denominan Operadores relacionales. El resultado de las operaciones realizadas con estos operadores solamente admiten dos resultados: True (Cierto) o False (Falso) Estos operadores son: = Igual que <> No igual que < Mayor que <= Mayor o igual que > Menor que => Igual o menor que Estos operadores se suelen utilizar en estructuras de programa donde se tome una decisión. El operador = puede usarse también para comparar cadenas o fechas. Operadores Lógicos Estos operadores sólo tienen sentido cuando hablemos de variables Booleanas, es decir, aquellas que solamente pueden tomar los valores cero y uno. Operador Función Devuelve True si Devuelve False si And Función AND A=True y B=True Cualquier otro caso OrFunción OR A=True o B=True A=False y B=False Xor Función XOR A=True y B=False A=True y B=True

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
A=False y B=True A=False y B=False EqvF. Equivalente A=True y B=True A=True y B=False A=False y B=False A=False y B=True ImpImplicación A=True y B=True A=True y B=False A=False y B=True A=False y B=False Not Negación A=False A=True LikeIgualdad A=True A=False Otras Funciones con números CInt Parte entera Devuelve la parte entera de un número con decimales AbsValor Absoluto Devuelve el valor absoluto de un número SgnSigno Devuelve el signo de un número Sqr Raíz cuadrada Devuelve la raíz cuadrada de un número Exp Exponenciación Devuelve el número elevado al exponente indicado Log Logaritmo Devuelve el logaritmo natural de ese número Trigonométricas Sin Seno Devuelve el valor del seno de un ángulo (Expresado en radianes) Cos Coseno Devuelve el coseno de un ángulo (En radianes) Tan Tangente Devuelve la tangente de un ángulo Atn Arco Tang. Devuelve un arco cuya tangente sea el número (Angulo en radianes)

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Una función curiosa TimerTiempo acumulado Devuelve el tiempo (en segundos) que ha pasado desde las 12 de la noche. Generación de números aleatorios Randomize (Numero) Inicia el generador aleatorio tomando como dato de partida el Numero. Devuelve el resultado en una variable llamada Rnd. NOTA MUY IMPORTANTE.- Los números aleatorios generados de esta forma son siempre iguales, eso sí, dependiendo del número que se le introduzca como parámetro. Esta generación de números no produce números aleatorios pues como se dijo, dependen del numero que se meta como parámetro, y si este se repite, se repite la sucesión de números que nos crea el generador aleatorio. La forma de obtener números realmente aleatorios es introducir como parámetro un número que sea variable con el tiempo. Ese número no puede ser otro que el número timer visto antes. Y siempre con la precaución de que medie mas de un segundo entre dos instrucciones Randomize. La función toma entonces la forma: Randomize Timer La función Randomize devuelve una variable Rnd con un número comprendido entre 0 y 1 (Nunca será 0 ni 1) Leyendo el valor de la variable sucesivas veces, se puede obtener una sucesión de números aleatorios. No es necesario ejecutar la instrucción Randomize Timer cada vez que se quiera obtener un dato de la variable Rnd. Un ejemplo. Generador de números para la Lotería Primitiva Supongamos que tenemos un formulario con una etiqueta de nombre Label1, un botón de comando de nombre Command1. Cuando hagamos click sobre el botón de comando deberá generar un número comprendido entre el 1 y el 49. En el procedimiento click de Command1 pondremos el siguiente código: Private Sub Command1.click Randomize Timer A = Rnd A = Rnd * 100 A = CInt(A)

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Do While A > 49 A = A - 49 Loop Do While A < 1 A = A + 49 Loop Label1.caption = A End Sub Realice este pequeño programa, con la instrucción Randomize Timer y sin ella. Funciones con fechas. Las fechas son cadenas especiales. Visual Basic sabe obtener y tratar la información relativa a la fecha y la hora. Dispone para ello de una declaración de variable: Date. Una variable declarada como date puede contener una fecha, una fecha y una hora o una hora solamente. Date Devuelve la fecha de hoy. Esta fecha la toma del reloj del ordenador. Time Devuelve la hora actual. Now Devuelve la fecha y hora actual. WeekDay Devuelve el día de la semana (En número, 1=Domingo, 2=Lunes,...) Day Obtiene el día, a partir de una fecha Month Obtiene el mes a partir de una fecha. Year Obtiene el año a partir de una fecha. Hour Obtiene la hora a partir de una hora Minute Obtiene el minuto a partir de una hora. Second Obtiene el segundo a partir de una hora.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
DateAddAñade un intervalo de tiempo a una fecha DateDiff Obtiene el intervalo de tiempo entre dos fechas DatePart Devuelve una parte de una fecha (semana, trimestre, etc.) DateSerial Compone una fecha a partir de parámetros relativos TimeSerial Compone una hora a partir de parámetros relativos. DateValue Devuelve una fecha a partir de un dato que se le parezca y VB pueda obtener de él una fecha válida Mediante estas instrucciones podemos obtener el dato necesario de una fecha u hora. Por ejemplo, para obtener el día de hoy solamente: Día = Day (Now)Día será un número El día de la semana lo obtendríamos Diasemana = WeekDay (Now) Diasemana será un número DateValue, una instrucción que le sacará mucho provecho Fecha = DateValue (120796) Fecha = DateValue (12 07 96) Fecha =12/07/96 Función FORMAT Esta función permite presentar cadenas de numéricas o fechas de una determinada forma. Permite establecer el Formato de esa cadena. Si recurre a la ayuda de VB acerca de esta función se va a enterar muy poco de lo que puede dar de sí. La sintaxis que presenta es : Format(expresión[, formato[, primerdíadesemana[, primerasemanadelaño]]]) Lo mejor que puede hacer con esta definición de la sintaxis de Format es olvidarla. No le aclara mucho lo que se puede hacer con Format. La función Format se usa para poner una fecha en un determinado formato. Con la expresión : FechadeHoy = Format (Now, "yyyy-mm-dd")

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
la variable FechadeHoy tendrá el valor 1998-05-21, que se refiere al día 21 de mayo de 1998, según el formato recomendado por la norma ISO-8601 para la presentación de fechas. Si hubiésemos puesto la expresión FechadeHoy = Format (Now, "dd/mm/yy") , la variable FechadeHoy contendría el valor 21/05/98 referido al día citado. Las posibilidades de Format llegan también al campo de las cadenas numéricas. Por ejemplo la cifra 123456 se transformará en las siguientes expresiones, según como empleemos la función Format Variable = Format(123456, "Currency") Variable = 123.456 Pts Variable = Format(123456, "Standard") Variable = 123.456,00 Veamos ahora con un poco mas de conocimiento la sintaxis de Format Variable = Format (expresión[, formato[, firstdayofweek[, firstweekofyear]]]) Donde expresión es una cadena o fecha válida formato es uno de los formatos predefinidos (Standard, Currency, etc. Vea mas abajo) firstdayofweek. Especifica el primer día de la semana. Puede tomar uno de estos valores o constantes : Constante Valor Descripción vbUseSystem 0 El especificado en el sistema operativo. VbSunday 1 Domingo (valor por defecto) vbMonday 2 Lunes vbTuesday 3 Martes vbWednesday 4 Miércoles vbThursday 5 Jueves vbFriday 6 Viernes vbSaturday 7 Sábado

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
firstweekofyear Especifica cual es la primera semana del año. Puede tomar uno de los siguientes valores o constantes : Constante Valor Descripción vbUseSystem 0 Usa el valor del sistema operativo vbFirstJan1 1 La primera semana es la que contiene al día 1 de Enero(Valor por defecto vbFirstFourDays 2 La primera semana es la que contiene al menos, 4 días de ese año (Rec. ISO - 8601) vbFirstFullWeek 3 La primera semana es la que tiene todos sus días en ese año No se complique la vida con el tema del primer día de la semana ni la primera semana del año. No lo usará con frecuencia. Centrémonos mas en el parámetro Formato. Puede tomar muchos valores. Veamos los principales. Primero para números Observe que usamos la expresión Variable =Format (1234567,"Formato") para todos los ejemplos de números. Para poner los números separados por millares : Variable = Format(1234567, "##,###,###") Variable = 1.234.567 (Cada carácter # indica que ahí va un número. El separador debe ser una coma, no un punto, aunque esto depende del idioma que esté usando) Puede poner una de estas expresiones, eso si, siempre entre comillas dobles : General Number Muestra el número tal como lo tecleó Currency En formato de la moneda de su sistema operativo Fixed Sin separador de millar y dos decimales (1234567,00) Standard Con separador de millares y dos decimales (1.234.567,00) Percent Multiplica el número por cien y lo presenta cono porcentaje(123456700,00%)

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Scientific Usa notación científica (1,23E+06) . Para fechas (Observe que usamos el ejemplo Format(Now, "Formato") y Now = 21/07/98 a las 22:16:00 y pico) General Date 21/07/98 22:16:00 Long Date martes 21 de julio de 1998 Medium Date 21-jul-98 Short Date 21/07/98 yyyy-mm-dd 1998-05-21 yy-mm-dd 98-07-21 Long Time 22:19:53 Medium Time 10:20 PM Short Time 22:20 hh :mm :ss 22 :21 :29 hh :mm 22 :21 Format dispone de mas opciones. Sería muy largo explicarlas aquí. Para mas información, en la WEB de Microsoft puede encontrar mas formatos posibles. MATRICES __________ Cuando utilizamos varias variables que tienen un significado similar para nosotros, pero que son distintas (Por ejemplo, el nombre de los alumnos de una clase) podemos utilizar una matriz. Esta matriz está formada por tantos elementos como alumnos tenga la clase. El nombre asociado a cada uno de los elementos de la matriz puede ser: Alumno (n) Donde n es el número por orden de lista de ese alumno.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Las matrices normalmente comienzan a numerar por el número 0. Este comienzo puede no ser el mas apropiado para la variable que estamos planteando, pues ningún alumno tiene el número de orden 0. Para hacer que una matriz comience a numerar por el 1 se debe definir mediante la instrucción: Option Base 1 que debe colocarse al comienzo del módulo o formulario donde declaremos la matriz. Para declarar la matriz se hace como con todas las variables, especificando entre paréntesis el número de elementos que componen la matriz: Dim Alumno (25) as String Hemos declarado que la variable alumno es una cadena, y que hay 25 elementos en esa matriz. Una matriz también se puede declarar de la siguiente forma : Dim Alumno(1 To 25) as String Donde le decimos que la variable Alumno tiene 25 elementos, que el primero tiene el índice 1 y el último tiene el índice 25. Pero imaginemos que queremos meter en la misma matriz el nombre, primer apellido y segundo apellido del alumno. Necesitaremos declarar una matriz de 25 por 3. Como todos los elementos serán cadenas de caracteres, podemos declararla de la siguiente forma: Dim Alumno (1 To 25, 1 To 3) As String De esta forma, el primer apellido del alumno que ocupa el puesto número 15 de la clase, será el elemento: Alumno (15, 2) Podemos definir matrices de dimensión superior a dos. Podemos llegar a un máximo de 60 dimensiones. Una matriz de 5 dimensiones se declararía: Dim Variable ( 1 To N, 1 To M, 1 To P, 1 To Q, 1 To R) entendiendo que hay N, M, P, Q y R elementos en cada una de las dimensiones respectivamente.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Una variable ya declarada como una matriz puede redimensionarse a lo largo del programa mediante la instrucción ReDim ReDim Alumno (1To 25) Mediante esta instrucción, estamos ReDimensionando una matriz ya declarada. No se puede redimensionar una matriz inexistente. Mediante la declaración 1 To 25 le estamos diciendo que el primer elemento de la matriz es el 1, independientemente de lo que hayamos puesto en OPTION BASE. Si se redimensiona simplemente con el número de elementos : ReDim (25) le estamos diciendo que tiene 25 elementos, pero que el primero sea el 0 ó el 1 depende de haber puesto OPTION BASE 0 u OPTION BASE 1. Una matriz puede redimensionarse cuantas veces se quiera a lo largo de la aplicación, pero esa redimensión no puede afectar al número de dimensiones de la matriz. Si redimensionamos la matriz perderá la información existente. Para evitar perder la información presente en la matriz, debe utilizar la sentencia ReDim Preserve. Si usa la palabra clave Preserve en matrices de dimensión superior a 1, va a encontrarse con comportamientos no esperados. Como podrá ver en la Ayuda de VB, usando ReDim Preserve sólo puede cambiar el tamaño de la última dimensión de matriz y no puede modificar en ningún momento el número de dimensiones. NO es cierto del todo. SÍ lo podrá hacer una sola vez. Respecto a cambiar el número de dimensiones, si ha declarado la matriz con unas dimensiones determinadas, ya no podrá cambiar las dimensiones ni con ReDim ni con ReDim Preserve. Le saldrá un error que dice que las dimensiones de la matriz ya han sido declaradas. Pero si ha declarado la matriz sin dimensiones : Dim MiMatriz() puede cambiar las dimensiones Dim MiMatriz (1 To 5, 1 To 9) y volver a cambiarlas Dim MiMatriz (1 To 8, 1 To 15, 1 To 6) Observe que no solamente la hemos cambiado dos veces de dimensiones (la primera a 2 y la segunda a 3), sino que también hemos cambiado el número de elementos en cada dimensión.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Si hubiésemos utilizado ReDim Preserve solamente podríamos haber usado la primera de las dos líneas anteriores : ReDim Preserve MiMatriz (1 To 5, 1 To 9) pero ya no podríamos volver a cambiar el número de dimensiones con la segunda línea. Nos daría un error. Con ReDim podemos cambiar el número de elementos de cada dimensión cuantas veces queramos. Por ejemplo, podemos redimensionar MiMatriz de las siguiente forma : ReDim MiMatriz (1 To 5, 1 To 9) ReDim MiMatriz (1 To 15, 1 To 20) ReDim MiMatriz (1 To 25, 1 To 30) ........................... Si hubiésemos empleado ReDim Preserve, podríamos cambiar los elementos de todas las dimensiones de la matriz una vez : ReDim Preserve (1 To 5, 1 To 9) a partir de ahora, solamente podemos cambiar los elementos de la última dimensión : ReDim Preserve (1 To 5, 1 To 20) ReDim Preserve (1 To 5, 1 To 30) es decir, no podremos hacer esto : ReDim Preserve (1 To 10, 1 To 30) donde se señala en negrita el error. Esto no causa ningún error en una matriz de una dimensión, ya que si la matriz tiene sólo una dimensión, puede cambiar el tamaño de esa dimensión porque es la única y la última. Cuando a lo largo de la aplicación se va redimensionando una matriz, podemos llegar la circunstancia de que, en un momento determinado, no sepamos las dimensiones de esa matriz. Para conocer el índice máximo y mínimo de una matriz se usan las funciones UBound y LBound.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
UBound devuelve el mayor subíndice disponible para la dimensión indicada de una matriz. Sintaxis UBound(nombredelamatriz[, dimensión]) LBound devuelve el mayor subíndice disponible para la dimensión indicada de una matriz. Sintaxis LBound(nombredelamatriz[, dimensión]) Ejemplo Tengamos una matriz llamada Mimatriz, de tres dimensiones. En un momento de la aplicación se ejecutó la siguiente instrucción válida : ReDim Mimatriz (1 To 100, 0 To 3, 5 To 20) En otro momento queremos tener el control de los índices de esa matriz, y queremos averiguar el índice menor y mayor de cada una de sus dimensiones : (IID1= Indice Inferior Dimensión 1, ISD 1 = Indice Superior Dimensión 1, etc. ) IID 1= LBound (Mimatriz, 1) IID1 = 1 ISD1 = UBound (Mimatriz, 1) ISD1 = 100 IID 2= LBound (Mimatriz, 2) IID1 = 0 ISD2 = UBound (Mimatriz, 2) ISD1 = 3 IID 1= LBound (Mimatriz, 3) IID1 = 5 ISD1 = UBound (Mimatriz, 3) ISD1 = 20 VISUAL BASIC Tras esta pequeña introdución al lenguaje Basic ya estamos en disposición de encender el ordenador y comenzar a trabajar con Visual-Basic. Se supone que su PC tiene instalado el programa Visual basic, bien en su versión de 16 bits si dispone de Windows 3.xx o la de 32 bits si dispone ce Win95 ó Windows NT. Entre en el programa VB. Le aparecerá en pantalla algo similar a esto : (Para VB Vers. 4)

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net

Este es el comienzo del programa . Observe que en esta pantalla existen varias cosas. En la parte superior , la barra de título del programa Visual Basic, con el texto : Proyect1 - Microsoft Visual Basic (Diseño) Por debajo de esta barra de Título del VB, encontramos la barra de menú de VB, con las leyendas : Archivo Edición Ver Insertar Ejecutar Herramientas Complementos Ayuda Por debajo de esta barra de menú tenemos la barra de herramientas, donde podrá ver varios iconos, que cada uno representa un determinada operación que Vd. puede realizar. Estas operaciones está todas en la línea de menú, y puede acceder a ellas abriendo los menús desplegables que existen en cada una de las palabrea Archivo Edición Ver ...... de esta línea de menú. El hecho de colocar las operaciones mas usuales en un icono en la barra de herramientas se hace para mayor comodidad del usuario. A la izquierda de la pantalla tiene una caja rectangular con tres columnas de iconos. Esa caja es la Caja de Herramientas (No la confunda con la barra de herramientas de la parte superior)

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Esta caja de herramientas es, salvando las distancias, lo mismo que una caja de herramientas real que pueda tener un mecánico para realizar su trabajo. En ella están los iconos que representan a los controles con los que Vd. va a desarrollar su aplicación VB. No están todos los que pueden estar, al igual que en una caja de herramientas de un mecánico no están todas las herramientas que puede usar. Están solamente las mas usuales. Si necesita alguna mas, puede cogerla de otra parte (barra de Menú, Herramientas, Controles personalizados) y agregarlos a esa caja de herramientas, al igual que lo haría un mecánico con una herramienta especial, que la metería en su caja sólo cuando va a realizar un trabajo determinado para el que la necesite. Posiblemente esta caja de herramientas no le aparezca tal y como la ve en estos apuntes. Eso depende si Ud. tiene la versión personal o la profesional, o si usa la versión de 16 ó 32 bits. Esa caja de herramientas puede personalizarla a su gusto. Para ello, deberá cargar un proyecto ya existente en los discos de distribución de Visual Basic, llamado AUTO32LD.VBP (versión 32 bits) ó AUTO16LD.VBP (Versión 16 bits) que se encontrará en el directorio donde haya cargado el programa Visual Basic. Este proyecto no tiene otra función que determinar las herramientas con las que quiere abrir el VB. Para introducir herramientas nuevas en la caja de herramientas, basta con desplegar el menú Herramientas de la barra de menú, e ir a Controles personalizados. Haciendo click en esta línea de controles personalizados, podemos seleccionar nuevos controles para añadir a la caja de herramientas, marcando la casilla que está a la izquierda del nombre del control que quiere introducir. Una vez seleccionados todos los nuevos controles, haga click en ACEPTAR, y podrá observar que esos nuevos controles ya se le han añadido a la caja de herramientas. Para que esos nuevos controles le aparezcan de entrada cuando inicia una sesión de VB, debe salir de Visual basic guardando los cambios. Vuelva a entrar y observará que ya le aparecen esos nuevos controles en la caja. No es prudente meter muchos controles en la caja. Ponga solamente los que necesite normalmente en sus aplicaciones. Ocupará menos memoria y tardará menos tiempo en cargar el programa VB. Además, cuando realice una aplicación y la distribuya una vez compilada, Visual Basic entregará en los disquetes de distribución las DLL’s u OCX’s correspondientes a todos los controles personalizados que Vd. tenga en la caja de herramientas, los necesite el programa o no los necesite. Esto le va a suponer que está cargando subprogramas inútiles en el ordenador destino de su aplicación. A la hora de compilar el programa (Crear archivo .EXE) quite todos los controles personalizados que no necesite su aplicación. (Sólo los controles personalizados. Los controles comunes - CommandButton, Label, TextBox, etc.-, no se pueden eliminar de la caja de herramientas) Para quitar controles de su caja de herramientas, debe proceder de forma análoga, cargando el programa AUTOxxLD.VBP, abriendo menú de herramientas, Controles personalizados, quitando la marca al cuadro situado en la parte izquierda del control a eliminar, y guardando el proyecto al salir.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
En el centro, y ocupando casi toda la pantalla, tenemos el Formulario. Este Formulario es la interface gráfica de su aplicación, sobre el que podrá añadir los controles que necesite. Lo veremos mas adelante con todo detalle. Observa dos ventanas, una denominada Ventana de Propiedades, donde puede ver las propiedades del formulario, Form1, y otra, denominada Ventana de Proyecto. Existe otra ventana, que no está en la figura anterior, la Ventana de Depuración. Por cada formulario y cada control que introduzca en el proyecto, le aparecerá otra ventana, denominada ventana de código. No se extrañe de que esta presentación gráfica del Visual Basic coincida con otros sistemas de desarrollo (Delphi, p.e.). La lógica de desarrollo de una aplicación en Windows ha llevado a varios fabricantes de software a utilizar un entorno gráfico similar (diríamos idéntico). A Visual basic le queda el orgullo de ser el primero en utilizarlo. Con lo descrito anteriormente ya tenemos, al menos, fijado el argot con el que expresarnos para comenzar a estudiar el VISUAL BASIC. Veamos con un poco mas detalle la Ventana de Código.

Esta figura le muestra un Formulario con su ventana de código. Cada objeto gráfico de VB tiene su propia ventana de código. Así, si en este formulario hubiésemos introducido un Label y dos CommandButton, todos ellos tendrían su propia ventana de código. La ventana de código la podemos ver haciendo doble click sobre cualquier objeto de nuestro proyecto. En este caso hemos hecho doble click sobre el único objeto que teníamos : el formulario.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Observe las dos cajas de la parte superior, uno con la inscripción Objeto : que en el momento que le sacamos la foto tenía Form, y el otro con la inscripción Proc : (procedimiento), que en el momento de la foto tenía Load. A estas cajas les denominamos Lista de Objetos y Lista de Procedimientos respectivamente. Haciendo click sobre la flecha de cada lista, se despliega un menú, en la lista de objetos se desplegará una lista con los nombres de cada objeto existente en ese momento dentro del formulario. Haciendo click sobre uno de los nombres, nos presentará la ventana de código de ese objeto. Todos los objetos gráficos (controles) existentes dentro de un formulario y el propio formulario aparecerán en la misma lista de objetos. Haciendo click sobre la flecha de la lista de procedimientos, se despliega la lista con todos los procedimientos posibles para ese objeto. Siempre saldrá uno. Si tenemos escrito código en uno de los procedimientos, saldrá por defecto ese procedimiento para el cual hemos escrito el código. Si no hay código en ninguno de los procedimientos, saldrá el que tenga por defecto cada objeto. Solamente nos queda por decir, para cerrar este capítulo, que es un procedimiento. Para ello vamos a explicar lo que es un evento. Un Evento es algo que le puede ocurrir a un objeto. En una internase gráfica, lo que le puede ocurrir a un objeto es que se le haga click, doble click, que se pase el cursor del ratón por encima, etc. Este es el Evento. El Procedimiento es la respuesta por parte de ese objeto, al evento que le está sucediendo. Esa respuesta, esa forma de Proceder del objeto al evento que le está sucediendo, debemos programarla según nuestras necesidades, es decir, debemos escribir el código que necesite nuestra aplicación como respuesta al evento que acaba de ocurrir. Posiblemente, no queramos ninguna respuesta a muchos de los eventos que pueden acaecer a un objeto. Cada objeto tiene muchos eventos y solamente queremos aprovechar los que nos interesan. Para que un evento no produzca ningún efecto, basta con dejar sin código el procedimiento correspondiente a ese evento. En los eventos que queramos que realice alguna operación, le escribiremos en su procedimiento el código necesario para que esa operación se realice. Sin darnos cuenta, hemos comenzado a escribir el código de la aplicación. Observará que el primer elemento del menú desplegable de la lista de objetos se denomina General. Este no es en realidad ningún objeto, sino un apartado existente en cada formulario, que, al desplegar su lista de procedimientos tiene la sección de declaraciones, donde debemos declarar las variables que queremos que afecten a todo el formulario y sus controles, y tendrá además, los nombres de todos los procedimientos que introduzcamos (véase un poco mas adelante). En este menú desplegable de la lista de procedimientos del General verá con frecuencia cosas que Vd. no puso allí. Cosas tales como Command1_click, y en la ventana un determinado código. Esto ocurre cuando se borra algún control que tenía escrito código en alguno de sus procedimientos. Visual Basic sabe lo mucho que cuesta escribir el código asociado a un control. Si borramos un control de

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
nuestro formulario accidentalmente, después de haber introducido todo el código asociado a él, Visual Basic nos sorprende con que ese código no lo tira inmediatamente, sino que lo reserva como un procedimiento en ese apartado General del formulario. Si en realidad queríamos borrar el control y todo su código, debemos quitarlo de ese apartado General de nuestro formulario, pues en realidad, si no lo queremos, no hará otra cosa que estorbar. Para quitarlo basta con borrar todo el código que aparece en la ventana de código cuando hacemos click sobre el nombre del control eliminado. Deberemos borrar todo el código, incluida la cabecera donde figura el nombre del control eliminado, y la parte final, que siempre termina con EndSub. El primer estorbo lo observará si crea otro control con el mismo nombre, cosa fácil ya que VB da un nombre por defecto a cada control (Command1, Command2....). El código asociado al control eliminado pasará automáticamente al nuevo control con el mismo nombre. Una aplicación puede tener todo su código escrito en los sucesivos procedimientos del formulario y de los controles que tenga ese formulario. Puede ocurrir que un determinado evento no esté entre los posibles eventos de los controles de nuestra aplicación. Piense por ejemplo, el evento de que la variable A sea igual a la variable B. No existe en ninguno de los controles ese procedimiento. No se preocupe, puede crear un procedimiento que se ejecute cuando su programa lo decida. Podemos añadir cuantos procedimientos queramos. Estos procedimientos se añaden al formulario, y deberán definirse por un nombre que Vd. debe elegir. Para que se ejecuten las instrucciones (código) incluido en ese procedimiento, basta simplemente con nombrarlo por ese nombre. Para insertar un procedimiento debe ir a la barra de menú, hacer click sobre Insertar, y en el menú que le desplegará, volver a hacer click sobre Procedimiento. VB le presentará un cuadro donde le pedirá el nombre, si quiere que sea un procedimiento, una función o una propiedad. A lo largo del curso irá viendo que es cada cosa. Escribiendo el código en los sucesivos procedimientos, bien en los propios de cada objeto, bien en los procedimientos que vayamos creando, es posible completar la aplicación. Pero en una aplicación larga esta forma de escribir el código no sería la mas adecuada. Es mas, posiblemente sería demasiado engorroso escribirla de esta forma, y muy probablemente deberíamos escribir el mismo código para varios procedimientos, lo que alargaría inútilmente el programa y el tiempo de desarrollo. Para disponer de un sitio donde escribir parte (o la mayor parte) de su programa, puede introducir uno o varios módulos. Expliquemos lo que es un módulo. Un Módulo es una parte del programa donde solamente puede escribir código. Es igual que un formulario, sin interface gráfica. Un profesor de Visual Basic lo expresaba diciendo que un Módulo es un Formulario sin cara. En un módulo pueden existir procedimientos al igual

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
que en los formularios, pero como un módulo no tiene interface gráfica, esos procedimientos debe introducirlos el programador tal y como explicamos un poco mas atrás. El módulo tiene su propia ventana de código, al igual que un formulario, con un objeto único, el apartado General. Aquí también tenemos la sección de declaraciones, al igual que los formularios. En esta sección de declaraciones se comporta de manera similar a la de los formularios, pero permite algo que no nos permite la sección de declaraciones de un formulario : Declarar variables que se pueden utilizar en todo el programa. Esto ya lo ha visto mas atrás, con las sentencia de declaración Global y Public. Los módulos se emplean para la declaración de variables globales, y para escribir el código de la aplicación que sea común a varios formularios. Esto nos evita tener que repetir código inútilmente. Ese código común se escribirá en un procedimiento que previamente habremos insertado en este módulo, y lo citaremos por su nombre desde cualquier parte del programa. ¿Cual es el nombre de un procedimiento existente dentro de un módulo ? Depende. Si estamos ejecutando código escrito en otro procedimiento dentro del mismo módulo, es decir, si estamos dentro de ese mismo módulo, basta con citarlo por su nombre : p.e., si en el MóduloA tenemos un procedimiento llamado Procedimiento1, y queremos llamarle desde una línea de código dentro de ese mismo módulo, basta con referirse a él con : Procedimiento1 Si la línea de código donde nos vamos a referir a él está fuera de MóduloA, deberemos referirnos a ese procedimiento con : MóduloA.Procedimiento1 Lo mismo podemos decir para cualquier procedimiento insertado en un formulario. Desde dentro del formulario basta con referirse a él citándolo por su nombre. Desde fuera de ese formulario deberemos citarle como : Formulariox.Procedimientoy donde damos por hecho que Formulariox es el nombre del formulario que lo contiene, y Procedimientoy es el nombre del procedimiento. Fíjese en el punto usado como separador entre el nombre del formulario y el nombre del procedimiento. VB usa como separador un punto. Usa el separador para separar el nombre de un control y una de sus propiedades (Label1.Caption), para separar el nombre del formulario del nombre de uno de sus controles (Formulario1.label1.caption) Se irá familiarizando con la terminología VB según vayamos avanzando en el curso. Funciones

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Al igual que introducimos Procedimientos, podemos introducir Funciones en nuestra aplicación. Una Función es un Procedimiento al que le pasamos uno o varios parámetros. (O Ninguno) Verá los Procedimientos y funciones mas adelante (Cap. 15). Al igual que los Procedimientos, pueden ser públicas (se verán en toda la aplicación) o privadas (se verán solamente en el formulario donde estén. Main Merece la pena pararse un poco para estudiar el Procedimiento Main. Para verlo con mas detalle, comentaremos como comienza a trabajar una aplicación realizada en Visual Basic. Imaginemos una aplicación que tiene 3 Formularios. En cada uno de ellos tiene código. Logicamente la aplicación tendrá que presentar uno de ellos en primer lugar. Deberemos decirle a Visual Basic cual es el formulario inicial, y será ese por el que empiece. En ese formulario dispondremos el código necesario para que la aplicación se ejecute en el orden deseado. Si hacemos click en la Barra de Menú de Visual Basic, en Herramientas | Opciones obtendremos el siguiente cuadro de diálogo :

Verá que tiene 4 pestañas, y actualmente tiene abierta la pestaña correspondiente a Proyecto, y tiene desplegada una lista donde nos pide el Formulario Inicial. En esa lista figura también la expresión Sub Main. Si ponemos como formulario inicial uno de los

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
formularios, la aplicación comenzará por ese formulario. Si en uno de los Módulos existentes en el proyecto, ponemos un procedimiento llamado Main, podemos comenzar la ejecución de la aplicación justamente por ese procedimiento. En ese procedimiento pondremos el código necesario para que, posteriormente, se muestre uno de los formularios. Esto es muy practico cuando queremos hacer una función previa a mostrar cualquier formulario (abrir una base de datos, por ejemplo). Para comenzar la aplicación por Main se elige esa opción en la lista Formulario Inicial. ¡ Recuerde que Main debe estar en un Módulo ! El cuadro de diálogo anterior sirve además para otras cosas. Entre ellas poner el nombre del proyecto (nombre que no aparecerá por ninguna parte, solo en los datos internos de la aplicación) y su descripción. En otra pestaña podemos configurar varias prestaciones del entorno de trabajo : Guardar la aplicación antes de ejecutar. Esta prestación nos va a evitar muchos disgustos. Es muy práctico guardar la aplicación antes de ejecutarla, pues de esta forma evitamos que, si nuestra aplicación tiene un error tal que hagamos colgarse a Windows, siempre tendremos la aplicación metida en el disco duro. Pero también es una pequeña pesadez tener que esperar a que se guarde cada vez que la ejecutamos. Si tenemos la activada la casilla Declaración de variables requerida nos pondrá automáticamente Option Explicit en el encabezamiento de todas las secciones de declaraciones de la aplicación. Podemos elegir también las ventanas que queremos que estén siempre visibles, y que verifique automáticamente la sintaxis de una instrucción en el momento de escribirla.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net

La pestaña de Editor nos permite fundamentalmente 2 cosas : Ver solamente el código correspondiente al procedimiento que estamos escribiendo ó Ver el código del Módulo (o Formulario) completo. En este último caso es un poco mas difícil de manejar la ventana de código, sobre todo si el programador no está muy habituado a ello. Le presenta procedimiento tras procedimiento, separados por una línea. Para

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
seleccionar una u otra opción hay que seleccionar o deseleccionar la casilla Ver módulo completo. Cambiar el color de la letra y del fondo del código, según el tipo que sea (código, comentario, error devuelto, etc.). Los alumnos mas aventajados y con ganas de marear al profesor y, lo que es peor, a sus compañeros, conocen la forma de poner como invisible una parte del texto del código. Si observa comportamientos raros en el texto donde escribe el código, revise el cuadro de Colores de Código.

Visual Basic - Guía del Estudiante Cap. 2 FORMULARIO ____________ El primer objeto Visual Basic con que nos encontramos es el FORMULARIO. De hecho, cada vez que iniciamos Visual Basic (VB) nos presenta en pantalla un nuevo formulario, que tiene por defecto el nombre de Form1 El Formulario es un objeto, que sirve de soporte de otros objetos. El nombre de FORMULARIO lo toma precisamente porque, al igual que un formulario de papel contiene textos escritos, lugares donde podemos escribir, figuras, cajas donde podemos elegir una u otra opción, etc., en este cuadro gráfico que llamamos formulario, podemos introducir textos escritos, lugares donde podemos escribir, figuras, cajas donde podemos elegir una u otra opción .... En realidad un formulario es lo que normalmente conocemos por VENTANA. El nombre de formulario le viene muy bien cuando ese formulario es una ventana donde vamos a introducir datos alfanuméricos. Cuando en vez de introducir datos, lo que tenemos es, por ejemplo, una ventana donde se reproducen exactamente los controles de operación de una máquina, parece en principio que sería mas correcto el nombre de "ventana". De alguna forma lo hay que llamar, y esa forma es FORMULARIO. Posiblemente a lo largo de estos

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
apuntes nos referiremos al formulario con el nombre de ventana, o incluso, pantalla. Procuraremos usar el nombre apropiado: FORMULARIO.

Forma inicial del formulario.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Ejemplo de un formulario para una aplicación industrial. Este formulario reproduce el panel de control de un transmisor - receptor de radio. En este caso, parece que el nombre de ventana le viene mejor que el de formulario. Observe que dentro del formulario existen gran cantidad de objetos. Botones, que hacen la misma función que el botón real en el equipo de radio, y un par de displays, que muestran un texto, en este caso las frecuencias de transmisión y recepción. Como cualquier objeto Visual Basic, un formulario tiene propiedades y procedimientos: PROPIEDADES. Name Nombre Define al objeto durante la ejecución del programa. Se introduce en tiempo de diseño y no se puede variar durante la ejecución. Nombre por defecto: Form1 (Form2 y sucesivos) Este nombre por defecto debe cambiarse, (debería cambiarse por norma en el momento de introducir el formulario), ya que de no hacerlo corremos el riesgo de borrar el código existente de otro formulario del mismo nombre en el momento de guardar la aplicación. Caption Título Es el texto que aparecerá en la barra de Título cada vez que aparezca en pantalla este formulario. No tiene otra función dentro del programa. El programa no accede a este formulario por el título, sino por el nombre. Puede cambiarse en tiempo de ejecución. NOTA.- No confundir Nombre (Name) con Título (Caption) Control BoxControl "menos" del Formulario Valor por defecto : True Propiedad booleana que admite los valores de true (verdadero) o False (Falso). Si esta propiedad es True, aparecerá en la esquina superior izquierda el "menos" para desplegar el menú de control de este formulario. Si esta propiedad se pone como False, no existirá dicho "menos" y por tanto no se puede desplegar dicho menú. MinButton MaxButton Valor por defecto: True Botones (flechas) de minimizar y maximizar este formulario. Son igualmente propiedades booleanas, que admiten el valor True o False. Si están en true, aparecerá la flecha correspondiente. Si están en False, no aparecerá dicha flecha. Deben configurarse de una u otra forma, dependiendo si se quiere minimizar / maximizar este formulario durante la ejecución.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Nota. En los formularios MDI child, es necesario poner a true las propiedades ControlBox, MinButton y MaxButton para poder maximizar el formulario hijo. De no ponerlas a true, sí se pretende maximizar el formulario hijo, (Propiedad WindowState=2) el formulario no aparece. BorderStyle Tipo de borde Define el tipo de borde que tendrá el formulario durante la ejecución. No se puede cambiar en tiempo de ejecución, Admite los siguientes valores: 0 - None El formulario no tiene borde alrededor 1 - Fixed Single El formulario tendrá un borde fino, y no podrá cambiarse su tamaño durante el tiempo de ejecución. Con este valor, el formulario puede tener un menú de control, barra de título y botones de maximizar y minimizar. Solo podrá cambiarse de tamaño utilizando estos botones. 2-Sizable El formulario tendrá borde grueso, y se podrá cambiar su tamaño en tiempo de ejecución mediante los botones de maximizar y minimizar, y mediante el arrastre de uno de los bordes con el ratón. 3 - Fixed Dialog El formulario tendrá borde grueso, y no se podrá redimensionar durante la ejecución. No puede tener los botones de maximizar ni minimizar. 4 - Fixed ToolWindow En las versiones de 16 bits de Windows y Windows NT 3.51 y anteriores se comporta como Fixed Single. No puede cambiar de tamaño. En Windows 95 muestra el botón Cerrar, y el texto de la barra de titulo aparece con un tamaño de fuente reducido. El formulario no aparece en la barra de tareas de W95. 5 - Sizable ToolWindow En las versiones de 16 bits se comporta como Sizable. En W95 muestra el botón Cerrar y el texto de la barra de titulo aparece con un tamaño de fuente reducido. El formulario no aparece en la barra de tareas de W95.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Valor por defecto: 2 . Sizable Nota: Al cambiar a determinados valores, las propiedades MaxButton y MinButton se ponen a False. Pueden cambiarse a True posteriormente. AppearanceApariencia Valor por defecto: 3D Admite los valores 0 (=Flat, plano) y 1 (=3D) Si tiene el valor 1 (3D), el formulario aparecerá con cierto efecto tridimensional, y los controles que le introduzcamos a este formulario aparecerán como esculpidos dentro de él. Con valor 0 (Flat) en esta propiedad, el formulario aparecerá durante la ejecución como una superficie plana. El color de fondo se ve afectado al cambiar esta propiedad. Si se cambia a 3D, el fondo (Backcolor) toma el color definido en Windows en el Panel de Control. Si se cambia a Flat, toma el color blanco Autoredraw Valor por defecto: False Propiedad booleana. Esta propiedad, estando en True, permite actualizar el contenido del formulario y de sus controles incluso cuando no están visibles. Imaginemos que en este formulario existe un texto, una etiqueta (Label) o caja de texto (Text Box) cuyo texto se haya cambiado, bien por programa, bien por una entrada, mientras este formulario no estaba visible. Lo mismo podemos decir de las propiedades de cualquier otro control. Si esta propiedad Autoredraw está en False, al hacer visible este formulario, aparecerá igual que cuando se ocultó. Si esta propiedad está en True, aparecerá actualizado. Backcolor Color del fondo Establece el color del fondo del formulario. Puede cambiarse en tiempo de ejecución. Valor por defecto: El establecido en el Panel de Control de Windows. ClipControls Valor por defecto: False Propiedad Booleana. Establece si un evento Paint vuelve a dibujar el objeto entero (True) o si solamente dibujan las partes que han sufrido cambios (False) DrawMode Establece un valor que determina el aspecto de la salida de un método gráfico o el aspecto de un control Shape o Line. Verá mas adelante los efectos de esta propiedad. DrawStile Valor por defecto : 0 Establece el estilo de línea de la salida de métodos gráficos:

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Valores: 0 - Línea continua 1 - Rayas 2 - Puntos 3 - Raya-Punto 4 - Raya - Punto - Punto 5 - Transparente 6 - Continuo interior. DrawWidth Valor por defecto: 1 Establece el ancho de una línea dibujada. El valor debe expresarse en pixeles. Enabled Activado Valor por defecto: True Propiedad booleana. Si está en True, el formulario está activado y se puede interactuar con él. Si está en False, se desactiva el formulario, impidiendo de esta forma, que se pueda trabajar con él. ForeColor Valor por defecto: Negro Establece el color del primer plano del formulario. Es el color que tendrán las letras si escribimos en él, o los dibujos, si lo que hacemos es dibujar. En tiempo de diseño, determina el color de la rejilla,. FillStyleTipo de relleno Valor por defecto: 2 Establece el modo de rellenar controles Shape, o figuras (círculos o cuadrados) creados con los métodos gráficos Circle y Line. Valores: 0 - Continuo 1 - Transparente 2 - Línea Horizontal 3 - Línea Vertical 4 - Diagonal hacia arriba

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
5 - Diagonal hacia abajo 6 - Cruzado 7 - Diagonal cruzada FillColorColor de relleno Especifica el color del relleno contemplado en FillStyle. FontTipo de letra Valor por defecto: El determinado en la personalización. Especifica el tipo y tamaño de la letra que se usará en el formulario. Al seleccionar esta propiedad en la ventana de propiedades, aparece un cuadro de dialogo donde se eligen ambos parámetros. Cuando introduzca nuevos controles en el Formulario, la propiedad Font de estos controles tomará el valor que tenga esta propiedad en el Formulario. Puede servirle este pequeño truco para utilizar en todos los controles una determinada fuente sin tener que teclearla para cada control. FontTranparentTexto Transparente Valor por defecto: True Establece si el texto o gráfico de fondo del formulario se muestra (True) o no se muestra entre los caracteres de texto escritos en el propio formulario. FontSize Tamaño de letra Establece el tamaño de la letra. Esta propiedad, que puede variarse en tiempo de ejecución, varía solamente el tamaño, y no el tipo de letra. El tamaño debe expresarse en puntos. Máximo, 2160 puntos. FontBold, FontItalic, FontStrikethru, FontUnderline Permiten, en tiempo de ejecución, cambiar un texto a negrita, cursiva, tachado y subrayado. Son propiedades booleanas True / False HeightAltura Valor por defecto: No existe Define la altura del formulario. El valor de esta propiedad no se introduce normalmente como un dato numérico, sino que toma el valor automáticamente, dependiendo de las dimensiones del formulario durante el tiempo de diseño. Puede cambiarse durante el tiempo de ejecución.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
HelpContextID Valor por defecto: 0 Establece un número de contexto asociado para este formulario. Este número se aplica para determinar la ayuda interactiva asociada a este formulario. Vea mas adelante, el tema Ayuda de Windows. Puede tomar los siguientes valores : 0 - No se especifica número de contexto >0 Un entero que especifique un contexto válido. IconIcono Esta propiedad define el icono que va a representar a este formulario cuando esté minimizado. Si el formulario es el formulario padre o formulario de inicio de una aplicación, este icono es el que toma el Asistente de Instalación para colocarlo como icono de apertura del programa en el grupo de programas Windows correspondiente. Como valor de esta propiedad se le puede asignar directamente el icono o el nombre de un archivo (con su path correspondiente) que lo contiene, haciéndolo directamente sobre la caja de propiedades. Valor por defecto: el icono que se le haya programado en la personalización. KeyPreview Valor por defecto: False Propiedad Booleana. Cuando un formulario tiene dentro de sí varios controles, uno de ellos es el que está activo. En estas condiciones, si se pulsa una tecla, esa pulsación la recibe en primer lugar el control que esté activo, y si éste no la procesa, pasa esa pulsación al formulario. Para hacer que esa pulsación pase directamente al formulario, debe ponerse esta propiedad en True. LeftBorde Izquierdo Valor por defecto: No existe Indica la posición del borde izquierdo del formulario. Normalmente no se introduce como valor numérico, sino que lo toma automáticamente de la posición que tenga el formulario en el tiempo de diseño. Puede cambiarse en tiempo de ejecución, para mover el formulario. LinkMode Valor por defecto: 0 Permite que una aplicación destino inicie una conversación DDE con el formulario (origen de datos). Puede tomar los siguiente valores: 0 - No hay interacción DDE

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
1 - Source. Indica que este Formulario es origen de una comunicación DDE. El dato que se va a traspasar en esa comunicación DDE estará en un TextBox, en un Label o en un PictureBox de este Formulario. LinkTopic Establece el tema al que este formulario va a responder a una conversación DDE, cuando funciona como origen. Es por este tema por el que se debe llamar a este formulario cuando actúa de origen en una conversación DDE MDIChild Valor por defecto: False Establece que este formulario es un formulario Hijo dentro de un formulario MDI. No se puede cambiar en tiempo de ejecución. Es una propiedad booleana True = es formulario hijo False =No lo es MouseIcon Valor por defecto: ninguno Establece un icono personalizado para el puntero del ratón cuando esté encima de este Formulario. Este icono puede ser un bit-map de los existentes en el directorio Icons de Visual Basic o cualquiera que tengamos. Si se pone 99 como valor de la propiedad MousePointer (siguiente), cada vez que el puntero del ratón pase por este Formulario, cambiará su forma y adoptará la del icono elegido. MousePointer Valor por defecto: flecha Determina la forma del puntero del ratón cuando se coloca encima del formulario. Puede elegirse uno de los punteros preestablecidos (15 en total) o el personalizado visto en la propiedad anterior. Para elegir ese icono personalizado, debemos poner en esta propiedad el valor 99. Picture Gráfico Valor por defecto: No existe Mediante esta propiedad podemos poner un gráfico como fondo del formulario. El gráfico puede ser un bit-map o un fichero .ICO ScaleHeight, ScaleWidth, ScaleMode, Indican la unidad de medida de dimensión de altura y anchura del Formulario. ScaleMode indica en qué unidades de medida se van a medir esas dimensiones. Acepta Twips (1), Point(2), Pixel (3), Character (4), Pulgadas (Inch) (5), Milímetros (6), Centímetros (7). Si colocamos la propiedad ScaleMode en cualquiera de estos valores, las propiedades ScaleHeight y ScaleWidth nos vendrán dadas automáticamente dependiendo del ancho del

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Formulario, y no se extrañe si encuentra para estas propiedades valores tan peregrinos como 4815 y 7423. Al haber elegido la unidad de medida, los valores de ancho (ScaleWidth) y alto (ScaleHeight) serán los que tengan que ser, medidos en la unidad que hemos elegido. Podemos elegir una cifra para el ancho y el alto del Formulario de forma que podamos controlar mejor las distintas posiciones que van a ocupar en él los controles, los textos o los dibujos. Podemos poner, por ejemplo, que el Formulario mida 400 de ancho (ScaleWidth = 400) y 300 de alto (ScaleHeight = 300) forzándole estas propiedades, bien en tiempo de diseño en la caja de propiedades, o en tiempo de ejecución mediante código. Entonces sabemos que el formulario, independientemente de las dimensiones físicas que tenga sobre la pantalla, medirá 400 de ancho y 300 de alto, y si en estas condiciones queremos colocar un control o un dibujo justo en el medio del Formulario, sabemos que tenemos que colocarle en las coordenadas 200, 150. ¿Que unidad de medida estaremos utilizando entonces en el Formulario ? Unas definidas por el usuario (distintas para el ancho y el alto) que serán las necesarias para que el Formulario mida de ancho lo que le hayamos puesto en la propiedad ScaleWidth y de alto lo que le hayamos puesto en la propiedad ScaleHeight. Observe que la propiedad ScaleMode se ha cambiado automáticamente a User (0) al introducir las dimensiones de ancho y alto que nosotros queremos. Estas unidades de medida afectarán a los controles que metamos en este Formulario. Se medirán en su ancho y alto con la unidad de medida definida para el ancho y alto del Formulario. Lógicamente también afectará a las propiedades Left y Top de los controles, pero estas propiedades se verán afectadas además por las propiedades ScaleLeft y ScaleTop del Formulario que se verán a continuación. ScaleLeft, ScaleTop Estas propiedades, medidas en la unidad de medida elegida para el ancho y alto mediante las propiedades ScaleMode, ScaleWidth y ScaleHeight anteriores, expresan las coordenadas iniciales de la parte izquierda y de la parte superior respectivamente del Formulario. Estas propiedades no afectan a la posición del Formulario en la pantalla (Si está maximizado seguirá ocupando toda la pantalla, si está en "Normal" ocupará el mismo sitio que se dio en tiempo de diseño). Supongamos que se le asigna a un Formulario, las propiedades ScaleWidth = 400, y ScaleHeight = 300. Si colocamos un control justamente en el centro del Formulario tendrá sus propiedades Top =150 y Left=200. Si ponemos ahora las propiedades del Formulario ScaleLeft a 30 y ScaleTop a 10, ese control, para seguir en el centro del Formulario deberá tener sus propiedades Top a 160 (150 + 10) y Left a 230 (200 + 30). Recuerde que las medidas de un formulario crecen, desde la esquina superior izquierda, según avanzamos hacia abajo y hacia la derecha. Como aclaración de las relaciones entre distintas unidades de medida, puede ver en la siguiente table la correspondencia entre cada una de ellas y la unidad imaginaria Twip.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
1 Point=20 Twips ; 1Pixel=15 Twips : 1 Charecter=240 Twips ; 1 Inch (pulgada) =1440 Twips 1mm=56,52 Twips 1 cm=566 Twips Tag Valor por defecto: No existe Esta propiedad no la usa directamente Visual-Basic. Sirve para asociar al formulario información adicional para fines externos a la programación. Pero también le puede servir para almacenar en ella una variable para que la use un código ajeno al formulario. El autor de estos apuntes tiene por costumbre utilizar la propiedad Tag del formulario inicial para guardar el parámetro que se le pasa a algunos programas para acceder a ellos con unos determinados privilegios. Resumiendo, está ahí para lo que el programador quiere. TopPosición del borde superior Valor por defecto: No existe Esta propiedad establece la posición del borde superior del formulario. Normalmente no se introduce como valor numérico sino que lo toma automáticamente de la posición que tenga el Formulario durante el tiempo de diseño Este valor puede cambiarse durante la ejecución para, conjuntamente con Left, variar la posición del Formulario. Los valores de Top y Left definen la esquina superior izquierda del Formulario. Visible Valor por defecto: True Propiedad Booleana. Asignándole el valor True la pantalla es visible, y asignándole el valor False, no se ve. Este valor puede cambiarse durante el tiempo de ejecución para ocultar y hacer visible el formulario. WidthAncho Valor por defecto: No existe Define la anchura del formulario. Normalmente no se introduce como valor numérico sino que lo toma automáticamente del tamaño que tenga el formulario durante el tiempo de diseño. Juntamente con Height define el tamaño del formulario. Puede cambiarse durante el tiempo de ejecución. WindowState Establece el estado en el que aparecerá el formulario cuando se activa y presenta en pantalla. Admite tres opciones: 0 - Normal El formulario recupera la posición y tamaño que tenía en el tiempo de diseño. 1 - Minimizado El formulario aparece minimizado, representado por su icono. 2 - Maximizado El formulario aparece maximizado, ocupando toda la pantalla.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
PROCEDIMIENTOS ActivateActivación ClickClick DblClickDoble click DeactivateDesactivación DragDropArrastrar y soltar DragOverArrastrar por encima GotFocusObtener el foco KeyDown Mantener pulsada una tecla KeyPressPulsar una tecla KeyUpSoltar una tecla LinkErrorError de enlace LinkExecuteEjecución de un enlace de datos LinkOpenRomper el enlace LoadCargar el formulario LostFocusPerder el foco MouseDownPulsar una tecla del ratón MouseMoveMover el ratón (Detecta la posición del ratón sobre el formulario) MouseUpSoltar una tecla del ratón PaintPintar QueryUnloadConfirmación de descarga ResizeCambio de tamaño UnloadDescargar el formulario Un Formulario sirve, fundamentalmente, de contenedor de controles. Es la ventana de Windows de nuestra aplicación. Una aplicación puede tener varios Formularios y dentro de cada uno de ellos, los controles necesarios para cada paso o estado de la aplicación. Un Formulario puede servir también como soporte de textos o dibujos. CONTROLES Una vez introducido un Formulario, se pueden colocar los objetos (controles) que forman parte de la aplicación. Estos controles se irán viendo en próximos capítulos. Los controles, lo mismo que el Formulario, tienen Propiedades y Procedimientos. Las Propiedades definen las características del Control. Los Procedimientos definen la forma de actuar (la forma de proceder) de un control frente a un evento. Tanto las propiedades como los procedimientos deben ser definidos por el programador. Las propiedades dejan un pequeño margen de actuación, los procedimientos son en su

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
totalidad, definidos por el programador. Estos procedimientos forman parte del programa. Podría incluso hacerse una aplicación que no tuviese mas código que el introducido en los procedimientos. Para colocar un control en un Formulario, basta con "tomarlo" de la caja de herramientas existente en la parte izquierda de la pantalla de VB y llevarlo al Formulario. Si no existiese el control deseado en la caja de herramientas, deberemos ir a "cogerlo" a Controles personalizados que está en el menú desplegable Herramientas de la barra de Menú de VB. Se elige el nuevo control, marcando la caja de opción a la izquierda de su nombre, y haciendo click en ACEPTAR. Este control ya pasa a la caja de herramientas. COMMAND BUTTONBOTON DE COMANDO _______________________________________ El Command Button es un objeto que sirve para introducir datos a través de la pantalla. El Botón de Comando tiene la siguiente forma:

El botón de comando puede usarse para la entrada de datos con el ratón, o para validar cualquier operación. El tamaño puede cambiarse a voluntad, pero la forma siempre es rectangular. En la figura anterior vemos dos botones de comando, uno de ellos (el Command2) marcado con unos puntos en su contorno. Estos puntos nos permiten variar su tamaño en tiempo de diseño. También puede cambiarse su tamaño y posición en tiempo de ejecución. PROPIEDADES NameNombre Es el nombre que define a este objeto durante la ejecución del programa. No se puede cambiar en tiempo de ejecución. El nombre por defecto es Command1, Command2, etc. Estos nombres por defecto deberían cambiarse por otros que nos indiquen algo respecto a este control, aunque en este caso no es tan imprescindible como para los formularios. CaptionTítulo Es el texto que aparece en el botón. Puede cambiarse en tiempo de ejecución. No tiene otra función dentro del programa.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
NOTA.- No confundir Nombre (Name) con Título (Caption) Appearance Apariencia Determina la forma del botón. Admite los valores de Flat (Plano) y 3D. No se aprecia en gran medida la diferencia. BackcolorColor de fondo Es el color de un pequeño cuadrado que aparece rodeando el título, NO el color del botón, que es invariable. Puede cambiarse en tiempo de ejecución. Cancel Establece un valor que indica si un botón de comando es el botón Cancelar de un formulario. Es una propiedad booleana, y admite los valores True o False. Puede utilizar la propiedad Cancel para dar al usuario la opción de cancelar los cambios que no se han hecho efectivos y devolver el formulario a su estado anterior. En un formulario sólo puede haber un botón de comando con la propiedad Cancel = True. Default Establece un valor que determina el control CommandButton que es el botón de comando predeterminado de un formulario. Sólo un botón de comando de un formulario puede ser el botón de comando predeterminado. Cuando Default se define a True para un botón de comando, se define automáticamente a False para el resto de los botones de comando del formulario. Cuando la propiedad Default del botón de comando está establecida a True y su formulario primario está activo, el usuario puede elegir el botón de comando (invocando su evento Click) presionando ENTRAR. Cualquier otro control que tuviera el enfoque no recibe evento de teclado (KeyDown, KeyPress o KeyUp) de la tecla ENTRAR a menos que el usuario haya movido el enfoque a otro botón de comando del mismo formulario. En este caso, al presionar ENTRAR se elige el botón de comando que tiene el enfoque en lugar del botón de comando predeterminado. DragIcon Establece el icono que se presenta como puntero en una operación de arrastrar y colocar. DragMode Establece un valor que determina si se usa el modo de arrastre manual o automático en una operación de arrastrar y colocar. Los valores posibles de número son: 0 Manual (Predeterminado)

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
1 Automático Enabled Habilitado Propiedad Booleana que habilita o deshabilita el botón. Cuando está deshabilitado (Enabled = False), el botón no tiene efecto, y su apariencia varía, presentando un tono pálido tanto en su cuerpo como en su título. Puede variarse en tiempo de ejecución. Font Fuente Es el tipo de letra para el título. Puede cambiarse en tiempo de ejecución. Height Altura Establece la altura del botón. Normalmente esta propiedad no se introduce numéricamente, sino que la toma automáticamente de las dimensiones que se le den al botón en tiempo de diseño. Puede cambiarse, cambiando el valor a esta propiedad, en tiempo de ejecución. HelpContextID Establece un número de contexto asociado para este control. Este número se aplica para determinar la ayuda interactiva. Puede tener los siguientes valores: 0 = No se especifica número de contexto >0 Un entero que especifica un contexto válido. Index Indice En el caso de que se tengan varios botones que realicen una función similar (Las teclas numéricas de una calculadora, p.e.) puede hacerse un array con estos botones de comando. Todos tendrán el mismo nombre, y se diferencian por un índice. Esta propiedad Index toma el número de ese índice. Left Posición de su parte izquierda. Indica la posición del botón, concretamente de la parte izquierda del mismo. Normalmente esta propiedad no se introduce numéricamente, sino que la toma automáticamente de la posición que se le de al botón en tiempo de diseño. Puede cambiarse, cambiando el valor a esta propiedad, en tiempo de ejecución. MouseIconIcono para el puntero del ratón

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Determina el icono que presenta al puntero del ratón cuando pasa por encima del botón, cuando se especifica en la propiedad MousePointer que el puntero del ratón es el definido por el usuario. (Custom) MousePointer Puntero ratón Determina la forma del puntero del ratón cuando éste pasa por encima del botón. Puede elegirse uno de los punteros preestablecidos (15) o incluso uno diseñado especialmente. Para especificar que el puntero es uno diseñado especialmente, hay que poner a esta propiedad el valor 99 (Custom), y en este caso aparecerá el icono determinado por la propiedad MouseIcon TabIndex Nº de orden para tabulador Cuando disponemos de varios controles en un mismo formulario, solamente uno de ellos tiene el foco. Esta expresión de tener el foco significa que ese control está remarcado y en esa condición, si pulsamos la tecla ENTER haría el mismo efecto que hacer click con el ratón en ese control. Esto es necesario, ya que existen ordenadores que no disponen de ratón (típico de algunos portátiles). En estos casos, para elegir uno u otro control debemos pulsar repetidas veces la tecla TABulador. El foco irá cambiando de uno a otro control (pueden ser controles de distinto tipo) cada vez que pulsemos la tecla TABulador. Esta propiedad TabIndex marca el orden que seguirá el foco a través de cada control. TabStopSale del control de la tecla TAB Propiedad booleana. Cuando esta propiedad está a False, el botón no tomará el foco cuando se pulse la tecla del Tabulador. Sin embargo sigue manteniendo el índice de la propiedad TabIndex descrita anteriormente. Puede cambiarse en tiempo de ejecución. Esto nos permite descartar algún botón de tomar el foco, cuando por facilidad para el usuario, sea conveniente en determinados puntos del programa. Tag Esta propiedad no la usa directamente Visual-Basic. Sirve para asociar a este control alguna información adicional para fines externos a la programación. Similar a la del formulario. Top Indica la coordenada de la parte superior del control. Puede variarse durante el tiempo de ejecución. Esta propiedad, juntamente con Left definen la esquina superior izquierda del botón de comando. Normalmente esta propiedad no se introduce numéricamente, sino que la toma automáticamente de la posición que se le den al botón en tiempo de diseño. Puede cambiarse, cambiando el valor a esta propiedad, en tiempo de ejecución.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
VisibleVisible Propiedad Booleana. Si es true, el botón se ve, si es False el botón no se ve. Puede cambiarse en tiempo de ejecución. De hecho, es un recurso muy usado para dejar visibles en un formulario, solamente los objetos (controles) necesarios. WhatThisHelpID (Propiedad, Windows 95) Devuelve o establece un número de contexto asociado a un objeto. Se utiliza para dotar a las aplicaciones de Ayuda interactiva con el menú emergente ¿Qué es esto? de la Ayuda de Windows 95. Width Ancho Define el ancho del botón. Con Height determina la dimensión del botón. PROCEDIMIENTOS DEL BOTON DE COMANDO Click DragDrop DragOver GotFocus KeyDown KeyPress KeyUp LostFocus MouseDown MouseMove MouseUp ¡ El botón de Comando no tiene el procedimiento DbClick ! LABEL ETIQUETA ____________________ Una etiqueta es un control que nos permite presentar un texto. La etiqueta debe usarse en aquellos casos en los que exista una información estática o dinámica que no deba ser cambiada por el operador. Puede adoptar estas formas: con borde tridimensional, borde plano o sin borde, y el texto justificado a la izquierda, a la derecha o centrado.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net

Se ha incluido la trama para poder observar los límites de la etiqueta sin borde. PROPIEDADES AlignmentJustificación Establece si el texto se justifica a la izquierda, a la derecha, o se centra sobre la etiqueta. Appearance Apariencia Plana o tridimensional. AutosizeTamaño Propiedad booleana. Si se pone a True, el tamaño de la etiqueta se ajusta al texto que contiene. BackcolorColor de fondo Es el color de fondo de la etiqueta. Puede cambiarse en tiempo de ejecución. BackStyle Tipo de fondo Opaco o transparente. Cuando se selecciona transparente, se ve solamente el texto de la etiqueta. Cuando se selecciona opaco, este texto se vé sobre un fondo gris. BorderStyleTipo de borde Sin borde o con borde. En caso de haber elegido en la propiedad Appearance el modo tridimensional, y eligiendo con borde en esta propiedad, el aspecto adopta una forma como incrustada en el formulario. CaptionTítulo

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Es el texto de la etiqueta. Puede cambiarse en tiempo de ejecución, lo que permite usar la etiqueta como dispositivo de presentación de textos. No se puede cambiar por el procedimiento de arrastrar con el ratón, por lo que es el control adecuado cuando se quiere presentar un texto que no se pueda cambiar por el operador. DataField DataSource Establecen la base de datos y el campo donde está el texto Datos que se llevará a la propiedad Caption. Estas propiedades permiten presentar los datos de una Base de Datos mediante un procedimiento muy sencillo, con la ayuda de un control Data (Se verá mas adelante) DragIcon Establece el icono que se presenta como puntero en una operación de arrastrar y colocar. DragMode Establece un valor que determina si se usa el modo de arrastre manual o automático en una operación de arrastrar y colocar. Los valores posibles de número son: 0 Manual (Predeterminado) 1 Automático Enabled Habilitado Propiedad Booleana que habilita o deshabilita la etiqueta Cuando está deshabilitado (Enabled = False), no tienen efecto los eventos que se produzcan sobre ella, y su apariencia varía, presentando un tono pálido tanto en su cuerpo como en su título. Puede variarse en tiempo de ejecución. Font Fuente Es el tipo de letra para el título. Puede cambiarse en tiempo de ejecución. ForeColor Es el color de la letra de la etiqueta. Puede cambiarse en tiempo de ejecución. Height Altura

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Establece la altura de la etiqueta. Normalmente esta propiedad no se introduce numéricamente, sino que la toma automáticamente de las dimensiones que se le den a la etiqueta en tiempo de diseño. Index Indice En el caso de que se tengan varios etiquetas que realicen una función similar puede hacerse un array con etiquetas. Todas tendrán el mismo nombre, y se diferencian por un índice. Esta propiedad Index toma el número de ese índice. Left Posición de su parte izquierda Indica la posición de la etiqueta, concretamente de su parte izquierda. Normalmente esta propiedad no se introduce numéricamente, sino que la toma automáticamente de la posición que ocupaba en tiempo de diseño. Puede cambiarse, cambiando el valor a esta propiedad, en tiempo de ejecución. LinkItem LinkMode LinkTimeout LinkTopic Estas propiedades establecen la forma en que debe llevarse a cabo una conexión DDE con otra aplicación. Se verán con mas detalle al estudiar los enlaces DDE MouseIconIcono del puntero del ratón MousePointer Puntero ratón Para estas propiedades es aplicable todo lo dicho para las mismas en el Botón de Comando NameNombre Es el nombre de la etiqueta con el que se le conocerá a lo largo del programa TabIndex Nº de orden Al igual que para los botones de comando, la etiqueta tiene propiedad TabIndex. Sin embargo, una etiqueta NUNCA tomará el foco. Vea la propiedad UseMneumonic mas adelante. Tag Esta propiedad no la usa directamente Visual-Basic. Sirve para asociar a este control alguna información adicional para fines externos a la programación. Top

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Indica la coordenada de la parte superior del control. Puede variarse durante el tiempo de ejecución. Esta propiedad, juntamente con Left definen la esquina superior izquierda del botón de comando. Normalmente esta propiedad no se introduce numéricamente, sino que la toma automáticamente de la posición que se le den a la etiqueta en tiempo de diseño. Puede cambiarse, cambiando el valor a esta propiedad, en tiempo de ejecución. UseMneumonic Devuelve o establece un valor que indica si al incluir el signo (&) en el texto de la propiedad Caption del control Label se define una tecla de acceso. Es una propiedad Booleana. Los valores que puede tomar son True o False. True (Predeterminado) Los caracteres (&) que aparezcan en el texto de la propiedad Caption definen al carácter siguiente como tecla de acceso. El signo (&) no aparece en la interfaz del control Label. False Los caracteres (&) que aparezcan en el texto de la propiedad Caption aparecen como tales en la interfaz del control Label. En tiempo de ejecución, al presionar ALT+ la tecla de acceso definida en la propiedad Caption del control Label, el enfoque se desplaza al control siguiente al control Label en el orden de tabulación. VisibleVisible Propiedad Booleana. Si es true, la etiqueta se ve, si es False no se ve. Puede cambiarse en tiempo de ejecución. WhatThisHelpID (Propiedad, Windows 95) Devuelve o establece un número de contexto asociado a un objeto. Se utiliza para dotar a las aplicaciones de Ayuda interactiva con el menú emergente ¿Qué es esto? de la Ayuda de Windows 95. Width Ancho Define el ancho de la etiqueta. Con Height determina la dimensión de la misma. WordWrap

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Devuelve o establece un valor que indica si un control Label con el valor True en su propiedad AutoSize se expande vertical u horizontalmente para adaptarse al texto especificado en su propiedad Caption. Es una propiedad Booleana. Esta propiedad puede cambiarse en tiempo de ejecución True El control Label se expande o contrae horizontal y verticalmente para adaptarse al texto y al tamaño de la fuente. Contempla para la expansión horizontal la colocación de los espacios del texto. False (Predeterminado) El texto no se ajusta a la siguiente línea; el control Label se expande o contrae horizontalmente para adaptarse a la longitud del texto y verticalmente para adaptarse al tamaño de la fuente y al número de líneas. Nota Si se establece False en AutoSize, el texto siempre se ajustará a la línea siguiente, independientemente del tamaño del control Label y del valor de la propiedad WordWrap. Esto puede ocultar parte del texto, ya que el control Label no se expande en ninguna dirección. PROCEDIMIENTOS DEL LABEL Click Change DbClick DragDrop DragOver LinkClose LinkError LinkNotify TEXT BOXCAJAS DE TEXTO _____________________________ Las cajas de texto son los controles en los que Visual Basic presenta o introduce textos. Es por tanto un control bidireccional. Normalmente se usan para introdución de textos, o para la presentación de aquellos que el operador pueda cambiar. Para cambiar o escribir un texto en una caja de texto, basta con conseguir que esa caja de texto tenga el foco y teclear el texto en el teclado. Esto se puede lograr, bien haciendo click con el ratón en esa caja de texto, bien con la tecla TAB, bien por programa. La caja de texto no se debe usar nunca para presentar textos que el operador de la aplicación no deba cambiar. Úsese para ello la etiqueta, control no bidireccional, que además tiene la ventaja de ocupar menos memoria de programa. Las cajas de texto pueden tener una o varias líneas, según esté la propiedad Multiline. La capacidad máxima de una caja de textos es de 64 Kbytes.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
La forma de una caja de texto es la siguiente, dependiendo de las propiedades BorderStyle y Appearance:

PROPIEDADES AlignmentJustificación Establece si el texto se justifica a la izquierda, a la derecha, o se centra sobre la etiqueta. Esta propiedad solamente tiene efecto cuando la propiedad Multiline está a True, ignorándose en caso contrario. Es decir, permite colocar el texto justificado a la derecha cuando ese texto puede ser de varias líneas. Para una única línea, se justifica siempre a la izquierda. Esta propiedad no puede cambiarse en tiempo de ejecución, pero sí puede leerse en que condición está. Appearance Apariencia Plana o tridimensional. BackcolorColor de fondo Es el color de fondo de la caja de texto. Puede cambiarse en tiempo de ejecución. BorderStyleTipo de borde Sin borde o con borde. En caso de haber elegido en la propiedad Appearance el modo tridimensional, y eligiendo con borde en esta propiedad, el aspecto adopta una forma como incrustada en el formulario. DataField DataSourceFuente de Datos

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Establecen la base de datos y el campo donde está el texto que se llevará a la propiedad Text. Estas propiedades permiten presentar de una forma muy sencilla datos de una Base de Datos. Se verán cuando se estudie el control Data y el motor de bases de datos DragIcon Establece el icono que se presenta como puntero en una operación de arrastrar y colocar. DragMode Establece un valor que determina si se usa el modo de arrastre manual o automático en una operación de arrastrar y colocar. Los valores posibles de número son: 0 Manual (Predeterminado) 1 Automático Enabled Habilitado Propiedad Booleana que habilita o deshabilita la etiqueta Cuando está deshabilitado (Enabled = False), no tienen efecto los eventos que se produzcan sobre el TextBox. No se puede escribir el él ni pasarle el foco, pero sí se le puede cambiar el texto mediante el programa. Puede ser una buena alternativa para impedir que el usuario pueda cambiar un determinado texto. Esta propiedad puede variarse en tiempo de ejecución. Font Fuente Es el tipo de letra que se utilizará en el TextBox. Puede cambiarse en tiempo de ejecución. ForeColorColor de la letra Determina el color de las letras del texto. Height Altura Establece la altura de la caja de texto. Normalmente esta propiedad no se introduce numéricamente, sino que la toma automáticamente de las dimensiones que se le den a la caja en tiempo de diseño. HelpContextID Establece un número de contexto asociado para este control. Este número se aplica para determinar la ayuda interactiva.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Puede tener los siguientes valores: 0 = No se especifica número de contexto >0 Un entero que especifica un contexto válido. Index Indice En el caso de que se tengan varias cajas de texto que realicen una función similar puede hacerse un array con ellas. Todas tendrán el mismo nombre, y se diferencian por un índice. Esta propiedad Index toma el número de ese índice. Left Posición de su parte izquierda. Indica la posición de la caja de texto, concretamente de su parte izquierda. Normalmente esta propiedad no se introduce numéricamente, sino que la toma automáticamente de la posición que ocupaba en tiempo de diseño. Puede cambiarse, cambiando el valor a esta propiedad, en tiempo de ejecución. LinkItem LinkMode LinkTimeout LinkTopic Estas propiedades establecen la forma en que debe llevarse a cabo una conexión DDE con otra aplicación. Se verán con mas detalle al estudiar los enlaces DDE Locked Establece si el texto se puede editar, es decir, cambiar. Cuando se pone esta propiedad a True, el texto existente en la caja puede resaltarse con el ratón, e incluso copiarlo al portapapeles, pero no puede variarse tecleando un nuevo texto. Se puede cambiar por programa, cambiando la propiedad Text. Si está en False, puede cambiarse el texto mediante teclado. MaxLenght Indica, si se establece, la longitud máxima del texto. MouseIconPuntero del ratón personalizado MousePointer Puntero ratón Determina la forma del puntero del ratón cuando éste pasa por encima de la caja de texto. Puede elegirse uno de los punteros preestablecidos en esta propiedad, (15 en total) e incluso un puntero personalizado en la propiedad MouseIcon. Para que aparezca este puntero

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
personalizado, MousePointer debe ponerse al valor 99. Lo típico para esta propiedad es el I-Beam (barra vertical) NameNombre Es el nombre de la caja de texto con el que se le conocerá a lo largo del programa PasswordChar En ocasiones, es conveniente que no se pueda leer lo que se escribe en la caja de texto, caso por ejemplo de la entrada de un password o palabra de paso. Esta propiedad nos permite indicar un carácter que sustituye a cualquier carácter que tenga la caja de texto. (Típicos el * o ?). El texto que tenga en la propiedad Text no cambia por el hecho de presentar en pantalla un carácter distinto. Esta propiedad puede cambiarse en tiempo de ejecución. Para quitar el PasswordChar basta con forzarlo al carácter nulo : Text1.PasswordChar = "" Esta propiedad se ignora cuando la propiedad Multiline está a True. ScrollBars Cuando la propiedad Multiline de la caja de texto está a True, se pueden colocar barras de desplazamiento del texto hacia arriba y abajo, o hacia los lados. Esto nos permite tener una caja de texto de tamaño reducido y poder leer en ella un texto mayor que la propia caja. Esta propiedad puede tomar los siguiente valores : 0 - No salen barras 1 - Barras de desplazamiento horizontal 2 - Barras de desplazamiento vertical 3 - Ambas barras. TabIndex Nº de orden para obtener el foco Al igual que para los botones de comando, esta propiedad para tabulador marca el orden en el que le llegará el foco al pulsar la tecla TAB Tag Esta propiedad no la usa directamente Visual Basic. Sirve para asociar a este control alguna información adicional para fines externos a la programación. Top

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Indica la coordenada de la parte superior del control. Puede variarse durante el tiempo de ejecución. Esta propiedad, juntamente con Left definen la esquina superior izquierda de la caja de texto. Normalmente esta propiedad no se introduce numéricamente, sino que la toma automáticamente de la posición que se le de en tiempo de diseño. Puede cambiarse, cambiando el valor a esta propiedad, en tiempo de ejecución. VisibleVisible Propiedad Booleana. Si es true, la caja de texto se ve, si es False no se ve. Puede cambiarse en tiempo de ejecución. WhatThisHelpID (Propiedad, Windows 95) Devuelve o establece un número de contexto asociado a un objeto. Se utiliza para dotar a las aplicaciones de Ayuda interactiva con el menú emergente ¿Qué es esto? de la Ayuda de Windows 95. Width Ancho Define el ancho de la caja de texto. Con Height determina la dimensión de la misma. PROCEDIMIENTOS DE LA CAJA DE TEXTO Click Change DblClick DragDrop DragOver GotFocus KeyDown KeyPress KeyUp LinkClose FRAME RECUADRO Se obtiene directamente de la caja de herramientas

Tiene la siguiente forma :

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net

Un control Frame proporciona un agrupamiento identificable para controles. También puede utilizar un Frame para subdividir un formulario funcionalmente por ejemplo, para separar grupos de controles OptionButton. Para agrupar controles, en primer lugar trace el control Frame y, a continuación, meta los controles dentro de Frame. De este modo podrá mover al mismo tiempo el Frame y los controles que contiene. Si traza un control fuera del Frame y, a continuación, intenta moverlo dentro de éste, el control se colocará sobre el Frame, pero no pertenecerá a el. Es decir, si es un OptionButton este se comportará como si estuviese fuera del Frame, aunque físicamente esté dentro de el. Cuando un control Frame tiene dentro otros controles, y hacemos invisible al Frame, mediante su propiedad Visible = False, los controles interiores al Frame quedan también invisibles. PROPIEDADES Las señaladas con (*) no presentan novedades respecto a las ya comentadas para los controles precedentes. Appearance (*) Backcolor (*) CaptionEs el título que aparece en el borde del Frame. ClipControls Si esta propiedad está a True, los métodos gráficos en eventos Paint vuelven a dibujar el objeto entero. Antes del evento Paint se crea una zona de recorte alrededor de los controles no gráficos del formulario. Si esta propiedad está a False dibujarán solamente las áreas últimamente expuestas. En tiempo de ejecución, esta propiedad es de sólo lectura. DragIcon(*) DragMode(*)

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Enabled Cuando esta propiedad está a False, tanto los procedimientos asociados al propio control Frame como todos los controles dentro del Frame estarán inhabilitados. Si esta propiedad está a True, todos ellos están habilitados. Font En esta propiedad, el tipo de letra afecta solamente al título del Frame, no a los controles internos a el. ForeColor Color de las letras del título del Frame. Height(*) HelpContextID(*) Index(*) Left(*) MouseIcon(*) MousePointer(*) Name(*) TabIndex(*) Tag(*) Top(*) Visible Cuando un Frame está con la propiedad Visible = False, tanto el propio Frame como todos los controles interiores a el serán invisibles. WhatsThisHelpID(*) Width(*)

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
PROCEDIMIENTOS DEL FRAME Click DblClick DragDrop DragOver MouseDown MouseMove MouseUp CHECK BUTTON Y OPTION BUTTON (BOTONES DE ELECCION Y OPCION) Se obtienen directamente de la caja de herramientas.

Dada la similitud de ambos controles, se comentan conjuntamente. El control CheckBox, o casilla de verificación, permite elegir una opción (activada/desactivada, True/False) que el usuario puede establecer o anular haciendo click. Una X en una casilla de verificación indica que está seleccionada, activada, o con valor True. Cada casilla de verificación es independiente de las demás que puedan existir en el formulario, pudiendo tomar cada una de ellas el valor True o False, a voluntad del operador. Un control OptionButton muestra una opción que se puede activar o desactivar, pero con dependencia del estado de otros controles OptionButton que existan en el formulario. Generalmente, los controles OptionButton se utilizan en un grupo de opciones para mostrar opciones de las cuales el usuario sólo puede seleccionar una. Los controles OptionButton se agrupan dibujándolos dentro de un contenedor como un control Frame, un control PictureBox o un formulario. Para agrupar controles OptionButton en un Frame o PictureBox, dibuje en primer lugar el Frame o PictureBox y, a continuación, dibuje dentro los controles OptionButton. Todos los controles OptionButton que están dentro del mismo contenedor actúan como un solo grupo, e independientes de los controles OptionButton de otros grupos distintos. Aunque puede parecer que los controles OptionButton y CheckBox funcionan de forma similar, hay una diferencia importante: Cuando un usuario selecciona un OptionButton, los otros controles del mismo grupo OptionButton dejan de estas disponibles automáticamente. Por contraste, se puede seleccionar cualquier número de controles CheckBox.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net

En el ejemplo de la figura, existen tres grupos de OptionButton, uno en un PictureBox, que actúa, al tiempo que como cuadro de imagen, como contenedor de controles OptionButton. Otro grupo está en el interior de un control Frame, y el otro grupo está en el formulario. Los tres grupos son independientes entre sí, pero interiormente al grupo solamente puede seleccionarse uno de los OptionButton que lo componen. En el formulario también existen tres CheckBox, que como puede verse, se pueden seleccionar los que se desee, sin ningún tipo de exclusión entre ellos. PROPIEDADES Las señaladas con (*) son comunes a ambos controles y no presentan novedades respecto a las ya comentadas para los controles precedentes. AlignmentComún a ambos controles. Admite los siguientes valores : 0 - Left Justify 1 - Right Justify Cuando se elige el valor 0, justificado a la izquierda, el título del control aparece a la derecha del botón, pegado a la figura del botón. Cuando se elige el valor 1, justificado a la derecha, el título (Caption) aparece a la izquierda del botón, comenzando en la parte izquierda del cuerpo total del control, es decir, no tiene porqué aparecer con su parte derecha pegado al botón, caso que el cuerpo total del control se haya hecho mas largo que la palabra del título.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Appearance (*) Backcolor (*) Caption(*). DataField DataSource Propiedades del CheckBox solamente. Establecen la base de datos y el campo donde están los datos (True / False) que se llevarán a la propiedad Value . Al igual que en los controles Label y TextBox esta propiedad nos permite visualizar datos de una base de datos de una forma muy sencilla. En este caso, el CheckBox solamente permite presentar (logicamente) datos de tipo Booleano. DragIcon(*) DragMode(*) Enabled(*) Font(*) ForeColor(*) HeightComún a ambos controles. La altura del control solamente afecta a la colocación del Titulo (Puede ponerse un título largo en varias líneas), no al tamaño del botón, que es invariable. HelpContextID(*) Index(*) Left(*) MouseIcon(*) MousePointer(*) Name(*) TabIndex(*) TabStop (*)

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Tag(*) Top(*) Value Común a ambos controles El valor de esta propiedad indica si el control está seleccionado (Value = 1) o no seleccionado (Value = 0 ó Value = False). Esta propiedad puede cambiarse en tiempo de ejecución. Mediante esta propiedad, podemos tanto forzar el valor como leerlo. Atención. Presenta una diferencia entre uno y otro control respecto a la forma de expresarse respecto a su valor cuando está seleccionado. Para forzar que el control NO esté seleccionado, o para leer el Value cuando no está seleccionado, podemos utilizar tanto Value = 0 como Value = False. Sin embargo, cuando lo que se quiere es poner la propiedad a True hay una diferencia entre ambos controles. Para el OptionButton podemos utilizar indistintamente las siguiente formas : Option1.Value = True Option1.Value = 1 Con cualquiera de ellas seleccionaremos ese control por programa. Para el CheckBox solamente se podrá usar para este propósito la instrucción : Check1.value = 1 El poner como Value el valor True nos dará en este control un error. Para la lectura del Value, existe una diferencia entre el valor devuelto por el CheckBox y el devuelto por el OptionButton. Para leer el dato existente en un CheckBox es necesario utilizar la forma : variable = Check1.Value donde variable tomará el valor 1 (no True) Para el control OptionButton emplearemos una instrucción igual : variable = Option1.Value donde variable tomará el valor True (no 1) Visible(*) WhatsThisHelpID(*) Width(*)

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
PROCEDIMIENTOS Click DblClick (Solo OptionButton) DragDrop DragOver GotFocus KeyDown KeyPress KeyUp LostFocus LIST BOX Y COMBO BOX Estos dos controles, debido a su similitud, se estudian conjuntamente. Se obtienen directamente de la caja de herramientas :

Un control ListBox muestra una lista de elementos en la que el usuario puede seleccionar uno o más. Si el número de elementos supera el número que puede mostrarse, se agregará automáticamente una barra de desplazamiento al control ListBox. Un control ComboBox combina las características de un control TextBox y un control ListBox. Los usuarios pueden introducir información en la parte del cuadro de texto y seleccionar un elemento en la parte de cuadro de lista del control. En resumen, un ComboBox es la combinación de un ListBox, que se comporta como si de un ListBox se tratase, y de un TextBox, con comportamiento análogo a un TextBox sencillo, con la particularidad aquí de que el texto se le puede introducir por teclado, o elegir uno de los que figuran en la parte ListBox del Combo. Estos controles toman la siguiente forma :

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Puede verse en la figura un ejemplo de presentación de un ListBox (izquierda), un ComboBox con la lista desplegada (Centro) y un ComboBox con la lista sin desplegar (Combo2 a la derecha). La lista tiene varios elementos. Cada línea de esta lísta es un elemento de la lista. Como el número de elementos de la lista tiene mas elementos de los que le podían caber, generó automáticamente la barra de desplazamiento vertical. El ComboBox está normalmente sin desplegar. Se despliega cuando se hace click con el ratón en la flecha que tiene en su parte derecha (véase fig. Anterior). Al desplegarse, muestra la lista con todos sus elementos. Haciendo click con el ratón en cualquiera de sus elementos, el elemento elegido pasa a la parte TextBox del Combo y la lista vuelve a replegar. El ListBox (y por tanto el ComboBox) tiene unas propiedades y métodos particulares que solamente se pueden aplicar durante el tiempo de ejecución : ListCount - Indica el número de elementos que tiene la lista ListIndex - Indica el número de orden del elemento seleccionado dentro de la lista. AddItem - Añade un elemento a la lista. RemoveItem - Elimina un elemento de la lista. Text - Obtiene el elemento seleccionado. List (n) - Obtiene el elemento cuyo orden dentro de la lista es n. ListCount valdrá 0 si la lista no tiene ningún elemento, y n si tiene n elementos. Para seleccionar un elemento de la lista, basta con hacer click con el ratón sobre él. Ese elemento se resaltará con fondo en azul. Una vez seleccionado un elemento, la propiedad ListIndex tomará el valor del número de orden que ocupa ese elemento en la lista, comenzando por el 0 para el elemento que ocupa el primer lugar. Si no se selecciona ningún elemento, el valor de la propiedad ListIndex será -1. El primer elemento de la lista es ListIndex 0, y el valor de la propiedad ListCount siempre es uno más que el valor mayor de ListIndex. En el ComboBox la propiedad Text contiene el texto que contenga la parte TextBox del Combo, bien haya sido introducida desde teclado o mediante la recuperación de un elemento la parte ListBox del mismo. Ejemplos

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Supongamos que tenemos un ListBox llamado List1, y un ComboBox llamado Combo1. Se enumeran distintas formas de obtener información de ellos. Variable = List1.Listcount Variable contendrá un número con el número total de elementos de la lista List1. Variable = List1.ListIndex Variable contendrá un número con el número de orden del elemento de la lista seleccionado en ese momento. List1.AddItem "ELEMENTO NUEVO" Añade un elemento a List1. En este caso, el elemento añadido es la palabra ELEMENTO NUEVO. Variable = "VISUALBASIC" List1.AddItem Variable Añade un elemento a List1. En este caso, el elemento añadido es la palabra VISUALBASIC. Variable = List1.Text Variable contendrá el elemento que estaba seleccionado en List1. (Variable será una cadena de caracteres) Variable = List1.List (n) Variable contendrá el elemento que ocupa el número de orden n dentro de la lista. Variable = List1.List (List1.ListIndex) Variable contendrá el elemento que estaba seleccionado en List1. Se ha utilizado la propiedad List para obtener el elemento, y en vez de introducir un número para definir el elemento que se desea, se introdujo el valor ListIndex de List1, que es concretamente, el número de orden del elemento seleccionado en ese momento. Observe que poner List1.List (List1.ListIndex) es idéntico a poner List1.Text. List1.RemoveItem (n) Elimina el elemento n de List1.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
List1.RemoveItem (List1.ListIndex) Elimina el elemento que estaba seleccionado en ese momento. List1.listIndex = n Selecciona el elemento n de List1 (Se resalta en azul el elemento n) PROPIEDADES DE ListBox y de ComboBox Las señaladas con (*) son comunes a ambos controles y no presentan novedades respecto a las ya comentadas para los controles precedentes. Appearance (*) Backcolor (*) ColumnsPropiedad de ListBox solamente. Determina si los elementos se presentan en una sola columna o en varias columnas, y la forma de presentar los elementos en el ListBox. Si esta propiedad se pone a 0 la lista tendrá solamente una columna, y presentará los elementos uno debajo de otro. Cuando los elementos sean mas que los que se pueden presentar en la lista, aparecen automáticamente unas barras de desplazamiento vertical. Si la propiedad se pone a un número distinto a 0, el ListBox es de tipo multicolumna, presentará en cada columna los elementos que le quepan dependiendo de su dimensión vertical, y tendrá tantas columnas como sea necesario para albergar el número de elementos que tenga. Presentará en su cuadro tantas columnas como se le indique en el valor de esta propiedad, y si no puede presentar todos los elementos en las columnas que muestra, le aparecerán barras de desplazamiento horizontales para poder movernos por todas las columnas que tenga. Recuerde : El número que se le asigna a la propiedad Columns no indica el número de columnas que tendrá el ListBox sino el número de columnas que presenta. Esta propiedad puede asignarse en diseño, mediante la caja de propiedades, o en tiempo de ejecución mediante una instrucción como esta : Nombrelista.Columns = número .

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Esta propiedad no puede definirse a 0 o cambiada desde 0 en tiempo de ejecuciones decir, no se puede convertir en tiempo de ejecución un ListBox de múltiples columnas en un ListBox de columna única o un ListBox de columna única en un ListBox de múltiples columnas. Sin embargo, sí es posible cambiar durante la ejecución el número de columnas de un ListBox de múltiples columnas. DataField DataSource . Establecen la base de datos y el campo donde están los datos que se llevarán al TextBox o ComboBox para presentar datos procedentes de una Base de Datos. DragIcon(*) DragMode(*) Enabled(*) Font(*) ForeColor(*) Height(*) HelpContextID(*) Index(*) IntegralHeight No aplicable a ListBox o ComboBox ItemDataPropiedad muy importante. Devuelve o establece un número específico para cada elemento de un control ComboBox o ListBox. Sintaxis objeto.ItemData(índice) [= número] La sintaxis de la propiedad ItemData tiene las siguientes partes: objeto Nombre del ListBox o ComboBox. índice El número de un elemento concreto del objeto.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
número El número que se asocia con el elemento especificado. Comentarios La propiedad ItemData es una matriz de valores enteros largos cuyo número de elementos es el valor de la propiedad ListCount del control. Los números asociados con cada elemento se pueden usar para cualquier fin. Por ejemplo, se puede usar en la confección de una lista de teléfonos, el número de identificación de un empleado, etc. Cuando se rellena el ListBox, también se rellena los elementos correspondientes de la matriz ItemData con los números correspondientes. La propiedad ItemData se usa a menudo como índice de una matriz de estructuras de datos asociados con los elementos de un control ListBox. Nota Cuando se inserta un elemento en una lista con el método AddItem, el elemento también se inserta automáticamente en la matriz ItemData. Sin embargo, el valor no se reinicializa a cero; retiene el valor que estaba en esa posición antes agregar el elemento a la lista. Cuando se usa la propiedad ItemData, asegúrese de establecer su valor al agregar nuevos elementos a la lista. Left(*) List Es el contenido de la lista. Si la lista de elementos es corta e invariable, pueden introducirse los elementos en el cuadro de propiedades durante el diseño. MouseIcon(*) MousePointer(*) Name(*) Sorted Establece o devuelve un valor que indica si los elementos de un ListBox o ComboBox se colocan automáticamente en orden alfabético. Los valores que puede adoptar son True o False. TrueLos elementos de la lista se ordenan alfabéticamente (sin distinguir entre mayúsculas y minúsculas). False(Predeterminado) Los elementos de la lista no se ordenan alfabéticamente.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Cuando esta propiedad tiene el valor True, Visual Basic se encarga de casi todo el procesamiento de cadenas necesario para mantener el orden alfabético, incluyendo el cambio de los números de índice cuando se agregan o eliminan elementos. Nota El uso del método AddItem para agregar un elemento en una posición específica de la lista puede romper el orden alfabético, y los elementos agregados con posterioridad pueden no ordenarse correctamente. TabIndex(*) TabStop (*) Tag(*) Top(*) Visible(*) WhatsThisHelpID(*) Width(*) PROCEDIMIENTOS Click Change (Solo ComboBox) DblClick DragDrop DragOver DropDown (Solo ComboBox) GotFocus KeyDown KeyPress KeyUp LostFocus MouseDown (Solo ListBox) MouseMove (Solo ListBox) MouseUp (Solo ListBox) NOTA MUY IMPORTANTE El procedimiento Change del ComboBox solamente se efectúa cuando el cambio se produce mediante la entrada de un texto DESDE EL TECLADO, no por un cambio en la parte Text de este control, producido al llevar un elemento desde la parte List a la parte Text. CONTROLES HScrollBar y VScrollBar Son dos controles similares, para introducir un dato cuasi-analógico en una aplicación. Se toman directamente de la caja de herramientas, y tienen un aspecto parecido al de un

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
control de volumen de un equipo de música. El HScrollBar está en posición horizontal, y el VScrollBar en posición vertical.

Mediante estos controles se pueden introducir datos variando la posición del cursor. PROPIEDADES de HScrollBar y VScrollBar Las señaladas con (*) son comunes a ambos controles y no presentan novedades respecto a las ya comentadas para los controles precedentes. DragIcon(*) DragMode(*) Enabled(*) Height (*) HelpContextID(*) Index(*) LargeChange Esta propiedad establece la variación de la propiedad Value cada vez que se hace click en el interior de la barra de desplazamiento, en la parte por donde pasa el cursor. Left(*) Max Esta propiedad establece el valor máximo para la propiedad Value, es decir, el valor de esta propiedad cuando el cursor está en su parte máxima. (Recuerde que el cursor está en el

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
máximo, cuando está mas a la derecha, caso del HScrollBar, o cuando está en la parte mas baja, caso del HScrollBar. Min Esta propiedad establece el valor mínimo para la propiedad Value, es decir, el valor de esta propiedad cuando el cursor está en su parte mínima. (Recuerde que el cursor está en el mínimo, cuando está mas a la izquierda, caso del HScrollBar, o cuando está en la parte mas alta, caso del HScrollBar. MouseIcon(*) MousePointer(*) Name(*) SmallChange Esta propiedad establece la variación de la propiedad Value cada vez que se hace click en las flechas superior o inferior de la barra de desplazamiento. TabIndex(*) TabStop (*) Tag(*) Top(*) Value Esta propiedad lee o establece el valor dado por la posición del cursor. Este valor tiene un mínimo, establecido por Min y un máximo, establecido por Max. Esta propiedad es la que se debe leer para conocer la posición del cursor. Visible(*) WhatsThisHelpID(*) Width(*) PROCEDIMIENTOS DE HScrollBar y VScrollBar Change DragDrop DragOver GotFocus KeyDown KeyPress

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
KeyUp LostFocus Scroll Comentario El Procedimiento Change se produce cuando, tras mover el cursor, se suelta el botón del ratón. Esto produce el efecto de que el cambio que se tenga que producir con el movimiento del cursor no se realiza de una manera continua. El procedimiento Scroll se realiza en el instante que se está moviendo el cursor. Por lo tanto, es este procedimiento el que se debe usar para conseguir el efecto de un cambio continuo mientras se está moviendo el cursor. TIMER TEMPORIZADOR Este objeto permite establecer temporizaciones. Presenta una novedad respecto a los controles estudiados hasta ahora. El control Timer solamente se ve durante el tiempo de diseño. En tiempo de ejecución, el control permanece invisible. La temporización producida por el Timer es independiente de la velocidad de trabajo del ordenador. (Casi independiente. El timer no es un reloj exacto, pero se le parece) Se toma directamente de la caja de herramientas, y tiene el aspecto siguiente :

PROPIEDADES Enabled (*) Index (*) Interval El valor de esta propiedad nos dará el intervalo de tiempo (en milisegundos) en que se producirá un evento Timer y consecuentemente, realizará el procedimiento asociado a este evento. Si el valor de la propiedad Interval está a 0 (Predeterminado), no se produce el evento Timer. (El control Timer está deshabilitado cuando se pone la propiedad Interval = 0) Left (*) Name (*) Tag (*)

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Top (*) PROCEDIMIENTOS Timer Se produce cada vez que se cumple un intervalo completo. SHAPE Se toma directamente de la caja de herramientas :

Shape es un control gráfico que se muestra como un rectángulo, un cuadrado, una elipse, un círculo, un rectángulo redondeado o un cuadrado redondeado. Utilice controles Shape en tiempo de diseño en lugar o además de invocar los métodos Circle y Line en tiempo de ejecución. Puede dibujar un control Shape en un contenedor, pero no puede actuar como contenedor. (Esto quiere decir que un control Shape nunca le servirá, por ejemplo, para albergar varios OptionButton y pretender que sean independientes de otros controles OptionButton que se encuentren fuera del control Shape. Este control no tiene Procedimientos. En realidad, solamente sirve para mostrar un determinado gráfico, envolver gráficamente a otros controles, pero no tiene ninguna aplicación en cuanto a programa. Es un "adorno" para sus aplicaciones. PROPIEDADES Backcolor (*) BackStyle Esta propiedad establece si Shape permite ver a su través (Transparent) o n lo permite (Opaque) BorderColor Establece el color del borde.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
BorderStyle Establece el tipo de borde. Puede ser : Transparent, (No se ve el borde), Solid, (Borde de línea continua),Dash, (línea a rayas), Dot, (línea a puntos), Dash-Dot, (línea de raya punto), dash-Dot-Dot, (línea de raya - punto - punto), InsideSolid, (raya continua) El efecto de establecer la propiedad BorderStyle depende del valor de la propiedad BorderWidth. Si BorderWidth no es 1 y BorderStyle no es 0 o 6, BorderStyle se establece como 1. BorderWidth Establece el ancho de la línea. DrawMode (*) FillColor (*) FillStyle(*) Height (*) Index (*) Left (*) Name (*) Shape Establece la forma del control. Puede ser : Rectangular, cuadrado, redondo, ovalado, cuadrado con esquinas redondeadas y rectangular con esquinas redondeadas. Tag (*) Top (*) Visible (*) Width (*) PROCEDIMIENTOS No tiene. .LINE

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Se toma directamente de la caja de herramientas

Line, al igual que Shape, es un control gráfico que solamente sirve para poner una línea en un formulario. Del mismo modo, no tiene procedimientos, por lo que no sirve para aportar código al programa. Solo sirve para aportar una característica gráfica, es un adorno. PROPIEDADES BorderColor Establece el color de la línea. BorderStyle Establece el tipo de línea : Puede ser : Transparent, (No se ve la línea), Solid, (Línea continua),Dash, (línea a rayas), Dot, (línea a puntos), Dash-Dot, (línea de raya - punto), dash-Dot-Dot, (línea de raya - punto - punto), InsideSolid, (raya continua) BorderWidth Establece el ancho de la línea. DrawMode (*) Index (*) Left (*) Name (*) Tag (*) Visible (*) X1, X2 Establece las coordenadas x del inicio y final. Y1, Y2 Establece las coordenadas y del inicio y final PROCEDIMIENTOS No tiene.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
CONTROL GAUGE Este control presenta una información numérica de forma gráfica, bien como un display lineal (típico por ejemplo en ecualizadores de audio ), o como una aguja. No está normalmente en la caja de herramientas, por lo que hay que traerla desde los Controles Personalizados (Menú desplegable de Herramientas). Se denomina MicroHelp Gauge Control. El archivo que lo contiene se denomina GAUGE16.OCX, (Ver. 16 bits) GAUGE32.OCX (Ver. 32 bits)

Mediante este control, podemos presentar una magnitud numérica de una forma cuasianalógica. Podríamos decir que es un control similar al HScrollBar, que en vez de meter información a la aplicación, la presenta. Este control puede servir, por ejemplo, para presentar el tanto por ciento de ejecución de una tarea, como elemento tranquilizante. Puede presentar el nivel de un depósito de agua, etc. Presenta las dos formas siguientes :

En la figura puede verse un Gauge de aguja, uno de barra horizontal y otro de barra vertical. Para mejorar la presentación, el Gauge permite poner un gráfico como fondo, cambiar el color de la barra, color de fondo, etc. El control Gauge crea medidores definidos por el usuario, que puede elegir entre los estilos lineales (relleno) o de aguja. Nota para la distribución Cuando cree y distribuya aplicaciones con controles Gauge, tendrá que instalar el archivo apropiado en el subdirectorio SYSTEM de Windows del cliente. El Kit para instalación que incluye Visual Basic, le proporciona herramientas para escribir los programas que instalan las aplicaciones correctamente.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
PROPIEDADES Autosize, Backcolor, DragIcon, DragMode, Enabled, ForeColor, Height, HelpContextID, Index, InnerBottom, InnerLeft, InnerRight, InnerTop, Left, Max, Min, MouseIcon, MousePointer, Name, NeedleWidth, Picture, Style, TabIndex, Tabstop, Tag, Top, Value, Visible, WhatsThisHelpID, Width. Son destacables por nuevas o particulares, las siguientes propiedades : ForeColor Color de la barra InnerBottom Distancia entre la parte baja del control y el comienzo de la barra o aguja. InnerLeft, InnerRight, InnerTop. Idéntico al anterior, respecto a otros lados. Max Valor de la propiedad Value a fondo de escala Min Valor de la propiedad Value para indicación cero. NeedleWidth Ancho de la aguja Style Tipo de marcador. Puede tomar los siguientes valores : 0 = de barra, horizontal. 1 = de barra, vertical. 2 = de aguja, de 180 grados 3 = de aguja, de 360 grados. Value Valor numérico a presentar. Debe ser igual o menor que la propiedad Max, e igual o mayor que la propiedad Min. PROCEDIMIENTOS Change DblClick DragDrop DragOver GotFocus KeyDown KeyPress KeyUp LostFocus MouseDown MouseMove MouseUp

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net

Visual Basic - Guía del Estudiante Cap. 3 Controles (Continuación) El CommonDialog El CommonDialog es un control del que se libran muy pocas aplicaciones. Dada la importancia de este control, se le dedica un capitulo único en esta Guía del Estudiante. CUADRO DE DIALOGO CommonDialog Normalmente se encuentra en la caja de herramientas

Este control no se presenta en tiempo de diseño mas que con un simple icono :

El cuadro de diálogo, CommonDialog se utiliza para varias funciones :  Abrir Ficheros  Guardar Ficheros  Elegir colores  Seleccionar Impresora
 

Seleccionar Fuentes Mostrar el fichero de Ayuda

En realidad el cuadro de diálogo permite conocer datos con los cuales, y mediante el código adecuado, abriremos o guardaremos ficheros, elegiremos colores o seleccionaremos

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
fuentes. Es decir, el CommonDialog NO realiza mas funciones que mostrar ficheros existentes, fuentes disponibles, colores, para que, mediante código, abramos esos ficheros o usemos una determinada fuente. Dependiendo de la aplicación para la que vaya a usarse se deberá activar de distintas formas. Si el cuadro de diálogo se va a usar para seleccionar la impresora y para otras aplicaciones, es recomendable usar uno exclusivamente para seleccionar la impresora. Esta última recomendación se debe a que, para el control de la impresora, el CommonDialog SI realiza las funciones de selección de impresora predeterminada. Esta diferencia operativa hace que si usamos el mismo CommonDialog para seleccionar impresora y abrir ficheros, por ejemplo, se "cuelgue" el CommonDialog. El control CommonDialog es un control personalizado (Microsoft CommonDialog Control COMDLG16.OCX / COMDLG32.OCX), y como casi todos los controles personalizados presenta un asistente de propiedades propio. Puede accederse a las propiedades mediante el cuadro de propiedades típico de otros controles, o mediante el asistente, pulsando el botón derecho del ratón con el puntero colocado encima del icono del cuadro de diálogo. Analizando las propiedades, vemos que tiene gran cantidad de ellas. Esto es porque agrupa todas las propiedades correspondientes a la cinco funciones que puede desarrollar. Se detalla a continuación la forma de usar el CommonDialog para cada aplicación. Se entiende que el nombre - Name - que se ha puesto para el cuadro de diálogo en todos los ejemplos es CD1) FUENTES Para mostrar el cuadro de diálogo correspondiente a Tipos de Letra ( Fonts ), debe ejecutarse la instrucción: CD1.ShowFont y haber puesto, en la propiedad Flags del cuadro de diálogo, el valor de 1, 2 ó 3, correspondiente respectivamente a los tipos de letra de la pantalla, de la impresora o ambos. (Véase la propiedad Flags mas adelante) Si no pone uno de estos valores, le dirá que no tiene fuentes instaladas. El cuadro de diálogo que se presenta es el siguiente:

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net

Los valores que se pueden obtener de este cuadro de dialogo son: CD1.FontName Indica el nombre de la fuente CD1.FontSize Indica el tamaño de la fuente CD1.Color Indica el color de la fuente (Abrir con Flags=256+1, 2 ó 3) CD1.FontBold = (True / False) Si es True, se ha elegido "Negrita" CD1.FontItalic = (True / False) Si es True, se ha elegido "Cursiva" CD1.FontStrikethru = (True / False) Si es True, se ha elegido "Tachada " CD1.FontUnderline = (True / False) Si es True, se ha elegido "Subrayada" Si se elige una versión Negrita Cursiva serían True las opciones FontBold y FontItalic El objeto Font no puede aplicarse al CommonDialog. Es decir, no podemos poner : Variable = CD1.Font.Size sino Variable = CD1.Fontsize En el ejemplo que acompaña a este capítulo, puede ver como se introducen las características de una determinada fuente elegida en un cuadro de texto. COLOR

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Para mostrar el cuadro de diálogo correspondiente al color, se deberá ejecutar la instrucción: CD1.ShowColor El cuadro de diálogo presentado tiene esta forma:

(La parte derecha del cuadro puede no salir. Depende del valor de la propiedad Flags. Se saca haciendo click en Definir colores personalizados, si está activado. También depende de la propiedad Flags) El número correspondiente al color elegido se puede conocer analizando la propiedad color de cuadro de diálogo. En nuestro ejemplo, lo obtendríamos con Variablecolor = CD1.Color donde Variablecolor contendrá un número correspondiente al color elegido. Nota acerca del número del color. Para establecer un color por medio de código, se pondrá un valor de color a la propiedad correspondiente de ese objeto. El valor del color puede establecerse de tres formas que se comentan a continuación.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Colores en Visual Basic. Visual Basic acepta para especificar un color, tres procedimientos: Mediante el número de color, mediante la sentencia RGB ( rojo, verde, azul ) o mediante la función QBColor. Por número El número que representa el color en VB está formado por la suma de la componente roja, la componente verde y la componente azul. Podríamos verlo muy bien en numeración Hexadecimal: Color = Hex XX YY ZZ Donde ZZ es un número Hexadecimal que representa la cantidad del color rojo. El mínimo estaría en 0 (H00) y el máximo en 255 (HFF) YY representaría la cantidad de color verde y XX la de color azul, ambos con los mismos límites explicados para el rojo. Por ejemplo: el rojo puro sería: Hex(0000FF) = 255 el verde puro sería: Hex(00FF00) = 652280 el azul puro sería: Hex(FF0000) = 16711680 Una mezcla de un poco de rojo (HB1), otro poco de verde (H56) y otro poco de azul (H1F) daría el siguiente número: Hex(1F56B1) = 2053809 El número de color puede estar comprendido entre 0 (correspondiente al negro) y el 16777215 (correspondiente al blanco. Observe que esa cantidad, 16.777.215 (FFFFFF en hexadecimal) corresponde a los famosos 16 millones de colores de las tarjetas gráficas. Si queremos poner el color de fondo a un control Label, usaremos la propiedad Backcolor. Si el Label se llama Label1, pondríamos la instrucción Label1.Backcolor = 12345678 Por la sentencia RGB Se puede expresar el color, poniendo simplemente RGB (rojo, verde, azul), donde rojo es un número entre 0 y 255 que indica la cantidad de color rojo que se aporta al color, verde

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
un número comprendido entre 0 y 255 indicando la cantidad de verde, y lo mismo para azul. Esta es la forma mas sencilla de poner la propiedad color, y con la que mejor controlaremos el mismo. Si queremos poner al Label anterior un color mediante la sentencia RGB, ejecutaríamos la sentencia : Label1.Backcolor = RGB (128, 30, 100) Mediante la Función QBColor Esta función se ha puesto en Visual Basic para compatibilidad con los colores que se usan en Quick-Basic y Qbasic. Mediante esta función se obtienen solamente 16 colores. Sintaxis Objeto.QBColor(color) El argumento color es un número entero entre 0 a 15, según la siguiente lista: Número Color Número Color 0 Negro 8 Gris 1 Azul 9 Azul claro 2 Verde 10 Verde claro 3 Aguamarina 11 Aguamarina claro 4 Rojo 12 Rojo claro 5 Fucsia 13 Fucsia claro 6 Amarillo 14 Amarillo claro 7 Blanco 15 Blanco brillante Para el mismo Label anterior, usaríamos la sentencia : Label1.Backcolor = QBColor (12) Fin de la nota acerca del número del color

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
IMPRESORAS Nota: Si utiliza un CommonDialog para impresoras y otras aplicaciones, puede tener problemas. Utilice un CommonDialog exclusivamente para impresoras. Para presentar el cuadro de elección de impresora, ejecute la instrucción: CD2.ShowPrinter (A este cuadro de dialogo le hemos llamado CD2 para evitar los problemas referidos en la nota). Aparecerá el siguiente cuadro de diálogo:

La impresora elegida puede conocerla llamando a la propiedad DeviceName de un objeto que aún no hemos visto: el objeto Printer. Este objeto es el encargado de pasar al Administrador de Impresión todos los trabajos de impresión que generen las aplicaciones Visual Basic: Nombredelaimpresora = Printer.DeviceName Para que la impresora quede como impresora por defecto de Windows, debe tener a True la propiedad PrinterDefault del cuadro de diálogo. En este cuadro puede observarse, que además de los botones de ACEPTAR y CANCELAR, existe otro, INSTALAR. Haciendo click en este, podemos cambiar la impresora por cualquier otra que tenga instalada. ABRIR Y GUARDAR ARCHIVOS

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Posiblemente las opciones mas usadas del cuadro de diálogo. Para presentar el cuadro de diálogo correspondiente a Abrir Archivo, debe ejecutar la instrucción: CD1.ShowOpen Si lo que necesita es abrir el cuadro de diálogo para guardar un fichero, debe ejecutar la instrucción : CD1.ShowSave pero antes deberá introducir el filtro o filtros de archivos que necesite. Ojo, ¡ ANTES ! Un filtro sirve para que en el cuadro de diálogo se presenten solamente los ficheros de nuestro interés. Se pueden seleccionar por el nombre, la extensión o las dos cosas. La sintaxis para introducir un filtro es la siguiente: CD1.Filter = "Descripción del fichero|nombre.extensión" donde "nombre" puede ser un nombre o usar caracteres comodín. Lo mismo para "extensión" Por ejemplo, para buscar archivos ejecutables, con cualquier nombre y extensión .EXE CD1.Filter = "Ficheros ejecutables |*.exe" Observe el carácter separador entre la descripción de los ficheros (Ficheros ejecutables) y el parámetro de busca (*.EXE). No ponga ningún espacio entre el separador y los caracteres de busca. El separador es el carácter ASCII 124. Puede buscar varios tipos de ficheros, separando los caracteres de busca por medio del carácter punto y coma (;) CD1.Filter = "Ficheros ejecutables |*.EXE;*.COM;*.BAT" Puede también introducir dos filtros, separados por el separador | (En una línea solamente). CD1.Filter="Ficheros de un tipo |*.EXE |Ficheros de otro |*.COM |Otros ficheros |*.BAT" Por ejemplo : CD1.Filter = "Ficheros Word |*.DOC|Ficheros Write |*.WRI" ¡ No se pueden poner dos líneas con filtros, se quedaría solamente con la última ! En este caso, cuando se presente el cuadro de diálogo, solamente presentará uno de los filtros, y deberá seleccionar manualmente el otro en un cuadro situado en la parte inferior

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
izquierda del cuadro de diálogo. Para predeterminar cuál de los dos filtros saldrá sin tener que seleccionarlo, deberá ejecutar esta instrucción, ANTES de invocar el cuadro de diálogo CD1.FilterIndex = 2 En este caso, aparecerá por defecto el filtro escrito en segundo lugar. El orden de los filtros comienza por 1. El cuadro de diálogo deberá presentar un directorio. Este directorio con el que, por defecto, aparece el cuadro de diálogo, se puede introducir mediante la propiedad InitDir, que deberá contener el nombre del directorio y su path. Si no se especifica, comenzará por el directorio actual. Para conocer el nombre del fichero elegido, se emplea la propiedad FileName : Nombrefichero= CD1.filename El nombre del fichero, Nombrefichero en la sentencia anterior, viene con su path, es decir, nombre y dirección completa, por lo que puede emplearse directamente la salida del CommonDialog para abrir un fichero. El cuadro de diálogo de abrir o cerrar tiene esta forma :

El cuadro de guardar es similar. Observe que en este caso hemos desplegado la segunda opción de filtro de ficheros :

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net

Como ve ambos cuadros son prácticamente iguales. Solamente se difieren en que uno pone Abrir y el otro Guardar como en su barra de título. También en que el cuadro Guardar como presenta los nombres de los ficheros con un tono apagado. Funcionalmente difieren. Por ejemplo, si quiere guardar un fichero con un nombre ya existente, y dependiendo de la propiedad Flags que verá mas adelante, le aparecerá la siguiente advertencia :

Si desea otra leyenda en la barra de título, puede cambiarla usando el asistente de propiedades, que lo obtendrá colocando el cursor del ratón sobre el icono del CommonDialog y pulsando el botón derecho. Haga click sobre Propiedades en el popmenú que se presenta. Aparecerá esto :

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net

PRESENTAR AYUDAS Mediante el CommonDialog se puede presentar un fichero de ayuda. (Ficheros del tipo .HLP de Windows) Pese a que se pueden presentar estos ficheros basándonos en el CommonDialog, es preferible usar directamente el programa WinHelp.Exe, que puede ejecutarlo mediante la función Shell : VariableID = Shell ("WinHelp.Exe FicheroAyuda.hlp",1) Para mostrar el fichero de ayuda debe poner el nombre (y Path) del fichero de ayuda en la propiedad HelpFile del CommonDialog CD1.HelpFile = "C:\MiCarpeta\MiFicheroAyuda.HLP" Puede mostrar el índice, o una página concreta de ese fichero. Para ello debe jugar con la propiedad HelpCommand, que le va a indicar al CommonDialog qué ayuda debe mostrar. CD1.HelpCommand =Valor Las opciones para valor son: 1 &H1 cdlContext Muestra la Ayuda de un contexto determinado. Cuando se usa esta valor, también se debe especificar un contexto con la propiedad HelpContext.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
2 &H2 cdlQuit Notifica a la aplicación Ayuda que el archivo de Ayuda especificado ya no se está utilizando. 3 &H3 cdlContents Muestra el tema de contenido de ayuda, definido con la opción Contents de la sección [OPTION] del archivo .HPJ. 3 &H3 cdlIndex Muestra el índice del archivo de Ayuda especificado. Las aplicaciones sólo deben utilizar este valor para un archivo de Ayuda con índice único. 4 &H4 cdlHelpOnHelp Muestra la Ayuda para utilizar la propia aplicación Ayuda. 5 &H5 cdlSetContents Determina el tema de contenido a mostrar cuando el usuario presiona la tecla F1. 5 &H5 cdlSetIndex Establece el contexto especificado en la propiedad HelpContext como índice actual para el archivo especificado en la propiedad HelpFile. Este índice seguirá siendo el actual hasta que el usuario acceda a un archivo de Ayuda distinto. Utilice este valor sólo para los archivos de Ayuda con más de un índice. 8 &H8 cdlContextPopup Muestra en una ventana emergente un tema de Ayuda determinado, identificado por un número de contexto definido en la sección [MAP] del archivo .HPJ. 9 &H9 cdlForceFile Asegura que WinHelp muestre el archivo de Ayuda correcto. Si se muestra el archivo correcto, no sucede nada. Si se muestra un archivo incorrecto, WinHelp abrirá el correcto. 257 &H101 cdlKey Muestra la Ayuda sobre una palabra reservada determinada. Al usar esta opción, deberá especificar también una palabra reservada con la propiedad HelpKey.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
258 &H102 cdlCommand Ejecuta una macro de Ayuda. 261 &H105 cdlPartialKey Muestra el tema de la lista de palabras claves que coincide con la palabra pasada en el parámetro dwData, si sólo se encuentra uno. Si se encuentra más de uno, aparecerá el cuadro de diálogo Buscar mostrando los temas encontrados en el cuadro de lista Ir a. Si no se encuentra ninguno, se mostrará el cuadro de diálogo Buscar. Para que aparezca el cuadro de diálogo Buscar sin pasar una palabra reservada, utilice un puntero largo a una cadena vacía. Si queremos que se muestre el índice de la ayuda, pondríamos esta propiedad de la forma : CD1.HelpCommand = cdlHelpIndex Para mostrar la página que se ha puesto en el fichero de ayuda como Contexto 2 (En Sección [MAP] del fichero .HPJ (Vea Creación de Ficheros de Ayuda), CD1.HelpCommand = cdlHelpContext CD1.HelpContext = 2 Para mostrar la Ayuda de la Ayuda de Windows : CD1.HelpCommand = cdlHelpHelpOnHelp Una vez establecidas estas propiedades, mostraremos la ayuda con el Método ShowHelp CD1.ShowHelp Repitiéndole que no se debe usar el CommonDialog para mostrar ayudas, pero para cumplir el objetivo de plasmar en este texto la mayor información acerca de cada control, se enumeran a continuación el resto de propiedades que afectan a la presentación de ayuda : HelpFile HelpContext HelpKey PROPIEDADES DEL CommonDialog

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
La Propiedad Action La propiedad Action se incluye en la versión 4 de VB solamente por motivos de compatibilidad con anteriores versiones. Realiza las mismas funciones que ShowFont, ShowColor, ShowPrinter, ShowOpen y ShowSave. No debe usarse esta propiedad, sino los equivalentes citados, en previsión de que pueda ser eliminada en futuras versiones. La sintaxis de Action es : Nombre.Action [= valor] Valor Descripción 0 Ninguna acción. 1 Muestra el cuadro de diálogo Abrir. 2 Muestra el cuadro de diálogo Guardar como. 3 Muestra el cuadro de diálogo Color. 4 Muestra el cuadro de diálogo Fuente. 5 Muestra el cuadro de diálogo Impresora. 6 Ejecuta WINHELP.EXE. NO utilice la propiedad Action. Utilice en su lugar ShowFont, ShowPrinter, ShowSave, ShowOpen , ShowColor y ShowHelp CancelError Devuelve o establece un valor que indica si se genera un error cuando el usuario elige el botón Cancelar. Sintaxis : objeto.CancelError = (True / False) True Se genera un error. False (Predeterminado) No se genera ningún error. Cuando se establece True en esta propiedad, se producirá el error número 32755 (cdlCancel) cada vez que el usuario elija el botón Cancelar. Debe poner esta propiedad a true cuando quiera detectar que se ha pulsado el botón CANCELAR. Luego, debe detectar con la rutina de detección de errores adecuada, si el

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
error producido ha sido el 32755. De ser así, es que han pulsado ese botón, y Vd. procederá en consecuencia. Color Esta propiedad es de lectura / escritura De escritura :Establece el color predeterminado con que aparecerá el CD para elegir color. Puede introducirse como RGB o numéricamente, como se explicó mas atrás. Para que aparezca este color predeterminado, debe poner la propiedad Flags a 1. De lectura : Entrega el color elegido, bien en el cuadro de elección de color, bien en el cuadro de elección de fuente. Copies Establece el valor predeterminado para número de copias que aparecerá en el CD cuando se abra para elegir impresora. DefaultExt Devuelve o establece la extensión de archivo predeterminada para el cuadro de diálogo. Sintaxis objeto.DefaultExt [= cadena] Puede utilizar esta propiedad para especificar una extensión de archivo predeterminada, como por ejemplo .TXT o .DOC. Importante para el CommonDialog de Guardar: Cuando se guarde un archivo sin extensión, se le agregará automáticamente la especificada en esta propiedad. DialogTitle Devuelve o establece la cadena mostrada en la barra de título del cuadro de diálogo. Sintaxis Nombre.DialogTitle [= título] Esta propiedad puede introducirse en la ventana de propiedades, o por programa. Puede utilizar esa propiedad para mostrar el nombre del cuadro de diálogo en la barra de título. Nota El control CommonDialog ignora el valor de la propiedad DialogTitle cuando muestra los cuadros de diálogo Color o Fuente.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
El título predeterminado para un cuadro de diálogo Abrir es Abrir, y para un cuadro de diálogo Guardar como es Guardar como. FileName Devuelve o establece la ruta y el nombre de archivo de un archivo seleccionado. La lectura de esta propiedad devuelve el nombre del archivo seleccionado actualmente en la lista. Si no hay ningún archivo seleccionado, FileName devuelve una cadena vacía. Filter (Explicada mas atrás) Devuelve o establece los filtros que aparecen en el cuadro de lista Tipo de un cuadro de diálogo. Sintaxis CD1.Filter [= descripción1 |filtro1 |descripción2 |filtro2...] Utilice el símbolo de canalización ( | , (ASCII 124) ) para separar los valores de descripción y de filtro. No incluya espacios antes ni después del símbolo de canalización, pues aparecerían en los valores de descripción y valor. Al especificar más de un filtro en un cuadro de diálogo, utilice la propiedad FilterIndex para especificar el filtro predeterminado. Nota para los que no tiene teclado de 102 teclas. Para obtener el carácter ASCII 124, pulse la tecla ALT y, sin dejar de pulsarla, teclee 124 en el teclado numérico. FilterIndex Devuelve o establece un filtro predeterminado para un cuadro de diálogo Abrir o Guardar Como. Sintaxis CD1.FilterIndex [= número] Esta propiedad indica el filtro predeterminado cuando se han especificado varios filtros para un cuadro de diálogo Abrir o Guardar. El índice del primer filtro definido es 1. FlagsPropiedad que tiene distintos significados para cada tipo de cuadro de diálogo. Tiene la misma sintaxis para todos los cuadros. Sintaxis CD1.Flags [= valor]

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
El parámetro valor establece distintas alternativas, dependiendo de cada cuadro. Para el cuadro de diálogo Color Las opciones para valor son: 1 &H1& cdlRGBInit Establece como valor de color inicial para el cuadro de diálogo el indicado en su propiedad Color. 2 &H2& cdlFullOpen Hace que el cuadro de diálogo se muestre completo al crearlo, incluyendo la sección que permite al usuario crear colores personalizados. Sin esta opción, el usuario debe elegir el botón de comando Definir colores personalizados para mostrar tal sección. 4 &H4& cdlPreventFullOpen Desactiva el botón de comando Definir colores personalizados, evitando que el usuario defina colores. 8 &H8& cdlShowHelp Hace que el cuadro de diálogo muestre un botón Ayuda. Se pueden poner varias de estas condiciones, poniendo como valor Flags la suma de los valores de cada una de las condiciones a poner. Para los cuadros Abrir y Guardar Las opciones para valor son: 1 &H1& cdlReadOnly Hace que la casilla de verificación Sólo lectura aparezca marcada inicialmente al crear el cuadro de diálogo. Este indicador también señala el estado de la casilla Sólo lectura cuando el cuadro de diálogo está cerrado. 2 &H2& cdlOverwritePrompt Hace que el cuadro de diálogo Guardar como genere un cuadro de mensaje si el archivo seleccionado ya existe. El usuario deberá confirmar que desea sobrescribir el archivo.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
4 &H4& cdlHideReadOnly Oculta la casilla de verificación Sólo lectura. 8 &H8& cdlNoChangeDir Hace que el cuadro de diálogo restablezca como directorio actual el que lo era en el momento de abrirse. 16 &H10& cdlShowHelp Hace que el cuadro de diálogo muestre el botón Ayuda. 256 &H100& cdlNoValidate Especifica que el cuadro de diálogo común permita caracteres no válidos en el nombre de archivo devuelto. Funciona tanto con el cuadro de Abrir como con el de Cerrar. Tenga cuidado a la hora de crear un archivo con nombre no válido ! 512 &H200& cdlAllowMultiselect Especifica que el cuadro de lista Nombre de archivo admita selecciones múltiples. El usuario puede seleccionar más de un archivo en tiempo de ejecución presionando la tecla MAYÚS y utilizando las teclas FLECHA ARRIBA y FLECHA ABAJO para seleccionar los archivos deseados. Al hacerlo, la propiedad FileName devolverá una cadena con los nombres de todos los archivos seleccionados. Los nombres están delimitados en la cadena con espacios. 1024 &H400& cdlExtensionDifferent Indica que la extensión del nombre de archivo devuelto es distinta de la especificada en la propiedad DefaultExt. Este indicador no estará activado si la propiedad DefaultExt es Null, si las extensiones coinciden, o si el archivo no tiene extensión. El valor de este indicador puede comprobarse al cerrar el cuadro de diálogo. 2048 &H800& cdlPathMustExist Especifica que el usuario sólo pueda introducir una ruta de acceso válida. Si se establece este indicador y el usuario introduce una ruta no válida, aparecerá un mensaje de advertencia. 4096 &H1000& cdlFileMustExist

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Especifica, para el cuadro de Abrir, que el usuario sólo pueda escribir en el cuadro de texto Nombre de archivo nombres de archivos existentes. Si este indicador está activado y el usuario introduce un nombre de archivo no válido, aparecerá una advertencia. Este indicador activa automáticamente cdlPathMustExist. 8192 &H2000& cdlCreatePrompt Especifica, para el cuadro de diálogo de abrir, que si no existe el fichero consulte al usuario antes de crear un archivo que no existe actualmente. Esta advertencia dice : Este Archivo no existe ¿desea crearlo ? y aparecen los botones de ACEPTAR y CANCELAR. Si el usuario pulsa aceptar el CommonDialog se cierra normalmente, si se le pulsa CANCELAR desaparece esta advertencia y el CommonDialog espera a que se le escriba o seleccione otro fichero. Este indicador establece automáticamente los indicadores cdlPathMustExist y cdlFileMustExist. 16384 &H4000& cdlShareAware Especifica que se ignoren los errores al compartir archivos. 32768 &H8000& cdlNoReadOnlyReturn Especifica que el archivo devuelto no tenga el atributo de Sólo lectura ni esté en un directorio protegido contra escritura. Presenta un aviso (tanto en el cuadro de abrir como en el cerrar) que impide elegir un fichero de estas características. Se pueden poner varias de estas condiciones, poniendo como valor Flags la suma de los valores de cada una de las condiciones a poner. Para el cuadro Mostrar Fuentes: Las opciones para valor son: 1 &H1& cdlScreenFonts Hace que el cuadro de diálogo muestre solamente las fuentes de pantalla que admite el sistema. 2 &H2& cdlPrinterFonts Hace que el cuadro de diálogo muestre solamente las fuentes que admite la impresora, especificadas por la propiedad hDC. 3 &H3& cdlBoth

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Hace que el cuadro de diálogo muestre las fuentes de impresora y de pantalla disponibles. La propiedad hDC identifica el contexto de dispositivo asociado a la impresora 4 &H4& cdlShowHelp Hace que el cuadro de diálogo muestre un botón Ayuda. 256 &H100& cdlEffects Especifica que el cuadro de diálogo permita efectos de tachado, subrayado y color. 1024 &H400& cdlANSIOnly Especifica que el cuadro de diálogo sólo permita seleccionar las fuentes que utilizan el juego de caracteres de Windows. Si se establece este indicador, el usuario no podrá seleccionar una fuente que sólo contenga símbolos. 2048 &H800& cdlNoVectorFonts Especifica que el cuadro de diálogo no permita seleccionar fuentes vectoriales. 4096 &H1000& cdlNoSimulations Especifica que el cuadro de diálogo no permita simulaciones de fuente de interfaz de dispositivo gráfico (GDI). 8192 &H2000& cdlLimitSize Especifica que el cuadro de diálogo seleccione sólo los tamaños de fuente comprendidos en el rango especificado por las propiedades Min y Max. 16384 &H4000& cdlFixedPitchOnly Especifica que el cuadro de diálogo seleccione sólo fuentes de espaciado fijo. 32768 &H8000& cdlWYSIWYG Especifica que el cuadro de diálogo permita seleccionar solamente fuentes disponibles al la vez en la pantalla y en la impresora. Si se establece este indicador, también deben establecerse cdlBoth (sume 3 a este número) y cdlScalableOnly (sume 131072 a este número) 65536 &H10000& cdlForceFontExist

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Especifica que aparezca un cuadro de mensaje cuando el usuario intente seleccionar una fuente o un estilo que no existan. 131072 &H20000& cdlScalableOnly Especifica que el cuadro de diálogo permita seleccionar solamente fuentes escalables. 262144 &H40000& cdlTTOnly Especifica que el cuadro de diálogo permita seleccionar solamente fuentes TrueType. Nota Antes de mostrar el cuadro de diálogo Fuentes, debe establecer cdlScreenFonts, cdlPrinterFonts o cdlBoth en la propiedad Flags. En caso contrario, se producirá el error No hay fuentes. (O dicho de otra forma, Flags=1, 2 ó 3) Se pueden poner varias de estas condiciones, poniendo como valor Flags la suma de los valores de cada una de las condiciones a poner. Para el Cuadro de Diálogo Imprimir (Observará seguramente que lo que se describe a continuación no se cumple siempre. Depende de las impresoras que tenga Vd. instaladas) Las opciones para valor son: 0 &H0& cdlAllPages Devuelve o establece el estado del botón de opción Todas las páginas. 1 &H1& cdlSelection Devuelve o establece el estado del botón de opción Selección. Si no se especifica cdlPageNums ni cdlSelection, el botón de opción Todas estará seleccionado. 2 &H2& cdlPageNums Devuelve o establece el estado del botón de opción Páginas. 4 &H4& cdlNoSelection Desactiva el botón de opción Selección. 8 &H8& cdlNoPageNums

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Desactiva el botón de opción Páginas y el control de edición asociado. 16 &H10& cdlCollate Devuelve o establece el estado de la casilla de verificación Intercalar. 32 &H20& cdlPrintToFile Devuelve o establece el estado de la casilla de verificación Imprimir a un archivo. 64 &H40& cdlPrintSetup Hace que el sistema muestre el cuadro de diálogo Configurar impresora en lugar de Imprimir. Use este Flag cuando lo que desea es cambiar la impresora predeterminada. 128 &H80& cdlNoWarning Evita que aparezca una advertencia cuando no hay una impresora predeterminada. 256 &H100& cdlReturnDC Devuelve un contexto de dispositivo para la impresora seleccionada en el cuadro de diálogo. El contexto se devuelve en la propiedad hDC del cuadro de diálogo. 512 &H200& cdlReturnIC Devuelve un contexto de información para la impresora seleccionada en el cuadro de diálogo. Un contexto de información proporciona un método rápido de obtener información sobre el dispositivo sin crear un contexto de dispositivo. El contexto de información se devuelve en la propiedad hDC del cuadro de diálogo. 2048 &H800& cdlShowHelp Hace que el cuadro de diálogo muestre el botón Ayuda 262144 &H40000& cdlUseDevModeCopies Si un controlador de impresora no admite copias múltiples, al establecer este indicador se desactiva el control de edición de número de copias. Si el controlador sí admite múltiples copias, al establecer este indicador el cuadro de diálogo almacenará el número de copias solicitado en la propiedad Copies. 524288 &H80000& cdlDisablePrintToFile

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Desactiva la casilla de verificación Imprimir a un archivo. 1048576 &H100000& cdlHidePrintToFile Oculta la casilla de verificación Imprimir a un archivo. Propiedades que afectan al tipo de letra. Las seis propiedades siguientes nos dan las características especiales de la fuente elegida (negrita, cursiva, etc.). Una vez seleccionado el tipo de letra, el valor de estas propiedades contiene la opción elegida para la letra (si FontBold=True es que hemos elegido negrita, etc.) FontBold Propiedad Booleana que establece o devuelve que el tipo de letra usado es Negrita. Sintaxis Variable = CD1.FontBold Los valores de Variable son: True Se ha elegido negrita False (Predeterminado) No se ha elegido negrita. FontItalic Propiedad Booleana que establece o devuelve que el tipo de letra usado es Cursiva. Sintaxis Variable = CD1. FontItalic Los valores de Variable son: True si se ha elegido cursiva, False (Predeterminado) en caso contrario. FontStrikethru Propiedad Booleana que establece o devuelve que el tipo de letra usado es Tachada. Sintaxis Variable = CD1. FontStrikethru Los valores de Variable son: True si se ha elegido tachado, False (Predeterminado) en caso contrario. FontUnderline

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Propiedad Booleana que establece o devuelve que el tipo de letra usado es Subrayado. Sintaxis Variable = CD1.FontUnderline Los valores de Variable son: True, si se ha elegido subrayado, False (Predeterminado) en caso contrario FontName Devuelve el nombre de la fuente elegida. Es una variable tipo String Sintaxis Variable = CD1.FontName (Variable toma el valor del nombre de la fuente. Por ejemplo, Variable = "Arial" En general, deberá modificar FontName antes de establecer los atributos de tamaño y estilo con las propiedades FontSize, FontBold, FontItalic, FontStrikethru y FontUnderline. Nota En tiempo de ejecución puede obtener información sobre las fuentes disponibles a través de las propiedades FontCount y Fonts. Lo verá mas adelante FontSize Devuelve de la fuente elegida. Debe ser una variable tipo Integer o Long Sintaxis Variable = CD1.FontSize donde Variable será una expresión numérica que especifica el tamaño de fuente a utilizar, en puntos. Nota Las fuentes disponibles en Visual Basic varían dependiendo de la configuración del sistema y de los dispositivos de presentación e impresión. En las propiedades relacionadas con las fuentes sólo pueden establecerse valores para los que exista una fuente. En general, deberá modificar FontName antes de establecer los atributos de tamaño y estilo con las propiedades FontSize, FontBold, FontItalic, FontStrikethru y FontUnderline. Sin embargo, cuando especifique un tamaño inferior a 8 puntos para una fuente TrueType, primero deberá establecer el tamaño en puntos con la propiedad FontSize, luego especificar la propiedad FontName y después establecer de nuevo el tamaño con FontSize. El entorno operativo Microsoft Windows utiliza una fuente distinta para las fuentes TrueType con un tamaño inferior a 8 puntos. Index

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
Igual que el ya estudiado para otros controles. InitDir Devuelve o establece el directorio de archivos inicial. Sintaxis objeto.InitDir [= cadena] La sintaxis de la propiedad InitDir consta de las siguientes partes: objeto Nombre que define al CommonDialog cadena Expresión de cadena que especifica el directorio de archivos inicial. Si no se especifica esta propiedad, se utilizará el directorio actual. Left y Top Estas propiedades solamente afectan a la colocación del icono en el formulario. No afectan a la colocación del CommonDialog durante la ejecución. La posición del CommonDialog en tiempo de ejecución no puede controlarse. Esta afirmación de que la posición del CommonDialog no es controlable es válida para sistemas a 32 bytes. En VB 4 de 16 bits, el CommonDialog aparece aproximadamente en la parte superior izquierda del formulario que lo contiene. Algunos programadores han optado por poner un formulario para contener solamente al CommonDialog, y así, controlando la posición de ese formulario, poder controlar la posición (aproximada) en la que aparece el CD. Esto no ocurre para sistemas a 32 bytes, en los que el CD aparece siempre en la parte superior izquierda de la pantalla, independientemente de donde esté el formulario que lo contiene. MaxFileSize Devuelve o establece el tamaño máximo del nombre de archivo abierto con el control CommonDialog. Sintaxis objeto.MaxFileSize [= valor] La sintaxis de la propiedad MaxFileSize consta de las siguientes partes: objeto = Nombre que define al CommonDialog

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net
valor = Número entero que especifica el tamaño máximo del nombre de archivo en bytes. El rango de esta propiedad es 132KB. El valor predeterminado es 256. Name Nombre que define al CommonDialog PrinterDefault Devuelve o establece una opción que determina si la configuración elegida por el usuario en el cuadro de diálogo Imprimir se utiliza para modificar la configuración predeterminada de impresora del sistema. Sintaxis objeto.PrinterDefault [= valor] objeto = Nombre que define al CommonDialog valor = Expresión booleana que especifica si lo seleccionado por el usuario se utiliza para modificar la configuración de impresora predeterminada del sistema, según se indica en Configuración. Las opciones para valor son: True Las opciones que elija el usuario en el apartado Configurar del cuadro de diálogo Imprimir (selección de la impresora, orientación, etcétera) se utilizan para modificar la configuración de impresora en el archivo WIN.INI del usuario. (En el sistema operativo Windows NT, esta información se almacena en el Registro). False Las opciones que elija el usuario no se utilizan para modificar la configuración de impresora predeterminada del sistema. Utilice esta propiedad, que por defecto está a True, para poner o no poner como impresora predeterminada, la impresora seleccionada con el CommonDialog. Puede por ejemplo, querer imprimir un texto en una impresora determinada, pero solo ese texto, y no quiere cambiar la impresora predeterminada por el hecho de haber seleccionado en este momento otra impresora. Ponga esta propiedad a False (recuerde que por defecto está a True) para que la impresora seleccionada no se quede como impresora por defecto. Tag Lo mismo que se ha explicado para otros controles.

Visual Basic: guía del estudiante Descargada de ww.alucardwarez.net

Sign up to vote on this title
UsefulNot useful