instituto superior tecnolÓgico norbert...

107
Manual del Alumno 1 INSTITUTO SUPERIOR TECNOLÓGICO NORBERT WIENER Manual del Alumno ASIGNATURA: Lenguaje de Programación I (Visual Basic I) PROGRAMA: S3C Lima-Perú

Upload: leminh

Post on 28-Sep-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

1

INSTITUTO SUPERIOR TECNOLÓGICO

NORBERT WIENER

Manual del Alumno

ASIGNATURA: Lenguaje de Programación I (Visual Basic I)

PROGRAMA: S3C

Lima-Perú

Page 2: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

2

Índice General

Pag N°

1. Algoritmos, programas y conceptos fundamentales.................................................. 2

2. Instrucciones básicas de programación, operadores y expresiones .......................... 4

3. Introducción, Entorno de programación Visual Basic.............................................. 8

4. Características del Lenguaje Visual Basic................................................................ 44

5. Estructuras de Control condicional .......................................................................... 50

6. Funciones incorporadas ............................................................................................ 56

7. Estructuras Repetitivas con Condicion...................................................................... 57

8. Manejo de Listas(ListBox, ComboBox).................................................................... 58

9. Empleo de controles avanzados y personalizados......................................................63

10. Formularios múltiples................................................................................................ 69

11. Diseño de Menus........................................................................................................70

12. Funciones y procedimientos(Módulos)......................................................................78

13. Array de variables......................................................................................................86

14. Funciones Api‟s.........................................................................................................91

Page 3: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

3

ALGORITMOS, PROGRAMAS Y CONCEPTOS

FUNDAMENTALES

Algoritmos

Algoritmos.- Vienen a ser una serie de pasos a realizar en forma lógica y secuencial para

resolver un problema o realizar una tarea.

Diagramas De Flujo

Definición.- Un diagrama de flujo es la forma como se plasma la lógica de un programa en

forma gráfica. Atendiendo a un convencionalismo internacional permite que otro analista o

programador, independientemente de su nacionalidad, idioma y lógica personal, sea capaz de

visualizar e interpretar el exacto contenido de un programa, si funcionará o no, etc.

CONVENCIONES DE DIAGRAMACION :

El convencionalismo internacional se corresponde con el cuadro siguiente:

Un diagrama de flujo puede interpretarse como un rompecabezas o puzzle con el cual hay que

armar una secuencia lógica de procesos que guíen los pasos a seguir por el ordenador para la

consecución del funcionamiento del programa.

Pseudocódigo.- Es una secuencia lógica de los pasos a seguir para plasmar las tareas que hará

un determinado programa para resolver un problema, el pseudocódigo se da en forma escrita

con palabras del idioma común del programador.

Tomemos por ejemplo un programa que muestre en pantalla una lista telefónica.

Page 4: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

4

El ordenador deberá seguir la siguiente secuencia:

Pseudocódigo

Inicio

Abrir archivo de Listín telefónico

Repetir mientras no sea fin de archivo

Leer el nombre y teléfono

Mostrarlo en pantalla

Pasar a siguiente registro

Fin de Repetir

Cerrar el archivo

Terminar

Todo el proceso se traduciría en el diagrama que a continuación se muestra.

Codificación.- Consiste en traducir el Pseudocódigo o Diagrama de Flujo a sentencias o

instrucciones de programación de un determinado lenguaje o paquete de programación.

Page 5: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

5

INSTRUCCIONES BÁSICAS DE PROGRAMACIÓN,

OPERADORES Y EXPRESIONES

Operadores

Los operadores son símbolos que representan a una operación y que a su vez permiten

realizar dicha operación.

Operadores Matemáticos.- se usan para realizar las operaciones aritméticas.

Operación Operador Prioridad o Precedencia

Potencia

Producto

División

División Entera

Módulo o Resto

Suma

Resta

^

*

/

\

Mod

+

-

7

6

6

5

5

4

4

Las operaciones se realizan de mayor a menor prioridad y en operaciones de igual prioridad

estas se ejecutan de izquierda a derecha, para alterar la prioridad se usan los paréntesis (),

con lo cual en primer lugar se ejecutan las operaciones que están entre paréntesis.

Operadores de Relación o Comparación.- permiten comparar dos o más expresiones y

dan un resultado de verdad(True) o falsedad(False), Para realizar una relación o

Comparación siempre deben haber 2 elementos o una pareja de elementos.

Relación o Comparación Operador

Mayor que

Menor que

Igual que

Diferente de

Mayor o Igual que

Menor o Igual que

Comparar 2 cadenas

Comparar 2 objetos

>

<

=

<>

>=

<=

Like

Is

Operadores Lógicos.- permiten evaluar 2 o más expresiones lógicas.

Conjunción (And).- Se utiliza para evaluar 2 o más expresiones lógicas y da un resultado

de verdad si todas las expresiones a evaluar son verdaderas en caso contrario da un resultado

de falsedad.

Disyunción (Or).- Se utiliza para evaluar 2 o más expresiones lógicas y da un resultado de

verdad si una de las expresiones a evaluar es verdadera en el caso de que todas las

expresiones a evaluar sean falsas da un resultado de falsedad.

Page 6: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

6

Negación (Not).- Se usa para negar una expresión lógica, si la expresión es verdadera su

negación da un resultado de falsedad y si la expresión es falsa su negación da un resultado

de verdad.

TABLAS DE VERDAD

Conjunción

Disyunción

Negación

Visual Basic utiliza otros operadores lógicos que se emplean muy poco como son:

Disyunción Exclusiva - Xor (Se utiliza para realizar una exclusión lógica entre dos

expresiones), Equivalencia - Eqv (Se utiliza para efectuar una equivalencia lógica de dos

expresiones) y Implicación – Imp (Se utiliza para efectuar una implicación lógica de dos

expresiones).

Operadores de concatenación.- Se emplean para concatenar 2 o más cadenas de caracteres,

para lo cual se emplea el signo del Ampersand (&) o el signo (+); tener mucho cuidado de

emplear el signo + porque puede ocasionar errores de tipos de datos.

Page 7: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

7

TIPOS DE DATOS

Los Tipos de datos vienen a ser el tipo de dato que se utilizará para guardar determinada

información o dato, también podemos decir que el tipo de dato de una variable determina

cómo se almacenan los bits que representan esos valores en la memoria del equipo. Cuando

declare una variable, también puede proporcionarle un tipo de dato. Todas las variables

tienen un tipo de dato que determina la clase de datos que pueden almacenar.

La tabla siguiente muestra los tipos de datos de Visual Basic, incluyendo el tamaño de

almacenamiento y el intervalo.

Tipo Definición

Byte Representa a un valor entero corto entre 0 a 255, se almacena en 1 byte.

Integer Representa a un número entero entre -32,768 a 32,767, se almacena en 2 bytes

Long Representa a un número entero largo entre -2,147‟483,648 a 2,147‟483,647, se

almacena en 4 bytes

Single Representa a un número de simple precisión entre -3,4028E38 a -1,4012E-45

para valores negativos; 1,4012E-45 a 3,4028E38 para valores positivos, se

almacena en 4 bytes

Double Representa a un número de doble precisión entre -1,79769313E308 a

-4,94065645E-324 para valores negativos; 4,94065645E-324 a

1,7976931348E308 para valores positivos, se almacena en 8 bytes.

Decimal Representa a un número decimal +/-79.228.162.514.264.337.593.543.950.335

sin punto decimal; +/-7,9228162514264337593543950335 con 28 posiciones a

la derecha del signo decimal; el número más pequeño distinto de cero es

+/-0,0000000000000000000000000001, se almacena en 14 bytes.

Currency Representa a un número de tipo monetario entre –922‟‟337,203‟685,477.5808

a 922‟‟337,203‟685,477.5807, se almacena en 8 bytes.

Date Representa a una fecha entre el 1 de enero de 100 a 31 de diciembre de 9999,

se almacena en 8 bytes.

Boolean Representa a un dato de tipo lógico o booleano(True o False), se almacena en

2 bytes.

Object Representa a una referencia a un objeto, se almacena en 4 bytes.

String Representa a una cadena de caracteres si es (longitud variable), se almacena en

10 bytes + longitud de la cadena, desde 0 a 2.000 millones; si es (longitud

fija) va desde 1 a 65.400 caracteres aproximadamente.

Variant Es un tipo de datos especial que puede contener cualquier clase de datos

excepto datos tipo String de longitud fija y tipos definidos por el usuario.

Variant también puede contener los valores especiales Empty, Error, Nothing

y Null. Puede determinar la forma en que desea tratar los datos tipo Variant

utilizando las funciones VarType o TypeName. Las variables no definidas

toman automáticamente el tipo de dato Variant.

Tipos de

datos de

Usuario

Son tipos de datos definidos por el usuario empleando la Instrucción

Type_EndType, se conocen también como datos de tipo Registro.

Page 8: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

8

Variables Vienen a ser zonas de memoria que almacenan un dato, que puede ser modificado durante la

ejecución de la aplicación o programa. Las variables tienen un nombre (la palabra que se

utiliza para referirse al valor que contiene la variable) y un tipo de dato (que determina la

clase de datos que la variable puede almacenar). Puede considerar una variable como un

marcador de posición en memoria de un valor desconocido.

El nombre de una variable:

Debe comenzar con una letra.

No puede incluir un punto o un carácter de declaración de tipo.

No debe exceder de 255 caracteres.

Debe ser única en el mismo ámbito, que es el intervalo desde el que se puede hacer

referencia a la variable: un procedimiento, formulario, etc.

Constantes

Una constante es un nombre significativo que sustituye a un número o una cadena que no

varía. Aunque una constante recuerda ligeramente a una variable, no puede modificar una

constante o asignarle un valor nuevo como ocurre con una variable. A menudo verá que el

código contiene valores constantes que reaparecen una y otra vez. O puede que el código

dependa de ciertos números que resulten difíciles de recordar (números que, por sí mismos,

no tienen un significado obvio).

Page 9: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

9

EL ENTORNO DE PROGRAMACION VISUAL

BASIC

INTRODUCCION

¿Qué es Visual Basic? La palabra "Visual" hace referencia al método que se utiliza para

crear la interfaz gráfica de usuario (GUI). En lugar de escribir numerosas líneas de código

para describir la apariencia y la ubicación de los elementos de la interfaz, simplemente

puede arrastrar y colocar objetos prefabricados en su lugar dentro de la pantalla. Si ha

utilizado alguna vez un programa de dibujo como Paint, ya tiene la mayor parte de las

habilidades necesarias para crear una interfaz de usuario efectiva.

La palabra "Basic" hace referencia al lenguaje BASIC (Beginners All-Purpose Symbolic

Instruction Code), un lenguaje utilizado por más programadores que ningún otro lenguaje

en la historia de la informática o computación. Visual Basic ha evolucionado a partir del

lenguaje BASIC original y ahora contiene centenares de instrucciones, funciones y

palabras clave, muchas de las cuales están directamente relacionadas con la interfaz

gráfica de Windows. Los principiantes pueden crear aplicaciones útiles con sólo aprender

unas pocas palabras clave, pero, al mismo tiempo, la eficacia del lenguaje permite a los

profesionales realizar cualquier tarea que pueda alcanzarse mediante cualquier otro

lenguaje de programación de Windows.

Caracteristicas

Acceso a datos .- Permite crear bases de datos y aplicaciones cliente para los formatos

de las bases de datos más conocidas, incluidos Microsoft SQL Server y otras bases de

datos de ámbito empresarial.

Tecnologías Activex .- Permite utilizar la funcionalidad proporcionada por otras

aplicaciones, como el procesador de textos Microsoft Word, la hoja de cálculo

Microsoft Excel y otras aplicaciones Windows. Puede incluso automatizar las

aplicaciones y los objetos creados con la Edición profesional o la Edición empresarial

de Visual Basic.

Capacidade de Internet .- Facilita el acceso a documentos y aplicaciones a través de

Internet desde su propia aplicación.

Aplicación Ejecutable .- Es un auténtico archivo .exe que utiliza una biblioteca de

vínculos dinámicos (DLL) en tiempo de ejecución que puede distribuir con toda

libertad.

Ediciones de Visual Basic

Page 10: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

10

Visual Basic se encuentra disponible en tres versiones, cada una de las cuales está

orientada a unos requisitos de programación específicos.

La Edición de aprendizaje de Visual Basic permite a los programadores crear robustas

aplicaciones para Microsoft Windows 95 y Windows NT®. Incluye todos los controles

intrínsecos, además de los controles de cuadrícula, de fichas y los controles enlazados

a datos.

La Edición profesional proporciona a los profesionales un completo conjunto de

herramientas para desarrollar soluciones para terceros. Incluye todas las características

de la Edición de aprendizaje, así como controles ActiveX adicionales, incluidos

controles para Internet y el Generador de informes de Crystal Reports.

La Edición empresarial permite a los profesionales crear sólidas aplicaciones

distribuidas en un entorno de equipo. Incluye todas las características de la Edición

profesional, asi como el Administrador de automatización, la Galería de objetos, las

herramientas de administración de bases de datos, el sistema de control de versiones

orientado a proyectos Microsoft Visual SourceSafe, etc.

Programación orientada a objetos.

1- Objeto

Un objeto es una entidad que tiene asociado un conjunto de métodos, eventos y propiedades.

Ejemplo : Una caja de texto (TextBox) en la cual podemos escribir cualquier línea es un

objeto.

2- Propiedades

Son las características que posee un objeto o un formulario (ventana de Windows).

Ejemplo : Color de fondo del formulario, Fuente de texto de un TextBox, ….

3- Métodos

Los métodos son funciones internas de un determinado objeto que permite realizar funciones

sobre él o sobre otro objeto.

Ejemplo : Mostrar en la ventana del formulario "Hola mundo", por tanto pondremos el

método -> form1.Print "Hola mundo"

4- Eventos

Page 11: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

11

Los eventos son acciones que se pueden realizar en cualquier control: click, doble click,

movimiento del ratón. A estos eventos se les puede asociar código para que se ejecute al

producir el evento.

Un programa Visual Basic es un POE (Programa orientado a eventos).

Todo lo que hacemos en un programa Visual Basic está generado por medio de eventos

5- Explicación integrada y ejemplo de Objetos, Propiedades, Métodos y Eventos.

Los formularios y controles de Visual Basic son objetos que exponen sus propios

métodos, propiedades y eventos. Las propiedades se pueden considerar como atributos de

un objeto, los métodos como sus acciones y los eventos como sus respuestas.

Un objeto de uso diario como el globo de un niño tiene también propiedades, métodos y

eventos. Entre las propiedades de un globo se incluyen atributos visibles como el peso, el

diámetro y el color. Otras propiedades describen su estado (inflado o desinflado) o

atributos que no son visibles, como su edad. Por definición, todos los globos tienen estas

propiedades; lo que varía de un globo a otros son los valores de estas propiedades.

Un globo tiene también métodos o acciones inherentes que puede efectuar. Tiene un

método inflar (la acción de llenarlo de helio) o un método desinflar (expeler su contenido)

y un método elevarse (si se deja escapar). De nuevo, todos los globos pueden efectuar

estos métodos.

Los globos tienen además respuestas predefinidas a ciertos eventos externos. Por ejemplo,

un globo respondería al evento de pincharlo desinflándose o al evento de soltarlo

elevándose en el aire.

Los objetos tienen propiedades, responden a eventos y ejecutan métodos:

Si se pudiera programar un globo, el código de Visual Basic podría ser como el siguiente.

Para establecer las propiedades del globo:

Globo.Color = Rojo

Globo.Diámetro = 10

Globo.Inflado = True

Observe la sintaxis del código: el objeto (Globo) seguido de la propiedad (Color) seguida

de la asignación del valor (Rojo). Podría modificar el color del globo desde el código si

repitiera esta instrucción y sustituyera el valor por otro diferente. Las propiedades

Page 12: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

12

también se pueden establecer en la ventana Propiedades mientras se está diseñando la

aplicación.

Los métodos de un globo se invocan de esta forma:

Globo.Inflar

Globo.Desinflar

Globo.Elevar 5

La sintaxis es similar a la sintaxis de las propiedades: el objeto (un nombre) seguido de un

método (un verbo). En el tercer ejemplo hay un elemento adicional, llamado argumento,

que indica la distancia que se eleva. Algunos métodos tendrán uno o más argumentos para

describir más a fondo la acción que se va a ejecutar.

El globo puede responder a un evento como se muestra a continuación:

Sub Globo_Pinchazo()

Globo.Desinflar

Globo.HacerRuido "Bang"

Globo.Inflado = False

Globo.Diámetro = 1

End Sub

En este caso, el código describe el comportamiento del globo cuando se produce un

evento Pinchazo: invoca el método Desinflar y luego invoca el método HacerRuido con

un argumento “Bang” (el tipo de ruido que se va a hacer). Como el globo ya no está

inflado, la propiedad Inflado tiene el valor False y la propiedad Diámetro adopta un nuevo

valor.

Si bien no puede programar un globo, sí puede programar un formulario o un control de

Visual Basic. Como programador, tiene el control: decide qué propiedades se deben

modificar, qué métodos se deben invocar o a qué eventos hay que responder para conseguir

la apariencia y el comportamiento deseados

Comprobación de los requisitos minimos de hardware y del sistema

Para ejecutar Visual Basic, tiene que disponer de cierto hardware y software instalado en su

equipo. Entre los requisitos del sistema cabe citar los siguientes:

Microsoft Windows NT 4.0 o posterior, o Microsoft Windows 95 – 98-2000.

Microprocesador Pentium de 166 o superior.

Un disco duro con un mínimo de 80 megabytes de espacio libre.

Una unidad de CD-ROM.

Pantalla VGA o de mayor resolución, compatible con Microsoft Windows.

32 MB de RAM o superior.

Proyecto de visual Basic.

Un proyecto es una colección de archivos que se usan para generar una aplicación.

Page 13: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

13

Cuando desarrolla un aplicación, trabaja con un archivo de proyecto para administrar

todos los diferentes archivos que crea. Un proyecto consta de lo siguiente:

Un archivo de proyecto que realiza el seguimiento de todos los componentes (.vbp)

Un archivo para cada formulario (.frm).

Un archivo de datos binario para cada formulario que contenga datos sobre

propiedades de controles del formulario (.frx). Estos archivos no se pueden modificar

y los genera automáticamente cualquier archivo .frm que tenga propiedades en

formato binario, como Picture o Icon.

Opcionalmente, un archivo para cada módulo de clase (.cls).

Opcionalmente, un archivo para cada módulo estándar (.bas).

Opcionalmente, uno o más archivos con controles ActiveX (.ocx).

Opcionalmente, un único archivo de recursos (.res).

El archivo de proyecto es simplemente una lista de todos los archivos y objetos asociados

con el proyecto, así como información sobre las opciones de entorno establecidas. Esta

información se actualiza cada vez que guarda el proyecto. Todos los archivos y objetos

también se pueden compartir con otros proyectos.

Cuando ha completado todos los archivos del proyecto puede convertir el proyecto en un

archivo ejecutable (.exe): en el menú Archivo, elija el comando Generar proyecto.exe.

Formularios.

Un formulario es una ventana. La ventana Windows de cualquier aplicación.

Podemos abrir tantas ventanas como queramos en nuestro proyecto, pero el nombre de las

ventanas debe ser distinto. Los formularios posee extensión *.frm

Módulos de clase.

Los módulos de clase (extensión *.cls) no tiene interfaz de usuario visible. Puede usar

módulos de clase para crear sus propios objetos, incluyendo código para métodos y

propiedades.

Módulos estándar.

Un módulo es un archivo Visual Basic donde se escribe parte del código del programa,

ademas del codigo existente en el formulario.

Las rutinas incluidas dentro de los módulos pueden ser ejecutadas desde los formularios de

la aplicación.

Los módulos estándar (extensión *.bas) pueden contener declaraciones públicas o a nivel

de módulo de tipos, constantes, variables, procedimientos externos y procedimientos

públicos.

Archivos de Recursos.

Los archivos de recursos (extensión *.res) contienen mapas de bits, cadenas de texto y

otros datos. Un proyecto sólo puede contener un archivo de recursos.

Page 14: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

14

Controles Active X.

Los controles ActiveX (extensión *.ocx) son controles opcionales que se pueden agregar

al cuadro de herramientas y se pueden usar en formularios. Existen controles ActiveX

adicionales disponibles en diversas fuentes. También puede crear sus propios controles

mediante las ediciones Profesional y Empresarial de Visual Basic.

EL ENTORNO DE DESARROLLO DE VISUAL BASIC

Inicio de Visual Basic

En cuanto termine el procedimiento de instalación, puede iniciar Visual Basic haciendo:

1. clic botón Inicio

2. clic en Programas

3. clic en Microsoft Visual Studio

4. clic en Visual Basic 6.0.

La Primera Pantalla que aparece nos indica el tipo de Proyecto a crear si es uno nuevo o se

va a abrir uno ya existente, para lo cual lo único que debemos hacer es seleccionar el tipo de

Proyecto a usar y clic en Botón Abrir.

Luego de ingresa al IDE (Entorno Integrado de Desarrollo) de Visual Basic, que

viene a ser el entorno de trabajo de Visual Basic, el cual integra muchas funciones

diferentes como el diseño, modificación, compilación y depuración en un entorno

común. En las herramientas de desarrollo más tradicionales, cada una de esas funciones

funcionaría como un programa diferente, cada una con su propia interfaz; pero en Visual

Basic es un solo conjunto, el IDE que consta de los siguientes elementos:

Page 15: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

15

Visual Basic proporciona un alto grado de flexibilidad, permitiéndole configurar el entorno

de trabajo que mejor se adapte a su propio estilo. Puede elegir entre una interfaz de

documentos simple o múltiple, y puede ajustar el tamaño y la posición de varios elementos

del Entorno integrado de desarrollo (IDE).

Ventana Explorador de Proyectos

Enumera los formularios y módulos del proyecto actual. Un Proyecto es la colección de

archivos que usa para generar una aplicación puede tener Formularios, Módulos, Módulos

de Clase, etc. Posee tres botones que permiten hacer lo siguiente:

Barra de Herramientas Estandar o ToolBar

Cuadro de

Herramientas

o ToolBox

Ventana

Posición de l

Formulario

Ventana de

Propiedades

Ventana

Explora

dor Proy

ect

o

Ventana

Formulario

Barra de Menú

Page 16: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

16

Botón Alternar carpetas

Permite cambiar la

presentación del proyecto

entre elementos separados

por tipo(carpetas) o todos

juntos.

Botón Ver objeto

Permite mostrar en pantalla

el elemento seleccionado en

la ventana del Explorador de

Proyectos.

Botón Ver código

Permite pasar a la ventana de

código del elemento

seleccionado en la ventana

del Explorador de Proyectos.

Ventana Propiedades

Enumera los valores de las propiedades del control o formulario seleccionado. Una

propiedad es una característica de un objeto, como su tamaño, título o color.

Examinador de objetos

Enumera los objetos disponibles que puede usar en su proyecto y le proporciona una manera

rápida de desplazarse a través del código. Puede usar el Examinador de objetos para

explorar objetos en Visual Basic y otras aplicaciones, ver qué métodos y propiedades están

disponibles para esos objetos, y pegar código de procedimientos en su aplicación.

Ventana Formulario(Diseñador)

Funciona como una ventana en la que se personaliza el diseño de la interfaz de su

aplicación. Agregue controles, gráficos e imágenes a un formulario para crear la apariencia

que desee. Cada formulario de la aplicación tiene su propia ventana diseñador de formulario.

Ventana Editor de código

Funciona como un editor para escribir el código de la aplicación. Se crea una ventana editor

de código diferente para cada formulario o módulo del código de la aplicación.

Page 17: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

17

Ventana Posición del formulario

La ventana Posición del formulario le permite colocar los formularios de su aplicación en

determinada posición de la pantalla, utilizando una pequeña representación gráfica de la

pantalla.

Ventanas Inmediato, Locales e Inspección

Estas ventanas adicionales se proporcionan para la depuración de la aplicación. Sólo están

disponibles cuando ejecuta la aplicación dentro del IDE.

Nota También puede agregar características a la interfaz de Visual Basic mediante un

programa llamado complemento. Los complementos, disponibles en Microsoft y otros

desarrolladores, pueden proporcionar características como el control de código de origen,

que permite mantener proyectos de desarrollo en grupo.

FORMULARIO Y CONTROLES BASICOS

Los controles vienen a ser una serie de objetos que utiliza el VB para crear la interfaz

gráfica de usuario estos controles tienen propiedades, métodos, y eventos ante los cuales

reaccionan, Nadie puede dominar a Visual Basic sin antes dominar a los controles y sus

propiedades, así tenemos que Ud. Trabaja con un formulario como contenedor de controles

y al hacerlo tiene que darles un nombre, ubicarlos en determinada posición dentro del

formulario, ajustar su tamaño, establecer sus propiedades en tiempo de diseño y para tiempo

Page 18: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

18

de ejecución y programar sus eventos para terminar realizando una aplicación o proyecto

Visual Basic.

Nota. Las propiedades de los controles serán definidas en cada control y si la misma

propiedad la tienen otros controles entonces no se volverán a definir salvo que se empleen

en forma diferente.

Dentro de Visual Basic tenemos en primer al Formulario tomado como un control mas, y a

los controles estándar.

Formulario

El formulario es un control también dentro de Visual Basic , es así que tiene propiedades,

métodos y eventos propios que lo controlan, permite crear ventanas, cuadros de diálogo y es

un contenedor de controles que permite la creación de la Interface Gráfica de Usuario dentro

la Aplicación o Proyecto. Los controles se dibujan y se ven en un formulario mientras está

diseñando un formulario:

Las ventanas Formulario tienen los botones Maximizar, Minimizar y Cerrar.

Puede crear formularios fijos o móviles. El formulario que diseña tendrá las mismas

características en tiempo de diseño y en tiempo de ejecución, a menos que especifique lo

contrario en las propiedades del formulario.

Utilice los botones del Cuadro de herramientas para dibujar los controles en el formulario.

Utilice el comando Ventana Posición del formulario, del menú Ver, para obtener una vista

previa de la distribución del formulario.

Teclas para Ventana Formulario

Utilice estas combinaciones de teclas en la ventana Formulario:

Presione Para

F7 Abrir la ventana Código para el objeto seleccionado.

CTRL+C Copiar los controles seleccionados al Portapapeles.

CTRL+X Cortar los controles seleccionados al Portapapeles.

SUPR Eliminar los controles seleccionados sin colocarlos en el

Page 19: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

19

Portapapeles.

CTRL+V Pegar el contenido del Portapapeles en el formulario.

CTRL+Z Deshacer una eliminación de controles.

TAB Recorrer hacia adelante los controles en el orden de tabulación.

SHIFT+TAB Recorrer hacia atrás por los controles en el orden de tabulación.

CTRL+CLIC Agregar o quitar un control de la selección.

CLIC+ARRASTRAR Seleccionar múltiples controles.

SHIFT+CLIC Seleccionar múltiples controles.

CTRL+E Mostrar el menú Edición (sólo en tiempo de diseño).

F4 Mostrar la ventana Propiedades (sólo en tiempo de diseño).

CTRL+J Traer al frente (afecta al solapamiento de los controles sólo en

tiempo de diseño).

CTRL+K Enviar atrás (afecta al solapamiento de controles sólo en tiempo

de diseño).

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 Box Control “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

Page 20: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

20

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.

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

Page 21: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

21

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.

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.

Appearance Apariencia 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:

Page 22: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

22

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,.

FillStyle Tipo 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

5 - Diagonal hacia abajo

6 - Cruzado

7 - Diagonal cruzada

FillColor Color de relleno

Especifica el color del relleno contemplado en FillStyle.

Font Tipo 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

Page 23: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

23

este pequeño truco para utilizar en todos los controles una determinada fuente sin

tener que teclearla para cada control.

FontTranparent Texto 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

Height Altura 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.

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.

Icon Icono

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.

Page 24: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

24

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.

Left Borde 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

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

Page 25: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

25

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 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

Page 26: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

26

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.

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.

Top Posició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.

Width Ancho 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

Page 27: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

27

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.

PROCEDIMIENTOS

Activate Activación

Click Click

DblClick Doble clic

Deactivate Desactivación

DragDrop Arrastrar y soltar

DragOver Arrastrar por encima

GotFocus Obtener el foco

KeyDown Mantener pulsada una tecla

KeyPress Pulsar una tecla

KeyUp Soltar una tecla

LinkError Error de enlace

LinkExecute Ejecución de un enlace de datos

LinkOpen Romper el enlace

Load Cargar el formulario

LostFocus Perder el foco

MouseDown Pulsar una tecla del ratón

MouseMove Mover el ratón (Detecta la posición del ratón sobre el formulario)

MouseUp Soltar una tecla del ratón

Paint Pintar

QueryUnload Confirmación de descarga

Resize Cambio de tamaño

Unload Descargar 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 totalidad,

definidos por el programador. Estos procedimientos forman parte del programa. Podría

Page 28: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

28

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 BUTTON BOTON 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

Name Nombre

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.

Caption Tí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.

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.

Backcolor Color 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

Page 29: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

29

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)

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

Page 30: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

30

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.

MouseIcon Icono para el puntero del ratón

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

Page 31: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

31

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.

TabStop Sale 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.

Visible Visible

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.

Page 32: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

32

Width Ancho

Define el ancho del botón. Con Height determina la dimensión del

botón.

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.

Se ha incluido la trama para poder observar los límites de la etiqueta sin borde.

PROPIEDADES

Alignment Justificación

Establece si el texto se justifica a la izquierda, a la derecha, o se

centra sobre la etiqueta.

Appearance Apariencia Plana o tridimensional.

Autosize Tamaño

Propiedad booleana. Si se pone a True, el tamaño de la etiqueta se

ajusta al texto que contiene.

Backcolor Color 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.

Page 33: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

33

BorderStyle Tipo 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.

Caption Título

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.

Page 34: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

34

ForeColor

Es el color de la letra de la etiqueta. Puede cambiarse en tiempo de

ejecución.

Height Altura

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

MouseIcon Icono 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

Name Nombre

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

Page 35: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

35

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.

Visible Visible

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

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.

Page 36: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

36

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.

TEXT BOX CAJAS 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.

La forma de una caja de texto es la siguiente, dependiendo de las propiedades BorderStyle y

Appearance:

Page 37: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

37

PROPIEDADES

Alignment Justificació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.

Backcolor Color de fondo

Es el color de fondo de la caja de texto. Puede cambiarse en tiempo

de ejecución.

BorderStyle Tipo 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

DataSource Fuente de Datos

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.

Page 38: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

38

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.

ForeColor Color 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.

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

Page 39: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

39

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.

MouseIcon Puntero 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

personalizado, MousePointer debe ponerse al valor 99. Lo típico

para esta propiedad es el I-Beam (barra vertical)

Name Nombre

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

Page 40: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

40

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 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.

Visible Visible

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.

Page 41: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

41

Función InputBox.- Es un cuadro de ingreso de datos a una variable u objeto, muestra un

mensaje en un cuadro de diálogo y espera que el usuario escriba un texto o un dato,

devuelve un tipo String o Variant con el contenido del cuadro de texto.

Formato:

Nombre_Variable=InputBox(Mensaje [, Título][, Valor_por_defecto][, Xpos][, Ypos])

La sintaxis de la función InputBox consta de estos argumentos con nombre:

Mensaje.- Expresión de cadena que se muestra como mensaje en el cuadro de diálogo. La

longitud máxima del mensaje es de aproximadamente 1024 caracteres, según el ancho de los

caracteres utilizados. Si mensaje consta de más de una línea, puede separarlos utilizando un

carácter de retorno de carro (Chr(13)), un carácter de avance de línea (Chr(10)) o una

combinación de los caracteres de retorno de carro-avance de línea (Chr(13) y Chr(10)) entre

cada línea y la siguiente.

Título.- Expresión de cadena que se muestra en la barra de título del cuadro de diálogo. Si

omite Título, en la barra de título se coloca el nombre de la aplicación.

Valor_por_defecto.- Expresión de cadena o dato que se muestra en el cuadro de texto como

valor predeterminado del cuadro InputBox. Si se omite se muestra el cuadro de texto vacío.

Xpos.- Expresión numérica que especifica, en twips, la distancia en sentido horizontal entre

el borde izquierdo del cuadro de diálogo y el borde izquierdo de la pantalla. Si se omite

Xpos, el cuadro de diálogo se centra horizontalmente.

Page 42: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

42

Ypos.- Expresión numérica que especifica, en twips, la distancia en sentido vertical entre el

borde superior del cuadro de diálogo y el borde superior de la pantalla. Si se omite Ypos, el

cuadro de diálogo se coloca a aproximadamente un tercio de la altura de la pantalla, desde el

borde superior de la misma.

Ejemplo de InputBox para el ingreso de una edad a una variable.

Dim vEdad as Integer

vEdad=InputBox(“Ingrese la edad”, ”Mensaje de Ingreso”,18)

Cuadro InputBox

Función MsgBox.- Permite mostrar un mensaje en un cuadro de diálogo y espera a que el

usuario haga clic en un botón del cuadro y devuelve un tipo Integer correspondiente al botón

elegido o seleccionado por el usuario.

Formato:

[Nombre_Variable =] MsgBox(Mensaje[, Valor_Botones][, Título])

La sintaxis de la función MsgBox consta de estos argumentos con nombre:

Mensaje.- Expresión de cadena que representa al texto a mostrar en el cuadro de diálogo. La

longitud máxima de mensaje es de aproximadamente 1024 caracteres, según el ancho de los

caracteres utilizados. Si Mensaje consta de más de una línea, puede separarlos utilizando un

carácter de retorno de carro (Chr(13)) o un carácter de avance de línea (Chr(10)), o una

combinación de caracteres de retorno de carro - avance de línea (Chr(13) y Chr(10)) entre

cada línea y la siguiente.

Valor_Botones.- Expresión numérica que corresponde a la suma de los valores que

especifican el número y el tipo de los botones que se pretenden mostrar, el estilo de icono

que se va a utilizar, la identidad del botón predeterminado y la modalidad del cuadro de

mensaje. Si se omite este argumento, el valor predeterminado para Valor es 0.

Valores para los botones a mostrar:

Constante Valor Descripción

vbOKOnly 0 Muestra solamente el botón Aceptar.

vbOKCancel 1 Muestra los botones Aceptar y Cancelar.

vbAbortRetryIgnore 2 Muestra los botones Anular, Reintentar e Ignorar.

vbYesNoCancel 3 Muestra los botones Sí, No y Cancelar.

Título

Mensaje

Valor_por_defecto

Page 43: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

43

vbYesNo 4 Muestra los botones Sí y No.

vbRetryCancel 5 Muestra los botones Reintentar y Cancelar.

Valores para los iconos a mostrar:

Constante Valor Descripción

vbCritical 16 Muestra el icono de mensaje crítico.

vbQuestion 32 Muestra el icono de pregunta de Advertencia.

vbExclamation 48 Muestra el icono de mensaje de Exclamación.

vbInformation 64 Muestra el icono de mensaje de Información.

Valores de los botones por defecto:

Constante Valor Descripción

vbDefaultButton1 0 El primer botón es el predeterminado.

vbDefaultButton2 256 El segundo botón es el predeterminado.

vbDefaultButton3 512 El tercer botón es el predeterminado.

Valores del modelo de cuadro a usar:

Constante Valor Descripción

vbApplicationModal 0 Aplicación modal; el usuario debe responder al cuadro de

mensaje antes de poder seguir trabajando en la aplicación

actual.

vbSystemModal 4096 Sistema modal; se suspenden todas las aplicaciones hasta

que el usuario responda al cuadro de mensaje.

Valores devueltos por la Función MsgBox:

Constante Valor Descripción

vbOK 1 Sí presiono el botón Aceptar

vbCancel 2 Sí presiono el botón Cancelar

vbAbort 3 Sí presiono el botón Anular

vbRetry 4 Sí presiono el botón Reintentar

vbIgnore 5 Sí presiono el botón Ignorar

vbYes 6 Sí presiono el botón Sí

vbNo 7 Sí presiono el botón No

Título.- Expresión de cadena que se muestra en la barra de título del cuadro de diálogo. Si

se omite Título, en la barra de título se coloca el nombre de la aplicación.

Procedimiento MsgBox.- Funciona en forma idéntica a la función MsgBox y con sus

mismos argumentos pero se diferencia de está en que no devuelve un valor sino sólo

muestra un cuadro de mensaje.

Formato:

Page 44: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

44

MsgBox Mensaje[, Valor_Botones][, Título]

Ejemplo de MsgBox, Mostrar Grabar Archivo con los botones Si y No y con el icono de

interrogación.

Dim Rpta as Integer

Rpta = MsgBox(“Grabar Archivo”, 4 + 32 + 0, “Mensaje a Usuario”)

Cuadro MsgBox

CARACTERISTICAS DEL LENGUAJE VISUAL BASIC

TTiippooss ddee DDaattooss uuttiilliizzaaddooss eenn VViissuuaall BBaassiicc..

Tipos de datos:

Es la característica de una variable que determina que tipos de datos puede tener. Los tipos

de datos incluyen Byte, Boolean, Integer, Long, Currency, Single, Double, Date, String,

Object, Varian (predeterminado) y tipos definidos por el usuario, asi como tipos

específicos de objetos.

Tipos de datos y representación corta en Visual Basic:

Tipo de dato Representación corta

Integer %

Long (entero largo) &

Single

Double #

Currency @

String $

Valor_Botones Mensaje

Título

Page 45: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

45

Variables

Vienen a ser zonas de memoria que almacenan un dato, que puede ser modificado durante la

ejecución de la aplicación o programa. Las variables tienen un nombre (la palabra que se

utiliza para referirse al valor que contiene la variable) y un tipo de dato (que determina la

clase de datos que la variable puede almacenar). Puede considerar una variable como un

marcador de posición en memoria de un valor desconocido.

El nombre de una variable:

Debe comenzar con una letra.

No puede incluir un punto o un carácter de declaración de tipo.

No debe exceder de 255 caracteres.

Debe ser única en el mismo ámbito, que es el intervalo desde el que se puede hacer

referencia a la variable: un procedimiento, formulario, etc.

Definición de Variables

Las variables pueden ser definidas con las siguientes instrucciones que indicaran el tipo y

ámbito de la variable.

Dim.- Permite definir variables de tipo Local al procedimiento donde fueron declaradas, las

variables que se declaran en un procedimiento mediante la instrucción Dim sólo existen

mientras se ejecuta el procedimiento. Cuando termina el procedimiento, desaparece el valor

de la variable. Es decir, no puede tener acceso a una variable de un procedimiento desde otro

procedimiento. Estas características le permiten utilizar los mismos nombres de variables en

distintos procedimientos sin preocuparse por posibles conflictos o modificaciones

accidentales.

Formato:

Dim Nombre_Variable [As Tipo_de_Dato]

Static.- Permite declarar una variable local de tipo estática, estas variables preservan su

valor aunque termine el procedimiento donde fueron declaradas.

Formato:

Static Nombre_Variable [As Tipo_de_Dato]

Public.- Permite declarar variables de tipo Público o Globales que pueden ser usadas o

llamadas en forma global para toda la Aplicación o Proyecto si son declaradas en un Módulo

o para todo el formulario si son declaradas en la sección General – Declarations del

formulario.

Formato:

Public Nombre_Variable [As Tipo_de_Dato]

La cláusula opcional As Tipo_de_Dato de las instrucciones de declaración de Variables (Dim, Static y Public), le permite definir el tipo de dato o de objeto de la variable que va a declarar. Los tipos de datos definen el tipo de información que almacena la variable.

Las variables pueden no ser declaradas explícitamente y ser utilizadas directamente en el

programa con una sentencia o instrucción de asignación de datos.

Page 46: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

46

Para declarar variables de forma explícita de tal manera que siempre el programa solicite

que se defina o declare una variable para utilizarle; debe Incluir esta instrucción en la

sección Declaraciones del módulo de clase, de formulario o estándar:

Option Explicit

También puede hacer clic en el menú Herramientas, elija Opciones, haga clic en la ficha

Editor y active la opción Requerir declaración de variables. Esto inserta

automáticamente la instrucción Option Explicit en los módulos nuevos, pero no en los ya

creados, por lo que tendrá que agregar manualmente Option Explicit a los módulos

existentes en el proyecto.

Descripción del alcance de las variables

El alcance de una variable define qué partes del código son conscientes de su existencia.

Cuando declara una variable en un procedimiento, sólo el código de dicho procedimiento

puede tener acceso o modificar el valor de la variable; tiene un alcance que es local al

procedimiento. A veces, sin embargo, se necesita utilizar una variable con un alcance más

general, como aquella cuyo valor está disponible para todos los procedimientos del mismo

módulo o incluso para todos los procedimientos de toda la aplicación. Visual Basic le

permite especificar el alcance de una variable cuando la declara.

Establecimiento del alcance de las variables

Dependiendo de cómo se declara, una variable tiene como alcance un procedimiento (local)

o un módulo.

Alcance Privado Público

Nivel de

procedimiento

Las variables son privadas

del procedimiento en el

que aparecen.

No es aplicable. No

puede declarar variables

públicas dentro de un

procedimiento.

Nivel de

Módulo

Las variables son privadas

del módulo en el que

aparecen.

Las variables están

disponibles para todos

los módulos.

Variables utilizadas en un procedimiento

De forma predeterminada una variable a nivel de módulo está disponible para todos los

procedimientos del módulo, pero no para el código de otros módulos. Cree variables a nivel

de módulo declarándolas con la palabra clave Private en la sección Declaraciones al

principio del módulo. A nivel de módulo, no hay diferencia entre Private y Dim, pero es

preferible Private porque contrasta con Public y hace que el código sea más fácil de

comprender.

Constantes Una constante es un nombre significativo que sustituye a un número o una cadena que no

varía. Aunque una constante recuerda ligeramente a una variable, no puede modificar una

constante o asignarle un valor nuevo como ocurre con una variable. A menudo verá que el

código contiene valores constantes que reaparecen una y otra vez. O puede que el código

dependa de ciertos números que resulten difíciles de recordar (números que, por sí mismos,

no tienen un significado obvio).

En estos casos, puede mejorar mucho la legibilidad del código y facilitar su mantenimiento

si utiliza constantes. Hay dos orígenes para las constantes:

Page 47: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

47

Constantes intrínsecas o definidas por el sistema proporcionadas por aplicaciones y

controles. Las constantes de Visual Basic se muestran en Visual Basic (VB), Visual Basic

para aplicaciones (VBA) y las bibliotecas de Objeto de acceso de datos (DAO) en el

Examinador de objetos. Otras aplicaciones que proporcionan bibliotecas de objetos, como

Microsoft Excel y Microsoft Project, también proporcionan una lista de constantes que

puede utilizar con sus objetos, métodos y propiedades. También se definen constantes en la

biblioteca de objetos de cada control ActiveX.

Las constantes simbólicas o definidas por el usuario se declaran mediante la instrucción

[Public|Private] Const nombre_constante[As tipo_de_dato] = expresión.

El argumento nombre_constante es un nombre simbólico válido (las reglas son las mismas

que para crear nombres de variable) y expresión está compuesta por constantes y operadores

de cadena o numéricos; sin embargo, no puede utilizar llamadas a funciones en expresión.

En Visual Basic, los nombres de constantes tienen un formato que combina mayúsculas y

minúsculas, con un prefijo que indica la biblioteca de objetos que define la constante. Las

constantes de las bibliotecas de objetos de Visual Basic y Visual Basic para aplicaciones

tienen el prefijo "vb"; por ejemplo, vbTileHorizontal. Las constantes de la biblioteca de

objetos de acceso a datos tienen el prefijo "db"; por ejemplo, dbRelationUnique.

Una instrucción Const tiene igual alcance que una declaración de variable y se le aplican las

mismas reglas:

Para crear una constante local a un procedimiento, declárela dentro del procedimiento.

Para crear una constante disponible para todos los procedimientos de un módulo, pero no

para el código que está fuera del módulo, declárela en la sección Declaraciones del

módulo.

Para crear una constante disponible en toda la aplicación, declare la constante en la sección

Declaraciones de un módulo estándar y coloque delante de Const la palabra clave Public.

No se pueden declarar las constantes públicas en un módulo de clase o de formulario.

Operadores:

La tabla que se muestra a continuación presenta el conjunto de operadores que soporta

Visual Basic colocados de mayor a menor prioridad (enre ellos y entre categorías). Los

operadores que aparecen sobre una misma línea tienen igual prioridad. Las operaciones

entre paréntesis se evalúan primero, ejecutándose primero los paréntesis más internos.

TIPO OPERACION OPERADOR

Aritmético Exponenciación

Cambio de signo

Multiplicación y división

División entera

Resto de una división entera

Suma y resta

ˆ

-

*, /

\

Mod

+,-

Page 48: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

48

Concatenación Concatenar o enlazar &

Relacional Igual, distinto, menor, mayor =,<>,<,>,<=,=>

Otros Comparar dos expresiones de caracteres

Comparar dos referencias a objetos LIKE

IS

Lógico Negación

Y (conjunción)

Or (inclusión)

Or (exclusión)

Equivalencia (Opuesto a Xor)

Implicación (falso si el primer operando es

verdadero y segundo operando es falso)

Not

And

Or

Xor

Eqv

Imp

UTILIZACION DE MULTIPLES FORMULARIOS

Para utilizar varios formularios en nuestra aplicación tendremos que añadir cada uno de

ellos mediante la opción de menú Insert / Form o pulsando sobre el botón .

Método Show

Para llamar a un formulario desde el código utilizaremos el método Show. Si el formulario 2

tiene en la propiedad Name form2, para llamarlo desde otro formulario pondremos:

Form2.Show

Si no ponemos ningún argumento se asume que el formulario aparece en modo no modal, es

decir, se permitirá que se active cualquier otro formulario sin cerrar el formulario 2. La otra

modalidad que existe es modal, lo que significa que no se permite el enfoque hacia ningún

otro formulario hasta que no se cierre el actual. Este último modo puede servir para cuadros

de diálogo que soliciten ciertos parámetros para que la aplicación siga funcionando: una

contraseña.

Los argumentos del método Show son:

0 vbModeless No modal

1 vbModal Modal

Ejemplo:

Page 49: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

49

Form2.Show vbModal

COMUNICACIÓN ENTRE FORMULARIOS

Desde un formulario se puede tener acceso a los controles y propiedades de otro formulario.

En lugar de realizar el paso de parámetros cuando se llama a otro formulario que queremos

que aparezca con unos determinados valores iniciales, lo que se hace es acceder a los

controles del otro formulario y después mostrarlo mediante el método Show.

Para acceder a los controles de otro formulario se sigue la siguiente sintaxis:

Formulario!Control.Propiedad = valor

Se debe colocar una admiración "!" entre el formulario y el control y un punto entre el

control y la propiedad

Ejemplo:

Form2!Label1.Caption = "Número de Clientes"

Al acceder a las propiedades de otro formulario automáticamente se carga éste en memoria,

si no lo estaba ya antes. Una vez que hayamos modificado sus propiedades los

visualizaremos con el método Show.

No se puede acceder a las variables declaradas en otro formulario, de modo que si queremos

trabajar con variables generales, las cuales sean accesibles desde cualquier formulario de la

aplicación, tendremos que declararlas como Públicas desde un módulo de código.

Para insertar un módulo en nuestro proyecto de Visual Basic tendremos que marcar en

Insert / Module. Nos aparecerá una ventana en la que únicamente podremos colocar las

variables y procedimientos o funciones que queramos que sean públicas para toda la

aplicación.

En el siguiente ejemplo se declara la variable Gen_var de tipo Integer que será accesible

desde cualquier formulario de la aplicación:

Page 50: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

50

Ahora la ventana de proyecto tiene una línea más con un icono distinto indicando que se

trata de un módulo de código:

ESTRUCTURAS DE CONTROL CONDICIONAL

Las estructuras de Control condicional se utilizan para controlar el flujo del programa, ya

que un programa incapaz de alterar su flujo en respuesta a condiciones cambiantes, ya sean

internas o externas, sería ineficaz. Para realizar esto tenemos las siguientes instrucciones:

Estructuras de Decisión

If_End if.- Permite evaluar una condición, si la condición es verdadera ejecuta las

instrucciones debajo del If sino ejecuta las instrucciones debajo de la cláusula Else.

Formato:

If <condición> Then

Instrucciones a ejecutar si condición es verdadera

Else

Instrucciones a ejecutar si condición es falsa

End If

If <condición> Then Instrucción

La instrucción If puede evaluar varias condiciones a la vez empleando el siguiente formato:

If <condición 1> Then

Instrucciones 1, si condición 1 es verdadera

ElseIf <condición 2> Then

Page 51: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

51

Instrucciones 2, si condición 2 es verdadera

ElseIf <condición 3> Then

Instrucciones 3, si condición 3 es verdadera

........................

........................

ElseIf <condición n> Then

Instrucciones n, si condición n es verdadera

Else

Instrucciones m, si ninguna de las condiciones anteriores es verdadera

End If

Select Case

Es una estructura que evalúa una determinada expresión que puede tener múltiples

alternativas de las cuales se podrá realizar una de ellas, en el caso que sea verdadera sino se

evaluaran las instrucciones de la parte falsa debajo de la cláusula Case Else.

Formato:

Select Case <Expresion>

Case valor1 {Sí valor1 es verdad}

Instrucciones 1

Case valor2 {Sí valor2 es verdad}

Instrucciones 2

Case valor3 {Sí valor3 es verdad}

Instrucciones 3

.

.

.

Case valorN

Instrucciones n {Sí valorN es verdad}

Case Else

Instrucciones m {Sino son verdaderos los valores anteriores}

Page 52: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

52

End Select

FRAME RECUADRO

Se obtiene directamente de la caja de herramientas

Tiene la siguiente forma :

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.

Page 53: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

53

PROPIEDADES

Las señaladas con (*) no presentan novedades respecto a las ya

comentadas para los controles precedentes.

Caption Es 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.

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.

Visible

Cuando un Frame está con la propiedad Visible = False, tanto el

propio Frame como todos los controles interiores a el serán invisibles.

CHECK Y OPTION BUTTON(BOTONES DE ELECCION Y OPCION)

Se obtienen directamente de la caja de herramientas.

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

Page 54: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

54

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.

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.

Alignment Común a ambos controles.

Page 55: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

55

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.

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.

Height Comú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.

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.

Page 56: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

56

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)

FUNCIONES INCORPORADAS

Funciones Intrinsecas de VB.- Viene a ser cómo operadores especiales que permiten

realizar una determinada tarea y siempre devuelve un valor.

Funciones de Conversion

CSTR(Exp).- Convierte una expresion en dato de tipo string

VAL(Exp).- Convierte una expresion de cadena en un dato de tipo numerico(Variant).

Cdate(Exp).- Convierte una expresion que representa a una fecha en un dato de tipo

“DATE”

CINT(Exp).- Convierte una expresion en un dato de tipo entero

CSNG(Exp).- Convierte una expresion en un dato de tipo Single.

CLNG(Exp).- Convierte una expresion en un dato de tipo Long

CDBL(Exp).- Convierte una expresion en un dato de tipo Double

CCUR(Exp).- Convierte una expresion en un dato de tipo currency

CBYTE(Exp).- Convierte una expresion enb un dato de tipo Byte

CHR(Exp).- Retorna un carácter del codigo ASCII

Funcion de Cadena o String

Space (Nª Espacios).- Permite crear una cantidad de espacios blanco.

Left(Exp,Nª).- Permite extraer “n” caracteres de la izquierad de una cadena.

Right(Exp,Nª).- Permite extraer “n ” caracteres de la derecha de una cadena.

Mid(Expc,Pos,Nª).- Permite extraer los “n “ caracteres de una cadena a partir de una

posicion determinada.

Ucase(Expc).- Convierte a mayusculas una cadena.

Lcase(Expc).- Convierte a minusculas una cadena

Len(Expc).- Obtiene la longitud de una cadena.

Trim(Expc).- Elimina los espacios en blanco de la derecha e izquierda de una cadena.

Funciones de Fecha Hora

Year(Fecha).- Obtiene el año de una fecha determinada.

Month(fecha).- Obtiene el mes de una determinada Fecha

Dag(Fecha).- Obtiene el dia de una fecha determinada.

Date.- Retorna la fecha actual

Page 57: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

57

Date value (Exp).- Retorna el avlor numerico de una expresion que representa a uan fecha

para usarlo en calculos de fecha.

Time.- Retorna la hora actual

Time Value(Exp).- Retorna el valor numerico de una expresion que representa a una hora

para usrala en calculos de horas.

Hour(Tiempo).- Retorna las horas transcurridas entre dos tiempos.

Minute(Tiempo).- Retorna los minutis transcurridos entre dos tiempos

Second(Tiempo).- Retorna los segundos transcurridos entre dos tiempos.

Weekday(Fecha) Retorna el dia de la semana cómo un numero.Retorna el dia de la semana

cómo un numero.

ESTRUCTURAS DE BUCLES O REPETITIVAS

Estructuras Repetitivas. Son empleadas en procesos repetitivos basados en rangos o

condiciones.

Sentencia For – Next.- Permite repetir un conjunto de instrucciones desde un valor inicial

hasta un valor final.

Formato

FOR Contador = Valor Inicial To Valor Final [STEP incremento]

{ Instrucciones X } „Instrucciones a repetir

[EXIT FOR] „Sale del proceso repetitivo

{ Instrucciones Y } „ Instrucciones a repetir si no se ejecuta EXIT FOR

NEXT [Contador]

Sentencia While – Wend.- Permite repetir un conjunto de instrucciones mientras una

condición sea verdadera.

Formato:

While <condición>

{ Instrucciones a repetir mientras condición sea verdadera }

Wend

Sentencias Do While – Loop o Do Until – Loop.- Permiten ejecutar un conjunto de

instrucciones mientras que una condición sea verdadera, pero a su vez permiten salir del

proceso repetitivo usando la cláusula Exit Do.

Formato:

Do While | Until <condición>

{ Instrucciones A, se ejecutan mientras condición sea verdadera}

[Exit Do] Sale del proceso repetitivo

{ Instrucciones B, se ejecutan si el Exit Do no se ejecuto}

Loop

Page 58: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

58

Sentencias Do – Loop While o Do – Loop Until.- Permiten ejecutar un conjunto de

instrucciones hasta que una condición sea verdadera o mientras la condición sea falsa.

Formato

Do

{ Instrucciones A, se ejecutan mientras condición es falsa

[Exit Do] Sale del proceso repetitivo

{ Instrucciones B, se ejecutan si el Exit Do no se ejecuto }

Loop While | Until <condición>

MANEJO DE LISTAS

LIST BOX Y COMBO BOX

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 :

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).

Page 59: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

59

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

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.

Page 60: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

60

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.

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.

Columns Propiedad 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

Page 61: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

61

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

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.

IntegralHeight No aplicable a ListBox o ComboBox

ItemData Propiedad 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.

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.

Page 62: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

62

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.

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.

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.

True Los 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.

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.

Page 63: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

63

EMPLEO DE CONTROLES AVANZADOS Y

PERSONALIZADOS

CONTROLES DE BUSQUEDA DE FICHEROS Y DIRECTORIOS

DriveListBox, DirListBox y FileListBox.

Se obtienen directamente de la Caja de Herramientas, en los iconos siguientes:

DriveListBox permite elegir una unidad de disco.

DirListBox muestra los directorios existentes en un árbol.

FileListBox muestra los ficheros existentes en un determinado directorio.

Tal como indica su nombre, estos controles son listas. Repase el control ListBox para

recordar sus propiedades.

DriveListBox

Este control permite elegir una unidad de disco válida en tiempo de ejecución. Utilice este

control para mostrar una lista de todas las unidades válidas del sistema de un usuario. Puede

crear cuadros de diálogo que permitan al usuario abrir un archivo de una lista en cualquier

unidad disponible.

DriveListBox desplegado y sin desplegar Name (nombre) por defecto List1

Posee las propiedades típicas de cualquier control VB respecto a su geometría y color. Las

Propiedades mas destacables de este control son : Drive, List, ListCount y ListIndex

Drive devuelve el nombre de la unidad de disco seleccionada :

Page 64: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

64

Variable = List1.Drive Variable = a : (ó c :[MS-DOS_6] ó D )

Este control se trata de una lista como su nombre indica, y posee las propiedades List,

ListCount y ListIndex para permitir al usuario tener acceso a elementos de la lista.

List (n) devuelve el texto que define a la unidad colocada en el lugar n. El número n

comienza por 0. Por ejemplo, en la figura anterior, List1.list(1) devolverá c :[MS-DOS_6]

ListCount proporciona información acerca del número de unidades de disco disponibles

(En el ejemplo, List1.ListCount será 3, que corresponde a los tres discos disponibles - disco

C :, disco A : y disco D : )

ListIndex devuelve el índice del disco seleccionado en la lista (0 para el primero, n-1 para

el último)

Utilizando el control DriveListBox en combinación con DirListBox y FileListBox, podrá

realizar un explorador de ficheros en cualquier disco de su ordenador.

DirListBox.

Presenta un cuadro de la siguiente forma:

donde puede verse el árbol completo de un directorio. El DirListBox solamente presenta

directorios. No presenta ficheros.

Aparte de las propiedades geométricas de todos los controles, el DirListBox presentas las

siguientes propiedades particulares :

Path Devuelve o establece la ruta de acceso actual. No está disponible en tiempo de diseño.

Sintaxis Nombre.Path [= pathname]

donde

Nombre es el nombre del DirListBox

pathname Una expresión de cadena que evalúa en el nombre de vía de acceso del directorio

por defecto del DirListBox..

Page 65: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

65

El valor de la propiedad Path es una cadena que indica una ruta de acceso, como

C:\WINDOWS\SYSTEM. El valor predeterminado es la ruta de acceso actual

Cuando se cambia la propiedad Path en tiempo de ejecución se genera un evento Change.

Nota El valor que devuelve Path es distinto del de List (ListIndex). Path devuelve

siempre un mismo camino, bien el que se le haya impuesto mediante esta misma propiedad

Path, y si no se le ha impuesto con anterioridad, el que tenga por defecto. List (ListIndex)

devuelve el camino completo del directorio seleccionado, y, como era de esperar, cambia

cada vez que cambiamos la selección del directorio.

List, ListCount y ListIndex

Al igual que cualquier lista, el DirListBox tiene las propiedades List, ListCount y

ListIndex.

ListIndex devuelve el valor del índice del directorio seleccionado. El valor devuelto es cero

cuando está seleccionado el primer directorio de los situados al final del árbol, 1 para el

siguiente, etc. Toma el valor -1 cuando se selecciona el directorio inmediatamente superior

al último nivel, el valor -2 cuando se selecciona el directorio situado 2 niveles jerárquicos

por encima del último nivel, etc.

ListCount devuelve un valor numérico igual al número de directorios existentes en el

último nivel, independientemente de los directorios que tuviesen por arriba.

List (n) devuelve una cadena de caracteres con el camino completo del elemento cuyo

orden sea el señalado entre paréntesis. Si en vez de n colocamos el ListIndex nos devolverá,

logicamente, el camino del elemento seleccionado.

FileListBox

Esta lista nos presenta los ficheros existentes en un directorio.

Como se puede apreciar, cuando el número de ficheros supera el número que puede

presentar, aparecen automáticamente las flechas de scroll verticales.

Esta lista de ficheros tiene las siguientes propiedades destacables :

Path

Devuelve o establece la ruta de acceso de su directorio actual. No está disponible en tiempo

de diseño. Este directorio puede ser el que se le haya impuesto mediante esta propiedad

Page 66: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

66

Path, o el que tenga por defecto. (El directorio por defecto sería el del ejecutable de la

aplicación)

Si le ponemos el nombre por defecto, List1, para todos los ejemplos :

variable = List1.Path Variable = C:\Archivos de programa\Microsoft Visual Basic32

(p. e.)

ListCount

Devuelve el número total de ficheros que hay en ese directorio.

Variable = List1.ListCount Variable = 19 (p. e.)

ListIndex

Devuelve un número con el índice del elemento seleccionado. Como todas las listas,

devuelve -1 si no hay ningún elemento seleccionado. El primer elemento de una lista tiene el

índice = 0.

Filename

Devuelve el nombre del fichero seleccionado.

List (n)

Devuelve el nombre del fichero que ocupa el lugar n en la lista.

Variable = List1.List (5) Variable = nombre del fichero que ocupa el 5º lugar en

la lista.

Si en lugar de n ponemos el valor de ListIndex :

variable = List1.List (List1.ListIndex) obtendremos el nombre del fichero

seleccionado.

Observe que en este último caso, el resultado es el mismo que el de List1.Filename

Veamos otras propiedades del FileListBox

Pattern

Devuelve o establece un valor que indica los nombres de archivo mostrados en

un control FileListBox en tiempo de ejecución.

Sintaxis objeto.Pattern [= valor]

La sintaxis de la propiedad Pattern consta de las siguientes partes:

objeto : Nombre del Control FileListBox

Page 67: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

67

valor: Expresión de cadena que indica una especificación de archivo, como *.* o *.FRM. La

cadena predeterminada es *.*, que obtiene una lista de todos los archivos. Además de

utilizar caracteres comodín, también puede especificar varios modelos, separándolos con

caracteres punto y coma (;). Por ejemplo, con *.EXE; *.BAT se obtendría una lista con

todos los archivos ejecutables y todos los archivos por lotes de MS-DOS.

Comentarios

La propiedad Pattern juega un papel clave en el diseño de las funciones de examen y

tratamiento de archivos de una aplicación. Puede utilizar Pattern en combinación con otras

propiedades de control de archivos para proporcionar al usuario formas de explorar archivos

o grupos de archivos similares. Por ejemplo, en una aplicación dedicada a iniciar otros

programas, podría hacer que sólo apareciesen los archivos .EXE en el cuadro de lista de

archivos (*.EXE).

Al modificar el valor de la propiedad Pattern se genera un evento PatternChange.

Archive, Hidden, Normal, System

Devuelven o establecen un valor que determina si un control FileListBox presenta los

archivos con los atributos Archive, Hidden, Normal o System.

El atributo Archive de un fichero indica si se ha variado ese fichero después de la última

copia de seguridad.

El atributo Hidden indica si el fichero se trata de un fichero oculto.

El atributo Normal indica que el fichero es un fichero “normal” (No está oculto ni es de

sistema).

El atributo System de un fichero indica que el fichero es un fichero de sistema.

Sintaxis

objeto.Archive [= booleano]

objeto.Hidden [= booleano]

objeto.Normal [= booleano]

objeto.System [= booleano]

Las sintaxis de la propiedades Archive, Hidden, Normal y System tiene la siguiente partes:

objeto :Nombre del FileListBox

booleano :Una expresión booleana (True / False) que especifica el tipo de archivos

presentados.

El valor booleano puede presentar los siguientes valores :

True :(Predeterminado para Archive y Normal) Presenta archivos con el atributo de la

propiedad en el control FileListBox.

False : (Predeterminado para Hidden y System) Presenta archivos sin el atributo de la

propiedad en el control FileListBox.

Page 68: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

68

Use estas propiedades para especificar el tipo de archivos a presentar en un control

FileListBox, basándose en los atributos de archivos estándar usados en el entorno operativo.

La definición de estas propiedades en el código en tiempo de ejecución hace que el control

FileListBox presente sólo aquellos archivos con los atributos especificados.

Por ejemplo, en una operación de buscar y reemplazar se podrían presentar solamente

archivos del sistema estableciendo la propiedad System a True y las demás propiedades a

False. También, como parte del procedimiento de copia de seguridad, se podría establecer la

propiedad Archive a True para relacionar solamente aquellos archivos modificados a partir

de la última copia de seguridad.

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 (*)

Top (*)

PROCEDIMIENTOS

Timer

Page 69: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

69

Se produce cada vez que se cumple un intervalo completo.

FORMULARIOS MÚLTIPLES

Interfaz SDI o MDI

Con el IDE de Visual Basic hay disponibles dos estilos diferentes: la interfaz de documento

simple (SDI) o la interfaz de documentos múltiples (MDI). Con la opción SDI todas las

ventanas del IDE se pueden mover libremente por cualquier lugar de la pantalla; siempre y

cuando Visual Basic sea la aplicación actual, permanecerán encima de las demás

aplicaciones. Con la opción MDI, todas las ventanas del IDE están contenidas en una única

ventana primaria de tamaño ajustable.

Para cambiar entre los modos SDI y MDI

1. En el menú Herramientas, seleccione Opciones.

2. Seleccione la ficha Avanzado .

3. Active o desactive la casilla de verificación Entorno de desarrollo SDI.

El IDE comenzará en el modo seleccionado la próxima vez que inicie Visual Basic o ejecute

Visual Basic desde la línea de comandos con el parámetro /sdi o /mdi.

Page 70: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

70

DISEÑO DE MENUS

EL EDITOR DE MENUS

El Menú o Barra de Menú es la segunda línea de cualquier ventana Windows, donde pueden

verse distintos nombres. La Barra de Menú es un componente de un Formulario.

La Barra de Menú puede tener tantas palabras como se desee, y sobre cada palabra, puede

desplegarse un Menú desplegable con mas palabras. Sobre cada una de estas puede a su vez

desplegarse otro conjunto de palabras, etc. con lo que se puede conseguir una cantidad de

palabras tan grande como necesitemos.

Para crear un menú debe usarse el Editor de Menú, que se encuentra en la Barra de Menú de

VB en Herramientas | Editor de menús.

Page 71: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

71

Cada palabra del menú tiene su Caption (La palabra que aparece en el menú), su Name

(Nombre), y puede tener Index (si existen varias palabras con el mismo Name). Para

introducir estas propiedades basta con teclearlas directamente en cada una de las casillas al

efecto del cuadro del editor de menús. Para colocar el cursor de escritura en una u otra

casilla, puede hacerse bien con el cursor del ratón, bien con el tabulador. Para pasar a la

siguiente línea de edición (crear una nueva palabra), basta con pulsar ENTER.

Existen otras propiedades aparte del Caption y Name que se introducen directamente en las

casillas al efecto.

HelpContextID. Igual que esta propiedad en el resto de los controles, permite introducir un

número de contexto para la ayuda de Windows.

Enabled. Habilitado. Si se quita la marca de esa casilla, esa palabra aparecerá por defecto

deshabilitada.

Visible. Como su nombre indica, que sea visible o no lo sea. Puede cambiarse en tiempo de

ejecución.

WindowList. Indica si esa palabra es la que va a mostrar todos los formularios abiertos en

una aplicación de documentos múltiples (MDI). Al hacer click sobre esta palabra, se

desplegará un submenú con todos los Caption de los Formularios hijo abiertos en ese

momento. Solamente puede existir una palabra en un menú con esta propiedad activada.

Esta propiedad no puede variarse en tiempo de ejecución.

Para cambiar una de estas propiedades en tiempo de ejecución, basta con citar por su

nombre a esa palabra (por su Name, no por su Caption), e igualar a True o False su valor :

nmenu.Visible = False

Otras propiedades

Shortcut. Atajo. Esta propiedad admite varias combinaciones de teclas para acceder al

procedimiento click de esa palabra sin necesidad de usar el ratón.

NegotiatePosition. Establece un valor que determina si los controles Menu de nivel superior

se muestran en la barra de menús mientras un objeto vinculado o incrustado de un

formulario está activo y mostrando sus menús. No está disponible en tiempo de ejecución.

Puede tener los valores 0 (Predeterminado) Ninguno. El menú no se muestra en la barra de

menús cuando el objeto está activo.

1 Izquierda. El menú se muestra a la izquierda de la barra de menús cuando el objeto está

activo.

2 Medio. El menú se muestra en medio de la barra de menús cuando el objeto está activo.

3 Derecha. El menú se muestra a la derecha de la barra de menús cuando el objeto está

activo.

El menú editado con los datos de la figura anterior tendrá esta forma en tiempo de

ejecución :

Page 72: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

72

Observe que tiene cuatro palabras en la línea superior, y que “colgando” de la primera

aparece un menú desplegable. Para conseguir un menú desplegable fíjese en la figura del

Editor, en la parte de abajo donde están todos los Caption de las palabras del menú.

Observará que algunas de ellas (&Edicion, Documentos, Ayuda - Hay otra que no se vé,

&Archivo) están completamente a la izquierda de la ventana, y las demás están separadas

de la parte izquierda por unos guiones. Las palabras que están completamente a la izquierda

son las que figurarán en la barra de menú de forma permanente. Las que están separadas

(tabuladas) corresponden a las que aparecerán en los menús desplegables. Como es lógico,

un menú desplegable debe colgar de una palabra de las de la barra de menú. La palabra de la

que cuelga el submenú es la palabra sin tabular inmediatamente anterior.

Para tabular las palabras, hay que hacer click en el botón en forma de flecha a la derecha que

está sobre la ventana de edición :

Situandonos sobre una de las líneas ya editadas, y haciendo click sobre el botón con flecha

hacia la izquierda, quitamos la tabulación.

Los botones con flecha hacia arriba o abajo nos permiten variar el orden de las líneas ya

editadas.

Podemos hacer varios niveles de submenús a base de introducir varias tabulaciones. Al

comienzo de este capítulo puede ver un ejemplo de ello.

Quedan un par de cosas. Una de ellas es el carácter & que está delante de los Caption de

Archivo y Edición. Este carácter nos permite acceder al procedimiento click de esa palabra

pulsando la tecla Alt + la tecla correspondiente a la letra que está detrás del carácter &.

Justamente la letra que está subrayada en la palabra del menú.

El carácter & no tiene porqué ir precisamente al comienzo de la palabra. Puede ir en el

medio de la palabra. De esta forma se subrayará una letra intermedia.

Page 73: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

73

Otra cosa. Puede verse en el menú desplegado de la figura anterior una línea entre Guardar

Como y SALIR. Esta línea, que solamente tiene efectos estéticos, se logra introduciendo

como Caption un guión ( - ). El editor de menús solamente le permite el guión en una

palabra de menú desplegable (Tabulada). No se olvide de poner el Name incluso para este

guión.

Barra de Herramientas. Control Toolbar

Este control permite realizar una barra de herramientas. La barra de herramientas es, como

ya conocerá, una barra donde existen varios iconos. Estos iconos realizan una determinada

función. Normalmente se ponen en la barra de herramientas los iconos que representan las

acciones mas frecuentes de una aplicación. Esto facilita la operación al no tener que

desplegar menús para buscar la operación a realizar.

Como el espacio que ocupan los iconos es grande, es también bastante normal que no estén

representados en la barra de herramientas todas las funciones posibles de la aplicación, sino

como decíamos, solamente las mas frecuentes. Pero ocurre que la función que para un

usuario es muy frecuente, para otro no lo es, por lo que también es habitual poder programar

los iconos que aparecen en la barra de herramientas.

Todo ello lo puede hacer el control Toolbar.

Para introducir el Toolbar es necesario que esté presente en la caja de herramientas el

control personalizado Microsoft Windows Common Controls (COMCTL32.OCX).

El control Toolbar es un contenedor de un array de iconos. Estos iconos forman botones

sobre los que se puede insertar código en sus procedimientos. A cada botón se le denomina

Button y a la colección de botones se le denomina Buttons. Cada Button es un elemento de

la colección Buttons y por lo tanto podemos referirnos a cada uno de ellos por el índice que

tiene dentro de la colección.

Los iconos de cada uno de los botones del Toolbar debe introducirse previamente en un

control ImageList. Como se recordará, un control ImageList es un almacén de imágenes,

que podemos usar en cualquier parte de la aplicación. Una de esas partes es la confección de

la barra de herramientas. Por lo tanto, es necesario introducir un control ImageList en

cualquier aplicación que use un control Toolbar. Todas las imágenes del Toolbar deben

estar en un único ImageList. Y este ImageList debe estar en el mismo formulario que el

Toolbar .

La barra de herramientas puede realizarse en tiempo de diseño (este sería el caso para

cuando no existiese variación ni elección de botones a lo largo de la ejecución de la

aplicación) o en tiempo de ejecución (caso que correspondería con una aplicación que

tuviese una barra de menú programable o que variase esta barra de menú dependiendo de

cada operación que se esté ejecutando en la aplicación).

Para realizar la barra de herramientas en tiempo de diseño, basta con visualizar el cuadro de

propiedades que aparece pulsando el botón derecho del ratón sobre el control Toolbar.

Aparecerá un cuadro de diálogo como este :

Page 74: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

74

Puede ver que en el cuadro ImageList aparece el nombre de un ImageList. Al desplegar la

lista aparecerán todos los ImageList que existan en el formulario. El ImageList debe estar en

el mismo formulario que el Toolbar. Deberá elegirse el ImageList que contenga las

imágenes de los iconos que queremos introducir en el Toolbar.

Este cuadro nos permite también introducir la forma que adoptará el puntero del ratón

cuando entre en el Toolbar (MousePointer), si el Toolbar aparece por defecto habilitado o

deshabilitado (Enabled) y si muestra o no un rótulo programable al pasar el ratón por encima

de cada botón del Toolbar. (ShowTips). (El uso de estos pequeños rótulos pueden hacer una

aplicación muy bonita) La propiedad AllowCustomize permite, si es True, cambiar el orden

de los botones e introducir separadores (vea evento DobleClick).

En el cuadro botones podemos introducir los datos deseados para cada uno de los botones

que compondrán la colección Buttons.

Para insertar un nuevo botón hay que hacer click sobre Insertar botón e insertará un nuevo

botón inmediatamente después del que figura en la propiedad Index (en la figura del

ejemplo, lo insertaría en segundo lugar, no en el último lugar como podría creerse). También

podemos eliminar un botón haciendo click sobre Eliminar botón.

Page 75: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

75

El Caption (opcional) es la palabra que figurará debajo del icono del botón.

Un botón se identifica por su índice. ( Toolbar1.buttons(1) )

La propiedad Key es un nombre que se puede añadir a cada botón. Esta propiedad sirve para

identificar el botón que se ha pulsado, pero no para nombrar al botón.

La propiedad Value es el valor por defecto, con el que aparecerá el botón al comienzo de la

aplicación. (Unpressed, no pulsado, Pressed, pulsado).

La propiedad Style define el tipo de botón :

0 - Default Botón monostable. (Se pulsa, pero no se mantiene pulsado)

1 - Check Botón Biestable. (Se mantiene pulsado y se levanta con otro

click)

2 - Button Group Solo uno de los botones del grupo puede estar pulsado. Esta

propiedad lleva implícito que los botones que forman un grupo

son biestables. Pueden hacerse varios grupos independientes

introduciendo un botón que no pertenezca a un grupo (tipos 0,

1, 3 ó 4) entre los dos grupos que se independientes que se

pretenden formar

3 - Separator El botón se convierte en un separador de anchura fija.

4 - PlaceHolder El botón se convierte en un separador de anchura

variable.

ToolTipText es el texto que aparecerá al lado del botón cada vez que se ponga el cursor del

ratón sobre el botón. Para que aparezca debe estar habilitada la propiedad ShowTips.

Image es el número de la imagen en el ImageList.

El control Toolbar también puede realizarse en tiempo de ejecución. Para introducir u botón

en el Toolbar hay que crear el botón y añadirlo a la colección Buttons de Toolbar. Podemos

hacerlo en una sola instrucción :

Set NombreBotón = NombreToolbar.Buttons.add ( [Indice], [Key], [Caption], [Style],

[Imagen])

NombreBotón puede ser cualquier nombre (es el nombre del objeto botón)

NombreToolbar es el nombre del Toolbar

Indice es el número de orden de ese botón dentro del Toolbar

Key es el valor de la propiedad Key del botón. Este valor debe ser único para cada botón.

Style es un número del 0 al 4 con el tipo de botón. Vea lista mas arriba

Imagen es el número de la imagen para ese botón, dentro del ImageList que las contiene.

Los botones pueden habilitarse y deshabilitarse usando la propiedad Enabled (True / False).

Recuerde que los botones se identifican por su índice :

Toolbar1.Buttons(Indice).Enabled = False

Para saber que botón se ha pulsado, puede leerse la propiedad Key :

Page 76: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

76

Text1.Text = Button.Key presenta en Text1 el texto introducido en la propiedad

Key del último botón pulsado.

Con la lectura de la propiedad Key, y la sentencia Case o If ... Then podemos iniciar la parte

de la aplicación asociada a cada botón.

El control Toolbar tiene los siguientes eventos :

ButtonClick

Este evento se produce cada vez que se hace click sobre un botón del Toolbar. Pasa como

parámetro el índice del botón pulsado. Podremos saber que botón se ha pulsado mediante

sentencias condicionales :

Private Sub Toolbar1_ButtonClick(ByVal Button As Button)

If Button.Index = 1 Then . . . .

If Button.Index = 2 Then . . . .

También podríamos usar la propiedad Key como se dijo mas atrás.

Click

Este evento se produce cuando se hace click sobre cualquier botón del Toolbar, pero no pasa

parámetros. (No distingue sobre que botón se ha hecho click) Podemos utilizarlo cuando se

quiera realizar una operación común para todos los botones (Que suene un Beep, por

ejemplo)

DobleClick

Este evento solamente se produce cuando se hace doble click en la parte del Toolbar donde

no hay botones, y la propiedad AllowCustomize esté a True. Si se hace doble click sobre un

botón se produce solamente el evento click (dos veces). Haciendo doble click en una zona

libre de botones, con la propiedad AllowCustomize = True nos permite cambiar el orden de

los botones e introducir separadores.

Change

Se produce solamente cuando se ha realizado algún cambio del orden por el procedimiento

anterior.

DragDrop, DragOver

Igual que cualquier control.

MouseMove, MouseUp, MouseDown

Page 77: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

77

Igual que el resto de los controles Pasa como parámetro el índice del botón, la tecla de

mayúsculas, y las posiciones x e y del ratón.

Private Sub Toolbar_MouseDown(Button As Integer, Shift As Integer, x As Single, y As

Single)

Este control solamente funciona en la versión de VB de 32 Bits. Pero para 16 bits puede

hacerse una cosa parecida (y mas sencilla) utilizando un control Picture como contenedor de

tantos controles Image como necesitemos. Dado que el control Picture dispone de propiedad

Align y puede servir como contenedor de otros controles, puede realizarse una barra de

herramientas similar a esta, y posiblemente de forma mas sencilla.

FUNCIONES Y PROCEDIMIENTOS (MÓDULOS)

Procedimientos y funciones:

Cada formulario (*.frm) y cada módulo (*.bas) de una aplicación pueden contener:

Page 78: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

78

Declaraciones (contantes, tipos, variables y procedimientos de las DLL)

Procedimientos producidos por sucesos.

Procedimientos generales.

La base de una aplicación en Visual Basic la forman sus procedimientos conducidos

por sucesos. Un procedimiento conducido por un suceso es el código que es invocado

cuando un objeto reconoce que ha ocurrido un determinado suceso.

Cuando varios procedimientos conducidos por sucesos necesiten ejecutar un mismo

proceso, por ejemplo visualizar un diagrama de barras, la mejor forma de proceder es

colocar el código común en un procedimiento general que será invocado desde cada

procedimiento conducido por un suceso que necesite ejecutar dicho código. De esta forma

se elimina la necesidad de duplicar código. Un procedimiento general es invocado cuando

se hace una llamada explícita al mismo.

Un procedimiento general puede escribirse como procedimiento Sub o como función

Function. Un procedimiento conducido por un suceso es siempre Sub.

Ambito de un procedimiento:

Cuando un procedimiento es llamdado para su ejecución, Visual Basic busca ese

procedimiento en el formulario o módulo donde se encuentre. Si no lo encuentra, entonces

continúa la búsqueda en el resto de los módulos de la aplicacion.

Consecuentemente, un procedimiento definido en un módulo puede invocarse desde

cualquier parte de la aplicación, pero un procedimiento ligado a un formulario solo puede

ser llamado desde otros procedimientos ligados tambien a ese formulario. Esto quiero decir

que un procedimiento definido en un módulo es público y un procedimiento definido en un

formulario es privado a ese formulario. Por lo tanto, el nombre para un procedimiento

definido en un módulo deber ser único para todos los modulos, mientras que el nombre para

un procedimiento definido en un formulario puede utilizarse tambien en otro formulario.

Crear un procedimiento general:

Para crear un procedimiento general (módulo) basta con hacer doble click sobre el

explorador de proyectos. El explorador de proyectos es la parte donde se visualizan las

partes que conforman el proyecto: los formularios y los módulos, por ejemplo.

Posteriormente, se entra al editor de procedimientos donde se escribe el codigo necesario.

Funciones (Function):

La sintaxis correspondiente a una función es la siguiente:

[Static] [Private] [Function nombre([parámetros]) As tipo]

[sentencias]

[nombre = expresión]

[Exit Function]

Page 79: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

79

[sentencias]

[nombre = expresión]

End Function

Donde:

Nombre Es el nombre de la funcion: su tipo determina el tipo de datos que devuelve la

funcion. Para especificar el tipo, se puede utilizar los caracteres de declaracion

de tipo o la claúsula As tipo (Integer, Long, Single, Double, Currency, String o

Variant)

Parámetros Son una lista de variables que se corresponden con los argumentos que son

pasados cuando es invocada la funcion. Cuando se llama a la funcion, Visual

Basic asigna el valor de cada argumento en la llamada al parametro que ocupa su

misma posicion en la lista de parametros.

Expresión Define el valor devuelto por la funcion. Este valor es almacenado en el propio

nombre de la funcion, que actua como variable dentro del cuerpo de la misma.

Si no se efectua esta asignacion, el resultado que será devuelto es cero si ésta es

numérica, nulo (“”) si la función es de caracteres o vacio si la funcion es variant.

Exit Sub Permite salir de una funcion. Exit Function no es necesaria a no ser que necesite

retornar a la sentencia inmediatamente a continuación de la que efectuó la

llamada antes de que la funcion finalice.

End Sub Esta sentencia, al igual que Exit Function, devuele el control a la sentencia

inmediatamente a continuación de la que efectuó la llamada, continuando de esta

forma la ejecución del programa.

La llamada a una función es de la forma:

Variable = nombre ([argumentos])

Los argumentos son una lista de constantes, variables o expresiones separadas por comas.

El numero de argumentos debe ser igual al numero de parametros de la funcion. Los tipos

de los argumentos deben coincidir con los tipos de sus correspondientes parametros.

En cada llamada a una funcion hay que escribir los parentesis, aunque esta no tenga

argumentos. Una llamada a una funcion es parte de una expresion.

Practica No. 12

El siguiente ejemplo corresponde a una funcion que devuelve como resultado el factorial de

un numero N. El formulario correspondiente es como

sigue:

Page 80: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

80

En el presente ejercicio utilizaremos

Function Factorial(N As Integer) As Long

Dim F As Long

If N = 0 Then

Factorial = 1

Exit Function

End If

F = 1

For i = 2 To N

F = F * i

Next i

Factorial = F

End Function

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

Fact = Factorial(Val(Text1))

Label3.Caption = Str(Fact)

End If

End Sub

En tiempo de ejecución el formulario de este ejercicio se vería como la figura siguiente:

Procedimientos:

La sintaxis que define un procedimiento es la siguiente:

Page 81: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

81

[Static][Private] Sub nombre [(parámetros)]

[Sentencias]

Exit Sub

[Sentencias]

End Sub

La explicación sobre cada parte del procedimiento es similar a la dada para las funciones.

La llamada a un procedimiento puede ser de alguna de las dos formas siguientes:

1. Call nombre_procedimiento [(parámetros)]

2. Nombre_procedimiento [(parámetros)]

A diferencia de una función, un procedimiento no puede ser utilizado en una expresión.

Para declarar procedimientos externos, esto es, procedimientos contenidos en una

DLL, se debe utilizar la sentencia Declare. Una sentencia Declare puede aparecer en la

sección de declaraciones del formulario o del módulo.

Práctica No. 13

En este ejercicio diseñaremos un formuario en el cual utilizaremos un procedimiento para

calcular el salario bruto de un empleado de acuerdo al salario por hora devengado y el total

de horas trabajadas. Se creará, asimismo, un procedimiento para realizar este cálculo,

pasándole los parámetros de las horas y el salario por hora. El diseño del formulario es

como la figura siguiente:

El código contenido en el formulario es como sigue:

Private Sub Cal_Salario(Hora As Integer, SB As Long)

Label4.Caption = Str(Val(Text1) * Val(Text2))

Page 82: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

82

End Sub

Private Sub cerrar_Click()

Unload Me

End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

Text2.SetFocus

End If

End Sub

Private Sub Text2_KeyPress(KeyAscii As Integer) (A PARTIR DE AQUI)

If KeyAscii = 13 Then

Cal_Salario Text1, Text2

End If

End Sub

El formulario, en tiempo de ejecución, se vería de la forma siguiente:

Ahora variando el ejercicio hacia procesar lo anterior mediante un módulo:

1. Diseñe el siguiente formulario en Visual Basic.

Page 83: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

83

2. Cree un módulo denominado Mod_Calcula.bas que calculará el Salario Normal y el

Salario Extra de un empleado determinado. El proyecto se visualizará asi:

En el botón “Calcular” del formulario escriba el siguiente código:

Private Sub Calcular_Click()

Dim HTraba, HPaga As Long

Dim SNormal As Long, SExtra As Long

HTraba = MaskEdBox1.Text

HPaga = MaskEdBox2.Text

Call Mod_Calcula(HTraba, HPaga, SNormal, SExtra)

Label6.Caption = Str(SNormal)

Label7.Caption = Str(SExtra)

Label8.Caption = Str(SNormal + SExtra)

End Sub

3. En el módulo Mod_Calcula.bas escriba el siguiente código:

Public Function Mod_Calcula (ByVal HoTrabaja As Long, _

Page 84: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

84

ByVal PagarHora As Long, _

ByRef Sal_Normal As Long, _

ByRef Sal_Extra As Long)

If HoTrabaja <= 48 Then

Sal_Normal = PagarHora * HoTrabaja

Else

Sal_Normal = PagarHora * 48

Sal_Extra = PagarHora * (HoTrabaja - 48) * 1.5

End If

End Function

Declarar todas las variables locales como estáticas:

Para hacer que todas las variables locales de un procedimiento sean por defecto

estáticas, hay que colocar al principio de la cabecera del procedimiento la palabra clave

static.

Por ejemplo:

Static Sub Cal_Salario(Hora As Integer, SB As Long)

„....

End Sub

Declarar un procedimiento privado:

Para que un procedimiento sea solo accesible desde los procedimientos del módulo al

cual pertenece, hay que colocar al principio de la cabecera del procedimiento la palabra

clave Private.

Por ejemplo:

Private Sub Cal_Salario(Hora As Integer, SB As Long)

„....

End Sub

La palara clave Private no tiene efecto cuando el procedimiento se declara en un

formulario, ya que éste, por definición, ya es privado. Esto aplica también en funciones.

Argumentos por referencia y por valor:

En las funciones (Function) y los procedimientos (Sub), los argumentos se pasan por

referencia; de este modo, cualquier cambio de valor que sufra un parámetro en el cuerpo de

la función o del procedimiento también se produce en el argumento correspondiente de la

llamada a la función o al procedimiento.

Cuando se llama a una función o aun procedimiento, se podrá especificar que el valor

de un argumento no sea cambiado por la función o el procedimiento, poniendo dicho

argumento entre paréntesis en la llamada. Un argumento entre paréntesis en la llamada es

un argumento pasado por valor. Por ejemplo:

Page 85: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

85

Factorial (Num), Fact

En esta llamda al procedimiento Factorial el argumento Num es pasado por valor.

Significa que lo que pasa es una copia de Num. Si el procedimiento cambia ese valor, el

cambio solo afecta a la copia y no a la propia variable Num.

Otra forma de especificar que un argumento será siempre pasado por valor es

anteponiendo la palabra ByVal a la declaración del parámetro en la cabecera del

procedimiento (Sub o Function). Por ejemplo:

Sub Factorial (ByVal N As Integer, F As Long)

Procedimientos recursivos:

Se dice que una función (Function) es recursiva o que un procedimiento es recursivo

si se llaman a sí mismos.

La función factorial, cuyo código se presenta a continuación, es recursiva:

Function Factorial (N As Integer) As Long

If N = 0 Then

Factorial = 1

Else

Factorial = N * Factorial (N – 1)

End If

End Function

Nota: Queda como ejercicio al estudiante implementar este ejercicio en el formulario

adecuado.

ARRAYS DE VARIABLES

Arreglos:

Un arreglo permite referirse a una serie de elementos del mismo tipo por un mismo

nombre y referenciar un único elemento de la serie utilizando un índice.

Page 86: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

86

Visual Basic, igual que sus predecesores, permite arreglos (Array) de variables de una

o más dimensiones y de cualquier tipo de datos (tipos fundamentales y tipos definidos por el

programador), e introduce un nuevo tipo de arreglos: arreglos de controles. Estos arreglos

son necesarios para escribir menús, crear nuevos controles en tiempo de ejecución o para

hacer que una serie de controles tengan asociado un mismo procedimiento para cada tipo de

suceso.

Arreglos de variables:

Los arreglos de este tipo permiten referirse a una serie de variables por un mismo

nombre y acceder individualmente a cada una de ellas utilizando un índice. Este tipo de

arreglos tiene que declararse en el código y pueden tener una o más dimensiones.

Arreglos estáticos:

Para declarar un arreglo estático, es decir con un número fijo de elementos, Visual

Basic hace tres consideraciones importantes:

Se debe declarar en la sección de declaraciones de un módulo o del formulario,

utilizando la sentencia DIM.

Se debe declarar un arreglo a nivel de formulario o de módulo, en la sección de

declaraciones del formulario o del módulo respectivo, utilizando la sentencia DIM.

Se debe declarar un arreglo local a un procedimiento utilizando la sentencia

STATIC dentro del propio procedimiento.

Ejemplos:

Dim Array_1 (1 To 5, 1 To 5) As Integer „Arreglo 5X5 de tipo Integer

Static Array_1 (1 To 10) As String „Arreglo de 10 elementos, tipo String.

Global Array_1 (12) As Integer „Arreglo de formulario de 10 elementos.

Arreglos dinámicos:

Las dimensiones de un arreglo puede que no sean siempre las mismas, por ende,

muchas veces se hace necesario que éste sea dinámico. El espacio requerido para el arreglo

será asignado en tiempo de ejecución del programa. Es decir, puede ser redimensionado en

cualquier momento durante la ejecución de un programa.

Para declarar un array dinámico:

Lo primero que debe hacerse es decidir si el arreglo va a ser local o global. Si es

global debe declararse, con Dim en un módulo, o con Static o Dim en el

formulario. Se debe dejar la lista de dimensiones vacía.l

Debe asignarse el número actual de elementos con la sentencia ReDim.

Page 87: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

87

La sentencia REDIM permite cambiar el número de elementos de un arreglo, es decir, lo

redimensiona pero no cambiar el número de dimensiones. Sin embargo, solo puede aparecer

en un procedimiento.

Finalmente, se deben tomar en cuenta las siguientes consideraciones:

Para aumentar o disminuir el tamaño actual de un arreglo multidimensional, solo

se puede cambiar el limite superior de la ultima dimensión. Si se disminuye,

logicamente se perderán algunos datos. Recuerdese que con la sentencia REDIM

array(I,J) se pierden los datos contenidos en dicho vector. Para conservarlos

utilice el mandato REDIM PRESERVE array(Ubound(array,2)+2) en este caso,

se incrementa el tamaño del arreglo y con la función Ubound (que devuelve el

valor más alto de la segunda dimensión.

Un arreglo es muy grande cuando su tamaño excede los 64 KB. No deben crearse

arreglos muy grandes cuando éstos involucren objetos, cadenas de caracteres de

longitud variable (de longitud fija si). Sin embargo, el tamaño máximo de un

arreglo no sobrepasa los 64 MB, con Windows ejecutándose en modo extendido y

1 MB cuando lo hace en modo estandar. El rango de cada una de las dimesniones

es de –32768 a 32767.

Ahora se creará una práctica para dejar básicamente dejar implicito el tema de los arreglos:

Práctica No. 14

Se creará un formulario en el cual residirá el código para crear un arreglo dinámico, el cuál

basará su tamaño en el valor que digite el usuario en el text1. Es decir, si el usuario digita

un valor 6, el vector se creará con 6 celdas de memoria.

El formulario alusivo es como el que se muestra en la figura siguiente:

El código anidado será:

En declaraciones generales del formulario:

Dim Arreglo() As Integer

Dim CambioLinea$, Fin%

Procedimientos creados:

Page 88: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

88

Private Sub Mostrar()

'ReDim Preserve Arreglo(1, Fin)

CambioLinea = Chr$(13) & Chr$(10)

Text2 = ""

For I% = 1 To Fin

Text2 = Text2 + Str(Arreglo(I)) & CambioLinea

Next I

End Sub

Private Sub Calculo1()

'La siguiente línea dimensiona el arreglo de acuerdo al número capturado „en el text1, es

decir, crea el número de celdas de acuerdo a text1.

Fin = Val(Text1)

ReDim Arreglo(Fin)

For I% = 1 To Fin

Arreglo(I) = I

Next I

Mostrar

End Sub

Private Sub Salir_Click()

Unload Me

End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

Calculo1

End If

End Sub

Adicionales:

En este apartado se presentan algunos ejemplos de código que pueden ser de utilidad

en el desarrollo de aplicaciones.

1. DoEvents:

Muchas veces se necesita tener algún procedimiento que permita cancelar una

operación determinada en alguna parte de la misma. Ejemplo clásico es la impresión de

documentos, la cual muchas veces se necesita cancelar dado que se ha presentado algún

inconveniente. En este ejemplo, simplemente se trata de procesar un determinado ciclo y

detenerlo en cualquier momento. Para ello se utiliza el método DoEvents. El formulario es

tal como se presenta:

Page 89: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

89

El código residente en el botón procesar es como sigue:

Private Sub Command1_Click()

Dim I%

Static optSeguir As Boolean

If optSeguir Then

optSeguir = False

Else

optSeguir = True

Command1.Caption = "&Detener"

Do While optSeguir And I < 1000000

I = I + 1

Label2.Caption = Str(I)

DoEvents

Loop

optSeguir = False

Command1.Caption = "&Procesar"

End If

End Sub

3. Tipos de Variables: El siguiente ejercicio pretende reforzar el uso de variables en Visual Basic. Inicialmente

diseñe el siguiente formulario:

Page 90: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

90

El código necesario es el siguiente:

En declaraciones generales:

Public ClicPub%

En el botón de variables estática:

Private Sub Command1_Click()

Static ClicEstatico As Integer

ClicEstatico = ClicEstatico + 1

Label2 = Str(ClicEstatico)

End Sub

En el botón de variable dinámica:

Private Sub Command2_Click()

Dim ClicD As Integer

ClicD = CliD + 1

Label1 = Str(ClicD)

End Sub

En el botón de variable pública:

Private Sub Command3_Click()

ClicPub = ClicPub + 1

Label3 = Str(ClicPub)

End Sub

En el botón de reiniciar variables:

Private Sub Reiniciar_Click()

ClicPub = 0

ClicEstatico = 0

End Sub

FUNCIONES API‟S DE WINDOWS

Librerías dinámicas:

Page 91: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

91

Un programador de aplicaciones además de conocer el ambiente para desarrollo

gráfico (windows) debe conocer también el entorno de desarrollo windows (Windows

Application Programming Interfase, conocido como API).

Las funciones Windows son el corazon de las aplicaciones Windows. Hay cientos de

funciones de Windows que ejecutan una variedad de tareas dispuestas para ser llamadas; por

ejemplo, desde C o desde Visual Basic. Los mensajes son utilizados por Windows para

permitir que las aplicaciones se comuniquen entre si y con el propio sistema Windows.

Una biblioteca de vínculos dinámicos (DLL) es un conjunto de procedimientos,

externos a la aplicación, a los que se puede llamar desde la aplicación. Las DLL no están

enlazadas a su archivo ejecutable y, por tanto, pueden vincularse en tiempo de ejecución en

lugar de cargarse en tiempo de compilación. Esto quiere decir que las bibliotecas pueden

actualizarse independientemente de la aplicación y que múltiples aplicaciones pueden

compartir una misma DLL.

Una librería dinámica (Dynamic Link Libraries), las cuales se abrevian como DLL‟s

permite que las las aplicaciones Windows compartan código y recursos. Una DLL es en

realidad un fichero ejecutable que contiene funciones de Windows que pueden ser utilizadas

por todas las aplicaciones.

La API (Interfaz de programación de aplicaciones) de Windows consta de las

funciones, mensajes, estructuras de datos, tipos de datos e instrucciones que puede utilizar

para crear aplicaciones que se ejecuten bajo Microsoft Windows. Las partes de la API que

más se utilizan son los elementos de código incluidos para llamar a funciones de la API

desde Windows. Estos incluyen declaraciones de procedimientos (para las funciones de

Windows), definiciones de tipos definidos por el usuario (para estructuras de datos pasadas a

esas funciones) y declaraciones de constantes (para valores pasados y retornados desde esas

funciones).

Una de las mejores características de Visual Basic, son sus librerías dinámicas. Una

DLL es una libreria de funciones que Windows lee y ejecuta atendiendo a las necesidades

del programa EXE que se ejecuta. Lo opuesto a una DLL es una libreria estatica, donde las

funciones necesarias para la ejecucion del programa EXE son copiadas en el program

durante el proceso de compilacion y enlace que lo genera.

La utilización de librerías dinámicas tiene ventajas. Una ventaja es que como están

separadas del programa, se pueden actualizar sin tener que modificar los programas que las

utilizan. Otra ventaja es el ahorro de memoria principal y de disco, ya que, como es

Windows quien administra la utilizacion de las DLL, no existe duplicidad de codigo cuando

varias aplicaciones las utilizan.

Tambien tiene inconvenientes. Uno de ellos es el tiempo que Windows tiene que

emplear en leer las funciones que el programa necesita utilizar de una DLL. Otra desventaja

es que cada programa ejecutable necesita que esten presentes las DLL que utiliza. Cuando

se utilizan librerias estaticas, las funciones que el programa necesita se incluyen en el

mismo, por lo que ni se pierde tiempo en leerlas, ni la librería tiene que estar presente.

Page 92: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

92

Las funciones de la API de Windows están disponibles en las librerías Kernel, GDI y

User. Las DLL para esas funciones están en los ficheros KERNEL.EXE, GDI.EXE, y

USER.EXE, localizados en el directorio SYSTEM de Windows. Visual Basic puede utilizar

DLL creadas en cualquier lenguaje, con muy pocas excepciones.

Las versiones de 32 bits del sistema operativo Windows (Windows 95 y Windows NT)

constan de tres DLL principales: User32, GDI32 y Kernel32. Estas DLL proporcionan la

mayor parte de la funcionalidad de la API de Windows.

® User32

User32.dll trata las tareas relacionadas con la administración de ventanas, menús,

controles y cuadros de diálogo. Por ejemplo, puede llamar al procedimiento

FlashWindow de User32.dll para hacer que una ventana parpadee.

® GDI32

GDI32.dll se encarga de la presentación de gráficos.

® Kernel32

Kernel32.dll se ocupa de las tareas del sistema operativo. Por ejemplo, puede llamar al

procedimiento GetWindowsDirectory de Kernel32.dll para obtener la ruta de acceso

actual de la carpeta de Windows. Además de estas tres DLL, Windows 95 y Windows NT contienen muchas otras DLL que

amplían la funcionalidad de Visual Basic.

Para acceder a las librerias dinamicas, Visual Basic utiliza la sentencia Declare.

Hay dos pasos básicos para usar un procedimiento de una DLL:

1. Utilizar la instrucción Declare para indicar a Visual Basic qué procedimiento desea usar.

2. Llamar al procedimiento de una DLL desde el lugar adecuado del código.

Ventajas del uso de DLL:

Con las DLL, puede:

® Realizar tareas no disponibles en Visual Basic.

Page 93: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

93

Las DLL pueden realizar tareas que son difíciles o imposibles de efectuar desde

Visual Basic. Por ejemplo, puede llamarse a un procedimiento de una DLL para

que la aplicación permanezca como la ventana visible.

® Aumentar el rendimiento.

El código de una DLL suele ejecutarse más rápidamente que el código de Visual

Basic. Si se tiene un procedimiento que requiere el máximo rendimiento, puede

escribirlo como una DLL y, a continuación, llamar a la DLL desde Visual Basic.

® Realizar actualizaciones independientemente de la aplicación.

Puede actualizarse una DLL sin volver a compilar la aplicación que la invoca, lo

que facilita la administración de la aplicación.

Declaración de una función de una DLL:

Para declarar una funcion de una libreria dinámica, se tiene que escribir una sentencia

Declare en la sección de declaraciones de un formulario o de un modulo de la aplicacion

Visual Basic. Una funcion declarada en un formulario es privada para ese formulario, y

declarada en un módulo, es pública, y por lo tanto puede ser llamada desde cualquier parte

de la aplicación.

Sintaxis 1:

[Public | Private] Declare Sub nombre Lib "nombre_biblioteca" [Alias "nombre_alias"]

[([lista_argumentos])]

Sintaxis 2:

[Public | Private] Declare Function nombre Lib "nombre_biblioteca" [Alias "nombre_alias"]

[([lista_argumentos])] [As tipo]

La sintaxis de la instrucción Declare consta de las siguientes partes:

Parte Descripción

Public Opcional. Se usa para declarar procedimientos que están

disponibles para todos los demás procedimientos en todos los

módulos.

Private Opcional. Se usa para declarar procedimientos que sólo están

disponibles dentro del módulo donde se hace la declaración.

Sub Opcional(debe aparecer Sub o Function). Indica que el

procedimiento no devuelve un valor.

Function Opcional (debe aparecer Sub o Function). Indica que el

procedimiento devuelve un valor que se puede utilizar en una

expresión.

nombre Requerido. Cualquier nombre válido de procedimiento.

Observe que los puntos de entrada de las DLL distinguen

mayúsculas de minúsculas.

Page 94: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

94

Lib Requerido. Indica que el procedimiento que está declarando se

encuentra en una DLL o un recurso de código. La cláusula Lib

es obligatoria para todas las declaraciones.

nombre_

biblioteca Requerido. Nombre del archivo DLL o del recurso de código

que contiene el procedimiento declarado.

Alias Opcional. Indica que el procedimiento al que se llama tiene

otro nombre en la DLL. Esto es útil cuando el nombre del

procedimiento externo es el mismo que el de una palabra

clave. También es posible usar Alias cuando un procedimiento

de DLL tiene el mismo nombre que una variable pública, una

constante o cualquier otro procedimiento con el mismo

alcance. Alias también resulta útil si algún carácter del nombre

del procedimiento de la DLL no se admite como nombre.

nombre_

alias Opcional. Nombre del procedimiento de la DLL o del recurso

de código. Si el primer carácter no es un signo de número (#),

nombre_alias es el nombre del punto de entrada del

procedimiento en la DLL. Si # es el primer carácter, todos los

caracteres que le siguen deberán indicar el número ordinal del

punto de entrada del procedimiento.

lista_

argumentos Opcional. Lista de variables que representan argumentos que

se pasan al llamar al procedimiento.

Tipo Opcional. Tip o de datos del valor devuelto por un

procedimiento Function; puede ser Byte, Boolean, Integer,

Long, Currency, Single, Double, Decimal (no admitido

actualmente), Date, String (sólo de longitud variable), o

Variant, un tipo definido por el usuario o un tipo de objeto.

Page 95: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

95

El argumento lista_argumentos posee las siguientes partes y sintaxis:

[Optional] [ByVal | ByRef] [ParamArray] nombre_variable[( )] [As tipo]

Parte Descripción

Optional Opcional. Indica que un argumento no se requiere. Si se usa,

todos los argumentos subsiguientes de lista_argumentos

también deben ser opcionales y deben declararse mediante la

palabra clave Optional. No se puede utilizar Optional para

ningún argumento si se utiliza ParamArray.

ByVal Opcional. Indica que el argumento se pasa por valor.

ByRef Indica que el argumento se pasa por referencia. ByRef es el

modo predeterminado en Visual Basic.

ParamArray Opcional. Se usa sólo como el último argumento de

lista_argumentos para indicar que el argumento final es una

matriz Optional de elementos Variant. La palabra clave

ParamArray le permite incluir un número arbitrario de

argumentos. No se puede usar con ByVal, ByRef u Optional.

nombre_

variable Requerido. Nombre de la variable que representa el argumento

que se pasa al procedimiento; sigue las convenciones estándar

de nombres de variables.

() Requerido para variables de matriz. Indica que

nombre_variable es una matriz.

Tipo Opcional. El tipo de datos del argumento que se pasa al

procedimiento; puede ser Byte, Boolean, Integer, Long,

Currency, Single, Double, Decimal (no admitido actualmente),

Date, String (sólo longitud variable), Object, Variant, un tipo

definido por el usuario o un tipo de objeto.

Comentarios:

Para los procedimientos Function el tipo de datos del procedimiento determina el tipo

de datos que devuelve. Puede usar una cláusula As a continuación de lista_argumentos para

especificar el tipo de valor devuelto por la función. Dentro de lista_argumentos puede

utilizar una cláusula As para especificar el tipo de datos de los argumentos que se pasan al

procedimiento. Además de especificar cualquiera de los tipos de datos estándar, puede

especificar As Any en lista_argumentos para inhibir la comprobación del tipo de datos y

permitir el paso de cualquier tipo de datos al procedimiento.

Los paréntesis vacíos indican que el procedimiento Sub o Function no tiene ningún

argumento y que Visual Basic debe comprobar que no se pasa ninguno. En el ejemplo

siguiente, Primero no toma ningún argumento. Si usa argumentos en una llamada a Primero,

ocurrirá un error:

Declare Sub Primero Lib "MiBiblioteca" ()

Page 96: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

96

Si se incluye una lista de argumentos, se comprobará el número y el tipo de argumentos

cada vez que se llame al procedimiento. En el ejemplo siguiente, Primero toma un

argumento Long:

Declare Sub Primero Lib "MiBiblioteca" (X As Long)

Nota No es posible tener cadenas de longitud fija en la lista de argumentos de una

instrucción Declare; sólo se pueden pasar cadenas de longitud variable a los procedimientos.

Las cadenas de longitud fija pueden aparecer como argumentos de procedimientos, pero se

convierten a cadenas de longitud variable antes de pasarse.

Nota La constante vbNullString se utiliza al llamar a procedimientos externos, donde el

procedimiento externo requiere una cadena cuyo valor es cero, que no es lo mismo que una

cadena de longitud cero ("").

Un ejemplo:

Declare Function lopen Lib “Kernel” Alia “_lopen” (ByVal lpPathName _

As String, ByVal iReadWrite As Integer) As Integer

Observese en la declaracion las palabras claves Lib (librería) y ByVal (por valor).

Opcionalmente puede aparecer también la palabra clave Alias.

Si la funcion no retorna un valor, se debe declarar como un procedimiento Sub. Por

ejemplo:

Declare Sub CloseWindow Lib “User” (ByVal hWnd As Integer)

La clausula Lib indica a Visual Basic la librería donde puede encontrar la funcion de la API

de Windows declarada.

Los argumentos de una función pueden ser pasados por valor o por referencia. Visual Basic

pasa los argumentos por referencia (utilizando direcciones de 32 bits). Para pasar un

argumento por valor, debe escribirse la palabra clave ByVal delante de la declaración del

argumento.

Algunas funciones aceptan más de un tipo de datos de un mismo argumento. Esto se indica

declarando el argumento como Any. Por ejemplo:

Declare Function Catch Lib “Kernel” (lpCatchBuf As Any) As Integer

a función de una DLL:

Una vez que se ha declarado una función, puede ser invocada exactamente igual que otras

funciones intrínsecas de Visual Basic. Por ejemplo:

Declare Function IsIconic Lib “User” (ByVal hWnd As Integer) As Integer

If IsIconic(Form2.hWnd) Then...

Este ejemplo llama a la función IsIconic para verificar si el formulario 2 es un icono.

Tipos de datos en las llamadas

Page 97: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

97

Visual Basic posee diversos tipos de datos, muchos de los cuales no son soportados por las

API‟s de Windows. Por ende, se debe poner mucha atención cuando se llame a estas

funciones.

Cadenas de caracteres: Las mayoría de funciones DLL esperan cadenas de carácteres

estándar C (ASCIIZ), las cuales finalizan con un caracter nulo (0 ANSI). En este caso

anteponga la palaba ByVal a la declaración del parámetro de la función. Asi, Visual Basic

interpreta que debe utilizar el estilo C para pasar la cadena de caracteres. Por la misma

razon, una funcion de una DLL no puede retornar una cadena de caracteres, excepto cuando

se haya escrito especificamente para Visual Basic.

Si la funcion ha sido escrita especificamente para Visual Basic, entonces no necesita utilizar

la palabra ByVal. En este caso, la funcion podria retornar una cadena de caracteres.

Ya que las cadenas son pasadas por referencia a una funcion de una DLL, puede suceder que

la funcion modifique la cadena VB. En este caso, hay que tener cuidado, ya que si la

longitud de la variable de caracteres no es suficiente, como la función no puede incrementar

dicha longitud, simplemente escribe a continuacion del final, destruyendo asi areas de

memoria. Para evitar este problema, se debe declarar la cadena de caracteres lo

suficientemente grande.

Por ejemplo, la función GetWindowsDirectory, cuya declaracion es:

Declare Function GetWindowsDirectory Lib “Kernel” (ByVal lpBuffer As String, ByVal_

nSize As Integer) As Integer

devuelve en su primer argumento el camino del directorio de Windows. Como medida de

seguridad, para llamar a la función se debe declarar el primer argumento como una cadena

de longitud 255, tal y como se muestra:

Dim W As Integer, Ruta As String * 255

W = GetWindowsDirectory(Ruta, Len(Ruta))

Otra solución puede ser definir una cadena de longitud variable y rellenarla de nulos. Esto

es:

Dim W As Integer, Ruta As String

Ruta = String$(255,0)

W = GetWindowsDirectory(Ruta, Len(Ruta))

Práctica No. 15

Page 98: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

98

En el siguiente ejemplo se mostrará la utilización de las API‟s de Windows. Deberá diseñar

dos formularios denominándolos Dialog y Form1, asimismo, dos módulos que realizarán las

llamadas a dos funciones API‟s. El proyecto debe mostrarse tal y como se muestra en la

figura siguiente:

El formulario FORM1 tendrá el siguiente aspecto:

Asimismo, el formulario Dialog será:

En el botón “Ver Ventana con función API” digite el siguiente código:

Private Sub EjecutarAPI_Click()

Dialog.Show

End Sub

El botón “Ubicar Carpeta de Windows (API)” tendrá el código siguiente:

Private Sub DirWindows_Click()

Page 99: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

99

Dim sWinDir As String

Dim lLen As Long

Dim Mensa$

CL = Chr$(13) & Chr$(10)

Mensa = "El directorio actual de Windows" & CL

Mensa = Mensa & "está en la carpeta : " & CL & CL

sWinDir = String(255, 0)

lLen = GetWindowsDirectory(sWinDir, Len(sWinDir))

sWinDir = Left(sWinDir, lLen)

sWinDir = sWinDir + "\"

MsgBox Mensa & sWinDir, vbOKOnly, "Usando API GetWindowsDirectory"

End Sub

En el formulario Dialog digite el siguiente código:

Option Explicit

Private Sub Form_Load()

Dim Mensaje$

Dim CambioLinea$

CambioLinea = Chr$(13) & Chr$(10)

Dialog.Height = 2550

Dialog.Left = 2715

Dialog.ScaleHeight = 2175

Dialog.ScaleWidth = 5085

Dialog.Top = 3420

Dialog.Width = 5175

Mensaje = Mensaje & " Ha ocurrido un error de aplicación " & CambioLinea

Mensaje = Mensaje & " debe proceder a apagar el equipo y " & CambioLinea

Mensaje = Mensaje & " y llamar al dpto de Soporte Técnico."

Label1.Caption = Mensaje

End Sub

Private Sub OKButton_Click()

Unload Me

Form1.Show

End Sub

Private Sub Timer1_Timer()

Dim lresultado As Variant

lresultado = FlashWindow(Dialog.hWnd, 2)

End Sub

Por su parte, el modulo 1 (module1) de nombre FlashWindows.bas contendrá el llamado a

la función FlashWindows que permite que un formulario parpadee de acuerdo a ciertos

argumentos dados en el timer. En este caso, cada 2 segundos. El profesor le explicará con

detalles sobre este acontecimiento. El código de la función será la siguiente:

Page 100: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

100

'En las declaraciones generales de un módulo .BAS.

Declare Function FlashWindow Lib "User32" _

(ByVal hWnd As Long, ByVal bInvert As Long) _

As Long

En cuanto el módulo GetsWindowsDirectory el cual es otra función API de Windows lo que

pretende es obtener la ruta donde yacen los archivos del sistema operativo Windows. El

código es el siguiente:

Declare Function GetWindowsDirectory Lib "Kernel32" _

Alias "GetWindowsDirectoryA" _

(ByVal f As String, ByVal fLen As Long) As Long

Arreglos:

Se debe recordar que a una funcion o procedimiento Visual Basic (Function o Sub) se

puede pasar como argumento un arreglo íntegro. Por ejemplo:

Declare Sub FX ( a(), f%, c%)

„...

Dim w(1 To Filas, 1 To Cols)

Call FX(w(), Filas, Cols)

Por el contrario, a una función de una DLL no se le puede pasar un arreglo integro, ni un

arreglo mayor a los 64 Kb, de la misma forma que a una función VB, a no ser que haya sido

escrita especificamente para VB. Para pasar un arreglo íntegro a una funcion de una DLL,

se debe pasar el primer elemento del arreglo por referencia. Esto es así por que los

elementos del arreglo están colocados en posiciones sucesivas de memoria. Una funcion de

una DLL a la que se le pasa el primer elemento de un arreglo tiene acceso a todos los

elementos del arreglo. Esto es valido para arreglos numéricos, pero no para de tipo cadena.

Tipos definidos por el usuario (estructuras):

Algunas funciones de las DLL aceptan un tipo definido por el usuario como argumento (una

estructura). Una estructura hay que pasarla por referencia. Por ejemplo:

Type RECT

Left As Integer

Top As Integer

Right As Integer

Bottom As Integer

End Type

Declare Sub InvertRect Lib “User” (ByVal hDC As Integer, lpRect As RECT)

Dim Posicion As RECT

La llamada siguiente pasa la estructura Posicion a la función InvertRect:

InvertRect hDc, posicion

Page 101: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

101

También es posible pasar estructuras que incluyan miembros que sean cadenas de

caracteres. Si la estructura contiene miembros que son cadenas de caracteres, debe definirse

a éstos como de longitud fija.

Para finalizar esta sesión de las API‟s de Windows crearemos un nuevo ejemplo mediante la

siguiente práctica:

Práctica No. 16

Para finalizar una sesión Windows bajo el control de una aplicación Visual Basic, se debe

utilizar la función API de Windows ExitWindows, cuya sintaxis es la siguiente:

Declare Function ExitWindows Lib “User” (ByVal dwReturnCode As Long,_

ByVal wReserved As Integer) As Integer

Recuerdese que una sentencia Declare debe estar en una sola línea.

Esta función permite iniciar Windows de nuevo, finalizar Windows y devolver el control a

DOS o finalizar Windows y arrancar la computadora de nuevo. El argumento

dwReturnCode especifica la accion a tomar; la palabra de mayor peso es cero y la de

menor peso puede ser: 0 (para finalizar Windows y devolver el control a DOS) 0x67

(finalizar Windows y arrancar la computadora de nuevo) 0x66 (reiniciar Windows). El

argumento wReserved es un valor reservado y debe ser 0.

Cuando la función ExitWindows es invocada Windows envia un mensaje a todas las

aplicaciones, notificándoles que ha sido requerida (como presionar CTRL+ALT+DEL) la

accion de finalizar Windows. Entonces esas aplicaciones pueden finalizar controladamente;

por ejemplo un procesador de textos preguntará al usuario si quiere guardar el documento

que se encuentra en ese momento abierto, entre otros. En el caso de que una o más

aplicaciones rehusen finalizar, esta función retorna 0. Windows enviará un mensaje

notificando y no finalizará; en otro caso, retorna un valor distinto de cero y se realizará la

acción requerida.

La utilización de ExitWindows es una buena idea para no perder datos.

Se diseñará un formulario tal y como se muestra a continuación:

Page 102: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

102

En el botón “Salir de Windows” escriba el siguiente código:

Private Sub CmdSalirDeWindows_Click()

'Salir de Windows y retornar a DOS

If ExitWindows(0, 0) = 0 Then

MsgBox "No se puede salir de Windows"

End If

End Sub

Posteriormente, cree un módulo para realizar la llamada a la función API de Windows

ExitWindows y coloque en ella el código siguiente:

Declare Function ExitWindows Lib "User" _

(ByVal wReserved As Long, _

ByVal dwReturnCode As Integer) As Integer

Procedimientos de la API de Windows utilizados con frecuencia

En la tabla siguiente se muestran algunos procedimientos de DLL procedentes de la API de

Windows que se suelen utilizar para ampliar las aplicaciones de Visual Basic.

BitBlt: Mover un mapa de bits de un contexto de dispositivo de origen a un destino.

ExtractIcon, DrawIcon y LoadIcon: Manipular iconos.

FindExecutable: Buscar y recuperar el nombre del archivo ejecutable asociado a un

determinado archivo.

GetSystemDirectory: Obtener la ruta de acceso del directorio del sistema de

Windows.

GetSystemMetrics: Obtener el alto y el ancho de los elementos de pantalla de

Microsoft Windows.

GetTempFileName: Devolver un nombre de archivo temporal y una ruta de acceso

mediante la variable de entorno TEMP.

GetWindowPlacement, SetWindowPlacement: Obtener o establecer el estado de

presentación y las posiciones normal (restaurada), minimizada y maximizada de una

ventana.

SendMessage: Enviar mensajes de Windows para controlar aplicaciones. Por

ejemplo, el mensaje LB_SETTABSTOPS establece las tabulaciones de un cuadro de

lista. LB_FINDSTRING busca la primera cadena del cuadro de lista que coincide con el

texto del prefijo. Hay centenares de mensajes distintos.

BringWindowToTop, SetActiveWindow: Establecer el enfoque en una

determinada ventana.

Page 103: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

103

DragAcceptFiles, DragFinish: Proporcionar las características de arrastrar y colocar

archivos.

FindWindow, ShowWindow: Comprobar si una aplicación determinada está o no en

ejecución actualmente.

GetActiveWindow, IsWindow: Determinar cuándo una función de núcleo ha terminado

de cargar un programa.

GetWindowText: Obtener el título de una ventana o el texto de un control, dado un

controlador de ventana.

Page 104: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

104

Page 105: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

105

Page 106: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

106

Page 107: INSTITUTO SUPERIOR TECNOLÓGICO NORBERT …wiener.edu.pe/manuales/CicloI/LENGUAJE-DE-PROGRAMACION-I-VBI.… · Diagramas De Flujo ... Visual Basic se encuentra disponible en tres

Manual del Alumno

107