BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf ·...

421
CAPÍTULO 1 FUNDAMENTOS Microsoft Visual Basic es un conjunto de herramientas que posibilitan el desarrollo de aplicaciones para Windows de una manera rápida y sencilla, basado en el lenguaje BASIC y en la programación orientada a objetos. La palabra “Visual” hace referencia al método que se utiliza para crear la interfaz gráfica de usuario. En lugar de escribir numerosas líneas de código para implementar la interfaz, simplemente se utiliza el ratón para agregar objetos prefabricados en el lugar deseado dentro de la pantalla. 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. 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. El lenguaje de programación Visual Basic no es exclusivo de Microsoft Visual Basic. Este lenguaje es utilizado también por Microsoft Excel, Microsoft Access y muchas otras Pág. 1

Transcript of BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf ·...

Page 1: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

CAPÍTULO 1

FUNDAMENTOS

Microsoft Visual Basic es un conjunto de herramientas que

posibilitan el desarrollo de aplicaciones para Windows de una

manera rápida y sencilla, basado en el lenguaje BASIC y en la

programación orientada a objetos.

La palabra “Visual” hace referencia al método que se

utiliza para crear la interfaz gráfica de usuario. En lugar de

escribir numerosas líneas de código para implementar la

interfaz, simplemente se utiliza el ratón para agregar objetos

prefabricados en el lugar deseado dentro de la pantalla.

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

El lenguaje de programación Visual Basic no es exclusivo

de Microsoft Visual Basic. Este lenguaje es utilizado también

por Microsoft Excel, Microsoft Access y muchas otras

Pág. 1

Page 2: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

aplicaciones Windows. El lenguaje de programación Visual Basic

Script para programar en Internet es un subconjunto del

lenguaje Visual Basic. De tal forma, que la inversión realizada

en el aprendizaje de Visual Basic le ayudará a abarcar estas

otras áreas.

EJECUTANDO VISUAL BASIC

Si ya tiene instalado Visual Basic, para ejecutarlo

proceda igual que con cualquier otra aplicación Windows: hacer

click en el icono correspondiente.

En seguida se presentará una ventana similar a la figura

siguiente:

Pág. 2

Page 3: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

En la ventana anterior indicar el tipo de proyecto que

desea crear (para nuestro caso seleccionar EXE estándar) y dar

click sobre el botón “Abrir”. En ese instante se presentará el

Entorno Integrado de Desarrollo (IDE) de Visual Basic:

Los elementos que componen el IDE de Visual Basic son:

• Barra de menús • Barra de herramientas

• Cuadro de herramientas • Diseñador de formularios

• Explorador de proyectos • Ventana de propiedades

• Posición del formulario • Menús contextuales

Barra de menús

Pág. 3

Page 4: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Presenta las órdenes que se utilizan para desarrollar una

aplicación. Las opciones más utilizadas son: Archivo, Edición,

Ver, Ventana y Ayuda. Se proporcionan otros menús para tener

acceso a funciones específicas de programación como Proyecto,

Formato o Depuración.

Barra de herramientas

Facilita el acceso rápido a las órdenes más comúnmente

utilizadas. Omitimos el significado de cada botón porque le

será mostrado al pasar el puntero del ratón sobre cada uno de

ellos.

Puede visualizar otras barras de herramientas ejecutando

la opción Barra de herramientas del Menú Ver.

Cuadro de herramientas

Proporciona un conjunto de herramientas que permiten

diseñar la interfaz gráfica de usuario.

Pág. 4

Page 5: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Icono Descripción

Puntero

Cuadro de imagen

Etiqueta

Cuadro de texto

Marco

Botón de comando

Casilla de verificación

Botón de opción

Cuadro combinado

Cuadro de lista

Barra de desplazamiento horizontal

Barra de desplazamiento vertical

Cronómetro

Cuadro de lista de unidades

Cuadro de lista de directorios

Cuadro de lista de archivos

Formas

Líneas

Imagen

Contenedor OLE

Pág. 5

Page 6: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para utilizar algún objeto simplemente debe hacer doble

click sobre el icono correspondiente, luego puede cambiar su

posición y sus dimensiones.

Diseñador de formularios

Es la ventana sobre la que colocaremos los objetos

(controles) de la interfaz de usuario.

Explorador de proyectos

Contiene el conjunto de archivos que constituyen la

aplicación o proyecto.

Pág. 6

Page 7: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Ventana de propiedades

Como veremos más adelante, cada objeto lleva asociado un

conjunto de propiedades. Para ver o especificar los valores de

las propiedades de los objetos, utilizaremos la ventana de

propiedades.

Posición del formulario

Esta ventana le permite especificar la posición de los

formularios de la aplicación.

Menús contextuales

Pág. 7

Page 8: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Es un menú emergente que presenta órdenes específicas

relativas a un determinado objeto. Para abrir un menú

contextual, dar click derecho sobre el objeto. Por ejemplo, al

dar click derecho sobre el formulario se presenta el siguiente

menú contextual.

Ventana de código

Se presenta cuando se hace doble click sobre un objeto que

se encuentra en el Diseñador de formularios. Esta ventana

muestra dos cuadros combinados (combos) en la parte superior,

en una aparece el nombre del objeto (izquierda) y en la otra el

nombre del evento (derecha).

Pág. 8

Page 9: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

MI PRIMERA APLICACIÓN

Hay tres pasos principales para crear una aplicación en

Visual Basic:

• Crear la interfaz.

• Establecer propiedades.

• Escribir el código.

Para ver como se realiza esto, siga los pasos del

siguiente ejemplo para crear una aplicación sencilla que

consiste en un formulario y un botón de comando. Cuando haga

click en el botón de comando aparecerá el mensaje “Visual Basic

es fácil” en un cuadro de diálogo predefinido.

Creación de la interfaz

Para el desarrollo del presente ejemplo proceda a crear

una nueva aplicación. En seguida añadir un botón de comando al

formulario, para ello en el Cuadro de herramientas, dar doble

click sobre el control deseado, tal como se indica en la figura

siguiente:

Pág. 9

Page 10: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

La apariencia de la interfaz debe ser similar a la figura

mostrada:

Estableciendo las propiedades

Para ver las propiedades de un objeto, simplemente debe

seleccionarlo y pulsar la tecla F4. Por ejemplo la figura

siguiente muestra las propiedades del botón de comando y

podemos ver que la propiedad Caption tiene el valor “Command1”.

Pág. 10

Page 11: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Puede cambiar el valor de cualquier propiedad

seleccionándolo de la ventana anterior y simplemente

modificando su valor, por ejemplo para el caso anterior

establezca el valor de la propiedad Caption de “Command1” a

“Haga click aquí”.

De manera similar proceda cambiar la propiedad Caption del

formulario a “Mi primera aplicación”. La apariencia de la

interfaz debe ser similar a la figura mostrada:

Pág. 11

Page 12: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Escribiendo el código

Para ingresar el código a la aplicación debe dar doble

click sobre el control al cual asociaremos dicho código. Para

nuestro caso dar doble click sobre el botón de comando e

ingresar el código que se indica a continuación:

Para guardar la aplicación que acaba de crear, seleccione

la opción Guardar Proyecto del Menú Archivo.

Bueno, ahora sólo falta que ejecute su aplicación. Para

ello simplemente debe pulsar la tecla F5. El resultado debe ser

similar al siguiente:

Pág. 12

Page 13: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

CAPÍTULO 2

LOS OBJETOS

Visual Basic se basa en la programación orientada a

objetos (POO), la cual es una forma de programación que utiliza

objetos (similares a los objetos del mundo real) para la

solución de problemas. La POO permite descomponer un problema

en bloques relacionados. Cada bloque pasa a ser un objeto

autocontenido que contiene sus propios datos e instrucciones.

De esta manera, la complejidad se reduce y se pueden realizar

programas más largos de una manera sencilla.

MECANISMOS BÁSICOS DE LA POO

Los mecanismos básicos de la programación orientada a

objetos son:

• Objetos

• Propiedades

• Métodos

• Eventos

• Mensajes

• Clases

Pág. 13

Page 14: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Objetos

Un objeto es una entidad que tiene atributos particulares

(propiedades) y unas formas de operar sobre ellos (métodos).

Por tanto, un objeto contiene variables que especifican su

estado y operaciones que definen su comportamiento.

Son ejemplos de objetos: formularios, botones de comando,

cuadros de texto, etiquetas, etc.

Propiedades

Las propiedades representan las características del

objeto. Hay propiedades particulares, como Caption que la

poseen los botones de comando por ejemplo, y genéricas como

Name que la poseen todos lo objetos.

Métodos

Los métodos son procedimientos asociados a un objeto. Se

ejecutan como respuesta a un evento, por ejemplo al dar click

en un botón de comando. También pueden ser invocados

explícitamente en el programa.

Eventos

Un evento es la capacidad de un objeto de reaccionar

cuando ocurre una determinada acción (acción y reacción). Como

respuesta a un evento se envía un mensaje y se ejecuta un

determinado método (procedimiento).

Pág. 14

Page 15: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Mensajes

Un mensaje es una llamada a un método (procedimiento), de

tal forma que cuando un objeto recibe un mensaje la respuesta a

ese mensaje es ejecutar el procedimiento asociado.

Cuando se ejecuta un programa orientado a objetos, los

objetos están constantemente recibiendo, interpretando y

respondiendo a mensajes de otros objetos.

Clases

Una clase es una descripción para producir objetos de esa

clase o tipo. Es decir se trata de una generalización de un

tipo específico de objetos. En otras palabras, un objeto es una

variable del tipo definido por una clase. Por ejemplo, piense

en un molde para hacer pasteles, el molde es la clase y los

pasteles los objetos.

CARACTERÍSTICAS DE LA POO

Las características fundamentales de la programación

orientada a objetos son:

• Abstracción

• Encapsulamiento

• Herencia

• Polimorfismo

Pág. 15

Page 16: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Abstracción

La abstracción permite no detenernos en los detalles

concretos del funcionamiento de las cosas, sino centrarnos en

los aspectos que realmente nos importan y nos son útiles en un

determinado momento, en cierta medida, se podría decir que es

“úsese el objeto y olvídese de como funciona en forma interna”.

Por ejemplo, para manejar una computadora no necesitamos

saber como funcionan sus circuitos electrónicos, en términos de

corriente, tensión, etc.

Encapsulamiento

Esta característica permite ver un objeto como una “caja

negra” autocontenida en la que se ha metido de alguna manera

toda la información que maneja dicho objeto. Esto permite

manipular los objetos como unidades básicas, permaneciendo

oculta su estructura interna.

Herencia

La herencia es la característica que permite compartir

automáticamente propiedades y métodos entre objetos. Es decir,

se pueden crear nuevas clases de objetos en base a clases

existentes. Más concreto, un objeto puede heredar un conjunto

general de propiedades y métodos a las que puede añadir

Pág. 16

Page 17: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

aquellas características que son específicas suyas. El usuario

de Visual Basic no dispone de esta característica.

Polimorfismo

Polimorfismo, del griego cuyo significado es “muchas

formas”, es la característica que permite implementar múltiples

formas de un mismo método, dependiendo cada una de ellas de la

clase sobre la que se realiza la implementación. Esto hace

posible que se puede acceder a una variedad de métodos

distintos (todos con el mismo nombre) utilizando exactamente el

mismo medio de acceso.

LOS OBJETOS DE VISUAL BASIC

Visual Basic soporta la abstracción, la encapsulación, el

polimorfismo y la reutilización de código.

La reutilización de código es la capacidad de trasladar

características de un objeto a otro, lo que se logra con alguna

forma de herencia. Esto se consigue mediante la creación y uso

del objeto.

Los objetos de Visual Basic están divididos en dos tipos:

controles y contenedores.

Los controles son un medio gráfico que permiten a los

usuarios interactuar con la aplicación para la manipulación de

datos y ejecución de tareas. Son ejemplo de controles:

etiquetas, cuadros de texto, botones de comando, casillas de

Pág. 17

Page 18: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

verificación, botones de opción, cuadros de lista, cuadros

combinados, etc.

Los contenedores son objetos que pueden incluir otros

objetos y permiten el acceso a los objetos que contienen. Entre

los más utilizados tenemos a los formularios, marcos y

cuadrículas.

El formulario más los controles constituyen la interfaz de

la aplicación.

REFERENCIANDO OBJETOS

La sintaxis para referenciar objetos es la siguiente:

OBJETO.PROPIEDAD = VALOR

Por ejemplo, para establecer el título de un formulario a

“Visual Basic es fácil”, la orden sería:

Form1.Caption = “Visual Basic es fácil”

LOS EVENTOS

Cada objeto responde a un conjunto de eventos. Como

respuesta a un evento se ejecuta un determinado procedimiento.

Los procedimientos asociados a un evento presentan la forma:

Private Sub OBJETO_EVENTO()

SENTENCIAS

End Sub

Pág. 18

Page 19: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para aclarar este concepto desarrollaremos la siguiente

aplicación, la cual consiste en un formulario, un cuadro de

texto y un botón de comando. El usuario debe ingresar un

mensaje en el cuadro de texto y al pulsar el botón de comando,

el mensaje recientemente ingresado, se coloca como título del

formulario.

Para ello proceda a construir la interfaz mostrada en la

figura anterior. Luego, dar doble click sobre el botón de

comando e ingrese el siguiente código:

Private Sub Command1_Click()

Form1.Caption = Text1.Text

End Sub

Seguidamente guarde y proceda ejecutar su aplicación. Como

puede verificar, el evento Click se dispara cada vez que el

usuario pulsa (hace click) sobre un control.

CONVENCIÓN DE NOMBRES PARA LOS OBJETOS

Pág. 19

Page 20: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

La convención a seguir en la presente guía - para dar

nombre a los objetos - consiste en utilizar ciertos prefijos,

los cuales indicaran el tipo de objeto del que se trata.

Prefijo Objeto

Frm Formulario

Fra Marco

Lbl Etiqueta

Txt Cuadro de texto

Cmd Botón de comando

Chk Casilla de verificación

Opt Botón de opción

Lst Cuadro de lista

Cbo Cuadro combinado

Tim Cronómetro

HS Barra de desplazamiento horizontal

VS Barra de desplazamiento vertical

Pic Cuadro de imagen

Img Imagen

Drv Cuadro de lista de unidades

Dir Cuadro de lista de directorios

Fil Cuadro de lista de archivos

Ole Contenedor OLE

Grd Cuadrícula

Pág. 20

Page 21: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Gra Gráfico

Ctr Control (se utiliza en procedimientos cuando

el tipo de control es desconocido)

CAPÍTULO 3

EL LENGUAJE

Visual Basic es un lenguaje de programación basado en el

lenguaje BASIC, al cual incorpora la funcionalidad de la

programación orientada a objetos.

El código de Visual Basic se almacena en módulos, donde

cada módulo está subdividido en distintas secciones, una para

cada objeto del módulo. Cada sección de código puede contener

uno o más procedimientos, formados por declaraciones de

constantes y variables, expresiones, sentencias de control y

llamadas a procedimientos y/o funciones.

En este capítulo vamos a analizar los diferentes elementos

que intervienen al momento de realizar el código para una

aplicación.

TIPOS DE DATOS

Pág. 21

Los datos con los que trabajaremos probablemente incluyan

información relacionada con números, dinero, nombres,

Page 22: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

descripciones, fechas, etc. Cada dato corresponde a un

determinado tipo, es decir, pertenece a una categoría de datos

que se manipulan de maneras similares.

Tipo Descripción Rango

Integer Entero (2 bytes) -32768 a 32767

Long Entero largo (4 bytes) -2147483648 a

2147483647

Single Punto flotante de simple

precisión (4 bytes)

-3.40E+38 a

3.40E+38

Double Punto flotante de doble

precisión (8 bytes)

-1.79D+308 a

1.79D+308

Currency Monetario (8 bytes) +/-

922337203685477.5807

Byte Carácter (1 byte) 0 a 255

String Cadena de caracteres (1

byte por carácter)

Aproximadamente

hasta 64K (65400

caracteres)

Boolean Lógico (2 bytes) True o False

Date Fecha/Hora (8 bytes) 01/ENERO/100 a

31/DICIEMBRE/9999

Variant

(por omisión)

Cualquier tipo de dato Con números hasta el

intervalo de un tipo

Double.

Con caracteres 22

Pág. 22

Page 23: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

bytes + 1 byte por

carácter

IDENTIFICADORES

Los identificadores son nombres dados a los elementos de

una aplicación, tales como constantes, variables,

procedimientos, funciones, objetos, etc. Un identificador es

una secuencia de caracteres que puede ser de hasta 255

caracteres. Para la construcción de identificadores debemos

tener presente las siguientes reglas:

• Deben comenzar con una letra y no puede contener espacios en

blanco.

• Letras, dígitos y caracteres subrayados están permitidos

después del primer carácter.

• No se puede utilizar una palabra reservada como

identificador. Una palabra reservada tiene un significado

especial para Visual Basic.

CONSTANTES

Una constante almacena un dato cuyo valor no cambia

durante la ejecución de un programa. Para declarar una

constante utilice la siguiente sintaxis:

Const NOMBRE_CONSTANTE [As TIPO] = VALOR

Pág. 23

Page 24: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Si no se declara el tipo de constante (utilizando As TIPO)

se asigna a la constante el tipo de dato más apropiado a su

valor.

El valor de una constante puede ser numérico,

alfanumérico, carácter o de tipo fecha y hora. Por ejemplo:

Const MAXIT = 25

Const PI As Double = 3.141592

Const CADENA As String = “Visual Basic es fácil”

Const FECHA_POR_DEFECTO = #01/01/99#

VARIABLES

Una variable almacena un dato cuyo valor puede cambiar

durante la ejecución de un programa. Para declarar una variable

utilice la siguiente sintaxis:

Dim NOMBRE_VARIABLE [As TIPO]

Cuando se declara una variable y no se especifica su tipo

(con As TIPO), se asume que es de tipo Variant.

La instrucción Dim puede realizar más de una declaración,

teniendo en cuenta que la cláusula opcional As TIPO le permite

definir el tipo de dato de cada variable que vaya a declarar.

Por ejemplo:

Dim X, Y As Integer

Pág. 24

Page 25: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

La sentencia anterior le puede inducir a pensar que X e Y

son de tipo Integer, lo cual no es cierto, pues X es de tipo

Variant (por omisión) e Y es de tipo Integer.

Para asignar valores a una variable, utilizar la siguiente

sintaxis:

NOMBRE_VARIABLE = VALOR

A manera de ejemplo considere lo siguiente:

Dim CANTIDAD As Integer, PRECIO As Double, TOTAL As Double

CANTIDAD = 30

PRECIO = 1.5

TOTAL = CANTIDAD * PRECIO

OPERADORES

Los operadores son símbolos que indican cómo serán

manipulados los operandos. Los operandos son los datos

(constantes y/o variables) sobre los que actúa los operadores

para producir un determinado resultado.

Operadores aritméticos

Operador Significado

^ Exponenciación

- Menos unario

Pág. 25

Page 26: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

* / Multiplicación y división

\ División entera

Mod Resto de una división entera

+ - Suma y resta

Operadores relacionales

Operador Significado

= Igual que

<> Diferente que

< Menor que

> Mayor que

<= Menor o igual que

=> Mayor o igual que

Operadores lógicos

Operador Significado

Not Negación

And Conjunción

Or Disyunción inclusiva

Xor Disyunción exclusiva

Eqv Equivalencia (opuesto a Xor)

Imp Implicación (falso si primer operando

verdadero y segundo operando falso)

Pág. 26

Page 27: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Operadores de cadenas de caracteres

Operador Significado

& Concatenación

Like Compara dos cadenas de caracteres

SENTENCIAS

Una sentencia es una línea de código que indica una o más

operaciones a realizar. Una línea puede incluir varias

sentencias, separadas unas de otras por dos puntos. Por

ejemplo:

Dim CANTIDAD As Integer, PRECIO As Double, TOTAL As Double

CANTIDAD = 30 : PRECIO = 1.5 : TOTAL = CANTIDAD * PRECIO

Una sentencia Visual Basic puede escribirse en más de una

línea física utilizando el carácter de continuación de línea

(un espacio en blanco seguido del carácter de subrayado). Por

ejemplo:

Dim CH4_ENTRADA As Double, CH4_SALIDA As Double, _

CH4_GENERA As Double, CH4_CONSUME AS Double

ENTRADA Y SALIDA DE DATOS

Visual Basic posee una serie de objetos (controles) que

pueden ser utilizados como mecanismos de entrada y salida (E/S)

de datos. Sin embargo, estos serán estudiados en capítulos

posteriores.

Pág. 27

Page 28: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Otra posibilidad de proporcionar datos o de visualizarlos

durante la ejecución de una aplicación es utilizando cajas de

diálogos predefinidas. Debido a que esta es la forma más simple

de realizar la E/S de datos nos ocuparemos de ella.

Entrada de datos

La entrada de datos permite proporcionar valores durante

la ejecución de una aplicación. Estos valores son ingresados

generalmente mediante el teclado y asignados a variables del

programa. En Visual Basic una forma de ingresar datos a la

aplicación es utilizando la caja de diálogo predefinida

provista por la función InputBox. Su sintaxis es la siguiente:

VARIABLE = InputBox(MENSAJE [, TÍTULO] [, PREDETERMINADO])

Donde MENSAJE es el mensaje que indica al usuario el tipo

de información que debe ingresar. Por ejemplo, las sentencias:

Dim EDAD As Integer

EDAD = InputBox(“Ingrese su edad?”)

Da lugar a que Visual Basic presente la siguiente caja de

diálogo solicitando la información requerida:

Pág. 28

Page 29: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Como puede observar, el resto de los parámetros son

opcionales. TÍTULO es el texto que se muestra en la barra de

título del cuadro de diálogo, si se omite TÍTULO, el nombre de

la aplicación es la que se muestra en la barra de título.

PREDETERMINADO es una expresión de cadena que aparece en el

cuadro de texto como respuesta predeterminada si no se

proporciona ningún otro texto. Si se omite PREDETERMINADO el

cuadro de texto se muestra vacío. A manera de ejemplo considere

lo siguiente:

Dim EDAD As Integer

EDAD = InputBox(“Ingrese su edad?”, “Ficha de datos”, 18)

En este caso se visualiza la caja de diálogo que se

presenta en la figura siguiente:

Pág. 29

Page 30: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Salida de datos

La salida de datos generalmente consiste en tomar la

información de la memoria y mostrarla en pantalla. Para

realizar la operación de salida de datos en Visual Basic,

podemos utilizar el procedimiento MsgBox, cuya sintaxis es como

sigue:

MsgBox MENSAJE [, ICONO, TÍTULO]

MENSAJE es La cadena que se muestra como salida en la caja

de diálogo. ICONO es se refiere al estilo de icono que se va ha

utilizar y TÍTULO es una texto que se mostrará en la barra de

título de la caja de diálogo. Por ejemplo:

Dim EDAD As Integer

EDAD = InputBox(“Ingrese su edad?”)

EDAD = EDAD + 10

MsgBox “Dentro de 10 años su edad será:” & Str(EDAD)

Si ejecuta el código anterior e ingresa su edad (en mi

caso 29 años) la salida debe ser similar a la figura siguiente:

Pág. 30

Page 31: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para que pueda ejecutar el código anterior, proceda a

crear una nueva aplicación y haga doble click sobre el

formulario, luego ingrese el código anterior:

Private Sub Form_Load()

Dim EDAD As Integer

EDAD = InputBox(“Ingrese su edad?”)

EDAD = EDAD + 10

MsgBox “Dentro de 10 años su edad será:” & Str(EDAD)

End Sub

A manera de observación cabe señalar que la función Str()

se utiliza para convertir una expresión numérica a una cadena

de caracteres.

ESTRUCTURAS DE CONTROL

Las estructuras de control permiten tomar decisiones y

realizar un proceso repetidas veces (procesos iterativos). Para

ello Visual Basic dispone de las siguientes estructuras de

control: If . . . Then . . . Else, If . . . Then . . . ElseIf,

Select Case, For . . . Next, While . . . . Wend, Do . . . Loop

y GoTo.

Estructura If . . . Then . . . Else

Este tipo de estructura evalúa una determinada condición y

en función a ello ejecuta uno de entre dos posibles grupos de

sentencias. Su sintaxis es la siguiente:

Pág. 31

Page 32: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

If CONDICIÓN Then

SENTENCIAS_VERDADERAS

Else

SENTENCIAS_FALSAS

End If

Si CONDICIÓN es verdadera se ejecuta el grupo de

SENTENCIAS_VERDADERAS. Si CONDICIÓN es falsa se ejecuta el

grupo de SENTENCIAS_FALSAS.

Por ejemplo, el siguiente código determina si un entero A

es o no divisible por otro entero B:

Dim A As Integer, B As Integer

A = InputBox(“Ingrese A?”)

B = InputBox(“Ingrese B?”)

If A Mod B = 0 Then

MsgBox Str(A) & “ es divisible por ” & Str(B)

Else

MsgBox Str(A) & “ no es divisible por ” & Str(B)

End If

Estructura If . . . Then . . . ElseIf

Este tipo de estructura se utiliza para elegir una de

entre múltiples alternativas. Su sintaxis es como sigue:

If CONDICIÓN_1 Then

Pág. 32

Page 33: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

SENTENCIAS_1

ElseIf CONDICIÓN_2 Then

SENTENCIAS_2

.

.

.

Else

SENTENCIAS_FALSAS

End If

Si CONDICIÓN_1 es verdadera se ejecuta el grupo de

SENTENCIAS_1, y si es no se cumple, se evalúan secuencialmente

las condiciones siguientes hasta Else, ejecutándose las

sentencias correspondientes al primer ElseIf cuya condición sea

verdadera. Si todas las condiciones son falsas, se ejecutan las

SENTENCIAS_FALSAS correspondientes a Else.

Por ejemplo considere el siguiente código, el cual imprime

el nombre del mes correspondiente a los números del 1 al 12.

Dim N As Integer

N = InputBox(“Ingrese N?”)

If N = 1 Then

MsgBox “Enero”

ElseIf N = 2 Then : MsgBox “Febrero”

ElseIf N = 3 Then : MsgBox “Marzo”

ElseIf N = 4 Then : MsgBox “Abril”

ElseIf N = 5 Then : MsgBox “Mayo”

Pág. 33

Page 34: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

ElseIf N = 6 Then : MsgBox “Junio”

ElseIf N = 7 Then : MsgBox “Julio”

ElseIf N = 8 Then : MsgBox “Agosto”

ElseIf N = 9 Then : MsgBox “Setiembre”

ElseIf N = 10 Then : MsgBox “Octubre”

ElseIf N = 11 Then : MsgBox “Noviembre”

ElseIf N = 12 Then : MsgBox “Diciembre”

Else : MsgBox “Error de datos”

End If

Estructura Select Case

Este estructura es una alternativa a la estructura

If . . . Then . . . ElseIf, cuando lo que necesita es comparar

la misma expresión con diferentes valores. Su sintaxis es la

siguiente:

Select Case EXPRESIÓN_TEST

Case EXPRESIÓN_1

SENTENCIAS_1

Case EXPRESIÓN_2

SENTENCIAS_2

.

.

.

Case Else

SENTENCIAS_FALSAS

End Select

Pág. 34

Page 35: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

En este caso se comprueba el valor de EXPRESIÓN_TEST

frente a la lista expresiones EXPRESIÓN_1, EXPRESIÓN_2, . . . y

así sucesivamente, y busca el primer Case que incluya el valor

evaluado en EXPRESIÓN_TEST, ejecutando a continuación el bloque

de sentencias correspondiente. Si no existe un valor igual a

EXPRESIÓN_TEST, entonces se ejecuta las SENTENCIAS_FALSAS

correspondientes al Case Else.

A manera de ejemplo vamos a codificar el programa de la

sección anterior el cual imprime el nombre del mes

correspondiente a los números del 1 al 12. Pero en esta vez

utilizaremos la estructura Select Case (compare con cual de

ambas estructuras es más cómodo trabajar).

Dim N As Integer

N = InputBox(“Ingrese N?”)

Select Case N

Case 1 : MsgBox “Enero”

Case 2 : MsgBox “Febrero”

Case 3 : MsgBox “Marzo”

Case 4 : MsgBox “Abril”

Case 5 : MsgBox “Mayo”

Case 6 : MsgBox “Junio”

Case 7 : MsgBox “Julio”

Case 8 : MsgBox “Agosto”

Case 9 : MsgBox “Setiembre”

Pág. 35

Page 36: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Case 10 : MsgBox “Octubre”

Case 11 : MsgBox “Noviembre”

Case 12 : MsgBox “Diciembre”

Case Else

MsgBox “Error de datos”

End Select

Cabe destacar que Select Case también se puede utilizar de

la siguiente manera:

Dim X As Integer

X = InputBox(“Ingrese X?”)

Select Case X

Case 1

MsgBox “X = 1”

Case 2, 3

MsgBox “X = 2 o X = 3”

Case 4 To 10

MsgBox “4 <= X <= 10”

Case Else

MsgBox “X < 1 o X > 10”

End Select

Estructura For . . . Next

Pág. 36

Esta estructura es utilizada para ejecutar un bucle un

número determinado de veces. El número de iteraciones deberá

Page 37: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

ser conocido de antemano. Su sintaxis es la que se presenta a

continuación:

For CONTADOR = INICIO To FINAL [Step INCREMENTO/DECREMENTO]

SENTENCIAS_REPETITIVAS

[Exit For]

Next

Donde la variable CONTADOR es inicializada con el valor de

INICIO y se incrementa o decrementa hasta un valor FINAL.

INCREMENTO/DECREMENTO define la manera en que cambia el valor

de la variable CONTADOR en cada iteración.

La sentencia Exit For permite salir del bucle For . . . Next

antes de que este finalice.

Por ejemplo, el siguiente código imprime los cuadrados de

los números enteros del 1 al 25.

Dim C As Integer

For C = 1 To 25

Print C

Next

Para que este código funcione correctamente debe

establecer la propiedad AutoRedraw del formulario a True.

Estructura While . . . Wend

Pág. 37

La estructura While . . . Wend es aquella en la que el

número de iteraciones no se conoce por anticipado y el cuerpo

Page 38: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

del bucle se repite mientras se cumple una determinada

condición. Su sintaxis es la siguiente:

While CONDICIÓN

SENTENCIAS_REPETITIVAS

Wend

La estructura While . . . Wend evalúa la CONDICIÓN en cada

iteración y si el resultado es verdadero continúa su ejecución.

El bucle termina cuando CONDICIÓN es falsa.

A manera de ejemplo, considere el siguiente código, el

cual imprime en pantalla la suma de los primeros números

naturales, es decir = 1 + 2 + 3 + 4 + . . . +

N

S N

Dim N As Integer, S As Integer

S = 0

N = InputBox(“Ingrese N?”)

While N <> 0

S = S + N

N = N - 1

Wend

MsgBox “La suma es S= ” & Str(S)

Estructura Do . . . Loop

Esta estructura ejecuta un bucle mientras una condición

dada sea cierta, o hasta que una condición dada sea cierta. La

Pág. 38

Page 39: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

condición puede ser verificada antes o después de ejecutarse el

cuerpo del bucle. Su sintaxis es:

Formato 1: Do [While/Until] CONDICIÓN

SENTENCIAS_REPETITIVAS

[Exit Do]

Loop

Formato 2: Do

SENTENCIAS_REPETITIVAS

[Exit Do]

Loop [While/Until] CONDICIÓN

Esta estructura (como se puede observar en ambos formatos)

permite realizar varias estructuras diferentes dependiendo si

la condición de terminación está al principio o al final del

cuerpo del bucle.

Como ejemplo, consideremos el siguiente programa, el cual

calcula el factorial de un entero ingresado por teclado: N

Dim N As Integer, FACT As Integer, C As Integer

FACT = 1

C = 1

N = InputBox(“Ingrese N?”)

Do

FACT = FACT * C

C = C + 1

Pág. 39

Loop While C <= N

Page 40: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

MsgBox “El factorial de ” & Str(N) & “ es=” & Str(FACT)

Sentencia GoTo

Transfiere el control a una línea específica de código,

identificada por una etiqueta o por un número de línea. Su

sintaxis es:

GoTo ETIQUETA/NUMERO_LÍNEA

Aunque el uso del GoTo se ha depreciado considerablemente,

en el presente trabajo no se juzgará su validez. Sin embargo,

se ha establecido que no hay situaciones de programación que

requieran el uso del GoTo, es decir, no es un elemento

necesario para hacer completo el lenguaje.

Sin embargo, el GoTo es un convenio que, si su usa con

cuidado, puede ser beneficioso en ciertas situaciones de

programación.

Por ejemplo podría escribir un bucle para imprimir los

cuadrados de los números enteros del 1 al 25.

Dim X As Integer

X = 0

LABEL1:

X = X + 1

Print X ^ 2

If X < 25 Then GoTo LABEL1

Pág. 40

Page 41: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Un uso abusivo de la sentencia GoTo da lugar a códigos

difíciles de interpretar y de mantener. Por ello, se recomienda

su uso solamente en ocasiones excepcionales. La tarea que vaya

a desempeñar una sentencia GoTo puede suplirse utilizando

cualquiera de las estructuras de control vistas en las

secciones anteriores.

ARREGLOS

Un arreglo o matriz es una estructura de datos en la que

se almacena una colección finita de datos del mismo tipo, que

comparten un nombre común, a los que se puede acceder por la

posición (índice) que ocupa cada uno de ellos dentro del

arreglo. Cada elemento del arreglo es una variable que puede

contener un número o una cadena de caracteres, dependiendo del

tipo de arreglo que se declare.

Los arreglos en Visual Basic se clasifican en estáticos y

dinámicos.

Arreglos estáticos

Son aquellos arreglos cuyo tamaño no puede cambiar en

tiempo de ejecución. La declaración de un arreglo estático se

puede realizar mediante la siguiente sintaxis:

Dim NOMBRE_ARREGLO(DIMENSONES) As TIPO

Pág. 41

Page 42: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Donde DIMENSIONES es una lista de números, separados por

comas y que definen las dimensiones del arreglo. Esta lista

puede ser de la siguiente forma:

DIMENSIÓN_1, DIMENSIÓN_2, DIMENSIÓN_3, . . ., DIMENSIÓN_K

Para el caso de un arreglo formado por “K ” dimensiones,

es decir un arreglo K -dimensional.

A manera de ejemplo considere los siguientes casos que se

pueden presentar:

Dim LISTA(9) As Integer

Dim MATRIZ(4, 3) As Double

Dim NOMBRES(19) As String * 30

En el primer caso se declara un arreglo unidimensional de

10 elementos de tipo entero (por defecto los elementos de un

arreglo se numeran a partir de 0).

En el segundo caso se define de un arreglo bidimensional

de 20 elementos (5 filas por 4 columnas) de tipo punto flotante

en doble precisión.

En el tercer caso se define una arreglo unidimensional de

20 elementos de tipo cadena de caracteres (cada elemento tiene

una longitud fija de 30 caracteres).

Como se observa la numeración de los elementos de un

arreglo por defecto comienza en cero, para hacer que la

Pág. 42

Page 43: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

numeración comience en 1, debe ingresar la siguiente orden en

la sección de Declaraciones del módulo de formulario:

Luego, para declarar los mismos arreglos de los casos

anteriores, las sentencias serían las siguientes:

Dim LISTA(10) As Integer

Dim MATRIZ(5, 4) As Double

Dim NOMBRES(20) As String * 30

Establecer la sentencia Option Base a 1 o trabajar con el

valor predeterminado (cero) queda a consideración del lector.

Arreglos dinámicos

Son aquellos arreglos en los que su tamaño puede definirse

o modificarse en tiempo de ejecución. Para declara una arreglo

dinámico utilice la siguiente sintaxis:

Dim NOMBRE_ARREGLO() As TIPO

Para definir el tamaño del arreglo utilizar la siguiente

sintaxis:

Pág. 43

Page 44: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

ReDim NOMBRE_ARREGLO(NÚMERO_ELEMENTOS)

Cada vez que se ejecuta la sentencia ReDim, todos los

valores almacenados en el arreglo se pierden. Para definir o

cambiar el tamaño del arreglo conservando los valores del mismo

use la siguiente sintaxis:

ReDim Preserve NOMBRE_ARREGLO(NÚMERO_ELEMENTOS)

Para liberar el espacio de memoria utilizado por arreglos

dinámicos que ya no son útiles, utilizar la sintaxis:

Erase NOMBRE_ARREGLO

La orden Erase asigna cero a cada elemento de los arreglos

numéricos y nulo (“”) a cada elemento de los arreglos de cadena

de caracteres.

A manera de ejemplo considere el siguiente código que

declara y hace uso de un arreglo dinámico:

Dim I As Integer, N As Integer, TEMP() As Integer

N = InputBox(“Ingrese N?”)

ReDim TEMP(N - 1)

For I = 0 To N - 1

TEMP(I) = I + 1

Print TEMP(I)

Next

Erase TEMP

Pág. 44

Page 45: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

REGISTROS

Un registro es un nuevo tipo de dato, que se define como

una colección de datos de diferentes tipos, conocidos como

“campos”, los cuales se encuentran evidentemente relacionados.

Un registro sólo se puede ser creado en la sección de

declaraciones de un módulo. La sintaxis correspondiente es:

Private Type NOMBRE_REGISTRO

DECLARACIONES_DE_LOS_MIEMBROS

End Type

Por ejemplo considere el siguiente código que define la

estructura ALUMNO:

Private Type ALUMNO

ID_ALUMNO As String * 7

NOMBRE As String * 25

DIRECCION As String * 35

TELEFONO As String * 7

ESTADO As Boolean

End Type

Luego, podemos declarar una variable tipo ALUMNO de la

siguiente forma:

Dim X As ALUMNO

Pág. 45

Page 46: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para referirse a un determinado miembro del registro se

utiliza el operador selector de campos ( . ), veamos:

X.ID_ALUMNO = “980976G”

X.NOMBRE = “Carlos Castillo Peralta”

X.DIRECCION = “Jr. C. Richardson 412 Chorrillos”

X.TELEFONO = “2510850”

X.ESTADO = True

Las mismas órdenes del párrafo anterior se pueden escribir

de una manera más fácil, más legible y más eficiente si utiliza

la sentencia With . . . End With, del siguiente modo:

With X

. ID_ALUMNO = “980976G”

.NOMBRE = “Carlos Castillo Peralta”

.DIRECCION = “Jr. C. Richardson 412 Chorrillos”

.TELEFONO = “2510850”

.ESTADO = True

End With

FUNCIONES

Las funciones son uno de los elementos básicos en

programación. A continuación serán estudiadas detalladamente.

Declaración de una función

Pág. 46

Page 47: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Una función es un procedimiento que cuando se ejecuta

devuelve un único resultado al procedimiento que la invocó. La

sintaxis correspondiente a la declaración de una función es:

Function NOMBRE_FUNCIÓN([LISTA_PARÁMETROS]) [As TIPO]

SENTENCIAS

[NOMBRE_FUNCIÓN = VALOR_RETORNADO]

[Exit Function]

End Function

Donde LISTA_PARÁMETROS es una secuencia de variables

separadas por comas que se corresponden con los argumentos

pasados cuando es invocada la función.

Para especificar el tipo de datos que será retornado por

la función utilice la cláusula opcional As TIPO, el tipo es

Variant por omisión.

El valor retornado por la función es almacenado en su

propio nombre, es decir en NOMBRE_FUNCIÓN, que actúa como

variable dentro del cuerpo de la función. Si no se efectúa esta

asignación el valor devuelto será cero si la función es de tipo

numérica, nulo (“”) si la función es de tipo cadena, o vacío

(Empty) si la función es de tipo Variant.

La cláusula opcional Exit Function permite salir de una

función antes de que la función finalice, en caso sea esto

necesario.

Pág. 47

Page 48: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

La sintaxis para la llamada a una función es de la

siguiente forma:

VARIABLE = NOMBRE_FUNCIÓN([LISTA_ARGUMENTOS])

Donde LISTA_ARGUMENTOS es una secuencia de constantes,

variables o expresiones separadas por comas. El número de

argumentos debe ser igual al número de parámetros de la

función. Los tipos de los argumentos deben coincidir con los

tipos de sus correspondientes parámetros.

A manera de ejemplo considere la implementación de la

siguiente función:

32)( 2 ++= xxxf

En la sección de Declaraciones del módulo de formulario

ingrese el siguiente código:

Function F(X As Double) As Double

F = X ^ 2 + 2 * X + 3

End Function

Para invocar la función creada recientemente, codifique

las siguientes líneas:

Dim A As Double, RESP As Double

A = InputBox(“Ingrese A?”)

RESP = F(A)

Pág. 48

Page 49: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

MsgBox (Str(RESP))

Paso de argumentos a una función

El paso de argumentos a una función es la forma como se

ingresan los datos y variables al interior de la función y se

presenta de dos formas:

• Por referencia

• Por valor

Paso de argumentos por referencia

En las funciones de Visual Basic, los argumentos se pasan

por referencia (forma por defecto), de este modo cualquier

cambio de valor que sufra un parámetro en el cuerpo de la

función, también se produce en el argumento correspondiente de

la llamada a la función. Esta forma de pasar los argumentos a

una función es útil para funciones que devuelven más de un

valor. Por ejemplo, considere la siguiente función que calcula

las raíces reales de una ecuación cuadrática Ax Bx C2 0+ + = .

Function RAIZ(A As Double, B As Double, C As Double, _

X1 As Double, X2 As Double) As Boolean

Dim D As Double

D = B ^ 2 - 4 * A * C

If D >= 0 Then

X1 = (-B - Sqr(D)) / (2 * A)

X2 = (-B + Sqr(D)) / (2 * A)

Pág. 49

Page 50: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

RAIZ = True ' Verdadero si hay raíces reales

Else

RAIZ = False ' Falso si no hay raíces reales

End If

End Function

La llamada a esta función se puede realizar de la manera

que se presenta a continuación:

Dim A As Double, B As Double, C As Double

Dim X1 As Double, X2 As Double

A = InputBox(“Ingrese A?”)

B = InputBox(“Ingrese B?”)

C = InputBox(“Ingrese C?”)

If RAIZ(A, B, C, X1, X2) Then

MsgBox “X1= ” & Str(X1)

MsgBox “X2= ” & Str(X2)

Else

MsgBox “NO EXISTEN RAÍCES REALES”

End If

Paso de argumentos por valor

Cuando se ejecuta una función, se podrá especificar que el

valor de un argumento no sea cambiado por esta función, pasando

dicho argumento por valor. Para ello se debe anteponer la

Pág. 50

Page 51: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

palabra reservada ByVal a la declaración del parámetro en la

cabecera de la función. Por ejemplo:

Function F(ByVal X As Double) As Double

F = X ^ 2 + 2 * X + 3

End Function

La cabecera de la función F especifica que X será pasado

por valor y no por referencia.

Funciones recursivas

Se dice que una función es recursiva si se llama a sí

misma. Por ejemplo 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 = FACTORIAL(N - 1) * N

Else

FACTORIAL = 1

End If

End Function

PROCEDIMIENTOS

La sintaxis para definir un procedimiento es la

siguiente:

Private Sub NOMBRE_PROCEDIMIENTO([LISTA_PARÁMETROS])

Pág. 51

Page 52: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

SENTENCIAS

[Exit Sub]

End Sub

La explicación es análoga a la dada para las funciones.

Sin embargo, un procedimiento no puede ser utilizado en una

expresión, ya que un procedimiento no retorna ningún valor a

través de su nombre.

La llamada a un procedimiento puede ser realizada de

alguna de las dos formas siguientes:

Call NOMBRE_PROCEDIMIENTO([LISTA_ARGUMENTOS])

ó

NOMBRE_PROCEDIMIENTO([LISTA_ARGUMENTOS])

Por ejemplo, el siguiente código corresponde a un

procedimiento que calcula e imprime la suma de los primeros

números naturales impares, es decir: = 1 + 3 + 5 + . . . +

N

S N

Private Sub SUMA_IMPAR(N As Integer)

Dim S As Integer, I As Integer

S = 0

For I = 1 To N

If I Mod 2 <> 0 Then

S = S + I

Pág. 52

End If

Page 53: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Next

MsgBox “La suma es S= ” & Str(S)

End Sub

La llamada a este procedimiento podría ser de la forma:

Call SUMA_IMPAR(25)

Pág. 53

Page 54: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

CAPÍTULO 4

USO DE LOS CONTROLES

Los controles son aquellos objetos que se encuentran

dentro de un contenedor y que permiten la interacción entre el

usuario y la aplicación, ya sea para manipular datos y/o

ejecutar tareas.

En Visual Basic, los controles suelen ser agrupados en

tres categorías:

• Controles básicos

• Controles complementarios

• Controles externos

Los controles básicos son las etiquetas, cuadros de texto

y botones de comando, pues utilizando estos tres controles se

puede construir cualquier interfaz.

Los controles complementarios son el resto de los

controles, por ejemplo una casilla de verificación, un cuadro

combinado o un cronómetro.

Los controles externos se refieren a aquellos controles

creados por terceros. Este tipo de controles son llamados

ActiveX.

Pág. 54

Page 55: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

CONTROLES BÁSICOS

Los controles básicos lo conforman las etiquetas, cuadros

de texto y botones de comando, debido a que cualquier interfaz

se puede implementar con sólo estos tres objetos.

Etiqueta

Una etiqueta es un control que permite presentar texto de

solo lectura. Se utiliza para mostrar títulos y mensajes que

por lo general no cambian. Sin embargo, si lo desea, puede

escribir procedimientos que cambien el texto mostrado por una

etiqueta como respuesta a eventos en tiempo de ejecución.

Propiedad Descripción

Alignment Especifica la forma como se alineará el

texto.

AutoSize Especifica si se cambia automáticamente el

tamaño del control para que quepan sus

contenidos.

BackColor,

ForeColor

Especifica el color de fondo y de primer

plano empleado para mostrar el texto.

BackStyle Especifica si el fondo del control es

transparente u opaco.

Caption Especifica el texto que se muestra en el

control.

WordWrap Especifica si la etiqueta se extiende a más

de una línea cuando el texto es amplio.

Pág. 55

Page 56: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Cuadro de texto

Un cuadro de texto es un control en el que el usuario

pueda ingresar datos desde el teclado o visualizar un resultado

generado por la aplicación. El valor de un cuadro de texto por

lo general se asocia a una variable de memoria.

Propiedad Descripción

Enabled Habilita o deshabilita el control, es decir

si se puede o no modificar el contenido.

Locked Permite bloquear el acceso al control en

tiempo de ejecución.

MaxLenght Especifica la longitud máxima (en caracteres)

que puede escribirse en el control.

MultiLine Especifica si el control admitirá múltiples

líneas.

PasswordChar Determina si se muestran en el control los

caracteres escritos por el usuario o los

caracteres de marcador de posición.

ScrollBars Especifica si se muestran las barras de

desplazamiento horizontales o verticales.

SelLength Especifica el número de caracteres

seleccionados.

SelStart Especifica el inicio del texto seleccionado.

Si su valor es 0, el texto seleccionado

comienza por el primer carácter.

SelText Contiene el texto seleccionado.

Text Contiene el texto introducido en el control.

Puede inicializar el contenido en tiempo de

diseño.

Pág. 56

Page 57: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Los eventos asociados a un cuadro de texto son los

siguientes:

Evento Descripción

Change Ocurre cuando se cambia el contenido del

control utilizando el teclado o el ratón.

KeyPress Ocurre cuando se pulsa una tecla.

Botón de comando

Un botón de comando es un control que suele emplearse para

ejecutar una acción, como cerrar un formulario, imprimir un

informe, etc.

Propiedad Descripción

Cancel Especifica si el control responderá a la

tecla ESC, por lo general para terminar la

aplicación.

Caption Muestra un título para el control.

Default Especifica si el control responderá a la

tecla ENTRAR, sin importar la ubicación del

enfoque.

Enabled Permite habilitar o deshabilitar el control.

Picture Especifica una imagen tipo icono para el

control.

Style Especifica la apariencia del control, ya sea

estándar (estilo estándar de Windows) o

gráfica (con una imagen personalizada).

Pág. 57

Page 58: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Los botones de comando suelen responder al evento Click,

cuya descripción es:

Evento Descripción

Click Ocurre cuando el usuario hace click sobre el

control.

A manera de ejemplo vamos a desarrollar la siguiente

aplicación. Esta consiste en un cajero automático el cual

permite manipular cierta cantidad de dinero para lo cual

dispone de los siguientes billetes: S/. 10.00; S/. 20.00;

S/. 50.00; S/. 100.00 y S/. 200.00. Elaborar una aplicación que

permita la lectura de la cantidad a retirar e indique el menor

número de billetes a utilizar.

Para el desarrollo de la presente aplicación proceda a

ubicar los siguientes controles en el formulario:

6 etiquetas

Pág. 58

Page 59: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

6 cajas de texto

3 botones de comando

Una vez ubicados los controles, establezca las propiedades

según se indica:

Form1

Nombre FrmCajero

BorderStyle 3-Fixed Dialog

Caption Cajero automático

Label1

Nombre LblCantidad

AutoSize True

Caption Cantidad a retirar:

Label2

Nombre LblB10

AutoSize True

Caption Billetes de S/. 10

Label3

Nombre LblB20

AutoSize True

Caption Billetes de S/. 20

Label4

Nombre LblB50

AutoSize True

Caption Billetes de S/. 50

Label5

Pág. 59

Page 60: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Nombre LblB100

AutoSize True

Caption Billetes de S/. 100

Label6

Nombre LblB200

AutoSize True

Caption Billetes de S/. 200

Text1

Nombre TxtCantidad

Text

Text2

Nombre TxtB10

Text

Text3

Nombre TxtB20

Text

Text4

Nombre TxtB50

Text

Text5

Nombre TxtB100

Text

Text6

Nombre TxtB200

Text

Command1

Pág. 60

Page 61: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Nombre CmdAceptar

Caption &Aceptar

Command2

Nombre CmdLimpiar

Caption &Limpiar

Command3

Nombre CmdSalir

Caption &Salir

Para añadir código a la aplicación haga doble click sobre

el botón “Aceptar” e ingrese lo siguiente:

Private Sub CmdAceptar_Click()

Dim C As Integer, B200 As Integer, B100 As Integer, _

B50 As Integer, B20 As Integer, B10 As Integer

C = Val(TxtCantidad)

If C Mod 10 = 0 Then

B200 = C \ 200 : C = C Mod 200

B100 = C \ 100 : C = C Mod 100

B50 = C \ 50 : C = C Mod 50

B20 = C \ 20 : B10 = C Mod 20

TxtB200 = Str(B200)

TxtB100 = Str(B100)

TxtB50 = Str(B50)

TxtB20 = Str(B20)

TxtB10 = Str(B10)

Else

Pág. 61

Page 62: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

MsgBox “Cantidad a retirar debe ser múltiplo de 10”

TxtCantidad = “”

TxtCantidad.SetFocus

End If

End Sub

Luego, haga doble click sobre el botón “Limpiar” y añada

el siguiente código:

Private Sub CmdLimpiar_Click()

TxtCantidad = “”

TxtB200 = “”

TxtB100 = “”

TxtB50 = “”

TxtB20 = “”

TxtB10 = “”

TxtCantidad.SetFocus

End Sub

Finalmente dar doble click sobre el botón “Salir” y añada

el siguiente código:

Private Sub CmdSalir_Click()

End

End Sub

Pág. 62

Page 63: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

En el código anterior hemos utilizado el método SetFocus

para enfocar la caja de texto TxtCantidad, esto es, para

posicionar el cursor sobre ella.

CONTROLES COMPLEMENTARIOS

Los controles complementarios se utilizan como alternativa

a los controles básicos en aplicaciones en las cuales su uso

facilita o mejora el diseño de la interfaz. Como el lector

podrá verificar, algunos controles son más adecuados que otros

dependiendo del tipo de aplicación que se pretenda desarrollar.

Marco

Un marco es un objeto contenedor que puede utilizarse para

agrupar casillas de verificación, botones de opción, botones de

comando, etc.

Propiedad Descripción

Caption Muestra un título para el control.

Casilla de verificación

Una casilla de verificación se utiliza para alternar entre

dos posibles valores (Activado/Desactivado). Cada casilla de

verificación es independiente de las demás ya que cada una

tiene su propio nombre (Name). Puede utilizar casillas de

verificación en grupos para mostrar múltiples opciones entre

Pág. 63

Page 64: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

las cuales el usuario puede seleccionar todas las que desee a

la vez.

Propiedad Descripción

Caption Muestra un título para el control.

Value Devuelve o establece el estado del control,

puede ser: Desactivado (0), Activado (1).

Las casillas de verificación suelen responder al evento

Click.

Botón de opción

Un botón de opción se utiliza para alternar entre dos

posibles valores (Activado/Desactivado), de manera similar a

las casillas de verificación, la diferencia radica en que de un

grupo de botones de opción el usuario sólo puede seleccionar un

único botón a la vez.

Propiedad Descripción

Caption Muestra un título para el control.

Value Devuelve o establece el estado del control,

puede ser: Desactivado (Falso), Activado

(True).

Los botones de opción también suelen responder al evento

Click.

Pág. 64

Page 65: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

A manera de ejemplo vamos a desarrollar la siguiente

aplicación, la cual permite cambiar el aspecto de un cuadro de

texto, el usuario debe elegir el color (rojo, verde, azul) y el

estilo (negrita, cursiva, subrayado) de la fuente a utilizar.

Adicionalmente, cuando el usuario active la casilla de

verificación “Convertir a mayúsculas”, todo el texto que haya

escrito en el cuadro de texto se presentará en mayúsculas y

todo texto que escriba a continuación (mientras la opción esté

activada) también deberá aparecer en mayúsculas.

Para el desarrollo de la presente aplicación proceda a

ubicar los siguientes controles en el formulario:

1 cuadro de texto

2 marcos

3 botones de opción

4 casillas de verificación

Pág. 65

Page 66: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Una vez ubicados los controles, establezca las propiedades

según se indica:

Form1

Nombre FrmEditor

BorderStyle 3-Fixed Dialog

Caption Editor

Text1

Nombre TxtMensaje

ForeColor &H000000FF&

Text

Frame1

Nombre FraColor

Caption Color

Frame2

Nombre FraEstilo

Caption Estilo

Option1

Nombre OptRojo

Caption Rojo

ForeColor &H000000FF&

Value True

Option2

Nombre OptVerde

Caption Verde

ForeColor &H00008000&

Pág. 66

Page 67: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Option3

Nombre OptAzul

Caption Azul

ForeColor &H00C00000&

Check1

Nombre ChkNegrita

Caption Negrita

Font Arial (Negrita)

Check2

Nombre ChkCursiva

Caption Cursiva

Font Arial (Cursiva)

Check3

Nombre ChkSubrayado

Caption Subrayado

Font Arial (Subrayado)

Check4

Nombre ChkMayuscula

Caption Convertir a mayúsculas

Una vez establecidas las propiedades, proceda a ingresar

el código que se indica a continuación:

Private Sub OptRojo_Click()

If OptRojo.Value Then

TxtMensaje.ForeColor = RGB(255, 0, 0)

End If

Pág. 67

End Sub

Page 68: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Private Sub OptVerde_Click()

If OptVerde.Value Then

TxtMensaje.ForeColor = RGB(0, 255, 0)

End If

End Sub

Private Sub OptAzul_Click()

If OptAzul.Value Then

TxtMensaje.ForeColor = RGB(0, 0, 255)

End If

End Sub

Private Sub ChkNegrita_Click()

If ChkNegrita.Value Then

TxtMensaje.Font.Bold = True

Else

TxtMensaje.Font.Bold = False

End If

End Sub

Private Sub ChkCursiva_Click()

If ChkCursiva.Value Then

TxtMensaje.Font.Italic = True

Else

TxtMensaje.Font.Italic = False

End If

End Sub

Pág. 68

Page 69: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Private Sub ChkSubrayado_Click()

If ChkSubrayado.Value Then

TxtMensaje.Font.Underline = True

Else

TxtMensaje.Font.Underline = False

End If

End Sub

Private Sub ChkMayuscula_Click()

If ChkMayuscula.Value Then

TxtMensaje = UCase(TxtMensaje)

End If

End Sub

Private Sub TxtMensaje_KeyPress(KeyAscii As Integer)

Dim CAR As String * 1

If ChkMayuscula.Value Then

CAR = UCase(Chr(KeyAscii))

KeyAscii = Asc(CAR)

End If

End Sub

La función RGB() especifica el color que se asigna a la

propiedad ForeColor.

La función UCase() retorna una cadena de caracteres en

mayúsculas.

Pág. 69

Page 70: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Cuadro de lista

Un cuadro de lista es un control que presenta una lista de

elementos en la que el usuario puede seleccionar uno o más de

dichos elementos. Si el número de elementos supera el número

que puede mostrarse, se agregará automáticamente una barra de

desplazamiento al control.

Propiedad Descripción

List Contiene los elementos de la lista. Puede

definirlos en tiempo de diseño.

ListCount Especifica el número de elementos de la

lista. Su valor siempre es uno más que el

mayor valor de ListIndex.

ListIndex Especifica el número de orden que ocupa el

elemento seleccionado en la lista. Toma el

valor de 0 para el primer elemento, si no ha

selecciona ninguno retorna -1.

MultiSelect Especifica si se pueden seleccionar varios

elementos de la lista.

SelCount Devuelve el número de elementos

seleccionados.

Selected Especifica si un elemento de la lista está

seleccionado.

Sorted Especifica si los elementos de la lista se

ordenan alfabéticamente.

Text Especifica el valor del elemento seleccionado

en ese instante. El valor es tratado como una

cadena de caracteres.

Pág. 70

Page 71: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Los métodos que se pueden utilizar para un cuadro de lista

son los siguientes:

Método Descripción

AddItem Agrega un nuevo elemento a la lista.

Clear Elimina todos los elementos contenidos en la

lista.

RemoveItem Elimina en elemento de la lista.

Cuadro combinado

Un cuadro combinado es una mezcla de un cuadro de texto

con una lista. En él no sólo se podrá ingresar un dato sino

también seleccionarlo de la lista. Presenta las mismas

propiedades, eventos y métodos que el cuadro de lista a

excepción de lo siguiente:

Propiedad Descripción

Style Especifica si el control se comporta como un

cuadro de texto o como una lista desplegable.

Un cuadro de texto permite ingresar valores.

Una lista desplegable sólo permite

seleccionar valores. El valor predeterminado

es 0-vbComboDropDown, e incluye una lista

desplegable y un cuadro de texto. El valor

1-vbComboSimple incluye tan solo cuadro de

texto. El valor 2-Dropdown List incluye sólo

una lista desplegable.

Pág. 71

Page 72: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Como ejemplo del uso de listas vamos a desarrollar una

aplicación que permita ingresar el nombre de un curso, el cual

pasa a formar parte de una lista de espera antes de ser

programado para su dictado. Los cursos deben ser seleccionados

de la lista de espera y trasladados a la lista de cursos

programados y viceversa.

Para el desarrollo de la presente aplicación proceda a

ubicar los siguientes controles en el formulario:

3 etiquetas

1 cuadro de texto

2 listas

5 botones de comando

Pág. 72

Page 73: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

En seguida proceda a establecer las propiedades según se

indica:

Form1

Nombre FrmCursos

BorderStyle 3-Fixed Dialog

Caption Cursos

Label1

Nombre LblCurso

AutoSize True

Caption Ingrese nuevo curso:

Label2

Nombre LblSeleccionar

AutoSize True

Caption Seleccione un curso:

Label3

Nombre LblProgramado

AutoSize True

Caption Curso programado:

Text1

Nombre TxtCurso

Text

List1

Nombre LstSeleccionar

List2

Nombre LstProgramado

Pág. 73

Page 74: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Command1

Nombre CmdAgregar

Caption

Picture C:\FundVB\Bitmaps\AddItem.Bmp

Style 1-Graphical

Command2

Nombre CmdAgregarTodo

Caption

Picture C:\FundVB\Bitmaps\AddAll.Bmp

Style 1-Graphical

Command3

Nombre CmdQuitar

Caption

Picture C:\FundVB\Bitmaps\Remove.Bmp

Style 1-Graphical

Command4

Nombre CmdQuitarTodo

Caption

Picture C:\FundVB\Bitmaps\RemoveAll.Bmp

Style 1-Graphical

Command5

Nombre CmdAnnadir

Caption &Añadir

Default True

Seguidamente proceda a ingresar el código que se indica a

continuación:

Pág. 74

Private Sub CmdAnnadir_Click()

Page 75: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

LstSeleccionar.AddItem TxtCurso

TxtCurso = “”

TxtCurso.SetFocus

End Sub

Private Sub CmdAgregar_Click()

Dim CURSO As String, I As Integer

CURSO = LstSeleccionar.Text

I = LstSeleccionar.ListIndex

If LstSeleccionar.ListIndex >= 0 Then

LstProgramado.AddItem CURSO

LstSeleccionar.RemoveItem I

End If

End Sub

Private Sub CmdQuitar_Click()

Dim CURSO As String, I As Integer

CURSO = LstProgramado.Text

I = LstProgramado.ListIndex

If LstProgramado.ListIndex >= 0 Then

LstSeleccionar.AddItem CURSO

LstProgramado.RemoveItem I

End If

End Sub

Private Sub CmdAgregarTodo_Click()

Dim I As Integer

Pág. 75

Page 76: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

For I = 0 To LstSeleccionar.ListCount - 1

LstProgramado.AddItem LstSeleccionar.List(I)

Next

LstSeleccionar.Clear

End Sub

Private Sub CmdQuitarTodo_Click()

Dim I As Integer

For I = 0 To LstProgramado.ListCount - 1

LstSeleccionar.AddItem LstProgramado.List(I)

Next

LstProgramado.Clear

End Sub

Seguidamente mostraremos un ejemplo del uso de los cuadros

combinados. Para tal fin vamos a desarrollar una aplicación que

permita realizar consultas acerca de un determinado curso. La

relación de cursos se presentará mediante un cuadro combinado,

del cual el usuario debe seleccionar el curso de su interés y

en seguida se presentará el nombre del profesor encargado del

curso (teoría), el nombre del jefe de práctica (laboratorio),

así como los horarios de teoría y de laboratorio,

respectivamente.

Pág. 76

Page 77: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para el desarrollo de la presente aplicación proceda a

ubicar los siguientes controles en el formulario:

1 etiqueta

1 cuadro de texto

1 cuadro combinado

1 botón de comando

En seguida proceda a establecer las propiedades según se

indica:

Form1

Nombre FrmConsultaCursos

BorderStyle 3-Fixed Dialog

Caption Consulta de cursos

Pág. 77

Page 78: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Label1

Nombre LblCursos

Caption Cursos:

Text1

Nombre TxtCurso

MultiLine True

ScrollBars 2-Vertical

Text

Combo1

Nombre CboCursos

Text

Style 2-Dropdown List

Command1

Nombre CmdSalir

Caption &Salir

Seguidamente proceda a ingresar el código que se indica a

continuación:

Dim Matriz(5, 3) As String

Private Sub Form_Load()

CboCursos.AddItem “Microsoft Visual Basic Nivel I”

CboCursos.AddItem “Microsoft Visual Basic Nivel II”

CboCursos.AddItem “Microsoft Visual FoxPro Nivel I”

CboCursos.AddItem “Microsoft Visual FoxPro Nivel II”

CboCursos.AddItem “Microsoft Visual C++ Nivel I”

CboCursos.AddItem “Microsoft Visual C++ Nivel II”

Pág. 78

Page 79: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Matriz(0, 0) = “Castillo Peralta, Carlos”

Matriz(1, 0) = “Castillo Peralta, Carlos”

Matriz(2, 0) = “Linares Alarcon, Adams”

Matriz(3, 0) = “Castillo Peralta, Carlos”

Matriz(4, 0) = “Córdoba Saavedra, Javier”

Matriz(5, 0) = “Castillo Peralta, Carlos”

Matriz(0, 1) = “Sa 08-11”

Matriz(1, 1) = “Sa 14-17”

Matriz(2, 1) = “Sa 08-11”

Matriz(3, 1) = “Do 08-11”

Matriz(4, 1) = “Sa 14-17”

Matriz(5, 1) = “Sa 17-20”

Matriz(0, 2) = “Castillo Peralta, Carlos”

Matriz(1, 2) = “Linares Alarcon, Adams”

Matriz(2, 2) = “Montes Tejada, Estela”

Matriz(3, 2) = “Linares Alarcon, Adams”

Matriz(4, 2) = “Córdoba Saavedra, Javier”

Matriz(5, 2) = “Córdoba Saavedra, Javier”

Matriz(0, 3) = “Sa 11-13”

Matriz(1, 3) = “Do 08-10”

Matriz(2, 3) = “Sa 11-13”

Matriz(3, 3) = “Do 14-16”

Matriz(4, 3) = “Sa 18-20”

Matriz(5, 3) = “Do 08-10”

End Sub

Pág. 79

Page 80: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Private Sub CboCursos_Click()

Dim P_TEORIA As String, H_TEORIA As String

Dim P_LAB As String, H_LAB As String

P_TEORIA = “Profesor de teoría: ” & _

Matriz(CboCursos.ListIndex, 0)

H_TEORIA = “Horario de teoría: ” & _

Matriz(CboCursos.ListIndex, 1)

P_LAB = “Jefe de práctica: ” & _

Matriz(CboCursos.ListIndex, 2)

H_LAB = “Horario laboratorio: ” & _

Matriz(CboCursos.ListIndex, 3)

TxtCurso = P_TEORIA & vbCrLf & H_TEORIA & vbCrLf & _

P_LAB & vbCrLf & H_LAB

End Sub

Private Sub CmdSalir_Click()

End

End Sub

La constante vbCrLf es una combinación de retorno de carro

y avance de línea, es equivalente a Chr(13) + Chr(10).

Para este ejemplo en particular hemos almacenado la

información en memoria RAM mediante el uso de un arreglo

bidimensional (Matriz).

Pág. 80

Page 81: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Cronómetro

Un cronómetro sirve para controlar el tiempo transcurrido

desde el inicio de una acción.

Propiedad Descripción

Interval Especifica el número de milisegundos que se

esperará para disparar el evento Timer.

El control Cronómetro responde al evento Timer, cuya

descripción es:

Evento Descripción

Timer Ocurre cuando el número de milisegundos

especificado en la propiedad Interval ha

transcurrido.

A manera de ejemplo vamos a desarrollar la siguiente

aplicación que simula el funcionamiento de un reloj digital.

Pág. 81

Page 82: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para el desarrollo de la presente aplicación proceda a

ubicar los siguientes controles sobre el formulario:

1 etiqueta

1 cuadro de texto

1 cronómetro

1 botón de comando

En seguida proceda a establecer las propiedades según se

indica:

Form1

Nombre FrmReloj

BorderStyle 3-Fixed Dialog

Caption Reloj digital

Label1

Nombre LblHora

Caption Hora

Text1

Nombre TxtHora

Text

Timer1

Nombre Timer1

Interval 500

Command1

Nombre CmdTerminar

Caption &Terminar

Pág. 82

Page 83: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Seguidamente proceda a ingresar el código que se indica a

continuación:

Private Sub Form_Activate()

TxtHora = Time()

End Sub

Private Sub Timer1_Timer()

If TxtHora Time() Then <>

TxtHora = Time()

End If

End Sub

Private Sub CmdTerminar_Click()

End

End Sub

Cuadro de imagen

Un cuadro de imagen se utiliza para mostrar un archivo de

imagen (BMP, GIF o JPG). Recorta el gráfico si el control no es

lo bastante grande para mostrar la imagen completa.

Propiedad Descripción

AutoSize Especifica si el control ajusta

automáticamente su tamaño para mostrar un

gráfico completo.

Picture Especifica el archivo de imagen para el

control.

Pág. 83

Page 84: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

El evento que suele manejarse para este control es

MouseMove, cuya descripción es:

Evento Descripción

MouseMove Ocurre cuando el usuario mueve el ratón sobre

el control.

Imagen

Un control imagen se utilizará para mostrar un archivo de

imagen (BMP, GIF o JPG) de manera similar a un Cuadro de

imagen. Sin embargo, este control utiliza menos recursos del

sistema y se actualiza con más rapidez que un cuadro de imagen.

Propiedad Descripción

Picture Especifica el archivo de imagen para el

control.

Stretch Especifica como se ajusta el tamaño del

archivo gráfico para que quepa dentro del

control imagen.

Para este control también se suele manejar el evento

MouseMove.

Barras de desplazamiento horizontal

Una barra de desplazamiento horizontal representa un valor

entero, la cual tiene un cuadrado que se desplaza a lo largo de

la misma para fijar un valor.

Pág. 84

Page 85: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

La posición más a la izquierda se corresponde con el valor

mínimo, la posición más a la derecha con el valor máximo, y

cualquier otra posición es un valor entre ellos dos.

Propiedad Descripción

Max Especifica el valor máximo que puede tomar la

propiedad Value.

Min Especifica el valor mínimo que puede tomar la

propiedad Value.

LargeChange Especifica en cuanto cambiará el valor de la

propiedad Value cuando el usuario haga click

antes o después del cuadrado de

desplazamiento.

SmallChange Especifica en cuanto cambiará el valor de la

propiedad Value cuando el usuario haga click

en alguna de las flechas de los extremos de

la barra.

Value Especifica el valor del control, este se

encuentra siempre entre los valores de las

propiedades Min y Max.

Las barras de desplazamientos responden a los eventos:

Evento Descripción

Change Ocurre inmediatamente después que el cuadrado

de desplazamiento ha sido movido.

Scroll Ocurre mientras el cuadrado de desplazamiento

está siendo movido (este evento sólo ocurre

cuando el cuadrado es arrastrado).

Barras de desplazamiento vertical

Pág. 85

Page 86: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Una barra de desplazamiento vertical representa un valor

entero, la cual tiene un cuadrado que se desplaza a lo largo de

la misma para fijar un valor.

La posición más hacia arriba se corresponde con el valor

mínimo, la posición más hacia abajo se corresponde con el valor

máximo, y cualquier otra posición es un valor entre ellos dos.

Las propiedades y eventos de las barras de desplazamiento

horizontal y vertical son análogas.

Como ejemplo, vamos a construir una aplicación que permita

cambiar el color de fondo de un cuadro de imagen, mediante tres

barras de desplazamiento (rojo, verde y azul).

Para el desarrollo de la presente aplicación proceda a

ubicar los siguientes controles en el formulario:

3 etiquetas

Pág. 86

Page 87: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

3 barras de desplazamiento horizontal

1 cuadro de imagen

En seguida proceda a establecer las propiedades según se

indica:

Form1

Nombre FrmColores

BorderStyle 3-Fixed Dialog

Caption Colores

Label1

Nombre LblRojo

Caption Rojo

Label2

Nombre LblVerde

Caption Verde

Label3

Nombre LblAzul

Caption Azul

HScroll1

Nombre HSRojo

LargeChange 10

Max 255

Min 0

SmallChange 1

Value 255

HScroll2

Pág. 87

Page 88: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Nombre HSVerde

LargeChange 10

Max 255

Min 0

SmallChange 1

Value 0

HScroll3

Nombre HSAzul

LargeChange 10

Max 255

Min 0

SmallChange 1

Value 0

Picture1

Nombre PicFondo

BackColor &H000000FF&

Seguidamente proceda a ingresar el código que se indica a

continuación:

Private Sub HSRojo_Change()

PicFondo.BackColor = RGB(HSRojo, HSVerde, HSAzul)

End Sub

Private Sub HSVerde_Change()

PicFondo.BackColor = RGB(HSRojo, HSVerde, HSAzul)

End Sub

Private Sub HSAzul_Change()

Pág. 88

Page 89: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

PicFondo.BackColor = RGB(HSRojo, HSVerde, HSAzul)

End Sub

En el código anterior se debió colocar HSRojo.Value,

HSVerde.Value y HSAzul.Value, pero debido a que la propiedad

Value es por defecto se puede omitir.

Cuadro de lista de unidades

Un cuadro de lista de unidades permite al usuario

seleccionar una unidad de disco válida en tiempo de ejecución.

Utilice este control para presentar una lista de todas las

unidades válidas del sistema.

Propiedad Descripción

Drive Especifica la unidad seleccionada en tiempo

de ejecución.

Este control responde al evento Change, cuya descripción

es la siguiente:

Evento Descripción

Change Ocurre cuando el usuario hace click sobre la

unidad que desea seleccionar. El evento

Change también ocurre si se selecciona la

unidad mediante el teclado.

Cuadro de lista de directorios

Pág. 89

Page 90: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Un cuadro de lista de directorios muestra directorios y

rutas de acceso en tiempo de ejecución. Utilice este control

para mostrar una lista jerárquica de directorios.

Propiedad Descripción

Path Especifica la ruta de acceso actual.

Un cuadro de lista de directorios también responde al

evento Change.

Cuadro de lista de archivos

Un cuadro de lista de archivos encuentra y muestra los

archivos del directorio especificado por la propiedad Path en

tiempo de ejecución. Utilice este control para mostrar una

lista de los archivos seleccionados por tipo.

Propiedad Descripción

Path Especifica la ruta de acceso actual.

Pattern Especifica el tipo de archivo que se desea

visualizar en el control.

List Devuelve los elementos contenidos en la parte

de lista del control.

ListIndex Especifica el índice del elemento

seleccionado actualmente en el control.

Como ejemplo vamos a desarrollar una aplicación que

permita el manejo de unidades, carpetas y archivos. El usuario

Pág. 90

Page 91: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

puede seleccionar la unidad actual de trabajo, la carpeta y el

archivo y poder visualizar su contenido (en este caso archivos

gráficos *.JPG).

Para el desarrollo de la presente aplicación proceda a

ubicar los siguientes controles en el formulario:

4 etiquetas

1 cuadro de lista de unidades

1 cuadro de lista de directorios

1 cuadro de lista de archivos

1 imagen

En seguida proceda a establecer las propiedades según se

indica:

Form1

Nombre FrmVisor

Caption Visor

Pág. 91

Page 92: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Label1

Nombre LblUnidad

Caption Unidad

Label2

Nombre LblCarpeta

Caption Carpeta

Label3

Nombre LblArchivo

Caption Archivo

Label4

Nombre LblVista

Caption Vista previa

Drive1

Nombre Drive1

Dir1

Nombre Dir1

File1

Nombre File1

Pattern *.JPG

Image1

Nombre ImgVista

Stretch True

Seguidamente proceda a ingresar el código que se indica a

continuación:

Private Sub Drive1_Change()

Pág. 92

Page 93: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

On Error GoTo DRIVE_ERROR

Dir1.Path = Drive1.Drive

Exit Sub

DRIVE_ERROR:

MsgBox “ERROR: Unidad no preparada”, vbCritical, “Error”

Exit Sub

End Sub

Private Sub Dir1_Change()

File1.Path = Dir1.Path

End Sub

Private Sub File1_Click()

Dim ARCHIVO As String

ARCHIVO = File1.Path & “\”

ARCHIVO = ARCHIVO & File1.List(File1.ListIndex)

ImgVista.Picture = LoadPicture(ARCHIVO)

End Sub

La instrucción On Error activa una rutina de control de

errores y especifica la ubicación de la misma en un

procedimiento.

LA FUNCIÓN MSGBOX

A menudo habrá situaciones en las cuales tendrá que

presentar algún mensaje (por ejemplo una pregunta) y en función

Pág. 93

Page 94: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

de la respuesta del usuario se ejecutará una determinada

acción.

La función MsgBox() muestra un cuadro de diálogo

predefinido y retorna un valor de tipo entero dependiendo del

botón seleccionado por el usuario. Su sintaxis es de la

siguiente forma:

VALOR = MsgBox(MENSAJE [, BOTÓN + ICONO, TÍTULO])

Donde MENSAJE se refiere a una expresión de cadena que se

muestra como mensaje en el cuadro de diálogo.

BOTÓN es una expresión numérica que se refiere al tipo y

cantidad de botones a utilizar.

ICONO es una expresión numérica que se refiere al estilo

de icono que se va ha utilizar.

TÍTULO es una texto que se mostrará en la barra de título

de la caja de diálogo.

Tipo de botón

Valor Botón Nombre

0 Aceptar vbOKOnly

Pág. 94

Page 95: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

1 Aceptar y Cancelar vbOKCancel

2 Anular, Reintentar, Ignorar vbAbortRetryIgnore

3 Sí, No y Cancelar vbYesNoCancel

4 Sí y No vbYesNo

5 Reintentar y Cancelar vbRetryCancel

Tipo de icono

Valor Icono Nombre

16 Mensaje crítico vbCritical

32 Signo de interrogación vbQuestion

48 Signo de exclamación vbExclamation

64 Signo de información vbInformation

Valores retornados

Valor Botón Nombre

1 Aceptar vbOK

2 Cancelar vbCancel

3 Anular vbAbort

4 Reintentar vbRetry

5 Ignorar vbIgnore

6 Sí vbYes

7 No vbNo

Como ejemplo vamos a construir un formulario que presente

un botón “Salir”, de tal forma que cuando el usuario pulse

dicho botón se presente el siguiente mensaje:

Pág. 95

Page 96: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

En caso de que el usuario elija la opción “Sí”, la

aplicación debe terminar. En caso contrario, es decir si el

usuario elige la opción “No”, se debe proseguir con la

aplicación.

Para el desarrollo del presente ejemplo, proceda a ubicar

sobre el formulario un botón de comando (CmdSalir), a

continuación ingresar el siguiente código:

Private Sub CmdSalir_Click()

Dim RESP As Integer

RESP = MsgBox(“Desea terminar la aplicación?”, _

vbQuestion + vbYesNo, “Pregunta”)

If RESP = vbYes Then

End

End If

End Sub

Para ilustrar mejor el uso de la función MsgBox() vamos a

desarrollar la siguiente aplicación que permite mostrar los

diferentes tipos de botones e iconos generados por la función.

Pág. 96

Page 97: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para ello proceda a ubicar los siguientes controles en el

formulario:

2 cuadros de lista

1 botón de comando

En seguida proceda a establecer las propiedades según se

indica:

Form1

Nombre FrmFuncionMsgBox

BorderStyle 3-Fixed Dialog

Caption Función MsgBox

List1

Nombre LstBoton

List2

Nombre LstIcono

Command1

Pág. 97

Page 98: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Nombre CmdMensaje

Caption &Mensaje

Seguidamente proceda a ingresar el código que se indica a

continuación:

Private Sub Form_Load()

LstBoton.AddItem “Aceptar”

LstBoton.AddItem “Aceptar y Cancelar”

LstBoton.AddItem “Anular, Reintentar, Ignorar”

LstBoton.AddItem “Sí, No y Cancelar”

LstBoton.AddItem “Sí y No”

LstBoton.AddItem “Reintentar y Cancelar”

LstIcono.AddItem “Mensaje crítico”

LstIcono.AddItem “Signo de interrogación”

LstIcono.AddItem “Signo de exclamación”

LstIcono.AddItem “Signo de información”

End Sub

Private Sub CmdMensaje_Click()

Dim RESP As Integer, BOTON As Integer, ICONO As Integer

BOTON = LstBoton.ListIndex

ICONO = (LstIcono.ListIndex + 1) * 16

RESP = MsgBox(“Hola Mundo”, BOTON + ICONO, “Ejemplo”)

End Sub

Pág. 98

Page 99: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

CAPÍTULO 5

EL FORMULARIO

Un formulario es un objeto contenedor que sirve para

diseñar la interfaz de usuario. En el formulario se colocan los

controles para que el usuario pueda interactuar con la

aplicación de una manera fácil e intuitiva.

Los formularios tienen sus propias propiedades, eventos y

métodos con los que se puede controlar su apariencia y

comportamiento, muchos de los cuales ya han sido utilizados en

las aplicaciones de los capítulos anteriores y que a

continuación pasamos a describir.

Pág. 99

Page 100: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Propiedad Descripción

AutoRedraw Especifica si se activa el redibujado

automático del formulario.

BackColor Especifica el color de fondo del formulario.

BorderStyle Especifica un estilo de borde para el

formulario.

Caption Especifica el texto que se muestra en la

barra de título del formulario.

ControlBox Especifica si aparece un icono de menú

desplegable en el ángulo superior izquierdo

del formulario.

ForeColor Especifica el color de primer plano utilizado

para mostrar texto sobre el formulario.

Height Especifica el alto del formulario. Se mide en

“twips”.

Icon Especifica el icono que se muestra para un

formulario.

MaxButton Especifica si el formulario tiene un botón

Maximizar.

MinButton Especifica si el formulario tiene un botón

Minimizar.

Picture Especifica el archivo de imagen que se va ha

mostrar como fondo para el formulario.

StartUpPosition Especifica la posición del formulario la

primera vez que se ejecuta.

Visible Establece si el formulario es visible o está

oculto.

Width Especifica el ancho del formulario. Se mide

en “twips”.

WindowState Establece el estado del formulario (normal,

minimizado o maximizado).

Pág. 100

Page 101: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Nota

Un twip es una unidad independiente de la pantalla

utilizada para asegurar que la colocación y la proporción de

los elementos de la pantalla de la aplicación son los mismos en

todos los sistemas de pantallas. Un twip es igual a 1/20 de un

punto de impresora. Existen aproximadamente 1440 twips en una

pulgada o 567 twips en un centímetro.

Los eventos a los que responde un formulario son los

siguientes:

Evento Descripción

Activate Ocurre cuando el formulario se convierte en

ventana activa.

Deactivate Ocurre cuando el formulario deja de ser la

ventana activa.

Load Ocurre cuando el formulario se carga en la

memoria.

MouseDown Ocurre cuando el usuario pulsa el botón

derecho del ratón sobre el formulario.

QueryUnload Ocurre antes de iniciarse el proceso de

descarga del formulario (antes del evento

Unload).

Resize Ocurre cuando se muestra primero el

formulario o se cambian sus dimensiones.

Unload Ocurre cuando el formulario se descarga de la

memoria.

Pág. 101

Page 102: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Los métodos que se pueden utilizar con un formulario son

los siguientes:

Método Descripción

Hide Oculta un formulario.

PopupMenu Presenta un menú popup en la posición actual

del ratón.

Print Imprime un valor sobre el formulario.

Refresh Vuelve a pintar un formulario y actualiza

todos los valores contenidos en él.

Show Muestra un formulario y determina si es modal

o carece de modo. Si el formulario a mostrar

no está cargado Visual Basic lo carga

automáticamente.

Como ejemplo vamos a desarrollar una aplicación que

utilice dos formularios. Desde el primer formulario el usuario

podrá ir al segundo formulario y viceversa.

Pág. 102

Page 103: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para el desarrollo de la presente aplicación proceda a

crear un nuevo proyecto. Seguidamente debe ubicar dos botones

de comando en el formulario. Luego establezca las siguientes

propiedades:

Form1

Nombre Form1

Caption Primer formulario

Command1

Nombre CmdIr

Caption &Ir

Command2

Nombre CmdSalir

Caption &Salir

Seguidamente procede a ingresar el código que se muestra a

continuación:

Private Sub CmdIr_Click()

Form2.Show

Form1.Hide

End Sub

Private Sub CmdSalir_Click()

End

End Sub

Pág. 103

Page 104: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Luego debe añadir un formulario adicional al proyecto.

Para tal fin, seleccione el menú Proyecto y elija la opción

Agregar formulario.

Del cuadro de diálogo que se presenta elija el icono

Formulario y haga click en el botón “Abrir”, tal como se indica

en la figura. En ese instante se añadirá un nuevo formulario al

proyecto. Luego, proceda a ubicar un botón de comandos en el

formulario que acaba de añadir y establezca las siguientes

propiedades:

Form2

Nombre Form2

Caption Segundo formulario

ControlBox False

Pág. 104

Page 105: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Command2

Nombre CmdVolver

Caption &Volver

En seguida proceda a ingresar el código que se indica a

continuación:

Private Sub CmdVolver_Click()

Form1.Show

Form2.Hide

End Sub

ESTILOS DE FORMULARIO

Visual Basic cuenta con seis diferentes estilos de

formulario, cuya descripción es la siguiente:

Valor Estilo Descripción

0 None No presenta ningún borde.

1 Fixed Single Puede incluir un Menú de control,

una Barra de título , un botón

Maximizar y un botón Minimizar.

Sólo puede cambiar de tamaño

mediante los botones Maximizar y

Minimizar.

2 Sizable (Predeterminado). Puede cambiar de

tamaño mediante cualquiera de los

elementos opcionales de borde

indicados para Fixed Single.

Pág. 105

Page 106: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Valor Estilo Descripción

3 Fixed Dialog Puede incluir un Menú de control y

una Barra de título, pero no los

botones Maximizar ni Minimizar. No

puede cambiar de tamaño.

4 Fixed ToolWindow Sólo muestra el botón Cerrar y el

texto de la barra de título aparece

con un tamaño de fuente reducido.

No puede cambiar su tamaño.

5 Sizable ToolWindow Sólo muestra el botón Cerrar y el

texto de la barra de título aparece

con un tamaño de fuente reducido.

Puede cambiar de tamaño.

Como ejemplo vamos a desarrollar una aplicación que

permita representar los diferentes estilos de formulario de

Visual Basic.

Pág. 106

Page 107: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para el desarrollo de la presente aplicación proceda a

crear un nuevo proyecto y luego ubique los siguientes controles

en el formulario:

1 cuadro de lista

2 botones de comando

Luego debe establecer las propiedades que se indican a

continuación:

Form1

Nombre FrmPrincipal

Caption Estilos de formulario

BorderStyle 3-Fixed Dialog

List1

Nombre LstTipoForm

List 0-None

1-Fixed Single

2-Sizable

3-Fixed Dialog

4-Fixed ToolWindow

5-Sizable ToolWindow

Command1

Nombre CmdMostrar

Caption &Mostrar

Command2

Nombre CmdSalir

Caption &Salir

Pág. 107

Page 108: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Seguidamente procede a ingresar el código que se muestra a

continuación:

Private Sub Form_Load()

Load FrmNone

Load FrmFixedSingle

Load FrmSizable

Load FrmFixedDialog

Load FrmFixedToolWindow

Load FrmSizableToolWindow

End Sub

Private Sub CmdMostrar_Click()

Dim OP As Integer

OP = LstTipoForm.ListIndex

Select Case OP

Case 0 : FrmNone.Show vbModal

Case 1 : FrmFixedSingle.Show vbModal

Case 2 : FrmSizable.Show vbModal

Case 3 : FrmFixedDialog.Show vbModal

Case 4 : FrmFixedToolWindow.Show vbModal

Case 5 : FrmSizableToolWindow.Show vbModal

Case Else

MsgBox “Debe seleccionar estilo de formulario”

End Select

End Sub

Pág. 108

Page 109: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Private Sub LstTipoForm_DblClick()

Call CmdMostrar_Click

End Sub

Private Sub CmdSalir_Click()

End

End Sub

Seguidamente proceda a añadir los formularios para las

diferentes opciones del cuadro de lista. Cambie los nombres de

los formularios según se indica:

Formulario Nombre

Form2 FrmNone

Form3 FrmFixedSingle

Form4 FrmSizable

Form5 FrmFixedDialog

Form6 FrmFixedToolWindow

Form7 FrmSizableToolWindow

Luego debe activar el formulario FrmNone, ubicar un botón

de comandos sobre el mismo y establecer las siguientes

propiedades:

Form2

Nombre FrmNone

BorderStyle 0-None

Caption None

Pág. 109

Page 110: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Command1

Nombre CmdVolver

Caption &Volver

Una vez establecidas las propiedades, proceda a ingresar

el código que se muestra a continuación:

Private Sub CmdVolver_Click()

Unload Me

End Sub

Para concluir con el diseño de la aplicación, simplemente

repita el procedimiento anterior para los demás tipos de

formularios.

Como habrá podido observar, al mostrar un formulario

mediante el método Show podemos hacerlo de forma modal

(vbModal) o no modal (opción por defecto). Un formulario modal

es aquel que necesita cerrarse antes de pasar el enfoque a otro

formulario. Un formulario no modal no requiere cerrarse para

pasar el enfoque a otro formulario.

PASANDO VALORES ENTRE FORMULARIOS

Muchas veces se requieren pasar valores de un formulario a

otro, esto se puede realizar mediante el uso módulos estándar,

los cuales son contenedores de procedimientos y declaraciones a

los que tienen acceso otros módulos de la aplicación.

Pág. 110

Page 111: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Como ejemplo vamos a construir la siguiente aplicación, la

cual envía un mensaje de texto del primer formulario hacia el

segundo formulario.

Para el desarrollo de la presente aplicación proceda a

crear un nuevo proyecto y añada un formulario adicional, de tal

forma que tenga los formularios Form1 y Form2. Seguidamente

ubicar los siguientes controles:

Form1 Form2

Text1 TxtMensaje1 Text1 TxtMensaje2

Command1 CmdEnviar Command1 CmdRecibir

Command2 CmdSalir Command2 CmdVolver

A continuación proceda a ingresar el código que se indica

para el primer formulario (Form1):

Pág. 111

Page 112: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Private Sub CmdEnviar_Click()

Mensaje = TxtMensaje1

Form1.Hide

Form2.Show

End Sub

Private Sub CmdSalir_Click()

End

End Sub

Para el segundo formulario (Form2) proceda a ingresar el

código siguiente:

Private Sub CmdRecibir_Click()

TxtMensaje2 = Mensaje

End Sub

Private Sub CmdVolver_Click()

Form2.Hide

Form1.Show

End Sub

Seguidamente debe añadir un módulo estándar al proyecto,

para ello, seleccione el Menú Proyecto y elija la opción

Agregar módulo, se debe presentar un cuadro de diálogo similar

a la figura mostrada, en el cual debe dar click en el botón

“Abrir”.

Pág. 112

Page 113: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Seguidamente proceda a declarar la variable Mensaje como

“pública” en la sección de declaraciones del módulo que acaba

de añadir:

Una variable pública (Public) es una variable que se

declara a nivel de módulo y se le puede acceder desde cualquier

otro módulo.

Pág. 113

Page 114: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

FORMULARIOS MDI

Un formulario MDI (Interfaz de Documentos Múltiples) es

una ventana que actúa como fondo de una aplicación y es el

contenedor (ventana padre) de otros formularios (ventanas

hijas).

En una aplicación MDI pueden haber varias ventanas hijas,

pero sólo una ventana padre por aplicación. Para que una

ventana actúe como hija debe tener su propiedad MDIChild

establecida a True.

Como ejemplo vamos a desarrollar una aplicación MDI que

incluya tres ventanas hijas. Para tal fin proceda a crear un

nuevo proyecto y seguidamente agregar dos formularios (simples)

al mismo.

Pág. 114

Page 115: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

No olvide establecer la propiedad MDIChild de los

formularios Form1, Form2 y Form3 a True.

Luego, debemos agregar el formulario MDI, para ello

acceder al Menú Proyecto y elegir la opción Agregar formulario

MDI, del cuadro de diálogo que se presenta hacer click en el

botón “Abrir”.

A continuación dar doble click sobre el formulario MDI e

ingresar el siguiente código:

Private Sub MDIForm_Load()

Form1.Show

Form2.Show

Form3.Show

End Sub

Pág. 115

Page 116: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Ahora sólo tiene que indicarle a Visual Basic que el

formulario de arranque (inicial) será el formulario MDI. Para

ello vaya al Menú Proyecto y elija la opción Propiedades de

Proyecto. En el cuadro combinado “Objeto inicial” seleccionar

MDIForm1, tal como se indica en la figura:

Eso es todo, ahora simplemente tiene que ejecutar su

aplicación.

Cabe destacar que en los formularios MDI por lo general no

se pueden incluir controles, debido a ello se suele trabajar

con menús de opciones o barras de herramientas para indicar

alguna acción a realizar.

Pág. 116

Page 117: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

CREACIÓN DE MENÚS

Un menú es un conjunto de opciones que se presentan al

usuario, entre las cuales debe elegir una de ellas. Dependiendo

de la decisión se realizarán una serie de acciones.

Para diseñar un menú cualquiera dar click derecho sobre el

formulario y del menú emergente que se presenta elegir la

opción Editor de menús.

Pág. 117

Page 118: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

En seguida se ha de presentar el Editor de menús de Visual

Basic.

Para crear un menú, tener en cuenta los siguiente

procedimientos:

• Ingresar el Editor de menús.

• Introducir el título del menú en el cuadro de texto Caption,

el cual aparecerá en la barra de menús.

• Introducir un nombre para el menú en el cuadro de texto Name,

el cual será utilizado en el código para referirse al menú.

• Introducir los elementos que componen el menú, para ello

escriba en los cuadros de texto Caption y Name el título y el

nombre del correspondiente elemento del menú.

Pág. 118

Page 119: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

• Para diferenciar un elemento del menú del propio menú, hay

que sangrar el título del elemento, para tal fin,

selecciónelo y haga click en el botón flecha hacia la derecha

( ).

• Un elemento de menú puede ser una orden (si el elemento

siguiente aparece sangrado al mismo nivel) o un submenú (si

el elemento siguiente aparece sangrado un nivel más).

• Utilizando separadores puede agrupar las órdenes en función

de lo que realizan. Para insertar un separador, escriba un

único guión (-) en el cuadro Caption del Editor de menús.

Tiene que especificar también un nombre para el separador.

• Para añadir un acelerador (una tecla o combinación de teclas

que permiten activar un menú), utilizar la propiedad

Shortcut.

• La propiedad Checked es útil para indicar si una orden está

activa o no lo está. Cuando se especifica esta propiedad

aparece una marca (3) a la izquierda del elemento de menú.

• La propiedad Enabled es útil para desactivar una orden en un

momento en el cual no tiene sentido que esté activa.

• La propiedad Visible es útil cuando durante la ejecución se

desea ocultar un elemento de menú.

• Cerrar el Editor de menús, para ello una vez que haya

finalizado su diseño pulse el botón “Aceptar”.

Pág. 119

Page 120: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Como ejercicio intente construir el menú mostrado en la

figura anterior.

Caption Name ShortCut

&Archivo MnuArchivo Ninguno

. . . &Artículo MnuArchivoArticulo Ninguno

. . . &Cliente MnuArchivoCliente Ninguno

. . . &Vendedor MnuArchivoVendedor Ninguno

. . . - MnuArchivoLinea Ninguno

. . . &Salir MnuArchivoSalir Ctrl + X

&Proceso MnuProceso Ninguno

. . . &Pedido MnuProcesoPedido Ninguno

. . . &Facturación MnuProcesoFacturacion Ninguno

&Reporte MnuReporte Ninguno

. . . &Registro de ventas MnuReporteRegVentas Ninguno

. . . Catálogo de &artículos Ninguno

. . . - MnuReporteLinea Ninguno

. . . &Cliente del mes MnuReporteClienteMes Ninguno

. . . &Vendedor del mes MnuReporteVendMes Ninguno

Ay&uda MnuAyuda Ninguno

. . . &Contenido MnuAyudaContenido Ninguno

. . . &Indice MnuAyudaIndice Ninguno

. . . &Búsqueda MnuAyudaBusqueda Ninguno

. . . - MnuAyudaLinea Ninguno

. . . &Acerca de MnuAyudaAbout Ninguno

Pág. 120

Page 121: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para probar el menú que acaba de crear, ingrese el

siguiente código:

Private Sub MnuArchivoArticulo_Click()

MsgBox “Seleccionó la opción Artículo”

End Sub

Private Sub MnuArchivoCliente_Click()

MsgBox “Seleccionó la opción Cliente”

End Sub

Private Sub MnuArchivoVendedor_Click()

MsgBox “Seleccionó la opción Vendedor”

End Sub

Private Sub MnuArchivoSalir_Click()

Unload Me

End Sub

Private Sub MDIForm_Unload(Cancel As Integer)

Dim RESP As Integer

RESP = MsgBox(“¿Desea terminar la aplicación?”, _

vbQuestion + vbYesNo, “Pregunta”)

If RESP = vbYes Then

End

Else: Cancel = True

End If

End Sub

Pág. 121

Page 122: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Luego al ejecutar su aplicación y seleccionar el menú

Archivo, opción Artículo, el resultado será similar a la figura

mostrada:

Hasta ahora hemos programado la salida de una aplicación,

asociando el código al botón “Salir”. Sin embargo, cuando el

usuario hace click en el botón “Cerrar” de la barra de título o

en la opción “Salir” del Menú de control del formulario, el

código escrito para el botón “Salir” es ignorado.

Para remediar esta situación, en el ejemplo anterior

cuando el usuario pulsa el botón “Salir”, se invoca al evento

Unload. La palabra reservada “Me” proporciona una forma de

referirse al formulario desde donde se está ejecutando el

código.

Recordar que el evento Unload del formulario se

desencadena cuando el usuario intenta cerrar el formulario

mediante cualquiera de las formas descritas anteriormente.

Para determinar si ocurre la descarga del formulario

utilice el parámetro Cancel. Si Cancel es False ocurre la

descarga, si Cancel es True impide que el formulario se quite.

CREACIÓN DE UNA BARRA DE HERRAMIENTAS

Pág. 122

Page 123: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Una barra de herramientas contiene botones con las

opciones más utilizadas de un menú, de tal manera que el

usuario haciendo click en dicho control activaría la opción

indicada de una manera más rápida.

Para crear una barra de herramientas debemos utilizar dos

controles que no están en la lista de controles estándar, por

tanto debemos agregar dichos controles que se encuentran en el

componente Microsoft Windows Common Controls 6.0, tal como se

indica a continuación:

Pág. 123

Page 124: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Como ejemplo, vamos a crear la barra de herramientas de la

figura mostrada:

Para ello, ubicar un control ImageList sobre el

formulario, para establecer sus propiedades dar click derecho

sobre el control y elija la opción Propiedades.

Pág. 124

Page 125: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Se ha de presentar un cuadro de diálogo similar a la

figura mostrada:

Activar la ficha Imágenes y pulsar el botón “Insertar

imagen” para seleccionar las imágenes que se incluirán en el

control ImageList.

Para el ejemplo, debe incluir ocho imágenes que

corresponden a cada uno de los botones de la barra de

herramientas.

Concluido el proceso anterior, proceda a ubicar un control

Toolbar sobre el formulario. Luego hacer click derecho sobre

dicho control y del menú emergente que se presenta seleccionar

la opción Propiedades. Del cuadro de diálogo que se presenta en

la ficha General establecer las siguientes propiedades:

Pág. 125

Page 126: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Luego, en la ficha Botones pulse el botón “Insertar

botón”. En el cuadro de texto Image se debe indicar un número

que corresponde al orden de imagen a mostrar.

Pág. 126

Page 127: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

El lector debe continuar con este proceso hasta completar

los botones restantes, según:

Index ToolTipText Image

1 Artículo 1

2 Cliente 2

3 Vendedor 3

4 Pedido 4

5 Facturación 5

6 Registro de ventas 6

7 Catálogo de artículos 7

8 Ayuda 8

Como el código a ejecutar tiene que ser el mismo cuando el

usuario elija una opción del menú o de un click sobre un botón

de la barra de herramientas se pueden programar procedimientos

de usuario que realicen dichas tareas, luego se deben invocar a

estos procedimientos tanto para las opciones del menú como para

la barra de herramientas.

Sin embargo, para el ejemplo el código es muy sencillo, ya

que sólo muestra un mensaje con la opción seleccionada (esto

por razones de simplicidad). Para probar la funcionalidad de la

barra de herramientas que acaba de crear ingrese el siguiente

código:

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

Pág. 127

Page 128: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Select Case Button.Index

Case 1: MsgBox “Seleccionó la opción Artículo”

Case 2: MsgBox “Seleccionó la opción Cliente”

Case 3: MsgBox “Seleccionó la opción Vendedor”

Case 4: MsgBox “Seleccionó la opción Pedido”

Case 5: MsgBox “Seleccionó la opción Facturación”

Case 6: MsgBox “Seleccionó la opción Registro de ventas”

Case 7: MsgBox “Seleccionó opción Catálogo de artículos”

Case 8: MsgBox “Seleccionó la opción Ayuda”

End Select

End Sub

El evento ButtonClick se dispara cuando el usuario hace

click sobre un botón de la barra de herramientas. La propiedad

Index permite identificar el número de botón pulsado.

CREACIÓN DE UNA BARRA DE ESTADO

Una barra de estado es un marco que se ubica en la parte

inferior del formulario y puede contener varios paneles que

informan al usuario acerca del estado de la aplicación. Para

crear una barra de estado utilizar el control StatusBar, el

cual forma de los controles personalizados que se encuentran en

el componente Microsoft Windows Common Controls 6.0.

Como ejemplo vamos a crear una barra de estado similar a

la de la figura mostrada:

Pág. 128

Page 129: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para ello ubicar un control StatusBar sobre el formulario,

dar click derecho sobre el mismo y en la ficha Paneles incluir

una imagen para la hora del sistema.

Pág. 129

Page 130: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

El resto de propiedades se establecerán mediante código al

momento de la carga del formulario.

Private Sub MDIForm_Load()

Dim I As Integer

For I = 1 To 2

StatusBar1.Panels.Add ' Se agregan 2 paneles más

Next

With StatusBar1.Panels

.Item(1).Style = sbrTime

.Item(2).Style = sbrCaps

.Item(3).Style = sbrIns

End With

End Sub

La propiedad Style permite mostrar el estado de las

teclas, la hora y la fecha del sistema con un mínimo de código.

Constante Valor Descripción

sbrText 0 (Predeterminado). Texto o mapa de bits.

sbrCaps 1 Tecla BLOQ MAYÚS.

sbrNum 2 Tecla BLOQ NÚM.

sbrIns 3 Tecla INS.

sbrScrl 4 Tecla BLOQ DESPL.

sbrTime 5 Muestra la hora actual con el formato del

sistema.

sbrDate 6 Muestra la fecha actual con el formato

del sistema.

Pág. 130

Page 131: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

CREACIÓN DE UN MENÚ CONTEXTUAL

Un menú contextual es un menú emergente (flotante) que se

muestra sobre un formulario, independiente de la barra de

menús. Para mostrar un menú contextual el usuario debe pulsar

el botón derecho del ratón sobre el formulario.

A menudo querrá usar un menú contextual para tener acceso

a opciones que no se encuentran disponibles en la barra de

menús. Para crear un menú que no se presente en la barra de

menús, haga invisible un elemento de menú de nivel superior en

tiempo de diseño (asegúrese de que la casilla de verificación

Visible del Editor de menús no esté activada). Cuando Visual

Basic presenta un menú emergente, pasa por alto la propiedad

Visible del menú de nivel superior especificado.

Pág. 131

Page 132: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para crear el menú contextual de la figura, debe ingresar

al Editor de menús y añadir lo siguiente:

Caption Name Visible

&Herramientas MnuTools

. . . Calculadora MnuToolsCalc 3

. . . Calendario MnuToolsCalen 3

. . . Solitario MnuToolsSol 3

Seguidamente proceda a ingresar el código que se indica a

continuación:

Private Sub MDIForm_MouseDown(Button As Integer, _

Shift As Integer, X As Single, Y As Single)

If Button = vbRightButton Then

PopupMenu MnuTools

End If

End Sub

Private Sub MnuToolsCalc_Click()

Dim I

I = Shell(“C:\WINDOWS\CALC.EXE”, 1)

End Sub

Private Sub MnuToolsCalen_Click()

FrmCalendario.Show

Pág. 132

End Sub

Page 133: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Private Sub MnuToolsSol_Click()

Dim I

I = Shell(“C:\WINDOWS\SOL.EXE”, 1)

End Sub

En el ejemplo anterior se asume que existe otro formulario

de nombre FrmCalendario. Este puede ser construido usando el

control MonthView.

La función Shell ejecuta un programa ejecutable y devuelve

un tipo Variant (Double) que representa la identificación de la

tarea del programa si se ha ejecutado con éxito, en caso

contrario devuelve cero.

Pág. 133

Page 134: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

CAPÍTULO 6

CONTROLES ACTIVEX

Los controles ActiveX son objetos que no forman parte del

conjunto de controles estándar de Visual Basic, sino más bien

han sido desarrollados por terceras personas.

Los controles ActiveX existen como archivos independientes

con extensión .OCX y deben ser cargados antes de utilizarse.

Para ello ingresar al Menú Proyecto y elija la opción

Componentes.

Pág. 134

Page 135: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

CONTROL ANIMATION

El control Animation permite reproducir archivos de

extensión .AVI que no tengan sonido para crear animaciones.

Para agregar este control debe seleccionar el componente

Microsoft Windows Common Controls-2 6.0.

Propiedad Descripción

AutoPlay Especifica si el archivo AVI se reproducirá

automáticamente al cargarse el control.

Método Descripción

Close Cierra el archivo AVI abierto actualmente.

Open Permite abrir el archivo AVI.

Play Reproduce el archivo AVI en el control

Animation.

Stop Termina la reproducción del archivo AVI.

Como ejemplo vamos a desarrollar un formulario que permita

reproducir un archivo AVI, tal como se muestra en la figura:

Pág. 135

Page 136: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para ello crear un nuevo formulario y agregar un control

Animation (Animation1) y dos botones de comando (CmdIniciar y

CmdTerminar, respectivamente). Luego ingrese el código que se

muestra:

Private Sub CmdIniciar_Click()

Dim RUTA As String

RUTA = “C:\Archivos de programa\Microsoft Visual Studio\”

RUTA = RUTA & “Common\Graphics\Videos\Filenuke.avi”

Animation1.Open (RUTA)

Animation1.Play

End Sub

Private Sub CmdTerminar_Click()

Animation1.Close

End

End Sub

CONTROL COMMONDIALOG

El control CommonDialog proporciona un conjunto de cuadros

de diálogo estándar que permiten realizar las operaciones más

comúnmente empleadas en el diseño de aplicaciones, como abrir y

guardar archivos, seleccionar colores y fuentes, imprimir, etc.

Para agregar este control seleccionar el componente Microsoft

Common Dialog Control 6.0.

Pág. 136

Page 137: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Propiedad Descripción

Color Especifica el color seleccionado.

FileName Especifica la ruta y nombre del archivo

seleccionado.

Filter Especifica el tipo de archivos que se han de

mostrar en un cuadro de diálogo Abrir o

Guardar como.

FilterIndex Especifica el filtro predeterminado para un

cuadro de diálogo Abrir o Guardar como, en

caso se esté utilizando varios filtros.

Método Descripción

ShowColor Presenta la paleta de colores.

ShowFont Presenta el cuadro de diálogo Fuentes.

ShowHelp Presenta la ayuda de Windows.

ShowOpen Presenta el cuadro de diálogo Abrir.

ShowPrinter Presenta el cuadro de diálogo Imprimir.

ShowSave Presenta el cuadro de diálogo Guardar como.

Como ejemplo vamos a desarrollar una aplicación que

permite cambiar el color de fondo de un formulario en tiempo de

ejecución. Para ello el usuario debe dar click en el botón

“Cambiar color” y en seguida se presentará la paleta de colores

de donde debe elegir el color deseado, tal como se muestra en

la figura siguiente:

Pág. 137

Page 138: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para ello crear un nuevo formulario, agregarle un botón de

comando (CmdCambiarColor) y un control CommonDialog. Luego

ingresar el siguiente código:

Private Sub CmdCambiarColor_Click()

CommonDialog1.ShowColor

Form1.BackColor = CommonDialog1.Color

End Sub

Como siguiente ejemplo vamos a desarrollar una aplicación

que permita mostrar el contenido de un archivo JPG. Este deberá

ser seleccionado por el usuario de un cuadro de diálogo Abrir,

tal como se indica en la figura:

Pág. 138

Page 139: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Al hacer click en el botón “Abrir”, el archivo

seleccionado debe ser mostrado en el formulario:

Para el diseño de esta aplicación crear un nuevo

formulario y ubicar un botón de comando (CmdAbrirArchivo), un

control imagen y un control CommonDialog.

Pág. 139

Page 140: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Seguidamente ingrese el código que se indica a

continuación:

Private Sub CmdAbrirArchivo_Click()

Dim FILTRO As String, FILE As String

FILTRO = “Imágenes JPEG (*.JPG)|*.JPG”

CommonDialog1.Filter = FILTRO

CommonDialog1.ShowOpen

FILE = CommonDialog1.FileName

Image1.Picture = LoadPicture(FILE)

End Sub

CONTROL MARCHOSO

El control Marchoso tiene como función reproducir archivos

GIF animados. Para agregar este control seleccionar el

componente Marchoso ActiveX Control Module. Este control fue

creado en Visual Basic y si no lo tiene en su disco duro lo

puede bajar de Internet.

Propiedad Descripción

FileName Especifica la ruta y nombre del archivo GIF

animado.

A manera de ejemplo vamos a diseñar un formulario que

permita mostrar archivos GIF animados.

Pág. 140

Page 141: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para ello proceda a crear un nuevo formulario y ubicar un

botón de comando (CmdVerGIFAnimado), un control Marchoso y un

control CommonDialog. Luego, ingresar el siguiente código:

Private Sub CmdVerGIFAnimado_Click()

Dim FILTRO As String, FILE As String

FILTRO = “Archivos GIF Animados (*.GIF)|*.GIF”

CommonDialog1.Filter = FILTRO

CommonDialog1.ShowOpen

FILE = CommonDialog1.FileName

Marchoso1.FileName = FILE

End Sub

CONTROL HIERARCHICAL FLEXGRID

El control Hierarchical FlexGrid presenta una cuadrícula

la cual permite mostrar datos en forma de celdas. Una celda es

la región formada por la intersección de una fila y una

columna.

Pág. 141

Page 142: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para agregar este control debe seleccionar el componente

Microsoft Hierarchical FlexGrid Control 6.0 (OLEDB).

Propiedad Descripción

Col Especifica el número de columna de la celda

actual.

Cols Especifica el número total de columnas, fijas

y no fijas.

FixedCols Especifica el número de columnas fijas. El

valor por defecto es 1.

FixedRows Especifica el número de filas fijas. El valor

por defecto es 1.

Row Especifica el número de fila de la celda

actual.

Rows Especifica el número total de filas, fijas y

no fijas.

Text Especifica el contenido de la celda actual.

TextArray Especifica el contenido de una celda elegida

aleatoriamente, se debe especificar el índice

de la celda a la cual se desea acceder.

ScrollBars Especifica si la cuadrícula presenta barras

de desplazamiento horizontales, verticales o

ambas a la vez.

Como ejemplo vamos a desarrollar una aplicación que

visualice un cuadrado mágico de orden impar . Un cuadrado

mágico se compone de números enteros comprendidos entre 1 y

. La suma de los números que figuran en cada fila, cada

columna y cada diagonal son idénticos.

N

2N

Pág. 142

Page 143: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Por ejemplo para = 5 tenemos el siguiente arreglo de

números:

N

Un método de construcción del cuadrado consiste en situar

el número 1 en el centro de la primera fila, el número

siguiente en la casilla situada encima y a la derecha, y así

sucesivamente. Es preciso considerar que el cuadrado se cierra

sobre sí mismo, la fila encima de la primera es de hecho la

última y la columna a la derecha de la última es la primera.

Sin embargo, cuando la posición del número caiga en una celda

ocupada, se elige la casilla situada por debajo del número que

acaba de ser situado.

Para el desarrollo de la presente aplicación proceda a

crear un nuevo formulario y ubicar una etiqueta (N?), un cuadro

de texto (TxtN) y un control Hierarchical FlexGrid.

Seguidamente debe ingresar el código que se indica:

Private Sub TxtN_Change()

Pág. 143

Page 144: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Dim N As Integer, I As Integer

Dim FIL As Integer, COL As Integer

N = Val(TxtN)

FIL = 1

COL = (N \ 2) + 1

MSHFlexGrid1.Cols = N

MSHFlexGrid1.Rows = N

MSHFlexGrid1.FixedCols = 0

MSHFlexGrid1.FixedRows = 0

For I = 1 To N ^ 2

MSHFlexGrid1.COL = COL - 1

MSHFlexGrid1.Row = FIL - 1

MSHFlexGrid1.Text = Str(I)

If I Mod N = 0 Then

FIL = FIL + 1

If FIL = N + 1 Then FIL = 1

Else

FIL = FIL - 1

If FIL = 0 Then FIL = N

COL = COL + 1

If COL = N + 1 Then COL = 1

End If

Next

End Sub CONTROL UPDOWN

Pág. 144

Page 145: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

El control UpDown tiene dos botones con flechas en los que

el usuario puede hacer clic para incrementar o disminuir un

valor de un control asociado, denominado control auxiliar. A

menudo, al usuario le parecerá que el control UpDown y su

control auxiliar son un único control. Por lo general se usa un

control UpDown con un cuadro de texto para solicitar al usuario

una entrada numérica, una combinación que en ocasiones se

denomina control Spinner.

Para agregar un control UpDown debe seleccionar el

componente Microsoft Windows Common Controls-2 6.0.

Propiedad Descripción

BuddyControl Especifica el control utilizado como

auxiliar.

BuddyProperty Especifica la propiedad utilizada para

sincronizar el control UpDown con su

auxiliar.

Increment Especifica un valor que determina la cantidad

en que varía la propiedad Value cuando se

hace click en los botones del control UpDown.

Max Especifica el valor máximo del intervalo de

desplazamiento del control UpDown.

Min Especifica el valor mínimo del intervalo de

desplazamiento del control UpDown.

SyncBuddy Especifica si el control UpDown sincroniza la

propiedad Value con una propiedad del control

auxiliar.

Como ejemplo vamos a desarrollar una aplicación que

permita mostrar el código ANSI de un carácter especificado.

Pág. 145

Page 146: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para tal fin crear un nuevo formulario y ubicar los

siguientes controles: 2 etiquetas (Código ANSI, Carácter), 2

cuadros de texto (TxtANSI, TxtCaracter) y 1 control UpDown.

Luego establezca las propiedades que se indican:

UpDown1

Nombre UpDown1

BuddyControl TxtANSI

BuddyProperty Text

Increment 1

Max 255

Min 0

SyncBuddy True

Seguidamente proceda a transcribir el siguiente código:

Private Sub TxtANSI_Change()

TxtCaracter = Chr(TxtANSI)

End Sub

CONTROL MONTHVIEW

Pág. 146

Page 147: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

El control MonthView permite al usuario la posibilidad de

ver y establecer información de fechas mediante una interfaz

similar a un calendario. Para agregar este control seleccionar

el componente Microsoft Windows Common Controls-2 6.0.

Propiedad Descripción

Day Especifica el número de día mostrado.

Month Especifica el número de mes mostrado.

Year Especifica el número de año mostrado.

Value Especifica la fecha mostrada.

DayOfWeek Especifica el día de la semana

correspondiente a la fecha mostrada.

Week Especifica el número de la semana en que cae

la fecha mostrada.

MultiSelect Especifica si se puede seleccionar un

intervalo contiguo de fechas.

MaxSelCount Especifica el número máximo de días que

pueden seleccionarse mediante la propiedad

MultiSelect.

SelStart

SelEnd

Especifica los límite inferior y superior

respectivamente del intervalo de fechas

seleccionado.

MonthColumns

MonthRows

Permiten mostrar más de un mes

simultáneamente. MonthColumns especifica el

número de meses que se mostrarán en sentido

horizontal. MonthRows especifica el número de

meses que se mostrarán en sentido vertical.

Evento Descripción

Pág. 147

Page 148: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Click Ocurre cada vez que el usuario hace click

sobre el control.

DateClick Ocurre cada vez que el usuario hace click

sobre una fecha mostrada en el control.

Como ejemplo vamos a crear un sencillo calendario. Cuando

el usuario haga click sobre alguna fecha, esta aparecerá en el

cuadro de texto. Pamela Anderson representará la parte

atractiva de nuestra aplicación.

Para ello crear un nuevo formulario y agregar una etiqueta

(La fecha selecciona es), un cuadro de texto (TxtFecha), un

control imagen (ImgPamela) y un control MonthView. Luego

ingresar el siguiente código:

Private Sub MonthView1_DateClick(ByVal DateClicked As Date)

Pág. 148

Page 149: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

TxtFecha = WeekdayName(MonthView1.DayOfWeek) & “ , ” _

& Str(MonthView1.Day) & “ de ” _

& MonthName(MonthView1.Month) & “ de ” _

& Str(MonthView1.Year)

End Sub

Private Sub MonthView1_Click()

Call MonthView1_DateClick(MonthView1.Value)

End Sub

Private Sub Form_Load()

Call MonthView1_DateClick(MonthView1.Value)

End Sub

La función WeekdayName retorna una cadena con el nombre

del día de la semana especificado. Requiere como argumento el

número de día de la semana.

La función MonthName retorna una cadena con el nombre del

mes especificado. Requiere como argumento el número de mes.

El evento DateClick tiene un parámetro DateClicked que

especifica la fecha seleccionada. Puede utilizar este valor

(DateClicked) para obtener la fecha en la que el usuario hizo

click.

CONTROL CALENDAR

Pág. 149

Page 150: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

El control Calendar es similar en funcionalidad al control

MonthView, pues también presenta un calendario. Para agregar

este control seleccionar el componente Control Calendar de

Microsoft 9.0.

Propiedad Descripción

Day Especifica el número de día mostrado.

Month Especifica el número de mes mostrado.

Year Especifica el número de año mostrado.

Value Especifica la fecha mostrada.

Como ejemplo vamos a desarrollar la aplicación anterior,

pero esta vez haciendo uso de un control Calendar.

Pág. 150

Page 151: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para ello crear un nuevo formulario y agregar una etiqueta

(La fecha selecciona es), un cuadro de texto (TxtFecha), un

control imagen (ImgPamela) y un control Calendar. Luego

ingresar el siguiente código:

Private Sub Calendar1_Click()

TxtFecha = WeekdayName(Weekday(Calendar1.Value)) & “ , ” _

& Str(Calendar1.Day) & “ de ” _

& MonthName(Calendar1.Month) & “ de ” _

& Str(Calendar1.Year)

End Sub

La función Weekday retorna un número entero que representa

el día de la semana de una fecha dada. Se utiliza para suplir a

la propiedad DayOfWeek la cual no está permitida para el

control Calendar.

Pág. 151

Page 152: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

CAPÍTULO 7

ARCHIVOS

Un archivo (fichero) es un conjunto de información

relacionada entre sí, almacenada como una unidad en un

dispositivo de almacenamiento secundario (disquete, disco

duro). Los datos almacenados en un archivo son de manera

permanente de modo que pueden ser manipulados en cualquier

momento. Cada archivo está referenciado por un identificador,

su nombre.

CONCEPTO DE ARCHIVO BAJO WINDOWS/VISUAL BASIC

Un archivo tiene un nombre almacenado en una carpeta junto

con otros archivos de disco. Los nombres de los archivos en

Windows y Visual Basic requieren de 1 a 215 caracteres

(incluidos espacios en blanco), y pueden incluir también una

extensión de 1 a 3 letras, normalmente son significativas y

relativas al contenido del mismo. Por ejemplo:

LEAME.TXT Archivo de texto

MISDATOS.DAT Archivo de datos

PLANILLA.XLS Archivo de MS-Excel

SHAKIRA.BMP Archivo de mapa de bits

Pág. 152

Page 153: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

El nombre de un archivo para ser referenciado

correctamente consta de:

• Unidad (Especificador de unidad, por ejemplo A, B, C)

• Camino (Especificador de ruta, por ejemplo \DATA\)

• Nombre (Especificador de archivo, por ejemplo DEMO.DAT)

Como ejemplo, suponga que el archivo DEMO.DAT está en la

carpeta DATA de la unidad C (disco duro); la descripción

completa del nombre del archivo es:

C:\DATA\DEMO.DAT

Ahora, suponga que el archivo CONSTANTES.DAT se encuentra

en la carpeta LIB, que a su vez está contenida en la carpeta

DATA de la unidad C. La descripción completa del nombre de

dicho archivo está dada por:

C:\DATA\LIB\CONSTANTES.DAT

Desde el punto de vista de Visual Basic un archivo

almacena los datos como un conjunto de registros, conteniendo

todos ellos, generalmente, los mismos campos. Cada campo

almacena un dato de tipo predefinido o de un tipo definido por

el usuario. El elemento de información más simple estaría

formado por un carácter.

Pág. 153

OPERACIONES SOBRE EL SISTEMA DE ARCHIVOS

Page 154: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para manipular el sistema de archivos de un disco, Visual

Basic proporciona las sentencias que a continuación se

describen.

Sentencia Kill

Permite eliminar un archivo almacenado en un disco. Su

sintaxis es de la forma:

Kill NOMBRE_ARCHIVO

Donde NOMBRE_ARCHIVO es una cadena de caracteres que

identifica al archivo que se desea borrar. Se permiten

caracteres comodín (* y ?). Si el archivo no existe se produce

un error. Por ejemplo:

Kill “C:\TEMP\TEMPO.DAT”

La instrucción anterior elimina el archivo TEMPO.DAT

ubicado en la carpeta C:\TEMP.

Sentencia Name

Permite cambiar el nombre (renombrar) de un archivo del

disco y moverlo a otro directorio si fuera preciso. Su sintaxis

es la siguiente:

Name NOMBRE_ACTUAL As NOMBRE_NUEVO

Pág. 154

Donde NOMBRE_ACTUAL es una cadena de caracteres que

especifica el nombre actual del archivo y NOMBRE_NUEVO es otra

Page 155: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

cadena de caracteres que indica el nuevo nombre que se desea

dar al archivo. Este nombre no debe existir, de lo contrario se

obtendrá un error. Por ejemplo:

Name “C:\TEMP\TEMPO.DAT” As “C:\DATA\CURSO.DAT”

La instrucción anterior cambia el nombre del archivo

TEMPO.DAT por el nombre CURSO.DAT. El contenido del archivo

permanece inalterado y su localización física se cambia de la

carpeta C:\TEMP a C:\DATA.

Sentencia MkDir

Permite crear una nueva carpeta. Su sintaxis es:

MkDir NUEVA_CARPETA

Donde NUEVA_CARPETA es una cadena de caracteres que

identifica la carpeta que se va ha crear. Por ejemplo:

MkDir “C:\DATA\TEMP”

Sentencia RmDir

Elimina una carpeta vacía existente en el disco. Su

sintaxis es de la forma:

RmDir NOMBRE_CARPETA

Donde NOMBRE_CARPETA es una cadena de caracteres que

identifica la carpeta que se desea eliminar. Por ejemplo:

Pág. 155

Page 156: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

RmDir “C:\DATA\TEMP”

Sentencia ChDir

Permite cambiar la carpeta actual. Su sintaxis es:

ChDir NOMBRE_CARPETA

Donde NOMBRE_CARPETA es una cadena de caracteres que

identifica la nueva ruta de acceso predeterminada. Por ejemplo:

ChDir “C:\DATA\GRAFICOS”

MsgBox App.Path

La propiedad Path del objeto App especifica la ruta de

acceso actual.

Sentencia ChDrive

Permite cambiar la unidad de disco actual. Su sintaxis es:

ChDrive UNIDAD

Donde UNIDAD es un carácter que especifica la nueva unidad

de disco. Si el parámetro UNIDAD es una cadena de múltiples

caracteres sólo se lee la primera letra. Por ejemplo:

ChDrive “A”

OPERACIONES CON ARCHIVOS

Pág. 156

Page 157: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para realizar alguna operación sobre un archivo hay

referenciarlo mediante su nombre completo. Las operaciones

básicas que se pueden realizar con los archivos son:

• Abrir, preparar un archivo para hacer referencia a él.

• Escribir, introducir un elemento de información a un archivo.

• Leer, obtener un elemento de información de un archivo.

• Modificar, alterar un elemento de información ya existente en

un archivo.

• Cerrar, evitar cualquier otra referencia al archivo en tanto

no se le abra otra vez.

TIPOS DE ARCHIVOS

Los tipos de archivos dependen del modo como están

organizados los registros y de la forma de accesar a la los

datos contenidos en ellos. En Visual Basic existen tres tipos

de archivos de datos, estos son:

• Archivos secuenciales (acceso secuencial).

• Archivos aleatorios (acceso aleatorio).

• Archivos binarios (acceso binario).

A continuación pasamos a describir cada uno de ellos en

forma detallada.

ARCHIVOS DE ACCESO SECUENCIAL

Pág. 157

Page 158: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

En un archivo de acceso secuencial los registros se

almacenan siguiendo una a otro, según el orden en que son

ingresados. Cuando se lee la información, se empieza por el

primer registro y se continua al siguiente hasta alcanzar el

final. Las sentencias y funciones necesarias para manipular

archivos de tipo secuencial se presentan a continuación.

Sentencia Open

Permite abrir un archivo. La sintaxis para esta sentencia

es la siguiente:

Open NOMBRE_ARCHIVO For MODO As # NÚMERO_ARCHIVO

Donde NOMBRE_ARCHIVO es una cadena que especifica el

nombre del archivo que se debe ser abierto en MODO Output,

Append o Input.

Modo Descripción

Output Escritura de datos. Si el archivo existe, su

contenido actual se destruye. Si el archivo no

existe, se crea.

Append Añadir datos. Los datos son añadidos a partir de

los últimos existentes. Si el archivo no existe,

se crea.

Input Lectura de datos. La lectura empieza desde el

principio del archivo. Si el archivo no existe, se

produce un error.

El parámetro NÚMERO_ARCHIVO es un entero cuyo valor debe

estar comprendido entre 1 y 511. Este número será asociado al

Pág. 158

Page 159: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

nombre del archivo mientras éste permanezca abierto. Para

obtener el número del siguiente archivo disponible se utiliza

la función FreeFile().

Como ejemplo suponga que se requiere abrir el archivo

DEMO.DAT ubicado en la carpeta C:\DATA, la instrucción sería la

siguiente:

Dim N1 As Integer

N1 = FreeFile()

Open “C:\DATA\DEMO.DAT” For Output As # N1

Sentencia Print

Permite escribir datos secuencialmente en un archivo. Su

sintaxis es:

Print # NÚMERO_ARCHIVO, LISTA_DE_EXPRESIONES

Donde NÚMERO_ARCHIVO es el número utilizado cuando el

archivo fue abierto. LISTA_DE_EXPRESIONES es un conjunto de

expresiones (numéricas, de cadena, de fecha, etc.) separadas

por punto y coma (;) que serán escritas en el archivo.

La sentencia Print escribe en el archivo una imagen de los

datos tal y como se habrían visualizado sobre el formulario con

la sentencia Print. Por ejemplo:

Dim N1 As Integer

N1 = FreeFile()

Pág. 159

Page 160: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Open “C:\DATA\DEMO.DAT” For Output As # N1

Print # N1, “Visual Basic es fácil”; “, ”; Date()

Al ejecutarse el código anterior se escribiría en el

archivo la siguiente información:

Visual Basic es fácil, 24/04/2001

Como se observa, al utilizar la sentencia Print se deben

delimitar los datos para que se impriman correctamente.

Sentencia Write

Permite escribir datos secuencialmente en un archivo. Su

sintaxis es:

Write # NÚMERO_ARCHIVO, LISTA_DE_EXPRESIONES

Donde NÚMERO_ARCHIVO es el número utilizado cuando el

archivo fue abierto. LISTA_DE_EXPRESIONES es un conjunto de

expresiones (numéricas, de cadena, de fecha, etc.) separadas

por punto y coma (;) que serán escritas en el archivo.

La sentencia Write inserta comas (,) entre las expresiones

de la LISTA_DE_EXPRESIONES, por tanto no es necesario poner

delimitadores explícitamente como en el caso de la sentencia

Print.

Cuando se utiliza la sentencia Write para escribir

información en un archivo, se siguen distintas convenciones

Pág. 160

Page 161: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

universales, de modo que los datos siempre se pueden leer e

interpretar correctamente, independientemente de la

configuración regional, estas convenciones son:

• Los datos numéricos siempre se escriben utilizando la coma

(,) como separador decimal.

• Para datos de tipo Boolean se imprime # TRUE # o # FALSE #.

• Los datos de tipo Date se escriben en el archivo usando el

formato de fecha universal (fechas como # aaaa-mm-dd # y horas

como # hh:mm:ss #).

A manera de ejemplo considere el siguiente segmento de

código:

Dim N1 As Integer

N1 = FreeFile()

Open “C:\DATA\DEMO.DAT” For Output As # N1

Write # N1, “Visual Basic es fácil”; Date()

La ejecución de este código escribiría en el archivo la

siguiente información:

Visual Basic es fácil", # 2002-04-11 #

Sentencia Close

Pág. 161

Page 162: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Cierra uno archivo abierto mediante la sentencia Open. Su

sintaxis es la siguiente:

Close # NÚMERO_ARCHIVO [, # NÚMERO_ARCHIVO, . . .]

Donde NÚMERO_ARCHIVO es el número con el cual se abrió el

archivo. Por ejemplo:

Close # 1, # 2

La instrucción anterior cierra los archivos asociados con

los números 1 y 2. La siguiente sentencia cierra todos los

archivos abiertos.

Close

Sentencia Input

Permite leer datos de un archivo secuencial y los asigna a

las variables especificadas. Su sintaxis es:

Input # NÚMERO_ARCHIVO, VARIABLE1 [, VARIABLE2, . . .]

Donde NÚMERO_ARCHIVO es el número utilizado cuando el

archivo fue abierto. VARIABLE1, VARIABLE2, . . . son los

nombres de las variables que han de recibir los

correspondientes datos del archivo.

Pág. 162

Page 163: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Los datos del archivo deben aparecer en el mismo orden que

tienen las variables en la sentencia Input y deben coincidir

con variables del mismo tipo de datos. Por ejemplo:

Dim N1 As Integer

N1 = FreeFile()

Open “C:\DATA\DEMO.DAT” For Input As # N1

Dim A As Integer

Dim B As Double

Dim S As String

Dim F As Date

Input # N1, A, B, S, F

El segmento de código anterior espera encontrar en el

archivo un entero, un real, una cadena y una fecha, en ese

orden (separados por comas o un retorno de carro).

Sentencia Line Input

Permite leer una línea de un archivo secuencial ignorando

los delimitadores (comas) y la asigna a una variable tipo

cadena. Su sintaxis es:

Line Input # NÚMERO_ARCHIVO, VARIABLE

Donde NÚMERO_ARCHIVO es el número utilizado cuando el

archivo fue abierto. VARIABLE es el nombre de una variable tipo

cadena de caracteres.

Pág. 163

Page 164: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

La sentencia Line Input se utiliza especialmente para leer

un archivo de texto línea a línea, ya que esta sentencia lee

todos los caracteres del archivo hasta que encuentra un retorno

de carro, entonces continua en la siguiente línea y así

sucesivamente. Por ejemplo:

Dim N1 As Integer, LINE1 As String, LINE2 As String

N1 = FreeFile()

Open “C:\DATA\DEMO.TXT” For Output As # N1

Print # N1, “Línea de prueba 1”

Print # N1, “Línea de prueba 2”

Close # N1

Open “C:\DATA\DEMO.TXT” For Input As # N1

Line Input # N1, LINE1

MsgBox LINE1

Line Input # N1, LINE2

MsgBox LINE2

La ejecución del código anterior produce la siguiente salida:

Pág. 164

Page 165: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Función Input

Retorna los siguientes caracteres de un archivo

secuencial y los asigna a una variable de cadena. Su sintaxis

es de la forma:

N

VARIABLE = Input( , # NÚMERO_ARCHIVO) N

A diferencia de la sentencia Input, la función Input()

retorna todos los caracteres que lee, incluyendo comas,

retornos de carro, continuaciones de línea, etc. Por ejemplo:

Dim N1 As Integer, S As String

N1 = FreeFile()

Open “C:\DATA\DEMO.TXT” For Output As # N1

Print # N1, “Línea de prueba 1”

Print # N1, “Línea de prueba 2”

Close # N1

Open “C:\DATA\DEMO.TXT” For Input As # N1

S = Input(24, # N1)

MsgBox S

La ejecución del código anterior produce la siguiente salida:

Función EOF

Pág. 165

Page 166: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Especifica si se ha llegado al final de un archivo. Su

sintaxis es de la forma:

VARIABLE = EOF(NÚMERO_ARCHIVO)

Se utiliza EOF() para evitar producir un error al intentar

obtener información más allá del final del archivo. EOF()

retorna un valor True si se ha alcanzado el final del archivo y

False en caso contrario. Por ejemplo:

Dim N1 As Integer

Dim CADENA As String

N1 = FreeFile()

Open “C:\DATA\DEMO.TXT” For Input As # N1

While Not EOF(N1)

Line Input # N1, CADENA

Print CADENA

Wend

Close # N1

Este segmento de código lee y visualiza cada línea del

archivo de texto DEMO.TXT. El bucle finaliza cuando se detecta

el final del archivo. Para que el código anterior funcione

correctamente, no olvide poner la propiedad AutoRedraw del

formulario a True.

Pág. 166

Como ejemplo final del uso de archivos secuenciales vamos

a desarrollar un sencillo editor de texto. Este editor aunque

Page 167: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

sus prestaciones son bastante limitadas va ha servir para poner

en práctica lo aprendido recientemente.

El menú que se muestra en la figura obedece a la siguiente

descripción:

Caption Name ShortCut

&Archivo MnuArchivo Ninguno

. . . &Nuevo MnuArchivoNuevo Ninguno

. . . &Abrir MnuArchivoAbrir Ninguno

. . . &Guardar MnuArchivoGuardar Ninguno

. . . - MnuArchivoLinea Ninguno

. . . &Salir MnuArchivoSalir Ctrl + X

Luego proceda a ubicar los siguientes controles sobre el

formulario:

Pág. 167

Page 168: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

1 cuadro de texto

1 control CommonDialog

Seguidamente debe establecer las propiedades que se

indican:

Form1

Nombre FrmEditor

Caption Editor

Text1

Nombre TxtEditor

MultiLine True

ScrollBars 3-Both

Text

CommonDialog1

Nombre CommonDialog1

CancelError True

Una vez establecidas las propiedades de la interfaz

ingresar el código que se muestra:

Private Sub Form_Resize()

TxtEditor.Move 0, 0, ScaleWidth, ScaleHeight

End Sub

Private Sub MnuArchivoNuevo_Click()

TxtEditor = “”

End Sub

Pág. 168

Page 169: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Private Sub MnuArchivoAbrir_Click()

Dim FILTRO As String, FILE As String

Dim N1 As Integer, CADENA As String

On Error GoTo ERROR_ABRIR

FILTRO = “Archivos de texto (*.TXT)|*.TXT”

CommonDialog1.Filter = FILTRO

CommonDialog1.ShowOpen

FILE = CommonDialog1.FileName

N1 = FreeFile()

CADENA = “”

TxtEditor = “”

Open FILE For Input As # N1

While Not EOF(N1)

Input # N1, CADENA

TxtEditor = TxtEditor & CADENA & vbCrLf

Wend

Close # N1

FrmEditor.Caption = “Editor - ” & FILE

SALIR_ABRIR:

Exit Sub

ERROR_ABRIR:

MsgBox Err.Description

Resume SALIR_ABRIR

End Sub Private Sub MnuArchivoGuardar_Click()

Dim FILTRO As String, FILE As String

Dim N1 As Integer

Pág. 169

Page 170: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

On Error GoTo ERROR_GUARDAR

FILTRO = “Archivos de texto (*.TXT)|*.TXT”

CommonDialog1.Filter = FILTRO

CommonDialog1.ShowSave

FILE = CommonDialog1.FileName

N1 = FreeFile()

Open FILE For Output As # N1

Print # N1, TxtEditor

Close # N1

FrmEditor.Caption = “Editor - ” & FILE

SALIR_GUARDAR:

Exit Sub

ERROR_GUARDAR:

MsgBox Err.Description

Resume SALIR_GUARDAR

End Sub

La sentencia Err.Description retorna una cadena que

contiene la descripción asociada a un error en tiempo de

ejecución.

La sentencia Resume continua la ejecución en la etiqueta

especificada cuando termina una rutina de gestión de errores.

ARCHIVOS DE ACCESO ALEATORIO

En los archivo de acceso aleatorio el almacenamiento de

los datos se hace mediante registros (todos de la misma

Pág. 170

Page 171: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

longitud), lo cuales son identificados mediante un único número

denominado índice. El primer registro de un archivo tiene como

índice 1, el segundo tiene índice 2 y así sucesivamente. La

información contenida en un archivo de este tipo puede ser

accedida en cualquier secuencia, ya que cada registro

individual se asocia con su respectivo índice y puede ser

leído, escrito o actualizado.

Las sentencias y funciones necesarias para manipular

archivos de tipo aleatorio se presentan a continuación.

Sentencia Open

Permite abrir un archivo. La sintaxis para acceder

aleatoriamente a un archivo es:

Open NOMBRE_ARCHIVO For Random As # NÚMERO_ARCHIVO Len = LON_REG

Donde NOMBRE_ARCHIVO es una cadena que especifica el

nombre del archivo que se debe ser abierto en modo Random.

El parámetro NÚMERO_ARCHIVO es un entero cuyo valor está

comprendido entre 1 y 511. Este número será asociado con el

nombre del archivo mientras permanezca abierto.

LON_REG es un entero que establece la longitud del

registro para archivos aleatorios.

Sentencia Put

Permite grabar un registro en un archivo abierto para

acceso aleatorio. Su sintaxis es:

Pág. 171

Page 172: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Put # NÚMERO_ARCHIVO, NÚMERO_REG, VARIABLE

Donde NÚMERO_ARCHIVO es el número bajo el cual se abrió el

archivo, NÚMERO_REG es el número correspondiente al registro

que se va ha grabar y VARIABLE contiene los datos a escribir en

el archivo. Por ejemplo:

Dim N1 As Integer, REG As DISTRITO

REG.ID_DISTRITO = “L09”

REG.NOMBRE = “Chorrillos”

N1 = FreeFile()

Open “C:\DATA\RAND1.DAT” For Random As # N1 Len = Len(REG)

Put # N1, 1, REG

Close # N1

El segmento de código anterior utiliza una variable REG de

tipo DISTRITO, cuya definición es la siguiente:

Private Type DISTRITO

ID_DISTRITO As String * 3

NOMBRE As String * 30

End Type

Sentencia Get

Permite leer un registro procedente de un archivo de

acceso aleatorio, almacenando los datos en una variable

específica. Su sintaxis es de la forma:

Pág. 172

Page 173: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Get # NÚMERO_ARCHIVO, NÚMERO_REG, VARIABLE

Donde NÚMERO_ARCHIVO es el número bajo el cual se abrió el

archivo, NÚMERO_REG es el número correspondiente al registro

que se va ha leer y VARIABLE almacena los datos del registro

leído. Por ejemplo:

Dim N1 As Integer, I As Integer, REG As DISTRITO

N1 = FreeFile()

Open “C:\DATA\RAND1.DAT” For Random As # N1 Len = Len(REG)

I = 1

While Not EOF(# N1)

Get # N1, I, REG

MsgBox REG.ID_DISTRITO & “ ” & REG.NOMBRE

I = I + 1

Wend

Close # N1

Cuando EOF() se utiliza con un archivo aleatorio, retorna

un valor True si una sentencia Get intenta leer y no puede

porque ha alcanzado el final del archivo.

Función LOF

Retorna el número de bytes (caracteres) que ocupa un

determinado archivo abierto mediante la sentencia Open. Su

sintaxis es:

Pág. 173

Page 174: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

VARIABLE = LOF(# NÚMERO_ARCHIVO)

Donde NÚMERO_ARCHIVO es el número con el que se abrió el

archivo.

Esta función es de utilidad, porque aplicada a un archivo

de acceso aleatorio, permite conocer el número de registros

almacenados en el archivo. Para ello debe dividir el valor

retornado entre la longitud del registro. Como ejemplo,

considere lo siguiente:

Dim N1 As Integer, REG As DISTRITO

Dim NUM_REGS As Integer, I As Integer

N1 = FreeFile()

Open “C:\DATA\RAND1.DAT” For Random As # N1 Len = Len(REG)

NUM_REGS = LOF(N1) / Len(REG)

For I = 1 To NUM_REGS

Get # N1, I, REG

MsgBox REG.ID_DISTRITO & “ ” & REG.NOMBRE

Next

Close # N1

Función Loc

Esta función retorna la posición actual dentro de un

fichero. Su sintaxis es:

VARIABLE = Loc(# NÚMERO_ARCHIVO)

Pág. 174

Page 175: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

La función Loc() aplicada a un archivo de acceso aleatorio

retorna el número del último registro leído o grabado en el

archivo especificado. Por ejemplo:

Dim N1 As Integer, REG As DISTRITO

Dim NUM_REGS As Integer, I As Integer

N1 = FreeFile()

Open “C:\DATA\RAND1.DAT” For Random As # N1 Len = Len(REG)

NUM_REGS = LOF(N1) / Len(REG)

I = 1

Do While True

Get # N1, I, REG

MsgBox REG.ID_DISTRITO & “ ” & REG.NOMBRE

I = I + 1

If Loc(N1) = NUM_REGS Then Exit Do

Loop

Close # N1

La sentencia If finaliza el bucle si se ha alcanzado el

último registro.

Como ejemplo final vamos a desarrollar una aplicación que

permita realizar el mantenimiento de los datos almacenados en

el archivo C:\DATA\CURSO.DAT.

Pág. 175

Page 176: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Los botones ubicados en el marco Navegador (Primero,

Anterior, Siguiente y Ultimo, de izquierda a derecha) permiten

desplazarse a través de los registros del archivo. Los botones

ubicados en el marco Mantenimiento (Nuevo, Editar, Guardar y

Eliminar, de izquierda a derecha) permiten realizar las

operaciones básicas de mantenimiento de los registros.

Para el desarrollo de la presente aplicación ubicar los

siguientes controles al formulario:

3 marcos

4 etiquetas

4 cuadros de texto

9 botones de comando

Seguidamente proceda a establecer las propiedades que se

indican:

Form1

Pág. 176

Page 177: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Nombre FrmCurso

Caption Mantenimiento de cursos

BorderStyle 3-Fixed Dialog

StarUpPosition 2-CenterScreen

Frame1

Nombre FraIngreso

Caption

Frame2

Nombre FraNavegador

Caption Navegador

Frame3

Nombre FraMantenimiento

Caption Mantenimiento

Label1

Nombre LblCodigo

Caption Código:

Label2

Nombre LblNombre

Caption Nombre:

Label3

Nombre LblVacantes

Caption Vacantes:

Label4

Nombre LblProfesor

Caption Profesor:

Pág. 177

Page 178: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Text1

Nombre TxtCodigo

Locked True

Text

Text2

Nombre TxtNombre

Locked True

Text

Text3

Nombre TxtVacantes

Locked True

Text

Text4

Nombre TxtProfesor

Locked True

Text

Command1

Nombre CmdPrimero

Caption

Picture C:\FundVB\Bitmaps\First.bmp

Style 1-Graphical

Command2

Nombre CmdAnterior

Caption

Picture C:\FundVB\Bitmaps\Previous.bmp

Pág. 178

Page 179: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Style 1-Graphical

Command3

Nombre CmdSiguiente

Caption

Picture C:\FundVB\Bitmaps\Next.bmp

Style 1-Graphical

Command4

Nombre CmdUltimo

Caption

Picture C:\FundVB\Bitmaps\Last.bmp

Style 1-Graphical

Command5

Nombre CmdNuevo

Caption

Picture C:\FundVB\Bitmaps\New.bmp

Style 1-Graphical

Command6

Nombre CmdEditar

Caption

Picture C:\FundVB\Bitmaps\Edit.bmp

Style 1-Graphical

Command7

Nombre CmdGuardar

Caption

Picture C:\FundVB\Bitmaps\Save.bmp

Pág. 179

Page 180: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Style 1-Graphical

Command8

Nombre CmdEliminar

Caption

Picture C:\FundVB\Bitmaps\Delete.bmp

Style 1-Graphical

Command9

Nombre CmdSalir

Caption &Salir

Picture C:\FundVB\Bitmaps\Exit.bmp

Style 1-Graphical

Luego, proceda a transcribir el código mostrado a continuación:

Private Type CURSO

ID_CURSO As String * 3

NOMBRE As String * 30

VACANTES As Integer

PROFESOR As String * 25

ESTADO As Boolean

End Type

Dim N1 As Integer, POSICION As Integer

Dim REG As CURSO

Private Sub MODO_EDITAR(ByVal Ok As Boolean)

TxtCodigo.Locked = Not Ok

TxtNombre.Locked = Not Ok

Pág. 180

Page 181: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

TxtVacantes.Locked = Not Ok

TxtProfesor.Locked = Not Ok

CmdNuevo.Enabled = Not Ok

CmdEditar.Enabled = Not Ok

CmdGuardar.Enabled = Ok

CmdEliminar.Enabled = Not Ok

CmdPrimero.SetFocus

If Ok Then TxtCodigo.SetFocus

End Sub

Private Sub ABRIR_ARCHIVO()

On Error GoTo ERROR_ABRIR:

N1 = FreeFile()

Open “C:\DATA\CURSO.DAT” For Random As # N1 Len = Len(REG)

SALIR_ABRIR:

Exit Sub

ERROR_ABRIR:

MsgBox Err.Description

Resume SALIR_ABRIR:

End Sub

Private Sub Form_Load()

Call ABRIR_ARCHIVO

End Sub Private Sub Form_Activate()

MODO_EDITAR False

Call CmdPrimero_Click

Pág. 181

Page 182: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

End Sub

Private Sub CmdPrimero_Click()

POSICION = 1

Get # N1, POSICION, REG

TxtCodigo = REG.ID_CURSO

TxtNombre = REG.NOMBRE

TxtVacantes = Str(REG.VACANTES)

TxtProfesor = REG.PROFESOR

End Sub

Private Sub CmdAnterior_Click()

POSICION = Loc(N1) - 1

If POSICION = 0 Then

Get # N1, 1, REG

MsgBox “Estamos en el primer registro”

Else

Get # N1, POSICION, REG

End If

TxtCodigo = REG.ID_CURSO

TxtNombre = REG.NOMBRE

TxtVacantes = Str(REG.VACANTES)

TxtProfesor = REG.PROFESOR

End Sub Private Sub CmdSiguiente_Click()

Dim ULTIMO As Integer

ULTIMO = LOF(N1) / Len(REG)

Pág. 182

Page 183: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

POSICION = Loc(N1) + 1

If POSICION = ULTIMO + 1 Then

Get # N1, ULTIMO, REG

MsgBox “Estamos en el último registro”

Else

Get # N1, POSICION, REG

End If

TxtCodigo = REG.ID_CURSO

TxtNombre = REG.NOMBRE

TxtVacantes = Str(REG.VACANTES)

TxtProfesor = REG.PROFESOR

End Sub

Private Sub CmdUltimo_Click()

POSICION = LOF(N1) / Len(REG)

If POSICION <> 0 Then

Get #N1, POSICION, REG

TxtCodigo = REG.ID_CURSO

TxtNombre = REG.NOMBRE

TxtVacantes = Str(REG.VACANTES)

TxtProfesor = REG.PROFESOR

End If

End Sub Private Sub CmdNuevo_Click()

POSICION = LOF(N1) / Len(REG) + 1

MODO_EDITAR True

Pág. 183

Page 184: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

TxtCodigo = “”

TxtNombre = “”

TxtVacantes = “”

TxtProfesor = “”

TxtCodigo.SetFocus

End Sub

Private Sub CmdEditar_Click()

MODO_EDITAR True

End Sub

Private Sub CmdGuardar_Click()

REG.ID_CURSO = Trim(TxtCodigo)

REG.NOMBRE = Trim(TxtNombre)

REG.VACANTES = TxtVacantes

REG.PROFESOR = Trim(TxtProfesor)

REG.ESTADO = True

Put # N1, POSICION, REG

MODO_EDITAR False

End Sub

Private Sub CmdEliminar_Click()

Dim N2 As Integer

Dim I As Integer, J As Integer REG.ESTADO = False

Put # N1, POSICION, REG

N2 = FreeFile()

Pág. 184

Page 185: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Open “C:\DATA\TEMPO.DAT” For Random As # N2 Len = Len(REG)

I = 1

J = 1

While Not EOF(N1)

Get # N1, I, REG

If REG.ESTADO Then

Put # N2, J, REG

J = J + 1

End If

I = I + 1

Wend

Close # N1, # N2

Kill “C:\DATA\CURSO.DAT”

Name “C:\DATA\TEMPO.DAT” As “C:\DATA\CURSO.DAT”

Call ABRIR_ARCHIVO

Call CmdPrimero_Click

End Sub

Private Sub CmdSalir_Click()

Close # N1

End

End Sub

ARCHIVOS DE ACCESO BINARIO

Pág. 185

Page 186: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Un archivo binario contiene más que simplemente texto.

Puede contener imágenes, sonido, hojas de cálculo, o documentos

concebidos para el procesamiento de texto.

El acceso binario permite la posibilidad de tratar

cualquier archivo como una secuencia numerada de bytes,

independientemente de la estructura del mismo. Los bytes ocupan

las posiciones 1, 2, 3, etc. Por ejemplo, si se requiere

recuperar un dato de tipo entero (Integer, 2 bytes) de la

posición 3 del archivo, serían recuperados los bytes 3 y 4 para

poder formar el valor del entero. Por tanto, antes de trabajar

con archivos binarios es necesario conocer cómo fueron escritos

los datos que contiene para poder recuperarlos correctamente.

Sentencia Open

Permite abrir un archivo para acceso binario. Su sintaxis

es de la forma:

Open NOMBRE_ARCHIVO For Binary As # NÚMERO_ARCHIVO

Donde NOMBRE_ARCHIVO es una cadena que especifica el

nombre del archivo que se debe ser abierto en modo Binary.

El parámetro NÚMERO_ARCHIVO es un entero cuyo valor está

comprendido entre 1 y 511. Este número será asociado con el

nombre del archivo mientras permanezca abierto.

Sentencia Put

Pág. 186

Page 187: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Permite grabar en un archivo binario tantos bytes como

haya en una variable. Su sintaxis es:

Put # NÚMERO_ARCHIVO, POSICIÓN, VARIABLE

Donde NÚMERO_ARCHIVO es el número bajo el cual se abrió el

archivo. POSICIÓN es el número de byte a partir del cual se han

de grabar los datos contenidos en VARIABLE.

Sentencia Get

Permite leer de un archivo binario tantos bytes como

quepan en una variable. Su sintaxis es de la forma:

Get # NÚMERO_ARCHIVO, POSICIÓN, VARIABLE

Donde NÚMERO_ARCHIVO es el número bajo el cual se abrió el

archivo. POSICIÓN es el número de byte a partir del cual se han

de leer los datos almacenados en VARIABLE.

Sentencia Seek

Permite situar la posición de lectura o de escritura en

una posición determinada dentro del archivo. Su sintaxis es:

Get # NÚMERO_ARCHIVO, POSICIÓN, VARIABLE

Donde POSICIÓN es el número de byte a partir del cual

queremos leer o escribir dentro del archivo.

Pág. 187

Page 188: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Como ejemplo vamos a desarrollar una aplicación que

permite guardar “cifrados” los textos ingresados en un cuadro

de texto. Para ello crear un nuevo proyecto y ubicar en el

formulario un cuadro de texto (TxtMensaje) y un botón de

comando (CmdCifrar). Luego, ingrese el siguiente código:

Const CLAVE As Integer = 3

Private Sub CmdCifrar_Click()

Dim N1 As Integer, I As Integer

Dim CAR As String * 1

N1 = FreeFile()

Open “C:\DATA\DEMO.BIN” For Binary As # N1

For I = 1 To Len(TxtMensaje)

CAR = Chr((Asc(Mid(TxtMensaje, I, 1)) + CLAVE) Mod 256)

Put # N1, , CAR

Next

Close # N1

End Sub

En el código la función Mid() obtiene el carácter “I” de

la caja de texto, la función Asc() obtiene su código ANSI, al

que sumamos el valor de CLAVE, para después obtener el resto de

la división entre 256, con el fin de mantenernos en el rango de

0 a 255 (rango de valores de la tabla de caracteres ANSI). Por

último, la función Chr() retorna el carácter correspondiente al

valor obtenido, el cual es almacenado en el archivo binario.

Pág. 188

Page 189: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Por ejemplo si ingresa el mensaje “HOLA” se almacena en el

archivo como “KROD” (lo puede comprobar mediante el Bloc de

notas), ya que el valor ANSI de la “H” es 72, este carácter al

sumarle el valor de CLAVE sería el 75 (72 + 3), que es la “K”,

y así sucesivamente (ver la tabla de caracteres ANSI).

El descifrado sería el proceso inverso, para ello crear un

nuevo formulario y ubicar un botón de comando (CmdDescifrar),

luego ingresar el código siguiente:

Const CLAVE As Integer = 3

Private Sub CmdDescifrar_Click()

Dim N1 As Integer, I As Integer

Dim CAR As String * 1, CADENA As String

N1 = FreeFile()

Open “C:\DATA\DEMO.BIN” For Binary As # N1

Get # N1, , CAR

While Not EOF(N1)

CAR = Chr((Asc(CAR) + (256 - Val(CLAVE))) Mod 256)

CADENA = CADENA & CAR

Get # N1, , CAR

Wend

MsgBox CADENA

End Sub

Pág. 189

Page 190: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

CAPÍTULO 8

GRÁFICOS

Un gráfico tiene por finalidad facilitar la legibilidad de

la información que se presenta: “un gráfico vale más que mil

palabras”.

LOS COLORES

En Visual Basic se pueden manipular los colores mediante

tres formas diferentes: código hexadecimal, la función RGB() y

la función QBColor().

Código Hexadecimal

Un código de color se compone de seis dígitos

hexadecimales, cuyos valores van desde &H000000& (cero) hasta

&HFFFFFF& (16 777 215). De forma práctica podemos guiarnos

mediante:

&HAAVVRR&

Donde AA representa al color azul, VV al color verde y RR

al color rojo. Todos los demás colores se obtienen mezclando

estos tres colores.

Pág. 190

Page 191: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Como ejemplo considere los siguientes códigos de colores

que se presentan a continuación:

AZUL = &HFF0000&

VERDE = &H00FF00&

ROJO = &H0000FF&

NEGRO = &H000000&

La función RGB()

La función RGB() retorna un número de tipo entero largo

(Long) que representa el valor de un color. Su sintaxis es:

COLOR = RGB(nROJO, nVERDE, nAZUL)

Donde nROJO, nVERDE, nAZUL son enteros comprendidos entre

0 y 255. La siguiente tabla muestra algunos colores estándar y

sus valores de nROJO, nVERDE y nAZUL:

Color nROJO nVERDE nAZUL

Negro 0 0 0

Azul 0 0 255

Verde 0 255 0

Cián 0 255 255

Rojo 255 0 0

Magenta 255 0 255

Amarillo 255 255 0

Blanco 255 255 255

Pág. 191

Page 192: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

El ejemplo anterior (código hexadecimal) utilizando la

función RGB() será similar a:

AZUL = RGB(0, 0, 255)

VERDE = RGB(0, 255, 0)

ROJO = RGB(255, 0, 0)

NEGRO = RGB(0, 0, 0)

La función QBColor()

La función QBColor() retorna un número de tipo entero largo

(Long) que representa el código de color RGB correspondiente al

número de color especificado. Su sintaxis es:

COLOR = QBColor(nCOLOR)

Donde el argumento nCOLOR es un entero entre 0 y 15; los

valores que puede tomar se presentan en la siguiente tabla:

Número Color Número Color

0 Negro 8 Gris

1 Azul 9 Azul claro

2 Verde 10 Verde claro

3 Cián 11 Cián claro

4 Rojo 12 Rojo claro

5 Magenta 13 Magenta claro

6 Amarillo 14 Amarillo claro

7 Blanco 15 Blanco brillante

Pág. 192

Page 193: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Pág. 193

El ejemplo inicial (código hexadecimal) utilizando la

función QBColor() se soluciona como se muestra a continuación:

AZUL = QBColor(1)

VERDE = QBColor(2)

ROJO = QBColor(4)

NEGRO = QBColor(0)

EL SISTEMA DE COORDENADAS

Todas las operaciones gráficas descritas en este capítulo

utilizan el sistema de coordenadas del área de dibujo (que

puede ser la pantalla, un formulario, un cuadro de imagen, o

cualquier otro contenedor).

El sistema de coordenadas es una cuadrícula bidimensional

que define ubicaciones del área de dibujo. Las ubicaciones de

esta cuadrícula se definen mediante las coordenadas del área de

dibujo:

( X ,Y )

Donde el valor de X es la ubicación del punto sobre el

“eje X”, con la ubicación predeterminada (cero) en el extremo

izquierdo. El valor de Y es la ubicación del punto sobre el

eje Y , con la ubicación predeterminada (cero) en el extremo

superior. Este sistema de coordenadas se ilustra en la

siguiente figura:

Page 194: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

El sistema de coordenadas de Visual Basic tiene las

siguientes reglas:

• El sistema de coordenadas predeterminado de cualquier

contenedor empieza por la coordenada (0, 0) en la esquina

superior izquierda del contenedor.

• Las unidades de medida utilizadas para definir las

ubicaciones a lo largo de los ejes se denominan

colectivamente “escala”. En Visual Basic, cada eje del

sistema de coordenadas puede tener su propia escala.

• Todos los métodos gráficos utilizan el sistema de coordenadas

del contenedor. Por ejemplo, las instrucciones que dibujan

dentro de un cuadro de imagen utilizan el sistema de

coordenadas de dicho control.

Establecer las coordenadas de dibujo

Para establecer las coordenadas de dibujo del contenedor

se utilizan las propiedades CurrentX y CurrentY de dicho

contenedor.

Pág. 194

Page 195: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Por ejemplo, las instrucciones siguientes establecen las

coordenadas de dibujo a la esquina superior izquierda de un

cuadro de imagen:

Picture1.CurrentX = 0

Picture1.CurrentY = 0

De forma predeterminada, los formularios y los cuadros de

imagen utilizan un sistema de coordenadas en el que cada unidad

corresponde a un “twip” (1 440 twips equivalen a una pulgada y

567 twips son aproximadamente un centímetro).

Cambiar la unidad de medida del sistema de coordenadas

Para cambiar la unidad de medida del sistema de

coordenadas su establece la propiedad ScaleMode a uno de los

valores enumerados en la tabla siguiente:

Valor de

ScaleMode

Descripción

1 Twips

2 Puntos

3 Pixeles

4 Caracteres

5 Pulgadas

6 Milímetros

7 Centímetros

Pág. 195

Page 196: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Por ejemplo la siguiente orden establece la escala a

pulgadas de un cuadro de imagen:

Picture1.ScaleMode = 5

Crear una escala personalizada

Para crear una escala personalizada se pueden utilizar las

propiedades ScaleLeft, ScaleTop, ScaleWidth y ScaleHeight de un

determinado objeto.

Las propiedades ScaleLeft y ScaleTop asignan valores

numéricos a la esquina superior izquierda de un objeto. Por

ejemplo, las instrucciones siguientes establecen el valor de la

esquina superior izquierda de un cuadro de imagen:

Picture1.ScaleLeft = 100

Picture1.ScaleTop = 100

Las propiedades ScaleWidth y ScaleHeight definen las

unidades según el ancho y el alto real del área de dibujo (si

el objeto cambia de tamaño posteriormente, las unidades siguen

siendo las mismas). Por ejemplo las instrucciones siguientes

definen la unidad horizontal como 1/1 000 del ancho interno

actual del cuadro de imagen y la unidad vertical como 1/500 del

alto interno actual del cuadro de imagen:

Picture1.ScaleWidth = 1000

Picture1.ScaleHeight = 500

Pág. 196

Page 197: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

A manera de ejemplo considere la escala mostrada en la

siguiente figura, la cual tiene ScaleLeft, ScaleTop, ScaleWidth

y ScaleHeight establecidas todas a 100.

Una forma más eficiente de personalizar la escala de un

sistema de coordenadas es utilizando el método Scale. Su

sintaxis es:

OBJETO.Scale (X1, Y1) – (X2, Y2)

Donde los valores de (X1, Y1) determinan las coordenadas

de la esquina superior izquierda, los valores de (X2, Y2)

determinan los valores de la esquina inferior derecha. Para

obtener el mismo sistema de coordenadas de ejemplo anterior

(donde se utilizó las propiedades ScaleLeft, ScaleTop,

ScaleWidth y ScaleHeight) la orden sería la siguiente:

Scale (100, 100)-(200, 200)

Pág. 197

Page 198: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Donde es evidente que las diferencias entre las dos

coordenadas “X” y las dos coordenadas “Y” determinan los

valores de ScaleWidth y ScaleHeight, respectivamente.

MÉTODOS GRÁFICOS

Visual Basic proporciona varios métodos para la creación

de gráficos. Los métodos gráficos, resumidos en la tabla

siguiente, son aplicables a los formularios y a los cuadros de

imagen.

Método Descripción

Cls Borra todos los gráficos y el resultado del

método Print.

Pset Dibuja un punto individual.

Point Devuelve el color de un punto especificado.

Line Dibuja una línea, un rectángulo o un cuadro

relleno.

Circle Dibuja una círculo, una elipse o un arco.

PaintPicture Dibuja gráficos en ubicaciones arbitrarias.

Print Imprime texto en formularios y cuadros de

imagen.

Para que la mayoría de los métodos gráficos funcionen

correctamente la propiedad AutoRedraw del formulario debe está

activada, caso contrario el dibujo no se visualizará.

Pág. 198

Puntos

Page 199: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para el dibujo de puntos se usará el método Pset, cuya

sintaxis es:

OBJETO.Pset (X, Y), COLOR

Donde X, Y son valores de tipo Single que indican las

coordenadas horizontal (eje X) y vertical (eje Y) del punto que

se va a dibujar. COLOR es un entero largo (Long) que indica el

color RGB especificado para el punto, si se omite se usará el

valor actual de la propiedad ForeColor de OBJETO.

Como ejemplo vamos a crear una sencilla aplicación que

permita dibujar puntos en la posición especificada mediante el

ratón, con la posibilidad de poder seleccionar colores (tipo

“Paint”).

Pág. 199

Page 200: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para el desarrollo de la presente aplicación proceda a

crear un nuevo proyecto y agregar al formulario 34 cuadros de

imagen. Luego ingresar el código mostrado.

Objeto Nombre Descripción

Picture1 . . . Picture32 PicColor Opciones de color

Picture33 PicMuestra Color actual utilizado

Picture34 PicLienzo Area de dibujo

Dim COLOR As Single

Private Sub Form_Load()

PicLienzo.ScaleMode = 3

PicLienzo.DrawWidth = 5

COLOR = RGB(0, 0, 0)

End Sub

Private Sub PicColor_Click(Index As Integer)

COLOR = PicColor(Index).BackColor

PicMuestra.BackColor = COLOR

End Sub

Private Sub PicLienzo_MouseDown(Button As Integer, _

Shift As Integer, X As Single, Y As Single)

If Button = vbLeftButton Then

PicLienzo.PSet (X, Y), COLOR

End If

End Sub

Pág. 200

Page 201: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

En el ejemplo anterior se utiliza la propiedad DrawWidth,

la cual sirve para fijar el tamaño del punto dibujado.

Para que el método Pset funcione correctamente la

propiedad ScaleMode debe estar establecida a pixeles.

Líneas, rectángulos y cuadros rellenos

Para dibujar líneas, rectángulos o cuadros rellenos

utilice el método Line, cuya sintaxis es:

OBJETO.Line (X1, Y1) - (X2, Y2), COLOR, B/BF

Donde X1, Y1 son valores de tipo Single que indican las

coordenadas del punto inicial para la línea o el rectángulo.

X2, Y2 son valores de tipo Single que indican las coordenadas

del punto final para la línea o el rectángulo que se está

dibujando. COLOR es un entero largo (Long) que indica el color

RGB especificado para dibujar la línea, si se omite se usará el

valor actual de la propiedad ForeColor de OBJETO. Los

parámetros B y BF son opcionales: B hace que se dibuje un

rectángulo usando las coordenadas para especificar las esquinas

opuestas del mismo. BF especifica que el cuadro se rellena con

el mismo color especificado mediante el parámetro COLOR.

A manera de ejemplo vamos a mejorar nuestro sencillo

“Editor gráfico”, de tal forma que además de dibujar puntos

permita también dibujar líneas cuando se mantenga pulsado el

botón izquierdo del ratón.

Pág. 201

Page 202: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para lograr nuestro cometido añadir el siguiente código a

la aplicación anterior:

Private Sub PicLienzo_MouseMove(Button As Integer, _

Shift As Integer, X As Single, Y As Single)

If Button = vbLeftButton Then

PicLienzo.Line -(X, Y), COLOR

End If

End Sub

Otro ejemplo sencillo para ilustrar como se usa el método

Line para dibujar rectángulos y cuadros rellenos se presenta a

continuación, consiste en dibujar una bandera directamente

sobre el formulario, en este caso será la bandera de mi país:

Perú.

Pág. 202

Page 203: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para este ejemplo crear una nueva aplicación e ingresar el

código mostrado:

Private Sub Form_Click()

Height = 3 * 1440

Width = 5 * 1440

BackColor = QBColor(12)

ForeColor = QBColor(15)

Line (Width / 3, 0) - ((Width / 3) * 2, Height), , BF

End Sub

Círculos, elipses y arcos

Para dibujar círculos, elipses o arcos se utiliza el

método Circle, cuya sintaxis es:

OBJETO.Circle (X, Y), RADIO, COLOR, INICIO, FIN, ASPECTO

Pág. 203

Page 204: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Donde X, Y son valores de tipo Single que indican las

coordenadas para el punto central del círculo, elipse o arco.

RADIO es un valor de tipo Single que indica el radio del

círculo, elipse o arco. COLOR es un valor entero de tipo Long

que indica el color RGB del contorno del círculo, elipse o

arco (es opcional). INICIO y FIN son valores de tipo Single,

que especifican (en radianes) las posiciones de inicio y de fin

del arco (son opcionales). ASPECTO es un valor de tipo Single

que indica la relación de aspecto del círculo, el valor

predeterminado es 1.0, lo que produce un círculo perfecto (no

elíptico) en cualquier pantalla (opcional).

A manera de ejemplo vamos a mejor aún más nuestro “Editor

gráfico” de tal manera que se podrá dibujar puntos, líneas,

rectángulos, círculos y elipses.

Pág. 204

Page 205: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para el desarrollo de la presente aplicación se debe

añadir al ejemplo anterior 5 botones de comandos y formar una

matriz de controles (CmdForma). Luego ingresar el siguiente

código:

Dim COLOR As Single

Dim FORMA As Integer

Dim X1 As Single, Y1 As Single, X2 As Single, Y2 As Single

Private Sub CmdForma_Click(Index As Integer)

FORMA = Index + 1

End Sub

Private Sub Form_Load()

COLOR = RGB(0, 0, 0)

FORMA = 1

PicLienzo.ScaleMode = 3

PicLienzo.DrawWidth = 3

End Sub

Private Sub PicColor_Click(Index As Integer)

COLOR = PicColor(Index).BackColor

PicMuestra.BackColor = COLOR

End Sub

Private Sub PicLienzo_MouseDown(Button As Integer, Shift As Integer, _

X As Single, Y As Single)

If Button = vbLeftButton Then

X1 = X

Y1 = Y

End If

End Sub

Pág. 205

Page 206: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Private Sub PicLienzo_MouseUp(Button As Integer, Shift As Integer, _

X As Single, Y As Single)

If Button = vbLeftButton Then

X2 = X

Y2 = Y

RADIO = Sqr((X1 - X2) * (X1 - X2) + (Y1 - Y2) * (Y1 - Y2)) / 2

Select Case FORMA

Case 1

PicLienzo.PSet (X, Y), COLOR

Case 2

PicLienzo.Line -(X, Y), COLOR

Case 3

PicLienzo.Line (X1, Y1)-(X2, Y2), COLOR, B

Case 4

PicLienzo.Circle (X, Y), RADIO, COLOR

Case 5

PicLienzo.Circle (X, Y), RADIO, COLOR, , , 0.5

End Select

End If

End Sub

CONTROLES GRÁFICOS

Visual Basic proporciona tres controles gráficos diseñados

para crear efectos gráficos en las aplicaciones:

• Control Image (estudiado en el Capítulo 4)

• Control Line

• Control Shape

Pág. 206

Page 207: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Control Line

Line es un control gráfico que se muestra como una línea

horizontal, vertical o diagonal.

El control Line tiene una funcionalidad limitada y está

pensado para usos sencillos. Para usos más avanzados debe usar

el método Line.

Propiedad Descripción

BorderColor Devuelve o establece el color de la línea.

BorderStyle Devuelve o establece el estilo de la línea.

BorderWidth Devuelve o establece el ancho de la línea.

X1, Y1, X2, Y2 Devuelven o establecen las coordenadas del

punto inicial (X1, Y1) y del punto final

(X2, Y2) de la línea.

Control Shape

Shape es un control gráfico que se muestra como un

rectángulo, un cuadrado, una elipse, un círculo, un rectángulo

redondeado o un cuadrado redondeado.

El control Shape presenta propiedades similares al control

Line (BorderColor, BorderStyle, BorderWidth). Adicionalmente,

la propiedad Shape del control Shape proporciona seis formas

predefinidas. En la tabla siguiente se enumeran todas las

formas predefinidas, sus valores y las constantes de Visual

Basic equivalentes:

Pág. 207

Page 208: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Forma Estilo Constante

Rectángulo 0 vbShapeRectangle

Cuadrado 1 vbShapeSquare

Elipse 2 vbShapeOval

Círculo 3 vbShapeCircle

Rectángulo redondeado 4 vbShapeRoundedRectangle

Cuadrado redondeado 5 vbShapeRoundedSquare

Las seis formas predefinidas que presenta el control Shape

se muestran en el siguiente formulario:

GRAFICACIÓN MATEMÁTICA

Como la mayor parte de las ecuaciones matemáticas expresa

relaciones complicadas en una, dos tres o más dimensiones,

tratar de entenderlas sin gráficas es casi lo mismo que tratar

de caminar con los ojos vendados.

Pág. 208

Funciones algebraicas

Page 209: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Como ejemplo de este tipo de gráficas vamos a dibujar una

parábola, cuya ecuación matemática (ecuación general de segundo

grado) es de la forma:

2( )f x Ax Bx C= + +

Para realizar la presente aplicación crear un nuevo

proyecto y añadir al formulario un cuadro de imagen (PicPlano),

tres cuadros de texto (TxtA, TxtB, TxtC) y un botón de comandos

(CmdVisualizar). Los aspectos decorativos (etiquetas, marcos,

etc.) quedan a criterio del lector. Luego ingresar el siguiente

código:

Dim A As Double, B As Double, C As Double

Pág. 209

Page 210: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Function F(ByVal X As Single) As Single

F = A * (X * X) + B * X + C

End Function

Private Sub CmdVisualizar_Click()

Dim X As Single

A = TxtA

B = TxtB

C = TxtC

PicPlano.Cls

PicPlano.Scale (-100, 100)-(100, -100)

PicPlano.Line (-100, 0)-(100, 0)

PicPlano.Line (0, -100)-(0, 100)

PicPlano.CurrentX = -10

PicPlano.CurrentY = F(-10)

For X = -10 To 10

PicPlano.Line -(X, F(X))

Next

End Sub

Funciones trigonométricas

Graficar funciones trigonométricas (seno, coseno,

tangente, cotangente, secante, cosecante) no es nada

complicado, sino analice el siguiente ejemplo.

Pág. 210

Page 211: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para realizar nuestra aplicación de ejemplo crear un nuevo

proyecto y añadir al formulario un cuadro de imagen (PicPlano)

y 6 botones de comandos (CmdFuncion, es decir se trata de una

matriz de controles). Luego ingresar el código siguiente:

Private Sub CmdFuncion_Click(Index As Integer)

PicPlano.Cls

Dibuja (Index)

End Sub

Private Sub Dibuja(OP As Integer)

PicPlano.Scale (-5, 5)-(5, -5)

PicPlano.Line (-5, 0)-(5, 0)

PicPlano.Line (0, -5)-(0, 5)

DosPi = 8 * Atn(1)

Pág. 211

Page 212: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Dim X As Single

For X = -DosPi To DosPi Step 0.025

Select Case OP

Case 0

Y = Sin(X)

Case 1

Y = Cos(X)

Case 2

Y = Sin(X) / Cos(X)

Case 3

If X < -0.001 Or X > 0.001 Then

Y = Cos(X) / Sin(X)

End If

Case 4

Y = 1 / Cos(X)

Case 5

If X < -0.001 Or X > 0.001 Then

Y = 1 / Sin(X)

End If

End Select

PicPlano.PSet (X, Y)

Next

End Sub

Gráficas en coordenadas polares

Pág. 212

Page 213: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Pág. 213

Para el caso de las gráficas de ecuaciones polares tampoco

es complicado, sólo hay que tener presente las siguientes

consideraciones.

Dado un punto del plano, tal punto se encuentra a

una distancia del origen, y a un ángulo

( , )P x y

r θ respecto del

semieje horizontal positivo.

De la gráfica se tiene que el punto tiene coordenadas

rectangulares

P

( , )x y ( , )r y coordenadas polares θ entonces se

cumplen las siguientes relaciones de transformación:

cosx r θ=

seny r

θ=

2 2 2 y= +

De donde: r x ; tan yx

θ =

Page 214: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Pág. 214

A continuación presentamos algunas ecuaciones polares

características:

Nombre Ecuación

Circunferencia de radio n r n=

Trébol de cuatro hojas 2 cos 2r θ=

Cardioide 1 cosr θ= +

Limazón 1 2 cosr θ= +

Lemniscata

2 cos 2r θ=

Pétalo de rosa sen 4r θ=

Espiral

2r

=

Espiral logarítmica nr e θ=

Astroide

3(cos 2 )r θ=

Nefroide 3 cos 2 cos 6r θ θ= −

Concoide

1 1cos 2

= +

Estrofoide

1 cos 2 2

rtanθ θ

=+

Para realizar una aplicación que permita dibujar

ecuaciones polares crear un nuevo proyecto y añadir al

formulario 1 cuadro de imagen (PicPlano), un cuadro de lista

(LstEcuacion) y un botón de comandos (CmdVisualizar). La

apariencia de la interfaz debe ser similar a la de la figura

mostrada:

Page 215: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Luego proceda a ingresar el código que se presenta a

continuación:

Dim OP As Integer

Function F(ByVal THETA As Single) As Single

Select Case OP

Case 0 : F = 2

Case 1 : F = 2 * Cos(2 * THETA)

Case 2 : F = 1 + Cos(THETA)

Case 3 : F = 1 + 2 * Cos(THETA)

Case 4 : If Cos(2 * THETA) >= 0 Then F = Sqr(Cos(2 * THETA))

Case 5 : F = Sin(4 * THETA)

Case 6 : F = THETA / 2

Case 7 : F = Exp(THETA / 8)

Case 8 : F = Cos(2 * THETA) * Cos(2 * THETA) * Cos(2 * THETA)

Pág. 215

Page 216: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Case 9 : F = 3 * Cos(2 * THETA) - Cos(6 * THETA)

Case 10: F = 1 / Cos(2 * THETA) + 1

Case 11: If Int(THETA / 45) <> THETA / 45 Or THETA <> 0 _

Then F = 1 / (Cos(2 * THETA) + Tan(2 * THETA))

End Select

End Function

Private Sub LstEcuacion_Click()

OP = LstEcuacion.ListIndex

End Sub

Private Sub CmdVisualizar_Click()

Dim X As Single, Y As Single

Dim I As Single, R As Single

DosPi = 8 * Atn(1)

PicPlano.Cls

PicPlano.ScaleMode = 3

PicPlano.Scale (-3.25, 3.25)-(3.25, -3.25)

PicPlano.Line (-3.25, 0)-(3.25, 0)

PicPlano.Line (0, -3.25)-(0, 3.25)

For I = 0 To DosPi Step 0.01

R = F(I)

X = R * Cos(I)

Y = R * Sin(I)

PicPlano.PSet (X, Y), QBColor(1)

Next

End Sub

Fractales

Pág. 216

Page 217: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Pág. 217

La matemática fractal es producto de la interacción de un

matemático genial (Benoit B. Mandelbrot) y la computadora.

El ahora ubicuo término fractal se debe al hecho de que la

matemática fractal trabaja con fracciones, las figuras

generadas no tienen una relación de enteros entre sus

componentes, de modo que ninguna dimensión es producto de otra

multiplicada por un entero. Es decir, al dividir una dimensión

entre otra nunca se obtiene un resultado exacto. Los fractales

generan figuras y estas figuras resultan tener una extraña

similitud con algunas formas que genera la naturaleza.

Entre las ecuaciones para generar fractales Mandelbrot ha

producido una en particular que ha recibido el nombre de

“Conjunto de Mandelbrot”. Esta ecuación se resuelve en el campo

de los números comprendidos entre las longitudes -2.0 a +0.5 y

las latitudes -1.25 a +1.25, está dominado por un gran mar

fractal con bahías y entrantes. La expresión matemática del

Conjunto de Mandelbrot es:

2

1 nnZ Z C+ = +

C

Donde es un número complejo constante y Z es un número

complejo variable que permite obtener las respectivas

iteraciones (los valores de cada punto del paisaje fractal,

latitud y longitud).

Page 218: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Pág. 218

Como ejemplo vamos a obtener las tres primeras

iteraciones. Para ello asignamos valores a C de cualquier

posición arbitraria dentro del conjunto, digamos C y para

arrancar las iteraciones podemos comenzar con , luego:

1 i= +

0 0Z =

21 (0) (1 ) 1

Z i i= + + = +

22 (1 ) (1 ) 1 3

Z i i i= + + + = +

23 (1 3 ) (1 ) 7 7

Z i i i= + + + = − +

Cuando se continua desarrollando el Conjunto de Mandelbrot

se obtiene una figura similar a la mostrada:

Page 219: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para el desarrollo de la presente aplicación crear un

nuevo proyecto y añadir sobre el formulario un cuadro de imagen

(PicPlano) y un botón de comandos (CmdVisualizar), luego

ingresar el código siguiente:

Function Hipotenusa(ByVal A As Double, ByVal B As Double) As Double

Hipotenusa = Sqr(A * A + B * B)

End Function

Private Sub CmdVisualizar_Click()

Dim MaxX As Integer, MaxY As Integer

Dim Limite As Integer, Pasos As Integer

Dim I As Integer, J As Integer

Dim PasoX As Double, PasoY As Double

Dim PosX As Double, PosY As Double

Dim OrigX As Double, OrigY As Double

Dim DimX As Double, DimY As Double

Dim IterX As Double, IterY As Double, TempX As Double

Dim Terminar As Boolean

PicPlano.ScaleMode = 3

MaxX = PicPlano.ScaleWidth

MaxY = PicPlano.ScaleHeight

Limite = 16

OrigX = -2

OrigY = -1.25

DimX = 0.5

DimY = 1.25

PasoX = (DimX - OrigX) / MaxX

Pág. 219

Page 220: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

PasoY = (DimY - OrigY) / MaxY

For I = 0 To MaxX

For J = 0 To MaxY

PosX = OrigX + I * PasoX

PosY = OrigY + J * PasoY

IterX = 0 : IterY = 0

Terminar = False

Pasos = 0

While (Not Terminar)

TempX = (IterX * IterX) - (IterY * IterY) + PosX

IterY = 2 * (IterX * IterY) + PosY

IterX = TempX

Pasos = Pasos + 1

If Hipotenusa(Abs(IterX), Abs(IterY)) >= 2 Then

Terminar = True

End If

If (Pasos >= Limite) Then

Terminar = True

End If

Wend

If (Pasos < Limite) Then

PicPlano.PSet (I, J), QBColor(Pasos)

End If

Next

Next

End Sub

Pág. 220

Page 221: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

En este capítulo, debido a las limitaciones de espacio y

materia, tan sólo se ofrece el camino de acceso a unos pocos de

los diversos temas que abarca el fascinante mundo de la

programación de gráficos por computadora.

Muchos de estos temas siguen siendo materia de

investigación (como el caso de los fractales), por lo que si

Ud. desea profundizar en este laberinto de fascinación, no hay

la garantía de un retorno sano y salvo a nuestro universo

mundano.

Pág. 221

Page 222: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

GUÍA DE LABORATORIO

Parte I

ELABORADO POR

CARLOS CASTILLO PERALTA

[email protected]

INTRODUCCIÓN

Pág. 222

Page 223: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

La presente Guía de Laboratorio de Microsoft Visual Basic,

se elaboró con la finalidad de complementar la parte teórica

con la parte práctica del curso. Los problemas presentan un

grado de dificultad gradual, es decir, en cada práctica primero

se comienzan con problemas muy sencillos con la finalidad de

que el estudiante esclarezca dudas y quede claro en los

conceptos asimilados en la teoría, y luego en los problemas

posteriores se va incrementando el nivel de dificultad.

Esta guía explora una gran variedad de materias y contiene

muchos problemas recopilados a lo largo de varios años de

experiencia. Espero que satisfaga las necesidades de los

estudiantes y colegas, ya que ha sido elaborada teniendo en

cuenta los objetivos de aprendizaje del curso.

Si desean compartirla con otros colegas, me agradaría

mucho que lo hicieran, con la única condición de que siempre se

respete el derecho del autor.

Desde ya les deseo la mejor de las suertes en el

aprendizaje de Microsoft Visual Basic.

Lima, Diciembre del 2000

Carlos Castillo Peralta

Microsoft Visual Basic

Pág. 223

Page 224: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

GUÍA DE LABORATORIO Nº 1

Objetivos

Luego de completar este laboratorio, el estudiante será

capaz de:

• Identificar los elementos del entorno integrado de

desarrollo de Microsoft Visual Basic 6.0.

• Añadir controles a un formulario.

• Establecer las propiedades de los controles.

• Trabajar con procedimientos de eventos.

• Crear una aplicación simple con Microsoft Visual Basic.

Consideraciones

Para el desarrollo del presente laboratorio Ud. deberá

crear una carpeta C:\FundVB\Lab1, para guardar sus trabajos

correspondientes a este laboratorio.

Aplicación Nº 1

Elaborar una aplicación que permita calcular el salario

neto de un trabajador en función del número de horas

trabajadas, pago por hora de trabajo y un descuento fijo al

sueldo bruto del 20 por 100. Los cálculos a efectuar para

obtener el salario neto de un trabajador se muestran a

continuación:

SalarioBruto = HorasTrabajadas * PagoPorHora

Descuento = 0.2 * SalarioBruto

SalarioNeto = SalarioBruto - Descuento

El diseño de la interfaz debe ser similar a la figura

mostrada:

Pág. 224

Page 225: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para el desarrollo de esta aplicación, proceda a ubicar

los siguientes controles en el formulario:

2 marcos

6 etiquetas

6 cajas de texto

3 botones de comando

Una vez ubicados los controles, establezca las propiedades

según se indica:

Form1

Nombre FrmSalarioNeto

BorderStyle 3-Fixed Dialog

Caption Cálculo del salario neto

Moveable False

StartUpPosition 2-CenterScreen

Frame1

Nombre FraIngreso

Pág. 225

Page 226: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Caption Ingreso de datos:

Frame2

Nombre FraSalida

Caption Salida de datos:

Label1

Nombre LblApellidosNombres

AutoSize True

Caption Apellidos y nombres:

Label2

Nombre LblHorasTrabajadas

AutoSize True

Caption Horas trabajadas:

Label3

Nombre LblPagoPorHora

AutoSize True

Caption Pago por hora S/.

Label4

Nombre LblSalarioBruto

AutoSize True

Caption Salario bruto S/.

Label5

Nombre LblDescuento

AutoSize True

Caption Descuento S/.

Label6

Nombre LblSalarioNeto

Pág. 226

Page 227: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

AutoSize True

Caption Salario neto S/.

Text1

Nombre TxtApellidosNombres

Text

Text2

Nombre TxtHorasTrabajadas

Text

Text3

Nombre TxtPagoPorHora

Text

Text4

Nombre TxtSalarioBruto

Text

Text5

Nombre TxtDescuento

Text

Text6

Nombre TxtSalarioNeto

Text

Command1

Nombre CmdAceptar

Caption &Aceptar

Command2

Nombre CmdLimpiar

Pág. 227

Page 228: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Caption &Limpiar

Command3

Nombre CmdSalir

Caption &Salir

Luego de establecer las propiedades para los controles,

debe añadir código a la aplicación. Para ello haga doble click

sobre el botón Aceptar e ingrese el siguiente código:

Private Sub CmdAceptar_Click()

Dim HorasTrabajadas As Integer, PagoPorHora As Double

Dim SalarioBruto As Double

Dim Descuento As Double

Dim SalarioNeto As Double

HorasTrabajadas = Val(TxtHorasTrabajadas)

PagoPorHora = Val(TxtPagoPorHora)

SalarioBruto = HorasTrabajadas * PagoPorHora

Descuento = 0.2 * SalarioBruto

SalarioNeto = SalarioBruto - Descuento

TxtSalarioBruto = Str(SalarioBruto)

TxtDescuento = Str(Descuento)

TxtSalarioNeto = Str(SalarioNeto)

End Sub

A continuación haga doble click sobre el botón Salir y

añada el siguiente código:

Private Sub CmdSalir_Click()

End

End Sub

Guarde y luego ejecute la aplicación que acaba de crear.

Pruebe ingresando diferentes valores.

Pág. 228

Page 229: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Luego, haga doble click sobre el botón Limpiar y añada el

siguiente código:

Private Sub CmdLimpiar_Click()

TxtApellidosNombres = “”

TxtHorasTrabajadas = “”

TxtPagoPorHora = “”

TxtSalarioBruto = “”

TxtDescuento = “”

TxtSalarioNeto = “”

TxtApellidosNombres.SetFocus

End Sub

Guarde y ejecute su aplicación. ¿Cómo afecta el código

añadido en el botón Limpiar a la aplicación?. Anote sus

observaciones.

Aplicación Nº 2

El menú de un restaurante rápido se muestra a

continuación:

MENÚ PRECIO (S/.)

Hamburguesa 2.50

Cerveza 4.00

Gaseosa 3.00

Ensalada 1.50

Salchichas 2.00

Refresco 1.00

Sopa 1.50

Postre 1.50

Se desea construir una

aplicación que calcule las

ventas totales al final del

día, así como los impuestos

a pagar (18 por 100).

La interfaz de entrada

y salida deberá ser similar

a la figura mostrada a

continuación:

Pág. 229

Page 230: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para el diseño del cuadro de menú utilizaremos el control

Microsoft Hierarchical FlexGrid. Para tal fin, seleccione el

Menú Proyecto y elija la opción Componentes:

Pág. 230

Page 231: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

A continuación active la casilla de verificación Microsoft

Hierarchical FlexGrid Control 6.0 OLEDB y haga click sobre el

botón Aceptar. En seguida este control se añadirá al Cuadro de

Herramientas.

Para el desarrollo de esta aplicación, proceda a ubicar

los siguientes controles en el formulario:

10 etiquetas

10 cajas de texto

1 control MSHFlexGrid

3 botones de comando

En seguida, elabore el diseño de entrada y salida. Para

ello proceda a establecer las propiedades según se indica a

continuación:

Form1

Nombre FrmRestaurante

BorderStyle 3-Fixed Dialog

Caption Restaurante

Moveable False

StartUpPosition 2-CenterScreen

Label1

Nombre LblHamburguesa

AutoSize True

Caption Hamburguesa:

Label2

Nombre LblCerveza

AutoSize True

Caption Cerveza:

Pág. 231

Page 232: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Label3

Nombre LblGaseosa

AutoSize True

Caption Gaseosa:

Label4

Nombre LblEnsalada

AutoSize True

Caption Ensalada:

Label5

Nombre LblSalchichas

AutoSize True

Caption Salchichas:

Label6

Nombre LblRefresco

AutoSize True

Caption Refresco:

Label7

Nombre LblSopa

AutoSize True

Caption Sopa:

Label8

Nombre LblPostre

AutoSize True

Caption Postre:

Label9

Nombre LblVentaTotal

Caption Venta total S/.

Pág. 232

Page 233: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Label10

Nombre LblImpuesto

Caption Impuesto S/.

MSHFlexGrid1

Nombre GrdMenu

Font Arial (Negrita 10)

FontFixed Arial (Negrita 10)

Text1

Nombre TxtHamburguesa

Text

Text2

Nombre TxtCerveza

Text

Text3

Nombre TxtGaseosa

Text

Text4

Nombre TxtEnsalada

Text

Text5

Nombre TxtSalchichas

Text

Text6

Nombre TxtRefresco

Text

Pág. 233

Page 234: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Text7

Nombre TxtSopa

Text

Text8

Nombre TxtPostre

Text

Text9

Nombre TxtVentaTotal

Locked True

Text

Text10

Nombre TxtImpuesto

Locked True

Text

Command1

Nombre CmdAceptar

Caption &Aceptar

Command2

Nombre CmdLimpiar

Caption &Limpiar

Command3

Nombre CmdSalir

Caption &Salir

Picture C:\Archivos de programa\Microsoft Visual

Studio\Common\Graphics\Icons\Arrows\Point04.ico

Style 1-Graphical

Pág. 234

Page 235: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

En primer lugar debemos cargar los datos a la cuadrícula.

Esto lo vamos a realizar en tiempo de ejecución al momento de

cargarse en memoria el formulario. Para ello, haga doble click

sobre el formulario y añada el siguiente código:

Private Sub Form_Load()

GrdMenu.Cols = 2

GrdMenu.Rows = 9

GrdMenu.FixedCols = 0

GrdMenu.FixedRows = 1

GrdMenu.TextArray(0) = “Menú”

GrdMenu.TextArray(1) = “Precio”

GrdMenu.TextArray(2) = “Hamburguesa”

GrdMenu.TextArray(3) = “2.50”

GrdMenu.TextArray(4) = “Cerveza”

GrdMenu.TextArray(5) = “4.00”

GrdMenu.TextArray(6) = “Gaseosa”

GrdMenu.TextArray(7) = “3.00”

GrdMenu.TextArray(8) = “Ensalada”

GrdMenu.TextArray(9) = “1.50”

GrdMenu.TextArray(10) = “Salchichas”

GrdMenu.TextArray(11) = “2.00”

GrdMenu.TextArray(12) = “Refresco”

GrdMenu.TextArray(13) = “1.00”

GrdMenu.TextArray(14) = “Sopa”

GrdMenu.TextArray(15) = “1.50”

GrdMenu.TextArray(16) = “Postre”

GrdMenu.TextArray(17) = “1.50”

End Sub

Luego debemos añadir el código que se encargará de

realizar los cálculos. Para tal fin haga doble click sobre el

botón Aceptar y proceda a ingresar lo siguiente:

Pág. 235

Page 236: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Private Sub CmdAceptar_Click()

Dim Hamburguesa As Integer, Cerveza As Integer

Dim Gaseosa As Integer, Ensalada As Integer

Dim Salchichas As Integer, Refresco As Integer

Dim Sopa As Integer, Postre As Integer

Dim VentaTotal As Double, Impuesto As Double

Hamburguesa = Val(TxtHamburguesa)

Cerveza = Val(TxtCerveza)

Gaseosa = Val(TxtGaseosa)

Ensalada = Val(TxtEnsalada)

Salchichas = Val(TxtSalchichas)

Refresco = Val(TxtRefresco)

Sopa = Val(TxtSopa)

Postre = Val(TxtPostre)

VentaTotal = Hamburguesa * 2.5 + Cerveza * 4.0 _

+ Gaseosa * 3.0 + Ensalada * 1.5 + Salchichas * 2.0 _

+ Refresco * 1.0 + Sopa * 1.5 + Postre * 1.5

Impuesto = 0.18 * VentaTotal

TxtVentaTotal = Str(VentaTotal)

TxtImpuesto = Str(Impuesto)

End Sub

Luego, haga doble click sobre el botón Limpiar y añada el

siguiente código:

Private Sub CmdLimpiar_Click()

TxtHamburguesa = “” : TxtCerveza = “”

TxtGaseosa = “” : TxtEnsalada = “”

TxtSalchichas = “” : TxtRefresco = “”

TxtSopa = “” : TxtPostre = “”

TxtVentaTotal = “” : TxtImpuesto = “”

TxtHamburguesa.SetFocus

End Sub

Pág. 236

Page 237: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

A continuación haga doble click sobre el botón Salir y

añada el siguiente código:

Private Sub CmdSalir_Click()

End

End Sub

Aplicación Nº 3

Elaborar una aplicación que permita calcular la edad de

una persona a partir de su fecha de nacimiento. El diseño de la

interfaz debe ser similar a la figura mostrada:

Para el desarrollo de esta aplicación, proceda a ubicar

los siguientes controles en el formulario:

2 etiquetas

2 cajas de texto

3 botones de comando

Luego, proceda a establecer las propiedades según se

indica a continuación:

Form1

Nombre FrmEdad

BorderStyle 3-Fixed Dialog

Caption Calcula la edad de una persona

Pág. 237

Page 238: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Label1

Nombre LblFecNac

AutoSize True

Caption Fecha de nacimiento:

Label2

Nombre LblEdad

AutoSize True

Caption Su edad es:

Text1

Nombre TxtFecNac

Text

Text2

Nombre TxtEdad

Locked True

Text

Command1

Nombre CmdAceptar

Caption &Aceptar

Default True

Command2

Nombre CmdLimpiar

Caption &Limpiar

Command3

Nombre CmdSalir

Cancel True

Caption &Salir

Pág. 238

En seguida proceda a ingresar el siguiente código:

Page 239: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Private Sub CmdAceptar_Click()

Dim FecNac As Date, Edad As Integer

FecNac = CDate(TxtFecNac)

Edad = CInt((Date - FecNac) / 365)

TxtEdad = Str(Edad) & “ años”

End Sub

Se deja como ejercicio para el estudiante el código

asociado con los botones Limpiar y Salir, respectivamente.

Aplicación Nº 4

Se tiene un cajero automático el cual permite manipular

cierta cantidad de dinero para lo cual dispone de los

siguientes billetes: S/. 10.00, S/. 20.00, S/. 50.00,

S/. 100.00 y S/. 200.00. Elaborar una aplicación que permita la

lectura de la cantidad a retirar e indique el menor número de

billetes a utilizar.

Creo que a estas alturas Ud. ya entendió como funciona

esto. Por ello, esta aplicación se deja como ejercicio para el

estudiante.

Pág. 239

Page 240: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Microsoft Visual Basic

GUÍA DE LABORATORIO Nº 2

Objetivos

Luego de completar este laboratorio, el estudiante será

capaz de:

• Implementar aplicaciones utilizando estructuras de control

selectivas.

• Usar casillas de verificación y botones de opción para

alternar entre uno o más valores.

• Utilizar cajas de diálogo predefinidas para visualizar

mensajes.

Consideraciones

Para el desarrollo del presente laboratorio Ud. deberá

crear una carpeta C:\FundVB\Lab2, para guardar sus trabajos

correspondientes a este laboratorio.

Aplicación Nº 1

Se desea elaborar la boleta de pago de los trabajadores de

una fábrica. Para ello se cuenta con los siguientes datos de

entrada:

Apellidos y nombres del trabajador

Sueldo básico

Horas extras trabajadas

Además, se sabe que los trabajadores laboran en dos

turnos: diurno y nocturno. Y que la tarifa por las horas extras

diurnas es de 10 soles y por las horas extras nocturnas es de

15 soles.

Pág. 240

Page 241: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Los descuentos a aplicar son sobre el sueldo básico y se

obtienen de la siguiente manera:

Renta = SueldoBasico * 0.1

Fonavi = SueldoBasico * 0.07

AFP = SueldoBasico * 0.03

Finalmente el sueldo neto del trabajador se calcula

mediante las siguientes expresiones:

Ingresos = SueldoBasico + HorasExtras * PagoHoraExtra

Egresos = Renta + Fonavi + AFP

SueldoNeto = Ingresos - Egresos

El diseño de la interfaz deberá ser similar a la figura

mostrada:

Pág. 241

Page 242: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para el desarrollo de esta aplicación, proceda a ubicar

los siguientes controles en el formulario:

2 marcos

5 etiquetas

8 cajas de texto

2 botones de opción

3 casillas de verificación

3 botones de comando

Luego, proceda a establecer las propiedades según se

indica a continuación:

Form1

Nombre FrmBoletaDePago

BorderStyle 3-Fixed Dialog

Caption Boleta de pago

Moveable False

Label1

Nombre LblTrabajador

AutoSize True

Caption Trabajador:

Label2

Nombre LblSueldoBasico

AutoSize True

Caption Sueldo Bruto S/.

Label3

Nombre LblHorasExtras

AutoSize True

Caption Horas extras:

Pág. 242

Page 243: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Label4

Nombre LblPagoHoraExtra

AutoSize True

Caption Pago hora extra S/.

Label5

Nombre LblSueldoNeto

AutoSize True

Caption Sueldo neto S/.

Text1

Nombre TxtTrabajador

Text

Text2

Nombre TxtSueldoBasico

Text

Text3

Nombre TxtHorasExtras

Text

Text4

Nombre TxtPagoHoraExtra

BackColor &H80000004&

Text

Text5

Nombre TxtRenta

BackColor &H80000004&

Locked True

Text

Pág. 243

Page 244: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Text6

Nombre TxtFonavi

BackColor &H80000004&

Locked True

Text

Text7

Nombre TxtAFP

BackColor &H80000004&

Locked True

Text

Text8

Nombre TxtSueldoNeto

BackColor &H80000004&

Locked True

Text

Option1

Nombre OptDiurno

Caption Diurno

Value True

Option2

Nombre OptNocturno

Caption Nocturno

Value False

Check1

Nombre ChkRenta

Caption Renta

Check2

Pág. 244

Page 245: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Nombre ChkFonavi

Caption Fonavi

Check3

Nombre ChkAFP

Caption AFP

Command1

Nombre CmdAceptar

Caption &Aceptar

Default True

Command2

Nombre CmdLimpiar

Caption &Limpiar

Command3

Nombre CmdSalir

Cancel True

Caption &Salir

Una vez establecidas las propiedades, proceda a ingresar

el código que se indica a continuación:

Private Sub CmdAceptar_Click()

Dim SueldoBasico As Double

Dim HorasExtras As Integer, PagoHoraExtra As Double

Dim Renta As Double, Fonavi As Double, AFP As Double

Dim Ingresos As Double, Egresos As Double

Dim SueldoNeto As Double

SueldoBasico = Val(TxtSueldoBasico)

HorasExtras = Val(TxtHorasExtras)

If OptDiurno Then

Pág. 245

Page 246: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

PagoHoraExtra = 10

End If

If OptNocturno Then

PagoHoraExtra = 15

End If

If ChkRenta.Value Then

Renta = SueldoBasico * 0.1

Else

Renta = 0

End If

If ChkFonavi.Value Then

Fonavi = SueldoBasico * 0.07

Else

Fonavi = 0

End If

If ChkAFP.Value Then

AFP = SueldoBasico * 0.03

Else

AFP = 0

End If

Ingresos = SueldoBasico + HorasExtras * PagoHoraExtra

Egresos = Renta + Fonavi + AFP

SueldoNeto = Ingresos - Egresos

TxtPagoHoraExtra = Str(PagoHoraExtra)

TxtRenta = Str(Renta)

TxtFonavi = Str(Fonavi) : TxtAFP = Str(AFP)

TxtSueldoNeto = Str(SueldoNeto)

End Sub

Private Sub CmdSalir_Click()

End

End Sub

Aplicación Nº 2

Pág. 246

Page 247: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Cuatro notas entre 0 y 20 representan las calificaciones

de un estudiante de un curso de programación. Elaborar una

aplicación para obtener el promedio de esas calificaciones y

visualizar su puntuación de acuerdo al siguiente cuadro:

Promedio Puntuación

19-20 A

16-18 B

11-15 C

6-10 D

0-5 E

El diseño de la interfaz deberá ser similar a la figura

mostrada:

Para el desarrollo de esta aplicación, proceda a ubicar

los siguientes controles en el formulario:

7 etiquetas

7 cajas de texto

3 botones de comando

Pág. 247

Page 248: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Luego, proceda a establecer las propiedades según se

indica a continuación:

Form1

Nombre FrmNotas

BorderStyle 3-Fixed Dialog

Caption Puntuación de un estudiante

Label1

Nombre LblAlumno

AutoSize True

Caption Alumno:

Label2

Nombre LblN1

AutoSize True

Caption Nota 1:

Label3

Nombre LblN2

AutoSize True

Caption Nota 2:

Label4

Nombre LblN3

AutoSize True

Caption Nota 3:

Label5

Nombre LblN4

AutoSize True

Caption Nota 4:

Pág. 248

Page 249: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Label6

Nombre LblPromedio

AutoSize True

Caption Promedio:

Label7

Nombre LblPuntuacion

AutoSize True

Caption Puntuación:

Text1

Nombre TxtAlumno

Text

Text2

Nombre TxtN1

Text

Text3

Nombre TxtN2

Text

Text4

Nombre TxtN3

Text

Text5

Nombre TxtN4

Text

Pág. 249

Page 250: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Text6

Nombre TxtPromedio

BackColor &H80000004&

Locked True

Text

Text7

Nombre TxtPuntuacion

BackColor &H80000004&

Locked True

Text

Command1

Nombre CmdAceptar

Caption &Aceptar

Default True

Command2

Nombre CmdLimpiar

Caption &Limpiar

Command3

Nombre CmdSalir

Cancel True

Caption &Salir

Una vez establecidas las propiedades, proceda a ingresar

el código que se indica:

Private Sub CmdAceptar_Click()

Dim N1 As Double, N2 As Double, N3 As Double, N4 As Double

Dim Promedio As Integer

Pág. 250

N1 = Val(TxtN1) : N2 = Val(TxtN2)

Page 251: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

N3 = Val(TxtN3) : N4 = Val(TxtN4)

Promedio = CInt((N1 + N2 + N3 + N4) / 4)

TxtPromedio = Str(Promedio)

If Promedio >= 19 And Promedio <= 20 Then

TxtPuntuacion = “A”

ElseIf Promedio >= 16 And Promedio <= 18 Then

TxtPuntuacion = “B”

ElseIf Promedio >= 11 And Promedio <= 15 Then

TxtPuntuacion = “C”

ElseIf Promedio >= 6 And Promedio <= 10 Then

TxtPuntuacion = “D”

ElseIf Promedio >= 0 And Promedio <= 5 Then

TxtPuntuacion = “B”

Else: MsgBox “Error de datos”, vbCritical, “Mensaje”

End If

End Sub

Aplicación Nº 3

Escribir un aplicación que acepte fechas como tres números

(dd, mm, aaaa) y las visualice del modo usual. A manera de

ejemplo considere lo siguiente:

Pág. 251

Page 252: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

En caso de que el usuario ingrese algún dato incorrecto

(por ejemplo 13 como un número de mes), se debe visualizar el

siguiente mensaje:

Cuando el usuario haga click en el botón Salir, se debe

observar el siguiente mensaje:

En caso de que el usuario elija la opción Si, la

aplicación debe terminar. En caso contrario, es decir si el

usuario elige la opción No, se debe proseguir con la

aplicación.

Para el desarrollo de esta aplicación, proceda a ubicar

los siguientes controles en el formulario:

4 etiquetas

3 cajas de texto

1 marco

3 botones de comando

En seguida proceda a establecer las propiedades según se

indica:

Pág. 252

Page 253: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Form1

Nombre FrmFecha

BorderStyle 3-Fixed Dialog

Caption Fecha en letras

Label1

Nombre LblDia

AutoSize True

Caption Día:

Label2

Nombre LblMes

AutoSize True

Caption Mes:

Label3

Nombre LblAnno

AutoSize True

Caption Año:

Label4

Nombre LblFecha

AutoSize True

Caption

Text1

Nombre TxtDia

Text

Text2

Nombre TxtMes

Text

Pág. 253

Page 254: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Text3

Nombre TxtAnno

Text

Command1

Nombre CmdAceptar

Caption &Aceptar

Default True

Command2

Nombre CmdLimpiar

Caption &Limpiar

Command3

Nombre CmdSalir

Caption &Salir

Una vez establecidas las propiedades de la interfaz

proceda a ingresar el siguiente código:

Private Sub CmdAceptar_Click()

Dim CadMes As String, Mes As Integer

Mes = Val(TxtMes)

Select Case Mes

Case 1: CadMes = “Enero”

Case 2: CadMes = “Febrero”

Case 3: CadMes = “Marzo”

Case 4: CadMes = “Abril”

Case 5: CadMes = “Mayo”

Case 6: CadMes = “Junio”

Case 7: CadMes = “Julio”

Case 8: CadMes = “Agosto”

Case 9: CadMes = “Setiembre”

Pág. 254

Page 255: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Case 10: CadMes = “Octubre”

Case 11: CadMes = “Noviembre”

Case 12: CadMes = “Diciembre”

Case Else

MsgBox “Error de datos...”, vbCritical, “Mensaje”

Call CmdLimpiar_Click

Exit Sub

End Select

LblFecha = TxtDia & “ de ” & CadMes & “ de ” & TxtAnno

End Sub

Private Sub CmdLimpiar_Click()

TxtDia = “” : TxtMes = “” : TxtAnno = “”

TxtDia.SetFocus

End Sub

Private Sub CmdSalir_Click()

If MsgBox(“¿Desea terminar la aplicación?”, _

vbQuestion + vbYesNo, “Pregunta”) = vbYes Then

End

Else: Call CmdLimpiar_Click

End If

End Sub

Aplicación Nº 4

Un restaurante ofrece un descuento del 10% para consumos

entre S/. 30.00 y S/. 50.00; un descuento del 20% para

consumos mayores a S/. 50.00 nuevos soles; para todos los demás

casos no se aplica ningún tipo de descuento. Elaborar una

aplicación que permita determinar el importe a pagar por el

consumidor. El diseño de la interfaz y otras consideraciones se

dejan a su criterio.

Pág. 255

Page 256: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Microsoft Visual Basic

GUÍA DE LABORATORIO Nº 3

Objetivos

Luego de completar este laboratorio, el estudiante será

capaz de:

• Implementar aplicaciones utilizando estructuras de control

repetitivas.

• Cambiar las propiedades de los controles en tiempo de

ejecución.

Consideraciones

Para el desarrollo del presente laboratorio Ud. deberá

crear una carpeta C:\FundVB\Lab3, para guardar sus trabajos

correspondientes a este laboratorio.

Aplicación Nº 1

Escribir una aplicación que lea un número entero y muestre

la tabla de multiplicar de dicho número. El diseño de entrada y

salida debe ser similar al siguiente:

Pág. 256

Page 257: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para el desarrollo de esta aplicación, proceda a ubicar

los siguientes controles en el formulario:

1 etiqueta

2 cajas de texto

1 botón de comando

En seguida proceda a establecer las propiedades según se

indica:

Form1

Nombre FrmTabla

BorderStyle 3-Fixed Dialog

Caption Tabla de multiplicar

Label1

Nombre LblNumero

Caption Ingrese un número:

Text1

Nombre TxtNumero

Text

Text2

Nombre TxtTabla

MultiLine True

Locked True

ScrollBars 2-Vertical

Text

Command1

Nombre CmdLimpiar

Caption &Limpiar

Pág. 257

Page 258: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Una vez diseñada la interfaz, proceda a ingresar el código

que se indica a continuación:

Private Sub TxtNumero_Change()

If IsNumeric(TxtNumero) Then

Dim N As Integer, P As Integer, I As Integer

Dim S As String

N = Val(TxtNumero)

S = “”

For I = 0 To 12

P = N * I

S = S & N & “ * ” & I & “ = ” & P & vbCrLf

Next I

TxtTabla = S

ElseIf TxtNumero = “” Then

Exit Sub

Else: MsgBox “Ingrese un número”, vbCritical, “Mensaje”

TxtTabla = “”

End If

End Sub

Private Sub CmdLimpiar_Click()

TxtNumero = “” : TxtTabla = “”

TxtNumero.SetFocus

End Sub

Aplicación Nº 2

Un número perfecto es un entero positivo, que es igual a

la suma de todos los enteros positivos (excluido el mismo) que

son divisores del número. El primer número perfecto es 6, ya

que los divisores de 6 son 1, 2, 3 y 1 + 2 + 3 = 6. Escribir

una aplicación que encuentre los tres primeros números

perfectos.

Pág. 258

Page 259: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

El diseño de la interfaz debe ser similar a la figura

mostrada:

Para el desarrollo de esta aplicación, proceda a ubicar

los siguientes controles en el formulario:

1 marco

1 caja de texto

En seguida proceda a establecer las propiedades según se

indica:

Form1

Nombre FrmNumeroPerfecto

BorderStyle 3-Fixed Dialog

Caption Los 3 primeros números perfectos

Frame1

Nombre FraPerfecto

Caption Número perfecto

Text1

Nombre TxtPerfecto

MultiLine True

Text

Pág. 259

Page 260: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Una vez establecidas las propiedades proceda a ingresar el

código que se indica a continuación:

Private Sub Form_Load()

Dim N As Long, I As Long, S As Long

Dim K As Integer, Cad As String

N = 1 : K = 0 : Cad = “”

While True

S = 0

For I = 1 To (N - 1)

If N Mod I = 0 Then S = S + I

Next I

If N = S Then

Cad = Cad & N & vbCrLf

K = K + 1

End If

If K = 3 Then

TxtPerfecto = Cad

Exit Sub

End If

N = N + 1

Wend

End Sub

Aplicación Nº 3

Construya una aplicación que permita el ingreso de un

número entero y muestre en pantalla la siguiente información:

1) Cantidad de cifras, 2) Suma de cifras impares, 3) Suma de

cifras pares, 4) Suma total de cifras, 5) Cifra mayor, 6) Cifra

menor y 7) Divisores de dicho número.

El diseño de la interfaz debe ser similar a la figura

siguiente:

Pág. 260

Page 261: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para el desarrollo de esta aplicación, proceda a ubicar

los siguientes controles en el formulario:

4 marcos

7 etiquetas

8 cajas de texto

1 botón de comando

En seguida proceda a establecer las propiedades según se

indica:

Form1

Nombre FrmNumeroPerfecto

BorderStyle 3-Fixed Dialog

Caption Los 3 primeros números perfectos

Moveable False

StartUpPosition 2-CenterScreen

Pág. 261

Page 262: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Frame1

Nombre FraEntrada

Caption

Frame2

Nombre FraSalida

Caption

Frame3

Nombre FraDivisores

Caption Divisores

Frame4

Nombre FraSalir

Caption

Label1

Nombre LblNumero

AutoSize True

Caption Ingrese un número:

Label2

Nombre LblCantCifras

AutoSize True

Caption Cantidad de cifras:

Label3

Nombre LblSumImpares

AutoSize True

Caption Suma de cifras impares:

Pág. 262

Label4

Page 263: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Nombre LblSumPares

AutoSize True

Caption Suma de cifras pares:

Label5

Nombre LblSumTotal

AutoSize True

Caption Suma total de cifras:

Label6

Nombre LblCifraMayor

AutoSize True

Caption Cifra mayor:

Label7

Nombre LblCifraMenor

AutoSize True

Caption Cifra menor:

Text1

Nombre TxtNumero

Text

Text2

Nombre TxtCantCifras

Locked True

Text

Text3

Nombre TxtSumImpares

Locked True

Text

Text4

Pág. 263

Page 264: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Nombre TxtSumPares

Locked True

Text

Text5

Nombre TxtSumTotal

Locked True

Text

Text6

Nombre TxtCifraMayor

Locked True

Text

Text7

Nombre TxtCifraMenor

Locked True

Text

Text8

Nombre TxtDivisores

MultiLine True

Locked True

ScrollBars 2-Vertical

Text

Command3

Nombre CmdSalir

Caption &Salir

Picture C:\FundVB\Bitmaps\Exit.bmp

Style 1-Graphical

Pág. 264

Page 265: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Una vez establecidas las propiedades proceda ha ingresar

el código que se indica a continuación:

Private Sub CmdAceptar_Click()

If IsNumeric(TxtNumero) Then

Dim S As Integer, SI As Integer, SP As Integer

Dim May As Integer, Min As Integer

Dim Cad As String

Dim I As Integer, J As Integer

N = CLng(TxtNumero)

M = CLng(TxtNumero)

Cad = “”

I = 0

J = 1

S = SP = SI = 0

For J = 1 To N

If (N Mod J = 0) Then

Cad = Cad & J & vbCrLf

End If

Next J

While (N > 0)

If ((N Mod 10) Mod 2) = 0 Then

SP = SP + (N Mod 10)

Else

SI = SI + (N Mod 10)

End If

S = S + (N Mod 10)

N = N \ 10

I = I + 1

Wend

May = Mid(TxtNumero, 1, 1)

Men = May

While (M > 0)

Pág. 265

Page 266: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

If May < (M Mod 10) Then

May = M Mod 10

End If

If Men > (M Mod 10) Then

Men = M Mod 10

End If

M = M \ 10

Wend

TxtCantCifras = Str(I)

TxtSumImpares = Str(SI)

TxtSumPares = Str(SP)

TxtSumTotal = Str(S)

TxtCifraMayor = Str(May)

TxtCifraMenor = Str(Men)

TxtDivisores = Cad

Else

MsgBox “Debe ingresar un número”, vbCritical, “Mensaje”

TxtNumero.SetFocus

End If

End Sub

Private Sub CmdSalir_Click()

If MsgBox(“¿Desea terminar la aplicación?”, _

vbQuestion + vbYesNo, "Pregunta") = vbYes Then

End

Else

Cancel = True

TxtNumero.SetFocus

End If

End Sub

Aplicación Nº 4

Pág. 266

Page 267: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Un centro numérico es un número que separa una lista de

números enteros (comenzando en 1) en dos grupos de números,

cuyas sumas son iguales. El primer centro numérico es el 6, el

cual separa la lista (1 a 8) en los grupos: (1; 2; 3; 4; 5) y

(7; 8) cuyas sumas son ambas iguales a 15. El segundo centro

numérico es el 35, el cual separa la lista (1 a 49) en los

grupos: (1 a 34) y (36 a 49) cuyas sumas son ambas iguales a

595. Se pide elaborar una aplicación que calcule los centros

numéricos entre 1 y N.

El diseño de la interfaz y otras consideraciones se dejan

a su criterio.

Pág. 267

Page 268: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Microsoft Visual Basic

GUÍA DE LABORATORIO Nº 4

Objetivos

Luego de completar este laboratorio, el estudiante será

capaz de:

• Manipular y realizar operaciones con arreglos.

• Crear una estructura y realizar operaciones con los campos de

la misma.

• Implementar arreglos de estructuras.

• Trabajar con listas desplegables y cuadros combinados.

Consideraciones

Para el desarrollo del presente laboratorio Ud. deberá

crear una carpeta C:\FundVB\Lab4 para guardar sus trabajos

correspondientes a este laboratorio.

Aplicación Nº 1

Elabore una aplicación que permita leer N números de tipo

entero, y a continuación los visualice ordenados en forma

ascendente o descendente.

Pág. 268

Page 269: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para el desarrollo de esta aplicación, proceda a ubicar

los siguientes controles en el formulario:

3 marcos

1 caja de texto

1 control lista

2 botones de opción

3 botones de comando

En seguida proceda a establecer las propiedades según se

indica:

Form1

Nombre FrmBurbuja

BorderStyle 3-Fixed Dialog

Caption Ordenación por burbuja

Moveable False

Frame1

Nombre FraNumero

Caption Ingrese un nuevo número:

Frame2

Nombre FraLista

Caption Lista de números:

Frame3

Nombre FraOrden

Caption Orden:

Text1

Nombre TxtNumero

Text

Pág. 269

Page 270: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

List1

Nombre LstNumero

List

Option1

Nombre OptAscendente

Caption Ascendente

Value True

Option2

Nombre OptDescendente

Caption Descendente

Value False

Command1

Nombre CmdAnnadir

Caption &Añadir

Default True

Command2

Nombre CmdOrdenar

Caption &Ordenar

Command3

Nombre CmdSalir

Caption &Salir

Picture C:\Archivos de programa\Microsoft Visual

Studio\Common\Graphics\Icons\Arrows\

Point04.ico

Style 1-Graphical

Una vez establecidas las propiedades proceda a ingresar el

código que se indica a continuación:

Pág. 270

Page 271: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Private Sub CmdAceptar_Click()

If IsNumeric(TxtNumero.Text) Then

LstNumero.AddItem TxtNumero.Text

TxtNumero.Text = “”

TxtNumero.SetFocus

Else

MsgBox “Ingrese un número”, vbCritical, “Mensaje”

TxtNumero.SelStart = 0

TxtNumero.SelLength = Len(TxtNumero.Text)

TxtNumero.SetFocus

End If

End Sub

Private Sub CmdOrdenar_Click()

Dim I As Integer, J As Integer, T As Integer, N As Integer

Dim A() As Integer

N = LstNumero.ListCount

ReDim A(N)

For I = 0 To N - 1

A(I) = LstNumero.List(I)

Next I

If OptAscendente.Value Then

For I = 0 To N - 2

For J = I + 1 To N - 1

If A(I) > A(J) Then

T = A(I)

A(I) = A(J)

A(J) = T

End If

Next J

Next I

End If

Pág. 271

Page 272: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

If OptDescendente.Value Then

For I = 0 To N - 2

For J = I + 1 To N - 1

If A(I) < A(J) Then

T = A(I)

A(I) = A(J)

A(J) = T

End If

Next J

Next I

End If

LstNumero.Clear

For I = 0 To N - 1

LstNumero.List(I) = A(I)

Next I

End Sub

Private Sub Form_Unload(Cancel As Integer)

If MsgBox(“Desea terminar la aplicación?”, _

vbQuestion + vbYesNo, “Pregunta”) = vbYes Then

End

Else: Cancel = True : TxtNumero.SetFocus

End If

End Sub

Private Sub CmdSalir_Click()

Unload Me

End Sub

Aplicación Nº 2

Pág. 272

Elaborar una aplicación que permita seleccionar un

artículo de un cuadro combinado (Combo). Apenas el usuario

seleccione un artículo se debe mostrar el precio del mismo, el

interés es fijo para esta ocasión.

Page 273: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

El diseño de la interfaz debe ser similar a la siguiente

figura:

La venta ha realizarse es a plazos, ello condiciona la

cuota mensual a pagarse. Cuando se haga click sobre el botón

Cuota mensual debe mostrarse un cuadro de diálogo con los datos

propuestos:

De manera similar al hacer click sobre el botón Total nos

debe mostrar la cantidad total a pagar.

Pág. 273

Page 274: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para el desarrollo de esta aplicación, proceda a ubicar

los siguientes controles en el formulario:

1 marco

3 etiquetas

1 cuadro combinado

2 cajas de texto

3 botones de opción

2 botones de comando

En seguida proceda a establecer las propiedades según se

indica:

Form1

Nombre FrmCotizacion

BorderStyle 3-Fixed Dialog

Caption Pedido de cotizaciones

Frame1

Nombre FraPlazo

Caption Plazo:

Label1

Nombre LblArticulo

Caption Artículo:

Label2

Nombre LblPrecio

Caption Precio US$

Label3

Nombre LblInteres

Caption Interés:

Pág. 274

Page 275: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Combo1

Nombre CboArticulo

Text

Text1

Nombre TxtPrecio

Locked True

Text

Text2

Nombre TxtInteres

Locked True

Text

Option1

Nombre OptPlazo

Caption 6 meses

Value True

Option2

Nombre OptPlazo

Caption 12 meses

Value False

Option3

Nombre OptPlazo

Caption 24 meses

Value False

Command1

Nombre CmdCuotaMensual

Caption &Cuota mensual

Pág. 275

Page 276: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Command2

Nombre CmdTotal

Caption &Total

Una vez establecidas las propiedades de la interfaz, haga

doble click sobre el formulario e ingrese las siguientes

declaraciones en la sección General del módulo de formulario:

Private Type Articulo

Nombre As String * 30

Precio As Double

End Type

Dim A(4) As Articulo, Plazo As Integer

Const Interes = 0.12

Recuerde que un dato declarado en la sección General de un

módulo puede ser accedido por todos los procedimientos de dicho

módulo. Luego, continúe ingresando el código que se muestra a

continuación:

Private Sub Form_Load()

A(0).Nombre = “Monitor SAMSUNG SyncMaster 3”

A(1).Nombre = “Impresora Hewlett Packard DeskJet 930C”

A(2).Nombre = “Impresora Epson Stylus Color 740”

A(3).Nombre = “Microprocesador Pentium I 233 MHZ”

A(0).Precio = 150 : A(1).Precio = 275

A(2).Precio = 145 : A(3).Precio = 80

Dim I As Integer

For I = 1 To 4

CboArticulo.AddItem A(I - 1).Nombre

Next I

TxtInteres = Interes : Plazo = 6

End Sub

Pág. 276

Page 277: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Private Sub CboArticulo_Click()

Dim I As Integer

I = CboArticulo.ListIndex

TxtPrecio = A(I).Precio

End Sub

Private Sub OptPlazo_Click(Index As Integer)

Select Case Index

Case 0: Plazo = 6

Case 1: Plazo = 12

Case 2: Plazo = 24

End Select

End Sub

Private Sub CmdCuotaMensual_Click()

Dim Total As Double, CuotaMensual As Double, I As Integer

I = CboArticulo.ListIndex

Total = A(I).Precio * (1 + Interes)

CuotaMensual = Total / Plazo

MsgBox “Cuota Mensual US$” & Str(CuotaMensual)

End Sub

Private Sub CmdTotal_Click()

Dim Total As Double, I As Integer

I = CboArticulo.ListIndex

Total = A(I).Precio * (1 + Interes)

MsgBox “Total US$” & Str(Total)

End Sub

Aplicación Nº 3

Se desea elaborar una aplicación que permita controlar el

proceso de matrícula en un curso de computación. Para ello se

deben recabar los siguientes datos: 1) Curso en que se

Pág. 277

Page 278: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

matricula el alumno, 2) Fecha de matrícula, 3) Apellidos y

nombres, 4) Sexo, 5) Dirección, y 6) Distrito de residencia.

Para el desarrollo de esta aplicación proceda a ubicar los

siguientes controles en el formulario:

4 marcos

6 etiquetas

5 cajas de texto

1 cuadro combinado

2 controles de lista

4 botones de comando

En seguida proceda a establecer las propiedades según se

indica:

Pág. 278

Page 279: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Form1

Nombre FrmFichaMatricula

BorderStyle 3-Fixed Dialog

Caption Ficha de matrícula

Frame1

Nombre FraIngreso

Caption Ingreso de datos:

Frame2

Nombre FraOpciones

Caption Opciones:

Frame3

Nombre FraCursos

Caption Cursos:

Frame4

Nombre FraDistritos

Caption Distritos:

Label1

Nombre LblCurso

Caption Curso:

Label2

Nombre LblFechaMat

Caption Fecha de matrícula:

Label3

Nombre LblAlumno

Caption Alumno:

Pág. 279

Page 280: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Label4

Nombre LblSexo

Caption Sexo:

Label5

Nombre LblDirección

Caption Dirección:

Label6

Nombre LblDistrito

Caption Distrito:

Combo1

Nombre CboSexo

Text

List1

Nombre LstCursos

Text

List2

Nombre LstDistrito

Text

Text1

Nombre TxtCurso

Text

Text2

Nombre TxtFechaMat

Text

Pág. 280

Page 281: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Text3

Nombre TxtAlumno

Text

Text4

Nombre TxtDireccion

Text

Text5

Nombre TxtDistrito

Text

Command1

Nombre CmdGuardar

Caption &Guardar

Command2

Nombre CmdCancelar

Caption &Cancelar

Command3

Nombre CmdLimpiar

Caption &Limpiar

Command4

Nombre CmdSalir

Caption &Salir

Picture C:\FundVB\Bitmaps\Exit.bmp

Style 1-Graphical

Una vez establecidas las propiedades de la interfaz,

proceda a ingresar el código que se indica a continuación:

Pág. 281

Page 282: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Private Sub Form_Load()

LstCursos.AddItem “Borland C++ Nivel I”

LstCursos.AddItem “Borland C++ Nivel II”

LstCursos.AddItem “Microsoft Visual Basic Nivel I”

LstCursos.AddItem “Microsoft Visual Basic Nivel II”

LstCursos.AddItem “Microsoft Visual FoxPro Nivel I”

LstCursos.AddItem “Microsoft Visual FoxPro Nivel II”

LstCursos.AddItem “Microsoft Visual C++ Nivel I”

LstCursos.AddItem “Microsoft Visual C++ Nivel II”

LstCursos.AddItem “Microsoft Visual J++ Nivel I”

LstCursos.AddItem “Microsoft Visual J++ Nivel II”

LstCursos.AddItem “Microsoft SQL Server Nivel I”

LstCursos.AddItem “Microsoft SQL Server Nivel II”

LstCursos.AddItem “Microsoft Power Builder Nivel I”

LstCursos.AddItem “Microsoft Power Builder Nivel II”

LstDistrito.AddItem “Callao”

LstDistrito.AddItem “Bellavista”

LstDistrito.AddItem “Carmen de la Legua”

LstDistrito.AddItem “La Perla”

LstDistrito.AddItem “La Punta”

LstDistrito.AddItem “Ventanilla”

LstDistrito.AddItem “Cercado de Lima”

LstDistrito.AddItem “Ancón”

LstDistrito.AddItem “Ate”

LstDistrito.AddItem “Barranco”

LstDistrito.AddItem “Breña”

LstDistrito.AddItem “Carabayllo”

LstDistrito.AddItem “Comas”

LstDistrito.AddItem “Chaclacayo”

LstDistrito.AddItem “Chorrillos”

LstDistrito.AddItem “El Agustino”

LstDistrito.AddItem “Jesús María”

LstDistrito.AddItem “La Molina”

Pág. 282

Page 283: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

LstDistrito.AddItem “La Victoria”

LstDistrito.AddItem “Lince”

LstDistrito.AddItem “Lurigancho”

LstDistrito.AddItem “Lurín”

LstDistrito.AddItem “Magdalena del Mar”

LstDistrito.AddItem “Miraflores”

LstDistrito.AddItem “Pachacamac”

LstDistrito.AddItem “Pucusana”

LstDistrito.AddItem “Pueblo Libre”

LstDistrito.AddItem “Puente Piedra”

LstDistrito.AddItem “Punta Negra”

LstDistrito.AddItem “Rimac”

LstDistrito.AddItem “San Bartolo”

LstDistrito.AddItem “San Isidro”

LstDistrito.AddItem “Independencia”

LstDistrito.AddItem “San Juan de Miraflores”

LstDistrito.AddItem “San Luis”

LstDistrito.AddItem “San Martín de Porres”

LstDistrito.AddItem “San Miguel”

LstDistrito.AddItem “Santiago de Surco”

LstDistrito.AddItem “Villa María del Triunfo”

LstDistrito.AddItem “San Juan de Lurigancho”

LstDistrito.AddItem “Santa María del Mar”

LstDistrito.AddItem “Santa Rosa”

LstDistrito.AddItem “Los Olivos”

LstDistrito.AddItem “Cieneguilla”

LstDistrito.AddItem “San Borja”

LstDistrito.AddItem “Villa el Salvador”

LstDistrito.AddItem “Santa Anita”

CboSexo.AddItem “Masculino” : CboSexo.AddItem “Femenino”

End Sub

Private Sub Form_Unload(Cancel As Integer)

If MsgBox(“¿Desea terminar la aplicación?”, _

Pág. 283

Page 284: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

vbQuestion + vbYesNo, “Pregunta”) = vbYes Then

End

Else

Cancel = True

Call CmdLimpiar_Click

End If

End Sub

Private Sub LstCursos_Click()

TxtCursos = LstCursos

End Sub

Private Sub LstDistrito_Click()

TxtDistrito = LstDistrito

End Sub

Private Sub CmdGuardar_Click()

LstCursos.Enabled = False

LstDistrito.Enabled = False

TxtCursos.Locked = True

TxtFechaMat.Locked = True

TxtAlumno.Locked = True

CboSexo.Locked = True

TxtDireccion.Locked = True

TxtDistrito.Locked = True

MsgBox “Alumno matriculado”, vbInformation, “Mensaje”

End Sub

Private Sub CmdLimpiar_Click()

LstCursos.Enabled = True

LstDistrito.Enabled = True

TxtCursos.Locked = False

TxtFechaMat.Locked = False

TxtAlumno.Locked = False

Pág. 284

Page 285: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

CboSexo.Locked = False

TxtDireccion.Locked = False

TxtDistrito.Locked = False

TxtCursos = “”

TxtFechaMat = “”

TxtAlumno = “”

CboSexo = “”

TxtDireccion = “”

TxtDistrito = “”

TxtCursos.SetFocus

End Sub

Private Sub CmdCancelar_Click()

If MsgBox(“¿Desea modificar algún dato?”, _

vbQuestion + vbYesNo, “Mensaje”) = vbYes Then

LstCursos.Enabled = True

LstDistrito.Enabled = True

TxtCursos.Locked = False

TxtFechaMat.Locked = False

TxtAlumno.Locked = False

CboSexo.Locked = False

TxtDireccion.Locked = False

TxtDistrito.Locked = False

End If

End Sub

Private Sub CmdSalir_Click()

Unload Me

End Sub

Aplicación Nº 4

Pág. 285

Page 286: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Desarrollar una aplicación que permita realizar consultas

acerca de un determinado curso, los cuales se mostraran en una

lista. El usuario debe seleccionar un curso y en seguida se

debe presentar el nombre del profesor encargado del curso

(teoría), el nombre del jefe de práctica (laboratorio), así

como los horarios de teoría y de laboratorio. El diseño de la

interfaz deberá ser similar al siguiente:

Pág. 286

Page 287: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Microsoft Visual Basic

GUÍA DE LABORATORIO Nº 5

Objetivos

Luego de completar este laboratorio, el estudiante será

capaz de:

• Crear procedimientos y funciones definidos por el usuario.

• Añadir formularios creados anteriormente a un proyecto.

• Cambiar el formulario de arranque de un proyecto.

• Utilizar formularios MDI.

• Manejar diferentes métodos y propiedades de los formularios.

• Crear y utilizar menús en una aplicación.

Consideraciones

Para el desarrollo del presente laboratorio Ud. deberá

crear una carpeta C:\FundVB\Lab5, para guardar sus trabajos

correspondientes a este laboratorio.

Aplicación Nº 1

Escriba una función que reciba como argumento una cadena

de caracteres y la devuelva en forma inversa, por ejemplo si se

ingresa la cadena CORAZON deberá retornar NOZAROC.

Pág. 287

Page 288: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para el desarrollo de esta aplicación, proceda a ubicar

los siguientes controles en el formulario:

2 etiquetas

2 cajas de texto

3 botones de comando

En seguida proceda a establecer las propiedades según se

indica:

Form1

Nombre FrmCadInvertida

Caption Cadena invertida

BorderStyle 3-Fixed Dialog

Label1

Nombre LblCadena

Autosize True

Caption Ingresa una cadena:

Label2

Nombre LblInvertida

Autosize True

Caption Cadena invertida:

Text1

Nombre TxtCadena

Text

Text2

Nombre TxtInvertida

Locked True

Text

Pág. 288

Page 289: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Command1

Nombre CmdAceptar

Caption &Aceptar

Command2

Nombre CmdLimpiar

Caption &Limpiar

Command3

Nombre CmdSalir

Caption &Salir

Una vez establecidas las propiedades de la interfaz,

proceda a ingresar el siguiente código:

Function CadInvertida(Cadena As String) As String

Dim Invertida() As String * 1

Dim I As Integer

Dim J As Integer

N = Len(Cadena)

ReDim Invertida(N)

For I = 1 To N

Invertida(I - 1) = Mid(Cadena, I, 1)

Next I

For J = (N - 1) To 0 Step -1

CadInvertida = CadInvertida & Invertida(J)

Next J

End Function

Private Sub CmdInvertir_Click()

TxtInvertida = CadInvertida(TxtCadena)

End Sub

Pág. 289

Page 290: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Private Sub CmdLimpiar_Click()

TxtCadena = “”

TxtInvertida = “”

TxtCadena.SetFocus

End Sub

Private Sub CmdSalir_Click()

End

End Sub

Aplicación Nº 2

Se desea elaborar una aplicación que permita controlar el

proceso de matrícula en un curso de computación. Para ello se

deben recabar los siguientes datos: 1) Curso en que se

matricula el alumno, 2) Fecha de matrícula, 3) Apellidos y

nombres, 4) Sexo, 5) Dirección, y 6) Distrito de residencia. El

diseño de la interfaz debe ser similar a la figura mostrada:

Para seleccionar un curso el usuario deberá hacer click en

el botón punteado que se encuentra al lado de la caja de texto.

En seguida se presentará un menú de selección por realce en el

cual se presenta la relación de todos los cursos disponibles.

Pág. 290

Page 291: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

El curso quedará seleccionado al hacer click en el botón

Aceptar.

El mismo tipo de selección deberá realizarse al momento de

ingresar el nombre del distrito.

Para el desarrollo de esta aplicación necesitamos tres

formularios y un módulo. En primer lugar proceda a añadir un

módulo de código al proyecto. Seleccione el Menú Proyecto y

Pág. 291

Page 292: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

elija la opción Agregar módulo, se debe presentar un cuadro de

diálogo similar a la siguiente figura:

Del cuadro de diálogo Agregar módulo, en la ficha Nuevo,

haga click en el botón Abrir. Luego ingrese el siguiente código

en la sección de Declaraciones del módulo que acabamos de

añadir:

Public Curso As String

Public Distrito As String

En seguida proceda a cambiar el nombre formulario

principal por FrmFichaMatricula. Luego debe añadir los demás

formularios necesarios para construir la aplicación. Para tal

fin, seleccione el menú Proyecto y elija la opción Agregar

formulario. Del cuadro de diálogo Agregar formulario, en la

ficha Nuevo, elija la opción Formulario y haga click en el

botón Abrir. Se debe presentar un cuadro de diálogo similar a

la siguiente figura:

Pág. 292

Page 293: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

En ese instante se añadirá un nuevo formulario al

proyecto. Cambie el nombre del nuevo formulario por FrmCurso.

Repita el procedimiento anterior para añadir el formulario

FrmDistrito.

A continuación copie los pasos de la pág. 55 a la pág. 62

de la Guía de Laboratorio Nº 4 (Aplicación Nº 3) con los

siguientes cambios:

En la pág. 55, añadir sólo 2 marcos. No añadir ningún

control de lista. En vez de 4 botones de comando, añadir 6

botones de comando. Luego, establecer las siguientes

propiedades para los dos nuevos botones:

Command5

Nombre CmdCurso

Caption . . .

Command6

Pág. 293

Page 294: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Nombre CmdDistrito

Caption . . .

En la pág. 59, reemplazar el código del evento Load del

formulario por el siguiente:

Private Sub Form_Load()

CboSexo.AddItem "Masculino"

CboSexo.AddItem "Femenino"

End Sub

En la pág. 61, suprimir el código asociado al evento Click

de los controles de lista LstCursos y LstDistrito. En su lugar

añadir lo siguiente:

Private Sub CmdCurso_Click()

Load FrmCurso

FrmCurso.Show vbModal

TxtCurso = Curso

End Sub

Private Sub CmdDistrito_Click()

Load FrmDistrito

FrmDistrito.Show vbModal

TxtDistrito = Distrito

End Sub

A continuación active el formulario FrmCurso, para ello

haga click sobre el mismo. En seguida proceda a ubicar los

siguientes controles en el formulario:

1 control de lista

1 botones de comando

Pág. 294

Page 295: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Luego proceda a establecer las propiedades según se

indica:

Form2

Nombre FrmCurso

BorderStyle 3-Fixed Dialog

Caption Cursos

List1

Nombre LstCursos

Text

Command1

Nombre CmdAceptar

Caption &Aceptar

Una vez establecidas las propiedades proceda a ingresar el

código que se indica a continuación:

Private Sub Form_Load()

LstCursos.AddItem “Borland C++ Nivel I”

LstCursos.AddItem “Borland C++ Nivel II”

LstCursos.AddItem “Microsoft Visual Basic Nivel I”

LstCursos.AddItem “Microsoft Visual Basic Nivel II”

LstCursos.AddItem “Microsoft Visual FoxPro Nivel I”

LstCursos.AddItem “Microsoft Visual FoxPro Nivel II”

LstCursos.AddItem “Microsoft Visual C++ Nivel I”

LstCursos.AddItem “Microsoft Visual C++ Nivel II”

LstCursos.AddItem “Microsoft SQL Server Nivel I”

LstCursos.AddItem “Microsoft SQL Server Nivel II”

LstCursos.AddItem “Microsoft Power Builder Nivel I”

LstCursos.AddItem “Microsoft Power Builder Nivel II”

End Sub

Pág. 295

Page 296: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Private Sub CmdAceptar_Click()

Curso = LstCursos.Text

FrmCurso.Hide

End Sub

Por último, proceda Ud. a desarrollar el código respectivo

para el formulario FrmDistrito.

Aplicación Nº 3

Elaborar una aplicación que permita presentar los

diferentes tipos de formularios de Visual Basic. Utilice como

contenedor principal un formulario MDI, tal como se muestra en

la figura:

Para el desarrollo de esta aplicación necesitamos utilizar

un formulario MDI (interfaz de múltiples documentos). Para ello

seleccione el Menú Proyecto y elija la opción Agregar

formulario MDI, se debe presentar un cuadro de diálogo similar

a la siguiente figura:

Pág. 296

Page 297: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Del cuadro de diálogo Agregar formulario MDI, en la ficha

Nuevo, haga click en el botón Abrir. En seguida cambie el

nombre del formulario MDI por MDIPrincipal.

A continuación proceda a añadir los formularios para las

diferentes opciones del menú. Cambie los nombres de los

formularios según se indica:

Formulario Nombre

Form1 FrmNone

Form2 FrmFixedSingle

Form3 FrmSizable

Form4 FrmFixedDialog

Form5 FrmFixedToolWindow

Form6 FrmSizableToolWindow

Form7 FrmAcercaDe

Pág. 297

Page 298: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Luego proceda a diseñar el menú de opciones. Para ello

haga click derecho sobre el formulario MDI y elija la opción

Editor de menús. Establezca las propiedades según:

Caption Name ShortCut

&Menú Principal MnuPrincipal Ninguno

&0-None MnuNone Ninguno

MnuFixedSingle Ninguno &1-Fixed Single

&2-Sizable MnuSizable Ninguno

MnuFixedDialog Ninguno &3-Fixed Dialog

&4-Fixed ToolWindow MnuFixedToolWindow Ninguno

MnuSizableToolWindow Ninguno &5-Sizable ToolWindow

- MnuLinea Ninguno

&Acerca del autor MnuAcercaDe Ninguno

&Salir MnuSalir Ctrl + X

A continuación haga click en el botón Aceptar del Editor

de menús. Luego proceda a ingresar el siguiente código para el

formulario MDI:

Private Sub MDIForm_Unload(Cancel As Integer)

If MsgBox(“¿Desea terminar la aplicación?”, _

vbQuestion + vbYesNo, “Mensaje”) = vbYes Then

End

Else: Cancel = True

End If

End Sub

Private Sub MnuNone_Click()

Load FrmNone

FrmNone.Show

End Sub

Pág. 298

Page 299: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Private Sub MnuFixedSingle_Click()

Load FrmFixedSingle

FrmFixedSingle.Show

End Sub

Private Sub MnuSizable_Click()

Load FrmSizable

FrmSizable.Show

End Sub

Private Sub MnuFixedDialog_Click()

Load FrmFixedDialog

FrmFixedDialog.Show

End Sub

Private Sub MnuFixedToolWindow_Click()

Load FrmFixedToolWindow

FrmFixedToolWindow.Show

End Sub

Private Sub MnuSizableToolWindow_Click()

Load FrmSizableToolWindow

FrmSizableToolWindow.Show

End Sub

Private Sub MnuAcercaDe_Click()

Load FrmAcercaDe

FrmAcercaDe.Show

End Sub

Private Sub MnuSalir_Click()

Unload Me

End Sub

Pág. 299

Page 300: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

A continuación proceda a activar el formulario FrmNone y

ubique un botón de comandos sobre el mismo. En seguida

establezca las propiedades según se indica a continuación:

Form1

Nombre FrmNone

BorderStyle 0-None

Caption None

MDIChild True

Command1

Nombre CmdVolver

Caption &Volver

Una vez establecidas las propiedades, proceda a ingresar

el código que se muestra a continuación:

Private Sub CmdVolver_Click()

Unload Me

End Sub

Repita el procedimiento anterior para los demás tipos de

formularios.

Aplicación Nº 4

Elaborar una aplicación que acepte como entrada la reserva

de agua de un depósito y los litros que se consumen a la

semana. Utilizando una función definida por el usuario

determinar como resultado las cantidades de agua que quedan al

final de cada semana. El proceso finalizará cuando no quede

agua suficiente para una semana. Utilizar otro formulario para

mostrar la salida.

FIN PARTE I

Pág. 300

Page 301: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

GUÍA DE LABORATORIO

Parte II

ELABORADO POR

CARLOS CASTILLO PERALTA

[email protected]

INTRODUCCIÓN

Pág. 301

Page 302: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

La presente Guía de Laboratorio de Microsoft Visual Basic,

se elaboró con la finalidad de complementar la parte teórica

con la parte práctica del curso. Los problemas presentan un

grado de dificultad gradual, es decir, en cada práctica primero

se comienzan con problemas muy sencillos con la finalidad de

que el estudiante esclarezca dudas y quede claro en los

conceptos asimilados en la teoría, y luego en los problemas

posteriores se va incrementando el nivel de dificultad.

Esta guía explora una gran variedad de materias y contiene

muchos problemas recopilados a lo largo de varios años de

experiencia. Espero que satisfaga las necesidades de los

estudiantes y colegas, ya que ha sido elaborada teniendo en

cuenta los objetivos de aprendizaje del curso.

Si desean compartirla con otros colegas, me agradaría

mucho que lo hicieran, con la única condición de que siempre se

respete el derecho del autor.

Desde ya les deseo la mejor de las suertes en el

aprendizaje de Microsoft Visual Basic.

Lima, Diciembre del 2000

Carlos Castillo Peralta

Microsoft Visual Basic

Pág. 302

Page 303: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

GUÍA DE LABORATORIO Nº 6

Objetivos

Luego de completar este laboratorio, el estudiante será

capaz de:

• Crear y manipular bases de datos utilizando Microsoft Access.

• Adicionar un entorno de datos a un proyecto.

• Conectar un origen de datos a un objeto Connection.

• Utilizar un objeto Command para recuperar registros de un

origen de datos.

• Crear formularios con datos enlazados.

• Realizar consultas utilizando sentencias SQL.

Consideraciones

Para el desarrollo del presente laboratorio Ud. deberá

crear una carpeta C:\FundVB\Lab6, para guardar sus trabajos

correspondientes a este laboratorio.

Creación de la base de datos con Microsoft Access 2000

Para desarrollar nuestras prácticas de laboratorio debemos

crear una base de datos cuyo nombre es CursosLibres.MDB, la

cual contendrá las tablas Curso y Laboratorio. La tarea de

crear una base de datos con Microsoft Access 2000 es muy

sencilla. Para tal fin debe realizar lo siguiente:

• Arrancar Microsoft Access 2000.

• Seleccionar la orden Nueva. . . del Menú Archivo.

• Dentro del cuadro de diálogo Nueva, en la ficha General,

seleccionar Base de datos y hacer click en el botón Aceptar.

• Ingresar un nombre para la base de datos, para nuestro caso

ingrese CursosLibres. En seguida se mostrará una ventana

similar a la siguiente:

Pág. 303

Page 304: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

• Proceda a crear una nueva tabla. Para ello seleccionar la

opción Tablas y haga doble click en Crear una tabla en vista

Diseño.

• Introducir el nombre, el tipo y las propiedades para cada uno

de los campos. Para nuestro caso ingrese lo siguiente:

Tabla Curso

Nombre del

Campo

Tipo Ancho Descripción

CurCodigo T 03 Código del curso

CurNombre T 30 Nombre del curso

CurVacantes N 03 Número de vacantes disponibles

CurProfe T 50 Nombre del profesor de teoría

CurSilabo M 50 Sílabo de cada curso

• Luego, debe asignar un nombre a la tabla al momento de

cerrarla. Para nuestro caso asígnele el nombre de Curso.

• Por último, proceda a abrir la tabla e introducir datos. Para

nuestro caso, ingrese la siguiente información:

Pág. 304

Page 305: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

CurCodigo CurNombre CurProfe

BC1 Borland C++ Nivel I Linares Alarcon, Adams

BC2 Borland C++ Nivel II Córdoba Saavedra, Javier

BC3 Borland C++ Nivel III Castillo Peralta, Carlos

VB1 MS Visual Basic Nivel I Linares Alarcon, Adams

VB2 MS Visual Basic Nivel II Linares Alarcon, Adams

VB3 MS Visual Basic Nivel III Castillo Peralta, Carlos

VC1 MS Visual C++ Nivel I Córdoba Saavedra, Javier

VC2 MS Visual C++ Nivel II Castillo Peralta, Carlos

VJ1 MS Visual J++ Nivel I Castillo Peralta, Carlos

VJ2 MS Visual J++ Nivel II Castillo Peralta, Carlos

VF1 MS Visual FoxPro Nivel I Linares Alarcon, Adams

VF2 MS Visual FoxPro Nivel II Castillo Peralta, Carlos

VF3 MS Visual FoxPro Nivel III Castillo Peralta, Carlos

PB1 Power Builder Nivel I Córdoba Saavedra, Javier

PB2 Power Builder Nivel II Córdoba Saavedra, Javier

SQ1 MS SQL Server Nivel I Córdoba Saavedra, Javier

SQ2 MS SQL Server Nivel II Córdoba Saavedra, Javier

WIN MS Windows 98 Montes Tejada, Estela

A menudo, el proceso de diseño de la base de datos es

bastante complejo. Para nosotros ha sido fácil, pues se nos

brinda la estructura de las tablas.

De manera análoga, proceda a crear la siguiente tabla

según se indica a continuación:

Tabla Laboratorio

Nombre del

Campo

Tipo Ancho Descripción

LabCodigo T 03 Código del curso

Pág. 305

Page 306: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

LabHora T 08 Horario de laboratorio

LabProfe T 50 Nombre del profesor de laboratorio

Al momento de cerrar la tabla que acaba de crear, asígnele

el nombre de Laboratorio. Luego, proceda a ingresar la

siguiente información:

LabCodigo LabHora LabProfe

BC1 SA 08-10 Castillo Peralta, Carlos

BC2 SA 10-12 Linares Alarcon, Adams

BC3 DO 10-12 Castillo Peralta, Carlos

VB1 SA 08-10 Montes Tejada, Estela

VB2 DO 10-12 Linares Alarcon, Adams

VB3 DO 08-10 Castillo Peralta, Carlos

VC1 DO 08-10 Linares Alarcon, Adams

VC2 DO 10-12 Córdoba Saavedra, Javier

VJ1 SA 16-18 Castillo Peralta, Carlos

VJ2 SA 18-20 Castillo Peralta, Carlos

VF1 SA 08-10 Linares Alarcon, Adams

VF2 DO 08-10 Córdoba Saavedra, Javier

VF3 DO 14-16 Linares Alarcon, Adams

PB1 VI 16-18 Córdoba Saavedra, Javier

PB2 VI 14-16 Córdoba Saavedra, Javier

SQ1 SA 16-18 Córdoba Saavedra, Javier

SQ2 SA 18-20 Córdoba Saavedra, Javier

WIN SA 10-12 Montes Tejada, Estela

Aplicación Nº 1

Elaborar una aplicación que permita realizar el

mantenimiento de la información almacenada en la tabla Curso de

Pág. 306

Page 307: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

la base de datos CursosLibres.MDB. El diseño de la interfaz

debe ser similar a la figura mostrada:

Los botones ubicados en el marco Navegador (Primero,

Anterior, Siguiente y Ultimo, de izquierda a derecha) permiten

desplazarse a través de la tabla. Los botones ubicados en el

marco Mantenimiento (Nuevo, Editar, Guardar y Eliminar, de

izquierda a derecha) permiten realizar las operaciones básicas

de mantenimiento de la tabla.

Para desarrollar nuestra aplicación, lo primero que

debemos hacer es conectarnos a la base de datos

CursosLibres.MDB. Para ello ingrese a Visual Basic de manera

habitual, a continuación en el menú Proyecto seleccione la

opción Agregar Data Environment y se creará una nueva conexión

para la que debe establecer propiedades de vínculo de datos. En

la ventana Data Environment cambie el nombre del objeto

DataEnvironment por DeCursosLibres y el de la conexión por

CnCursosLibres. El aspecto de la ventana Data Environment

deberá ser similar a la siguiente figura:

Pág. 307

Page 308: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Luego haga click con el botón derecho del ratón en

CnCursosLibres y seleccione la opción Propiedades. Deberá

presentarse un cuadro de diálogo similar al siguiente:

En la ficha Proveedor del cuadro de diálogo anterior,

seleccione Microsoft Jet 4.0 OLE DB Provider y haga click en el

Pág. 308

Page 309: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

botón Siguiente. En seguida aparecerá un cuadro de diálogo

similar al mostrado:

En la ficha Conexión del cuadro de diálogo Propiedades de

Data Link escriba el nombre de la base de datos

CursosLibres.MDB y haga click en el botón Probar conexión.

Luego si la conexión es satisfactoria haga click en el botón

Aceptar.

En seguida en la barra de herramientas de la ventana Data

Environment haga click en el botón Agregar Comando y denomine

al comando CmCurso. Luego haga click derecho sobre el comando y

seleccione Propiedades:

Pág. 309

Page 310: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Compruebe que este comando utiliza la conexión

CnCursosLibres, luego establezca el nombre de la tabla a

utilizar, en este caso Curso y haga click en el botón Aceptar.

A continuación seleccione el comando CmCurso y arrástrelo

hacia el formulario. Finalmente agregue los siguientes

controles al formulario:

3 marcos

9 botones de comandos

En seguida proceda a establecer las propiedades

requeridas:

Form1

Nombre FrmMantenCurso

Caption Mantenimiento de cursos

BorderStyle 3-Fixed Dialog

Frame1

Pág. 310

Page 311: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Nombre FraIngreso

Caption

Frame2

Nombre FraNavegador

Caption Navegador

Frame3

Nombre FraMantenimiento

Caption Mantenimiento

LblFieldLabel(0)

Nombre LblFieldLabel

Caption Código:

LblFieldLabel(1)

Nombre LblFieldLabel

Caption Nombre:

LblFieldLabel(2)

Nombre LblFieldLabel

Caption Vacantes:

LblFieldLabel(3)

Nombre LblFieldLabel

Caption Profesor:

TxtCurCodigo

Nombre TxtCurCodigo

Locked True

Text

TxtCurNombre

Pág. 311

Page 312: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Nombre TxtCurNombre

Locked True

Text

TxtCurVacantes

Nombre TxtCurVacantes

Locked True

Text

TxtCurProfe

Nombre TxtCurProfe

Locked True

Text

Command1

Nombre CmdPrimero

Caption

Picture C:\FundVB\Bitmaps\First.bmp

Style 1-Graphical

Command2

Nombre CmdAnterior

Caption

Picture C:\FundVB\Bitmaps\Previous.bmp

Style 1-Graphical

Command3

Nombre CmdSiguiente

Caption

Picture C:\FundVB\Bitmaps\Next.bmp

Style 1-Graphical

Pág. 312

Command4

Page 313: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Nombre CmdUltimo

Caption

Picture C:\FundVB\Bitmaps\Last.bmp

Style 1-Graphical

Command5

Nombre CmdNuevo

Caption

Picture C:\FundVB\Bitmaps\New.bmp

Style 1-Graphical

Command6

Nombre CmdEditar

Caption

Picture C:\FundVB\Bitmaps\Edit.bmp

Style 1-Graphical

Command7

Nombre CmdGuardar

Caption

Picture C:\FundVB\Bitmaps\Save.bmp

Style 1-Graphical

Command8

Nombre CmdEliminar

Caption

Picture C:\FundVB\Bitmaps\Delete.bmp

Style 1-Graphical

Command9

Nombre CmdSalir

Pág. 313

Page 314: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Caption &Salir

Picture C:\FundVB\Bitmaps\Exit.bmp

Style 1-Graphical

El código asociado a la aplicación se muestra a

continuación:

Private Sub CmdPrimero_Click()

DeCursosLibres.rsCmCurso.MoveFirst

End Sub

Private Sub CmdUltimo_Click()

DeCursosLibres.rsCmCurso.MoveLast

End Sub

Private Sub CmdAnterior_Click()

DeCursosLibres.rsCmCurso.MovePrevious

If DeCursosLibres.rsCmCurso.BOF Then

DeCursosLibres.rsCmCurso.MoveFirst

MsgBox “Estamos en el primer registro”

End If

End Sub

Private Sub CmdSiguiente_Click()

DeCursosLibres.rsCmCurso.MoveNext

If DeCursosLibres.rsCmCurso.EOF Then

DeCursosLibres.rsCmCurso.MoveLast

MsgBox “Estamos en el último registro”

End If

End Sub

Private Sub CmdNuevo_Click()

DeCursosLibres.rsCmCurso.AddNew

Pág. 314

Page 315: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

ModoEditar True

End Sub

Private Sub CmdEditar_Click()

ModoEditar True

End Sub

Private Sub CmdGuardar_Click()

DeCursosLibres.rsCmCurso.Update

ModoEditar False

End Sub

Private Sub CmdEliminar_Click()

DeCursosLibres.rsCmCurso.Delete

DeCursosLibres.rsCmCurso.MoveNext

If DeCursosLibres.rsCmCurso.EOF Then

DeCursosLibres.rsCmCurso.MoveLast

End If

End Sub

Private Sub CmdSalir_Click()

Unload Me

End

Private Sub Form_Unload(Cancel As Integer)

If MsgBox(“¿Desea terminar la aplicación?”, _

vbQuestion + vbYesNo, “Pregunta”) = vbYes Then

End

Else

Cancel = True

End If

End Sub

Private Sub Form_Activate()

ModoEditar False

Pág. 315

Page 316: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

End Sub

Private Sub ModoEditar(ByVal Ok As Boolean)

TxtCurCodigo.Locked = Not Ok: TxtCurNombre.Locked = Not Ok

TxtCurVacantes.Locked = Not Ok: TxtCurProfe.Locked = Not Ok

CmdNuevo.Enabled = Not Ok: CmdEditar.Enabled = Not Ok

CmdGuardar.Enabled = Ok: CmdEliminar.Enabled = Not Ok

CmdPrimero.SetFocus: If Ok Then TxtCurCodigo.SetFocus

End Sub

Finalmente antes de ejecutar la aplicación debemos

asegurarnos de elegir el tipo de bloqueo adecuado. Para ello

haga click derecho sobre el comando CmCurso y elija la opción

Propiedades y en la ficha Avanzadas selecciones el tipo de

bloqueo 3-Optimistic, tal como se muestra en la figura

siguiente:

Aplicación Nº 2

Pág. 316

Page 317: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Desarrollar una aplicación que permita mostrar en una

grilla el contenido de la tabla Curso. El diseño de la interfaz

se muestra a continuación:

Para desarrollar la aplicación, lo primero que debemos

hacer es conectarnos a la base de datos CursosLibres.MDB.

Luego, añada un Comando y denomínelo CmConsultaCurso. Haga

click derecho sobre el comando y seleccione Propiedades:

Pág. 317

Compruebe que este comando utiliza la conexión

CnCursosLibres. Luego seleccione la opción Instrucción SQL

Page 318: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

(Structured Query Language, Lenguaje de Estructuras de

Consultas) e ingrese el siguiente código:

Select CurCodigo As Código, CurNombre As Nombre,

CurVacantes As Vacantes, CurProfe As Profesor From Curso

Luego, haga click en el botón Aceptar. La ventana

DataEnvironment debe presentar el siguiente aspecto:

A continuación seleccione el comando CmConsultaCurso y

arrástrelo con el botón derecho del ratón hacia el formulario.

Del menú desplegable que se presenta, seleccione la opción

Cuadrícula de datos.

Luego, cambie las dimensiones de la grilla de tal forma

que ocupe la totalidad del formulario. Finalmente guarde y

pruebe su aplicación.

Aplicación Nº 3

Pág. 318

Page 319: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Desarrollar una aplicación que permita seleccionar de un

control DataCombo el nombre de un profesor y visualizar los

cursos que dicta dicho profesor.

Lo primero que debe hacer es conectarse a la base de datos

CursosLibres.MDB. En seguida añada un comando y denomínelo

CmConsultaProfe. Luego haga click derecho sobre el comando y

seleccione Propiedades. Compruebe que este comando utiliza la

conexión CnCursosLibres. Luego seleccione la opción Instrucción

SQL e ingrese el siguiente código:

Select CurCodigo As Código, CurNombre As Nombre,

CurProfe As Profesor From Curso Where (CurProfe = ?)

A continuación proceda a añadir otro comando y denomínelo

CmProfe. Compruebe que este comando utiliza la conexión

CnCursosLibres. Seleccione la opción Instrucción SQL e ingrese

el siguiente código:

Select Distinct CurProfe From Curso

Luego proceda ha ubicar los siguientes controles en el

formulario:

1 control DataCombo

1 control DataGrid

Pág. 319

Page 320: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

1 botón de comandos

En seguida proceda a establecer las propiedades según se

indica:

Form1

Nombre FrmConsultaProfe

Caption Consulta de profesores

BorderStyle 3-Fixed Dialog

DataCombo1

Nombre DbcProfe

ListField CurProfe

RowMember CmProfe

RowSource DeCursosLibres

DataGrid1

Nombre DbgrdCursos

Font Arial (Negrita 10)

HeadFont Arial (Negrita 10)

Command1

Nombre CmdBuscar

Caption &Buscar

A continuación ingrese el siguiente código:

Private Sub CmdBuscar_Click()

If DeCursosLibres.rsCmConsultaProfe.State = adStateOpen Then

DeCursosLibres.rsCmConsultaProfe.Close

End If

DeCursosLibres.CmConsultaProfe (DbcProfe.Text)

Set DbgrdCursos.DataSource = DeCursosLibres.rsCmConsultaProfe

Pág. 320

End Sub

Page 321: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Aplicación Nº 4

Desarrollar una aplicación que permita mostrar el

contenido de la tabla Laboratorio, relacionada con la tabla

Curso, tal como se muestra a continuación:

Observar que la tabla Laboratorio sólo cuenta con tres

campos. El campo que contiene el nombre del curso pertenece a

la tabla Curso.

La sentencia SQL que permite obtener consultas a partir de

múltiples tablas (para nuestro caso Curso y Laboratorio), se

indica a continuación:

Select Laboratorio.LabCodigo As Código,

Curso.CurNombre As Nombre,

Laboratorio.LabHora As Horario,

Laboratorio.LabProfe As [Jefe de práctica]

From Laboratorio, Curso

Where Laboratorio.LabCodigo = Curso.CurCodigo

Microsoft Visual Basic

Pág. 321

GUÍA DE LABORATORIO Nº 7

Page 322: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Objetivos

Luego de completar este laboratorio, el estudiante será

capaz de:

• Utilizar el objeto ADO Connection para crear una conexión a

una base de datos.

• Crear un objeto ADO Recordset para recuperar información de

una base de datos.

• Utilizar el método Execute de una conexión para actualizar la

información de una base de datos.

Consideraciones

Para el desarrollo del presente laboratorio Ud. deberá

crear una carpeta C:\FundVB\Lab7, para guardar sus trabajos

correspondientes a este laboratorio.

Aplicación Nº 1

Elaborar una aplicación que permita realizar el

mantenimiento de la información contenida en la tabla Curso.

En esta aplicación Ud. debe diseñar la interfaz y luego

escribir código para conectarse y recuperar información de la

base de datos.

Pág. 322

Page 323: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para el diseño de la interfaz, proceda a ubicar los

siguientes controles en el formulario:

3 marcos

4 etiquetas

4 cajas de texto

8 botones de comando

En seguida proceda a establecer las propiedades según se

indica:

Form1

Nombre FrmMantenCursos

Caption Mantenimiento de cursos

BorderStyle 3-Fixed Dialog

Moveable False

StartUpPosition 2-CenterScreen

Frame1

Nombre FraIngreso

Caption

Frame2

Nombre FraNavegador

Caption Navegador

Frame3

Nombre FraMantenimiento

Caption Mantenimiento

Label1

Nombre LblCodigo

Caption Código:

Pág. 323

Page 324: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Label2

Nombre LblNombre

Caption Nombre:

Label3

Nombre LblVacantes

Caption Vacantes:

Label4

Nombre LblProfesor

Caption Profesor:

Text1

Nombre TxtCurCodigo

Locked True

Text

Text2

Nombre TxtCurNombre

Locked True

Text

Text3

Nombre TxtCurVacantes

Locked True

Text

Text4

Nombre TxtCurProfe

Locked True

Pág. 324

Page 325: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Text

Para establecer las propiedades de los botones de comando

Command1, Command2, . . ., Command8, copiar los pasos de la

pág. 87 a la pág. 88 de la Guía de Laboratorio Nº 6 (Aplicación

Nº 1).

Antes de ingresar código a la aplicación, debemos tener en

cuenta que para poder utilizar los objetos ADO es una

aplicación Visual Basic es necesario cargar la librería

correspondiente. Para ello selecciones el menú Proyecto y elija

la opción Referencias. En el cuadro de diálogo Referencias

seleccione la opción Microsoft ActiveX Data Objects 2.1

Library, tal como se indica en la figura siguiente:

Luego de hacer click en el botón Aceptar estará en

condiciones de utilizar los objetos ADO en su aplicación.

Pág. 325

Page 326: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

El código necesario para realizar la conexión y efectuar

el mantenimiento de la tabla se muestra a continuación.

Observar la analogía cuando se utiliza Data Environment.

Dim Cn As ADODB.Connection

Dim Rs As ADODB.Recordset

Private Sub ModoEditar(ByVal Ok As Boolean)

TxtCurCodigo.Locked = Not Ok

TxtCurNombre.Locked = Not Ok

TxtCurVacantes.Locked = Not Ok

TxtCurProfe.Locked = Not Ok

CmdNuevo.Enabled = Not Ok

CmdEditar.Enabled = Not Ok

CmdGuardar.Enabled = Ok

CmdEliminar.Enabled = Not Ok

If Ok Then TxtCurCodigo.SetFocus

End Sub

Private Sub Form_Load()

ModoEditar False

Set Cn = New ADODB.Connection

Set Rs = New ADODB.Recordset

Cn.Open “Provider=Microsoft.Jet.OLEDB.4.0;” & _

“Data Source=C:\FundVB\Data\CursosLibres.MDB;” & _

“Persist Security Info=False”

Rs.ActiveConnection = Cn

Rs.CursorType = adOpenKeyset

Rs.LockType = adLockOptimistic

Rs.Open “Select * From Curso”

Set TxtCurCodigo.DataSource = Rs

TxtCurCodigo.DataField = “CurCodigo”

Set TxtCurNombre.DataSource = Rs

Pág. 326

Page 327: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

TxtCurNombre.DataField = “CurNombre”

Set TxtCurVacantes.DataSource = Rs

TxtCurVacantes.DataField = “CurVacantes”

Set TxtCurProfe.DataSource = Rs

TxtCurProfe.DataField = “CurProfe”

End Sub

Private Sub CmdPrimero_Click()

Rs.MoveFirst

End Sub

Private Sub CmdAnterior_Click()

Rs.MovePrevious

If Rs.BOF Then

Rs.MoveFirst

MsgBox “Estamos en el primer registro”

End If

End Sub

Private Sub CmdSiguiente_Click()

Rs.MoveNext

If Rs.EOF Then

Rs.MoveLast

MsgBox “Estamos en el último registro”

End If

End Sub

Private Sub CmdUltimo_Click()

Rs.MoveLast

End Sub

Private Sub CmdNuevo_Click()

Rs.AddNew

ModoEditar True

Pág. 327

Page 328: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

End Sub

Private Sub CmdEditar_Click()

ModoEditar True

End Sub

Private Sub CmdGuardar_Click()

Rs.Update

ModoEditar False

End Sub

Private Sub CmdEliminar_Click()

Rs.Delete

Rs.MoveNext

If Rs.EOF Then

Rs.MoveLast

End If

End Sub

Private Sub Form_Unload(Cancel As Integer)

Cn.Close

Set Cn = Nothing

End Sub

Aplicación Nº 2

Desarrollar una aplicación que permita realizar una

consulta a la tabla Curso. Para ello el usuario debe

seleccionar de un cuadro combinado (combo) el nombre de un

profesor y a continuación se deben visualizar los cursos a su

cargo. El diseño de la interfaz debe ser similar a la figura

mostrada:

Pág. 328

Page 329: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para el desarrollo de esta aplicación, proceda ha ubicar

los siguientes controles en el formulario:

1 control ComboBox

1 control DataGrid

1 botón de comandos

En seguida proceda a establecer las propiedades según se

indica:

Form1

Nombre FrmConsultaProfe

Caption Consulta de profesores

BorderStyle 3-Fixed Dialog

Combo1

Nombre CboProfe

Text

DataGrid1

Nombre DbgrdCursos

Font Arial (Negrita 10)

HeadFont Arial (Negrita 10)

Pág. 329

Page 330: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Command1

Nombre CmdBuscar

Caption &Buscar

Default True

A continuación debe ingresar el código que se muestra en

seguida:

Dim Cn As ADODB.Connection

Dim RsCurso As ADODB.Recordset

Dim RsProfe As ADODB.Recordset

Private Sub Form_Load()

Set Cn = New ADODB.Connection

Set RsProfe = New ADODB.Recordset

Cn.Open “Provider=Microsoft.Jet.OLEDB.4.0;” & _

“Data Source=C:\FundVB\Data\CursosLibres.MDB;” & _

“Persist Security Info=False”

RsProfe.ActiveConnection = Cn

RsProfe.CursorType = adOpenStatic

RsProfe.LockType = adLockOptimistic

RsProfe.CursorLocation = adUseClient

RsProfe.Open “Select Distinct CurProfe From Curso”

Do While Not RsProfe.EOF()

CboProfe.AddItem RsProfe(“CurProfe”)

RsProfe.MoveNext

Loop

End Sub

Private Sub CmdBuscar_Click()

Set RsCurso = New ADODB.Recordset

RsCurso.ActiveConnection = Cn

RsCurso.CursorType = adOpenStatic

Pág. 330

Page 331: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

RsCurso.LockType = adLockReadOnly

RsCurso.CursorLocation = adUseClient

RsCurso.Open “Select CurCodigo As Código, ” & _

“CurNombre As Nombre, CurProfe As Profesor ” & _

“From Curso Where CurProfe = '” & CboProfe.Text & “'”

Set DbgrdCursos.DataSource = RsCurso

End Sub

Private Sub Form_Unload(Cancel As Integer)

Cn.Close

Set Cn = Nothing

End Sub

Aplicación Nº 3

Desarrollar una aplicación que permita realizar el

mantenimiento de las tablas de la base de datos

CursosLibres.MDB (estas tablas le serán proporcionadas con

datos suficientes, por el Jefe de Práctica).

El diseño de la interfaz debe ser similar a la siguiente

figura:

Pág. 331

Page 332: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Por ejemplo para realizar el mantenimiento de la tabla

Curso debemos preparar los siguientes formularios:

Pág. 332

Page 333: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para desarrollar nuestra aplicación debe agregar un módulo

de código al proyecto. Luego ingrese lo siguiente:

Public Cn As ADODB.Connection

También será necesario agregar un formulario MDI. Luego,

cambie el nombre del formulario por el de MDICursosLibres. En

seguida, diseñe el menú para la aplicación según se indica:

Caption Name ShortCut

MnuManten Ninguno &Mantenimiento

&Alumnos MnuMantenAlumno Ninguno

MnuMantenAlumnoNuevo Ninguno &Nuevo

&Editar MnuMantenAlumnoEditar Ninguno

MnuMantenAlumnoEliminar Ninguno &Eliminar

&Cursos MnuMantenCurso Ninguno

MnuMantenCursoNuevo Ninguno &Nuevo

MnuMantenCursoEditar &Editar Ninguno

MnuMantenCursoEliminar Ninguno &Eliminar

&Laboratorio MnuMantenLaboratorio Ninguno

MnuMantenLaboratorioNuevo Ninguno &Nuevo

&Editar MnuMantenLaboratorioEditar Ninguno

&Eliminar MnuMantenLaboratorioEliminar Ninguno

&Distrito MnuMantenDistrito Ninguno

&Nuevo MnuMantenDistritoNuevo Ninguno

&Editar MnuMantenDistritoEditar Ninguno

&Eliminar MnuMantenDistritoEliminar Ninguno

- MnuMantLinea Ninguno

&Salir MnuMantSalir Ctrl + X

Pág. 333

Page 334: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Luego, haga doble click sobre el formulario e ingrese el

siguiente código:

Private Sub MDIForm_Load()

Set Cn = New ADODB.Connection

Cn.Open “Provider=Microsoft.Jet.OLEDB.4.0;” & _

“Data Source=C:\FundVB\Data\CursosLibres.MDB;” & _

“Persist Security Info=False”

End Sub

Private Sub MnuMantenCursosNuevo_Click()

Load FrmNuevoCurso

FrmNuevoCurso.Show

End Sub

Private Sub MnuMantenCursosEditar_Click()

Load FrmEditarCurso

FrmEditarCurso.Show

End Sub

Private Sub MnuMantenCursosEliminar_Click()

Load FrmEliminarCurso

FrmEliminarCurso.Show

End Sub

Para desarrollar la opción Nuevo de la tabla Curso, añada

un nuevo formulario al proyecto. Luego, ubique los siguientes

controles en el formulario:

4 etiquetas

4 cajas de texto

3 botones de comando

Luego proceda a establecer las propiedades según se

indica:

Pág. 334

Page 335: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Form1

Nombre FrmMantenCursos

Caption Nuevo curso

BorderStyle 3-Fixed Dialog

MDIChild True

Label1

Nombre LblCodigo

Caption Código:

Label2

Nombre LblNombre

Caption Nombre:

Label3

Nombre LblVacantes

Caption Vacantes:

Label4

Nombre LblProfesor

Caption Profesor:

Text1

Nombre TxtCurCodigo

Text

Text2

Nombre TxtCurNombre

Text

Text3

Nombre TxtCurVacantes

Text

Pág. 335

Page 336: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Text4

Nombre TxtCurProfe

Text

Command1

Nombre CmdGrabar

Caption &Grabar

Command2

Nombre CmdNuevo

Caption &Nuevo

Command3

Nombre CmdCerrar

Caption &Cerrar

Una vez establecidas las propiedades, proceda a ingresar

el siguiente código:

Private Sub Form_Load()

CmdGrabar.Enabled = True

CmdNuevo.Enabled = False

End Sub

Private Sub CmdGrabar_Click()

Cn.Execute “Insert Into Curso(CurCodigo, CurNombre, ” & _

“CurVacantes, CurProfe) Values ('” & TxtCurCodigo & _

“',” & “'” & TxtCurNombre & “',” & _

Val(TxtCurVacantes) & “,” & “'” & TxtCurProfe & “')”

CmdGrabar.Enabled = False

CmdNuevo.Enabled = True

End Sub

Pág. 336

Page 337: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Private Sub CmdNuevo_Click()

TxtCurCodigo = “”

TxtCurNombre = “”

TxtCurVacantes = “”

TxtCurProfe = “”

CmdGrabar.Enabled = True: CmdNuevo.Enabled = False

TxtCurCodigo.SetFocus

End Sub

Private Sub CmdCerrar_Click()

Unload Me

End Sub

Para desarrollar la opción Editar de la tabla Curso, añada

un nuevo formulario al proyecto. Luego, ubique los siguientes

controles en el formulario:

1 marco

4 etiquetas

4 cajas de texto

4 botones de comando

En seguida proceda a establecer las propiedades según se

indica:

Form1

Nombre FrmMantenCursos

Caption Editar curso

BorderStyle 3-Fixed Dialog

MDIChild True

Frame1

Nombre FraCodigo

Caption

Pág. 337

Page 338: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Label1

Nombre LblCodigo

Caption Código:

Label2

Nombre LblNombre

Caption Nombre:

Label3

Nombre LblVacantes

Caption Vacantes:

Label4

Nombre LblProfesor

Caption Profesor:

Text1

Nombre TxtCurCodigo

Text

Text2

Nombre TxtCurNombre

Text

Text3

Nombre TxtCurVacantes

Text

Text4

Nombre TxtCurProfe

Text

Pág. 338

Page 339: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Command1

Nombre CmdAceptar

Caption &Aceptar

Command2

Nombre CmdGrabar

Caption &Grabar

Command3

Nombre CmdNuevo

Caption &Nuevo

Command4

Nombre CmdCerrar

Caption &Cerrar

Una vez establecidas las propiedades, proceda a ingresar

el siguiente código:

Private Sub Form_Load()

CmdAceptar.Enabled = True

CmdGrabar.Enabled = False

CmdNuevo.Enabled = False

End Sub

Private Sub CmdAceptar_Click()

Dim Rs As New ADODB.Recordset

Set Rs = Cn.Execute(“Select CurNombre, ” & _

“CurVacantes, CurProfe From Curso ” & _

“Where CurCodigo = '” & TxtCurCodigo & “'”)

If (Rs.EOF And Rs.BOF) Then

MsgBox “No existe ningún curso con este código”

TxtCurCodigo.SetFocus

Pág. 339

Page 340: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

TxtCurCodigo.SelStart = 0

TxtCurCodigo.SelLength = Len(TxtCurCodigo)

Exit Sub

End If

TxtCurNombre = Rs!CurNombre

TxtCurVacantes = Rs!CurVacantes

TxtCurProfe = Rs!CurProfe

Rs.Close

Set Rs = Nothing

TxtCurCodigo.Enabled = False

CmdAceptar.Enabled = False

CmdGrabar.Enabled = True

CmdNuevo.Enabled = True

End Sub

Private Sub CmdGrabar_Click()

Cn.Execute “Update Curso Set CurNombre = '” & _

TxtCurNombre & “',” & “CurVacantes = ” & _

Val(TxtCurVacantes) & “,” & “CurProfe = '” & _

TxtCurProfe & “'” & “ Where CurCodigo = '” & _

TxtCurCodigo & “'”

End Sub

Private Sub CmdNuevo_Click()

TxtCurCodigo = “”

TxtCurNombre = “”

TxtCurVacantes = “”

TxtCurProfe = “”

CmdAceptar.Enabled = True

CmdGrabar.Enabled = False

CmdNuevo.Enabled = False

TxtCurCodigo.Enabled = True

TxtCurCodigo.SetFocus

Pág. 340

Page 341: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

End Sub

Private Sub CmdCerrar_Click()

Unload Me

End Sub

Para desarrollar la opción Eliminar de la tabla Cursos,

añada un nuevo formulario al proyecto. Luego, ubique los

siguientes controles en el formulario:

1 marco

4 etiquetas

4 cajas de texto

4 botones de comando

En seguida proceda a establecer las propiedades según se

indica:

Form1

Nombre FrmMantenCursos

Caption Eliminar curso

BorderStyle 3-Fixed Dialog

MDIChild True

Frame1

Nombre FraCodigo

Caption

Label1

Nombre LblCodigo

Caption Código:

Label2

Nombre LblNombre

Pág. 341

Page 342: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Caption Nombre:

Label3

Nombre LblVacantes

Caption Vacantes:

Label4

Nombre LblProfesor

Caption Profesor:

Text1

Nombre TxtCurCodigo

Text

Text2

Nombre TxtCurNombre

Text

Text3

Nombre TxtCurVacantes

Text

Text4

Nombre TxtCurProfe

Text

Command1

Nombre CmdAceptar

Caption &Aceptar

Command2

Nombre CmdEliminar

Pág. 342

Page 343: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Caption &Eliminar

Command3

Nombre CmdNuevo

Caption &Nuevo

Command4

Nombre CmdCerrar

Caption &Cerrar

Una vez establecidas las propiedades, proceda a ingresar

el siguiente código:

Private Sub Form_Load()

CmdAceptar.Enabled = True

CmdEliminar.Enabled = False

CmdNuevo.Enabled = False

End Sub

Private Sub CmdEliminar_Click()

Cn.Execute “Delete From Curso ” & _

“Where CurCodigo = '” & TxtCurCodigo & “'”

Call CmdNuevo_Click

End Sub

Private Sub CmdNuevo_Click()

TxtCurCodigo = “”

TxtCurNombre = “”

TxtCurVacantes = “”

TxtCurProfe = “”

CmdAceptar.Enabled = True

CmdEliminar.Enabled = False

CmdNuevo.Enabled = False

Pág. 343

Page 344: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

TxtCurCodigo.Enabled = True

TxtCurCodigo.SetFocus

End Sub

Private Sub CmdAceptar_Click()

Dim Rs As New ADODB.Recordset

Set Rs = Cn.Execute(“Select CurNombre, ” & _

“CurVacantes, CurProfe From Curso ” & _

“Where CurCodigo = '” & TxtCurCodigo & “'”)

If (Rs.EOF And Rs.BOF) Then

MsgBox “No existe ningún curso con este código”

TxtCurCodigo.SetFocus

TxtCurCodigo.SelStart = 0

TxtCurCodigo.SelLength = Len(TxtCurCodigo)

Exit Sub

End If

TxtCurNombre = Rs!CurNombre

TxtCurVacantes = Rs!CurVacantes

TxtCurProfe = Rs!CurProfe

Rs.Close

Set Rs = Nothing

TxtCurCodigo.Enabled = False

CmdAceptar.Enabled = False

CmdEliminar.Enabled = True

CmdNuevo.Enabled = True

End Sub

Private Sub CmdCerrar_Click()

Unload Me

End Sub

De manera similar proceda a desarrollar el código para los

formularios de mantenimiento de las demás tablas.

Pág. 344

Page 345: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Aplicación Nº 4

Elaborar una aplicación que permita recuperar y mantener

la información de la base de datos CursosLibres.MDB. Para tal

fin debe preparar un formulario que permita establecer la

conexión con el origen de datos. Luego, si la conexión es

satisfactoria el usuario tiene la posibilidad de elegir una de

las tablas de la base de datos para realizar las operaciones

habituales de mantenimiento o simplemente para ejecutar

consultas. El diseño de la interfaz debe ser similar a la

siguiente figura:

Las opciones Mantenimiento y Consulta deben ser análogas a

las realizadas en aplicaciones anteriores.

Microsoft Visual Basic

Pág. 345

Page 346: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

GUÍA DE LABORATORIO Nº 8

Objetivos

Luego de completar este laboratorio, el estudiante será

capaz de:

• Usar el diseñador de reportes DataReport.

• Utilizar y controlar la impresora para obtener reportes

impresos.

Consideraciones

Para el desarrollo del presente laboratorio Ud. deberá

crear una carpeta C:\FundVB\Lab8, para guardar sus trabajos

correspondientes a este laboratorio.

Aplicación Nº 1

Diseñar un reporte que muestre la información almacenada

en la tabla Cursos. El formato del reporte pedido se muestra a

continuación:

Para diseñar nuestro reporte, lo primero que debemos hacer

es conectarnos a la base de datos CursosLibres.MDB. La conexión

la haremos efectiva mediante el Data Environment. Luego, añada

Pág. 346

Page 347: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

un Comando y denomínelo CmCurso. Establezca el nombre de la

tabla a utilizar, para nuestro caso Curso. El aspecto de la

ventana Data Environment deberá ser similar a la figura:

Luego, del menú Proyecto seleccionar la opción Agregar

Data Report, lo cual permite agregar el diseñador de reportes:

En seguida del Data Environment seleccionar cada campo que

desee incluir en el reporte y luego arrastre el campo hacia la

sección Detalles del Data Report.

Pág. 347

Page 348: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

El diseñador de reportes presenta un conjunto de controles

que permiten mejorar la presentación de nuestro reporte. En

seguida ubicar los siguientes controles:

2 etiquetas en la sección Encabezado de informe

4 etiquetas en la sección Encabezado de página

A continuación proceda a establecer las propiedades según

se indica:

Etiqueta1

Nombre RptLblVAB

Caption Instituto de Educación Superior

“Víctor Andrés Belaúnde”

Font Arial (Negrita 09)

Etiqueta2

Nombre RptLblNombre

Caption Reporte de Cursos

Font Arial (Negrita Cursiva 16)

Etiqueta3

Nombre RptLblCodigo

Caption Código:

Font Arial (Negrita 10)

Etiqueta4

Nombre RptLblNombre

Caption Nombre:

Font Arial (Negrita 10)

Etiqueta5

Nombre RptLblVacantes

Caption Vacantes:

Pág. 348

Page 349: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Font Arial (Negrita 10)

Etiqueta6

Nombre RptLblProfesor

Caption Profesor:

Font Arial (Negrita 10)

Para insertar la fecha actual dar un click con el botón

derecho del ratón sobre el diseñador de reportes en la sección

de Encabezado de informe, del menú contextual que se presenta

seleccionar la opción Insertar control, luego Fecha actual

(formato corto). En seguida, cambiar las siguientes

propiedades:

DataReport1

DataMember CmCurso

DataSource DeCursosLibres

Luego, seleccione del menú Proyecto la opción Propiedades

de Proyecto, y en la ficha General del cuadro de diálogo

Propiedades del proyecto, establecer DataReport1 como objeto

inicial. Haga click en Aceptar y ejecute su aplicación.

Aplicación Nº 2

Diseñar un reporte que permita mostrar un listado de

profesores y los cursos que tienen a su cargo. Tener en cuenta

que la información relacionada con cada profesor debe empezar

en una página nueva. El formato del reporte pedido se muestra a

continuación:

Pág. 349

Page 350: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Pág. 350

En esta aplicación explicaremos como crear grupos de

datos. Para ello iniciar un nuevo proyecto. En seguida,

conectarse a la base de datos CursosLibres.MDB mediante el Data

Environment. Luego, añada un Comando y denomínelo CmProfesor.

Establezca el nombre de la tabla a utilizar, para nuestro caso

Curso. Para realizar el agrupamiento por profesor seleccionar

la ficha Agrupar del cuadro de diálogo Propiedades de

CmProfesor. A continuación activar la casilla de verificación

Agrupar comando, luego seleccionar de la lista de campos, el

campo por el cual se desea agrupar la información, para nuestro

caso seleccionar CurProfe y dar un click en el botón “ ”. El

cuadro de diálogo Propiedades de CmProfesor debe presentar un

aspecto similar a la figura siguiente:

>

Page 351: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

A continuación sobre el diseñador de reportes dar un click

con el botón derecho del ratón y del menú emergente que se

presenta elegir la opción Insertar encabezado o pie de grupo.

Del objeto DeCursosLibres arrastrar el campo CurProfe de la

sección Campo de resumen en CmProfesor_Grouping al diseñador de

reportes pero a la sección Encabezado de grupo. Los demás

campos arrastrarlos de la sección Campos de Detalle en

CmProfesor a la sección Detalle del generador de reportes. Por

último proceda a cambiar las siguientes propiedades del objeto

DataReport:

DataReport1

DataMember CmProfesor_Grouping

DataSource DeCursosLibres

Aplicación Nº 3

Desarrollar una aplicación que permita crear un reporte

para mostrar la información de la base de datos

CursosLibres.MDB. Para tal fin debe preparar un formulario que

Pág. 351

Page 352: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

permita al usuario elegir una tabla, y en seguida se debe

generar el reporte correspondiente. Además el usuario puede

obtener una vista preliminar del reporte o una copia impresa.

El diseño de la interfaz debe ser similar a la figura que se

muestra a continuación:

Para desarrollar nuestra aplicación, proceda a diseñar los

reportes correspondientes según:

Tabla Reporte

Alumno DataReport1

Curso DataReport2

Laboratorio DataReport3

Luego, ubique los siguientes controles sobre el

formulario:

1 marco

3 botones de opción

3 botones de comando

En seguida proceda a establecer las propiedades según se

indica:

Pág. 352

Page 353: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Form1

Nombre FrmReporteCursosLibres

Caption Cursos Libres

BorderStyle 3-Fixed Dialog

Frame1

Nombre FraTablas

Caption

Option1

Nombre OptTablaAlumno

Caption Alumno

Value True

Option2

Nombre OptTablaCurso

Caption Curso

Value False

Option3

Nombre OptTablaLaboratorio

Caption Laboratorio

Value False

Command1

Nombre CmdVistaPrevia

Caption VistaPrevia

Picture C:\Archivos de programa\Microsoft Visual

Studio\Common\Graphics\Bitmaps\Win95\

Explorer.bmp

Style 1-Graphical

Pág. 353

Page 354: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Command2

Nombre CmdImprimir

Caption Imprimir

Picture C:\Archivos de programa\Microsoft Visual

Studio\Common\Graphics\Bitmaps\Win95\

Printfld.bmp

Style 1-Graphical

Command3

Nombre CmdSalir

Caption Salir

Una vez establecidas las propiedades, proceda a ingresar

el siguiente código:

Private Sub CmdImprimir_Click()

If OptTablaAlumno.Value Then

DataReport1.PrintReport True

ElseIf OptTablaCurso.Value Then

DataReport2.PrintReport True

ElseIf OptTablaLaboratorio.Value Then

DataReport2.PrintReport True

End If

End Sub

Private Sub CmdVistaPrevia_Click()

If OptTablaAlumno.Value Then

DataReport1.Show

ElseIf OptTablaCurso.Value Then

DataReport2.Show

ElseIf OptTablaLaboratorio.Value Then

DataReport2.Show

End If

End Sub

Pág. 354

Page 355: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Private Sub CmdSalir_Click()

Unload Me

End Sub

Cuando ejecute la aplicación, al dar un click en el botón

Imprimir se visualizará el siguiente cuadro de diálogo, el cual

nos permitirá confirmar o cancelar la impresión:

Aplicación Nº 4

Diseñar un reporte combinando datos de la tabla Curso y

Laboratorio. El reporte debe mostrar el código del curso, el

nombre del curso, el nombre del profesor de teoría, el nombre

del jefe de práctica y el horario de laboratorio. Dar formato

al reporte según su criterio.

FIN PARTE II

Pág. 355

Page 356: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

GUÍA DE LABORATORIO

Parte III

ELABORADO POR

CARLOS CASTILLO PERALTA

[email protected]

INTRODUCCIÓN

Pág. 356

Page 357: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

La presente Guía de Laboratorio de Microsoft Visual Basic,

se elaboró con la finalidad de complementar la parte teórica

con la parte práctica del curso. Los problemas presentan un

grado de dificultad gradual, es decir, en cada práctica primero

se comienzan con problemas muy sencillos con la finalidad de

que el estudiante esclarezca dudas y quede claro en los

conceptos asimilados en la teoría, y luego en los problemas

posteriores se va incrementando el nivel de dificultad.

Esta guía explora una gran variedad de materias y contiene

muchos problemas recopilados a lo largo de varios años de

experiencia. Espero que satisfaga las necesidades de los

estudiantes y colegas, ya que ha sido elaborada teniendo en

cuenta los objetivos de aprendizaje del curso.

Si desean compartirla con otros colegas, me agradaría

mucho que lo hicieran, con la única condición de que siempre se

respete el derecho del autor.

Desde ya les deseo la mejor de las suertes en el

aprendizaje de Microsoft Visual Basic.

Lima, Diciembre del 2000

Carlos Castillo Peralta

Microsoft Visual Basic

Pág. 357

Page 358: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

GUÍA DE LABORATORIO Nº 9

Objetivos

Luego de completar este laboratorio, el estudiante será

capaz de:

• Crear y utilizar clases dentro de una aplicación Visual

Basic.

• Diseñar y utilizar controles ActiveX personalizados.

Consideraciones

Para el desarrollo del presente laboratorio Ud. deberá

crear una carpeta C:\FundVB\Lab9, para guardar sus trabajos

correspondientes a este laboratorio.

Aplicación Nº 1

Implementar una clase denominada Circulo, la cual debe

contar con las propiedades públicas Radio y Area. Para tal fin

seleccione la opción Agregar módulo de clase del Menú Proyecto:

En la ficha Nuevo seleccione la opción Módulo de clase y

haga click en Abrir. En seguida active la ventana de

propiedades y cambie el nombre de la nueva clase por Circulo.

Pág. 358

Page 359: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

La ventana de código de la clase debe presentar la siguiente

apariencia:

A continuación proceda a ingresar el siguiente código para

la clase:

Private R As Double

Public Property Get Radio() As Variant

Radio = R

End Property

Public Property Let Radio(ByVal vNewValue As Variant)

If IsNumeric(vNewValue) Then

R = CDbl(vNewValue)

Else

R = 0

End If

End Property

Public Property Get Area() As Variant

Area = 3.141592 * R * R

End Property

Private Sub Class_Initialize()

R = 0

End Sub

Pág. 359

Page 360: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Luego proceda a ubicar los siguientes controles en el

formulario:

2 etiquetas

2 cajas de texto

3 botones de comando

A continuación proceda a establecer las propiedades según

se indica:

Form1

Nombre FrmEjemClaseCirculo

Caption Ejemplo con la clase Circulo

Label1

Nombre LblRadio

Caption Radio:

Label2

Nombre LblArea

Caption Area:

Text1

Nombre TxtRadio

Text

Text2

Nombre TxtArea

Text

Una vez que ha establecido las propiedades indicadas,

proceda a ingrese el siguiente código para el formulario de

prueba:

Pág. 360

Page 361: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Dim A As Circulo

Private Sub Form_Load()

Set A = New Circulo

End Sub

Private Sub Form_Unload(Cancel As Integer)

Set A = Nothing

End Sub

Private Sub TxtRadio_Change()

A.Radio = TxtRadio

TxtArea = A.Area

End Sub

Guarde y pruebe su aplicación. El resultado debe ser

similar a la siguiente figura:

Aplicación Nº 2

Diseñar un control ActiveX que muestre el mensaje

“Bienvenido al Mundo de la Programación con ActiveX”.

Adicionalmente, el control debe permitir al usuario la

posibilidad de cambiar el color del texto.

Para comenzar nuestra aplicación, debe ingresar a Visual

Basic y en la ventana de diálogo Nuevo Proyecto seleccione

Control ActiveX, y luego haga click en el botón Aceptar.

Pág. 361

Page 362: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Con esta opción, podrá crear un Control Active X. Las

diferencias entre una opción y la usual (EXE estándar) las verá

mejor conforme avance en el desarrollo de la presente Práctica

de Laboratorio.

En seguida añada un nuevo proyecto EXE estándar. Esto lo

puede realizar desde el Menú Archivo opción Agregar Proyecto.

Luego establezca las propiedades indicadas a continuación:

Proyecto1

Nombre ActiveXMiControl

UserControl1

Nombre MiControl

ToolboxBitmap C:\Archivos de programa\Microsoft Visual

Studio\Common\Graphics\Bitmaps\Assorted\

Heart.bmp

Proyecto2

Nombre VbpMiControl

Form1

Pág. 362

Page 363: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Nombre FrmPruebaMiControl

Caption Prueba de Control ActiveX

BorderStyle 3-Fixed Dialog

La ventana del Explorador de proyectos debe presentar la

siguiente apariencia:

En la ventana anterior haga click con el botón derecho del

ratón sobre MiControl y elija la opción Ver código. En el

ComboBox General seleccione UserControl y en el ComboBox

Declaraciones seleccione Paint. Ahora ingrese el siguiente

código:

Private Sub UserControl_Paint()

Const Msg = “Bienvenido al Mundo de la Programación ” & _

“con ActiveX”

UserControl.Cls

UserControl.Print Msg

End Sub

Luego en el Explorador de proyectos, hacer click con el

botón derecho del ratón sobre la carpeta Controles de usuario y

seleccione la opción Propiedades de ActiveXMiControl. En

seguida se mostrará la ventana Propiedades del proyecto:

Pág. 363

Page 364: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

En la ventana anterior, en la ficha General, apartado

Descripción del proyecto, escribir “Este es mi primer Control

ActiveX”, tal como se muestra. Luego pulsar el botón Aceptar.

Cierre todas las ventanas abiertas y haga un sólo click

sobre la carpeta Controles de usuario. A continuación ingrese

al Menú Archivo y seleccione la opción Generar

ActiveXMiControl.ocx, guarde el archivo con su nombre por

defecto.

Luego, establezca como inicial el formulario

FrmPruebaMiControl y añadir desde el Cuadro de herramientas

nuestro control recientemente creado.

Del Menú Proyecto seleccione la opción Componentes y

veremos la descripción de nuestro control con su casilla de

verificación activada, tal como se muestra a continuación:

Pág. 364

Page 365: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

En seguida, guarde y ejecute su aplicación. El resultado

debe ser similar al siguiente:

En este momento, Ud. acaba de terminar el diseño de su

primer control ActiveX. No se preocupe por las diferencias que

puede haber encontrado con respecto a la forma tradicional de

programar. Conforme avancemos en el desarrollo de la práctica

veremos que esta forma de programar en base a componentes es

bastante sencilla.

Pág. 365

Page 366: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Sin embargo, debemos modificar nuestro control, de tal

forma que nos permita cambiar el color de texto de

presentación. Para tal fin, vamos a hacer uso del Asistente

para interfaz de control ActiveX y el Asistente para páginas de

propiedades. Estos complementos deben ser instalados desde el

menú principal Complementos y seleccionar la opción

Administrador de complementos, tal como se indica a

continuación:

En la ventana anterior debe activar las casillas de

verificación Cargado/Descargado y Cargar al iniciar. Luego haga

click en el botón Aceptar.

En seguida el menú Complementos deberá presentar la

siguiente apariencia:

Pág. 366

Page 367: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Luego, haga click sobre la opción Asistente para interfaz

de control ActiveX. En seguida, aparecerá una ventana de

presentación, haga doble click en el botón Siguiente. Tendremos

entonces una ventana similar a la que se muestra:

Haga click con el ratón sobre el botón << y a continuación

elija de la lista de la izquierda ForeColor y haga click sobre

el botón >. La propiedad ForeColor es la propiedad encargada de

cambiar el color de texto, la cual no está disponible en

nuestro control, por ello debemos asociarla. El aspecto del

Asistente para interfaz de control ActiveX debe ser similar a:

Pág. 367

Page 368: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Pulse, luego el botón Siguiente. En seguida aparecerá otra

ventana, haga nuevamente click en el botón Siguiente.

Pág. 368

Page 369: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Ahora hemos llegado a la ventana en la cual vamos a

asociar a nuestro control la propiedad ForeColor. Seleccione

del ComboBox Control UserControl y del ComboBox Miembro

ForeColor, tal como se indica en la ventana anterior. Pulse el

botón Siguiente y en la siguiente ventana pulse el botón

Finalizar. Aparecerá luego una ventana de información, lea

detenidamente su contenido y luego haga click en el botón

Cerrar. A continuación guarde su aplicación y genere nuevamente

el control.

Para probar el control abra el formulario

FrmPruebaMiControl y añada al Cuadro de herramientas el

componente Microsoft Common Dialog Control 6.0. En seguida

añada al formulario un MiControl, un CommonDialog y un

CommandButton. Cambie el nombre del botón Command1 por

CmdAceptar e ingrese el siguiente código:

Private Sub CmdAceptar_Click()

CommonDialog1.ShowColor

MiControl1.ForeColor = CommonDialog1.Color

MiControl1.Visible = False

MiControl1.Visible = True

End Sub

Guarde y luego ejecute su aplicación, el resultado será

similar al siguiente:

Pág. 369

Page 370: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Al hacer click sobre el botón Aceptar, se presenta la

siguiente caja de diálogo en la cual podemos elegir el nuevo

color para el texto de bienvenida:

Preste atención en que la propiedad Visible se utiliza

para actualizar el contenido del control y se pueda ver el

cambio de color. No es la mejor forma de hacerlo, deberíamos

hacerlo mediante código dentro del mismo control, pero por el

momento y para probar como asociar una propiedad a un control

es más que suficiente.

Aplicación Nº 3

Diseñar un control ActiveX que presente la forma de un

cuadro de texto, pero que sólo admita números. Es decir, el

usuario sólo podrá escribir en el control números, cualquier

otro carácter que no sea un número, será rechazado por el

control y no se imprimirá en el cuadro de texto.

Al igual que en la aplicación anterior crear el grupo de

proyectos y establezca las propiedades según:

Pág. 370

Page 371: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Proyecto1

Nombre ActiveXNumBox

UserControl1

Nombre NumBox

ToolboxBitmap C:\Archivos de programa\Microsoft Visual

Studio\Common\Graphics\Bitmaps\Assorted\

Diamond.bmp

Proyecto2

Nombre VbpNumBox

Form1

Nombre FrmPruebaNumBox

Caption Prueba de Control ActiveX

BorderStyle 3-Fixed Dialog

Para diseñar nuestro control utilizaremos un control

TextBox el cual debe insertar en el formulario NumBox

(UserControl). Luego elimine el contenido de la propiedad Text.

Tener cuidado en que el control ha de ser del mismo tamaño del

cuadro de texto. Luego, el cuadro de texto debe redimensionarse

de acuerdo al control en tiempo de diseño, esto es a la hora de

insertar nuestro control en un formulario. Para ello es

necesario ingresar el siguiente código:

Private Sub UserControl_Resize()

Text1.Top = 0

Text1.Left = 0

Text1.Width = UserControl.Width

Text1.Height = UserControl.Height

End Sub

Pág. 371

Page 372: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Private Sub UserControl_InitProperties()

Text1 = Extender.Name

End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)

If Not (KeyAscii = 8 Or _

(KeyAscii >= 48 And KeyAscii <= 57)) Then

KeyAscii = 0: Beep: Beep: Beep: Beep

End If

End Sub

A continuación genere el control NumBox y cierre el

formulario de diseño del control. Establezca como inicial el

proyecto VbpNumBox y añada un control NumBox y un CommandButton

al formulario FrmPruebaNumBox. Cambie el nombre del botón de

comando por CmdSalir. A continuación guarde y ejecute su

aplicación, el resultado debe ser similar al mostrado:

El control que acabamos de diseñar permite escribir

únicamente números, es decir es un cuadro de números. Trate de

ingresar otros caracteres y vea lo que sucede.

Aplicación Nº 4

Crear un control ActiveX que permita el ingreso del día,

mes y el año correspondiente a cualquier fecha desde el año 1

hasta el año 9999. Deberá validar la fecha ingresada y no

deberá permitir la edición de fechas no existentes como por

Pág. 372

Page 373: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

ejemplo 5 de Setiembre de 1752. El control deberá mostrar el

día de la semana correspondiente a la fecha ingresada, tal como

se muestra en la figura siguiente:

El calendario Gregoriano actual obedece a la reforma del

calendario Juliano que ordenó el papa Gregorio XIII en 1752,

para ponerlo de acuerdo con los movimientos de los cuerpos

celestes. Lo cual trajo como consecuencia adelantar las fechas

del 2 de Setiembre al 14 de Setiembre de 1752, es decir las

fechas comprendidas en este intervalo de tiempo nunca

existieron.

Pág. 373

Page 374: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Microsoft Visual Basic

GUÍA DE LABORATORIO Nº 10

Objetivos

Luego de completar este laboratorio, el estudiante será

capaz de:

• Crear documentos ActiveX que se ejecuten directamente en una

página Web.

• Utilizar documentos ActiveX que incorporan hipervínculos.

• Desarrollar documentos ActiveX para interactuar con bases de

datos relacionales.

Consideraciones

Para el desarrollo del presente laboratorio Ud. deberá

crear una carpeta C:\FundVB\Lab10, para guardar sus trabajos

correspondientes a este laboratorio.

Aplicación Nº 1

Como primer ejercicio vamos a desarrollar un documento

ActiveX que permite recuperar información de la base de datos

CursosLibres.MDB.

Un documento ActiveX, es simplemente un formulario que se

puede ejecutar directamente en los exploradores de Internet.

Los documentos ActiveX se diseñan de la misma manera que los

formularios estándar de Visual Basic. Para comenzar a

desarrollar nuestro documento ActiveX, debe ingresar a Visual

Basic y en la ventana de diálogo Nuevo Proyecto seleccione EXE

de documento ActiveX y luego haga click en el botón Aceptar,

tal como se indica en la figura:

Pág. 374

Page 375: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

A continuación proceda a diseñar la siguiente interfaz de

usuario:

Pág. 375

Para tal efecto, proceda a ubicar los siguientes controles

en el formulario:

3 etiquetas

Page 376: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

1 cuadro combinado

1 control DataGrid

1 botón de comandos

En seguida proceda a establecer las propiedades según se

indica:

Label1

Nombre LblTitulo1

AutoSize True

Caption Instituto de Educación Superior

Font Arial (Negrita 12)

ForeColor &H00C00000&

Label2

Nombre LblTitulo2

AutoSize True

Caption “Víctor Andrés Belaúnde”

Font Times New Roman (Negrita 24)

ForeColor &H000000FF&

Label3

Nombre LblTablas

AutoSize True

Caption Vacantes:

Font Arial (Negrita 10)

Combo1

Nombre CboTabla

Font Arial (Negrita 10)

Text

DataGrid1

Pág. 376

Page 377: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Nombre BdgrdTabla

Font Arial (Negrita 10)

HeadFont Arial (Negrita 10)

Command1

Nombre CmdAceptar

Caption &Mostrar

Una vez establecidas las propiedades, proceda a ingresar

el siguiente código:

Dim Cn As ADODB.Connection

Dim RsAlumno As ADODB.Recordset

Dim RsCurso As ADODB.Recordset

Dim RsLaboratorio As ADODB.Recordset

Private Sub UserDocument_Initialize()

Set Cn = New ADODB.Connection

Cn.Open “Provider=Microsoft.Jet.OLEDB.4.0;” & _

“Data Source=C:\FundVB\Data\CursosLibres.MDB;” & _

“Persist Security Info=False”

CboTabla.AddItem “Alumno”

CboTabla.AddItem “Curso”

CboTabla.AddItem “Laboratorio”

End Sub

Private Sub MostrarAlumno()

Set RsAlumno = New ADODB.Recordset

RsAlumno.ActiveConnection = Cn

RsAlumno.CursorType = adOpenStatic

RsAlumno.LockType = adLockReadOnly

RsAlumno.CursorLocation = adUseClient

RsAlumno.Open “Select AluCodigo As Código, ” & _

Pág. 377

Page 378: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

“(AluPaterno + ' ' + AluMaterno) As Apellidos, ” & _

“AluNombres As Nombres From Alumno”

Set DbgrdTabla.DataSource = RsAlumno

End Sub

Private Sub MostrarCurso()

Set RsCurso = New ADODB.Recordset

RsCurso.ActiveConnection = Cn

RsCurso.CursorType = adOpenStatic

RsCurso.LockType = adLockReadOnly

RsCurso.CursorLocation = adUseClient

RsCurso.Open “Select CurCodigo As Código, ” & _

“CurNombre As Nombre, ” & _

“CurVacantes As Vacantes, ” & _

“CurProfe As Profesor From Curso”

Set DbgrdTabla.DataSource = RsCurso

End Sub

Private Sub MostrarLaboratorio()

Set RsLaboratorio = New ADODB.Recordset

RsLaboratorio.ActiveConnection = Cn

RsLaboratorio.CursorType = adOpenStatic

RsLaboratorio.LockType = adLockReadOnly

RsLaboratorio.CursorLocation = adUseClient

RsLaboratorio.Open “Select LabCodigo As Código, ” & _

“LabHora As Horario, ” & _

“LabProfe As [Jefe de práctica] From Laboratorio”

Set DbgrdTabla.DataSource = RsLaboratorio

End Sub

Private Sub CmdMostrar_Click()

Select Case CboTabla.ListIndex

Pág. 378

Page 379: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Case 0

Call MostrarAlumno

Case 1

Call MostrarCurso

Case 2

Call MostrarLaboratorio

End Select

End Sub

Finalmente guarde y pruebe su documento ActiveX. El

resultado debe ser similar a la figura que se muestra a

continuación:

Aplicación Nº 2

Al documento ActiveX desarrollado en el ejercicio

anterior, añadirle un botón Acerca de, que presente la

Pág. 379

Page 380: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

información referente al autor (o autores) de la aplicación. El

diseño del formulario debe ser tal como se muestra a

continuación:

En primer lugar proceda a añadir un formulario estándar al

proyecto. Cambie el nombre del formulario por el de FrmAcercaDe

y diseñe la interfaz pedida.

En seguida añada un botón de comandos al documento ActiveX

y cambie su nombre por CmdAcerca. Luego haga doble click sobre

dicho botón e ingrese el siguiente código:

Private Sub CmdAcerca_Click()

Load FrmAcercaDe

FrmAcercaDe.Show vbModal

End Sub

Finalmente guarde y pruebe su aplicación. Como puede

apreciar desarrollar documentos ActiveX no es nada complicado.

Aplicación Nº 3

Al documento ActiveX desarrollado anteriormente añadirle

un botón Ir a, que permita enlazarnos con la dirección que se

Pág. 380

Page 381: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

ingrese en el cuadro de texto adjunto. El diseño del documento

se muestra a continuación:

Para lograr lo que se pide, añada un botón de comandos y

un cuadro de texto y cambie sus nombres por CmdURL y TxtURL

respectivamente. Luego ingrese el siguiente código:

Private Sub CmdURL_Click()

UserDocument.Hyperlink.NavigateTo TxtURL

End Sub

Aplicación Nº 4

Elaborar un documento ActiveX que permita mostrar el

contenido de la tabla Curso de la base de datos

Pág. 381

Page 382: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

CursosLibres.MDB. A continuación el usuario selecciona un curso

y tiene la posibilidad de separar la matrícula o en su defecto

matricularse en el curso de su elección. El diseño de la

aplicación debe ser similar a la siguiente figura:

Sugerencia: Añadir una nueva tabla a la base de datos para

registrar a los alumnos matriculados o con separación de

matrícula.

Microsoft Visual Basic

Pág. 382

GUÍA DE LABORATORIO Nº 11

Page 383: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Objetivos

Luego de completar este laboratorio, el estudiante será

capaz de:

• Diseñar páginas Web dinámicas mediante aplicaciones DHTML.

• Desarrollar aplicaciones DHTML para interactuar con los datos

de un sistema distribuido de bases de datos relacionales.

• Implementar aplicaciones mediante código Visual Basic y

código HTML.

• Agregar funcionalidad a sus aplicaciones para explorar Web.

Consideraciones

Para el desarrollo del presente laboratorio Ud. deberá

crear una carpeta C:\FundVB\Lab11, para guardar sus trabajos

correspondientes a este laboratorio.

Aplicación Nº 1

En este ejercicio, vamos a desarrollar una aplicación

DHTML que lea un número entero y muestre su tabla de

multiplicar.

En su forma más sencilla, una aplicación DHTML (Dynamic

HyperText Markup Language) puede consistir de una o más páginas

HTML enlazadas con código Visual Basic y el modelo de objetos

HTML dinámico.

Para comenzar a desarrollar nuestra aplicación, ingresar a

Visual Basic y en la ventana de diálogo Nuevo Proyecto

seleccione Aplicación DHTML, y haga click en el botón Aceptar.

Pág. 383

Page 384: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Al observar la ventana del Explorador de proyectos, esta

presentará la siguiente apariencia:

Visual Basic agrega automáticamente un Diseñador de

páginas DHTML al proyecto. En seguida, haga doble click sobre

DHTMLPage1 y proceda a establecer las propiedades que se

indican:

DHTMLPage1

Nombre DHTMLTablaMultiplicar

Id DHTMLTablaMultiplicar

Pág. 384

Page 385: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para crear la interfaz de la aplicación DHTML, simplemente

tenemos que ir agregando elementos HTML de la caja de

herramientas. De esa manera, realice el diseño de la página

mostrada en la siguiente figura:

Una vez terminado el proceso de diseño de la página,

seleccione el encabezado Tabla de Multiplicar y haga click en

el cuarto botón de la barra de herramientas del Diseñador

(Ajustar la selección en <SPAN> . . . </SPAN>). En seguida, sin

dejar de seleccionar el encabezado, active la Ventana de

propiedades y establezca lo siguiente:

Tabla de Multiplicar

Id Titulo

A continuación proceda a establecer las propiedades para

los demás controles según se indica:

Pág. 385

Page 386: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

TextField1

Nombre TxtN

Id TxtN

Value

TextArea1

Nombre TxtTabla

Id TxtTabla

Value

En seguida haga doble click sobre el cuadro de texto TxtN

e ingrese lo siguiente:

Private Sub DHTMLPage_Load()

Document.bgColor = “Yellow”

Titulo.Style.Color = “Red”

End Sub

Private Sub Titulo_onmouseout()

Titulo.Style.Color = “Red”

End Sub

Private Sub Titulo_onmouseover()

Titulo.Style.Color = “Blue”

End Sub Private Sub TxtN_onpropertychange()

If IsNumeric(TxtN.Value) Then

Dim N As Integer, I As Integer, S As String

N = Val(TxtN.Value)

For I = 0 To 12

S = S & N & “ * ” & I & “ = ” & N * I & vbCrLf

Next I

Pág. 386

Page 387: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

TxtTabla.Value = S

Else

TxtTabla.Value = “”

End If

End Sub

Finalmente, guarde y pruebe su aplicación DHTML. El

resultado debe ser similar a la figura siguiente:

Aplicación Nº 2

Desarrollar una aplicación DHTML que permita visualizar el

contenido de la tabla Curso de la base de datos

CursosLibres.MDB. El diseño de la página debe ser similar al

mostrado:

Pág. 387

Page 388: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para desarrollar nuestra aplicación, lo primero que debe

de hacer es abrir una nuevo proyecto DHTML. Luego debe crear la

conexión a la base de datos CursosLibres.MDB. Para ello ingrese

al menú Proyecto seleccione la opción Agregar Data Environment.

En la ventana Data Environment cambie el nombre del objeto

DataEnvironment por DeCursosLibres y el de la conexión por

CnCursosLibres. Luego, añada un Comando y denomínelo CmCurso.

Haga click derecho sobre el comando y seleccione Propiedades. A

continuación seleccione la opción Instrucción SQL e ingrese el

siguiente código:

Pág. 388

Select CurCodigo, CurNombre, CurVacantes, CurProfe From Curso

Page 389: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Luego haga click en el botón Aceptar. El aspecto de la

ventana Data Environment debe ser similar al siguiente:

En seguida proceda a diseñar la página. Para ello digite

los encabezados y etiquetas necesarios. Luego añada los

siguientes controles HTML al diseñador de páginas DHTML:

4 cajas de texto

4 botones de comandos

Pág. 389

Page 390: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

A continuación, proceda a establecer las propiedades según

se indica:

“Víctor Andrés Belaúnde”

Id Titulo

TextField1

Nombre TxtCurCodigo

Id TxtCurCodigo

Value

TextField2

Nombre TxtCurNombre

Id TxtCurNombre

Value

TextField3

Nombre TxtCurVacantes

Id TxtCurVacantes

Value

TextField4

Nombre TxtCurProfe

Id TxtCurProfe

Value

Button1

Nombre CmdPrimero

Id CmdPrimero

Value Primero

Pág. 390

Page 391: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Button2

Nombre CmdAnterior

Id CmdAnterior

Value Anterior

Button3

Nombre CmdSiguiente

Id CmdSiguiente

Value Siguiente

Button4

Nombre CmdUltimo

Id CmdUltimo

Value Ultimo

Mediante el Data Environment, ADO y el objeto

BindingCollection, es posible enlazar elementos de una página

DHTML con un origen de datos cuando se carga la página. Esto le

permite modificar los datos y escribir código para actualizar

un conjunto de registros subyacente o simplemente desplazarse a

través de los mismos. Por ejemplo, puede usar un objeto

BindingCollection con un objeto Recordset de ADO para enlazar

los elementos TextField de la página de código HTML con campos

de la tabla Curso.

Para poder utilizar los objetos de la Microsoft Data

Binding Collection es necesario cargar la librería

correspondiente. Selecciones el menú Proyecto y elija la opción

Referencias. En el cuadro de diálogo Referencias seleccione la

opción Microsoft Data Binding Collection, tal como se indica en

la figura:

Pág. 391

Page 392: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

A continuación declare una variable de tipo

BindingCollection en la sección de Declaraciones de la página

DHTML y proceda a ingresar el código que se muestra:

Dim ColBind As BindingCollection

Private Sub DHTMLPage_Load()

Document.bgColor = “Yellow”

Titulo.Style.Color = “Blue”

Set ColBind = New BindingCollection

Set ColBind.DataSource = DeCursosLibres

ColBind.DataMember = “CmCurso”

ColBind.Add TxtCurCodigo, “Value”, “CurCodigo”

ColBind.Add TxtCurNombre, “Value”, “CurNombre”

ColBind.Add TxtCurVacantes, “Value”, “CurVacantes”

ColBind.Add TxtCurProfe, “Value”, “CurProfe”

End Sub

Pág. 392

Private Function CmdPrimero_onclick() As Boolean

Page 393: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

DeCursosLibres.rsCmCurso.MoveFirst

End Function

Private Function CmdAnterior_onclick() As Boolean

DeCursosLibres.rsCmCurso.MovePrevious

If DeCursosLibres.rsCmCurso.BOF Then

DeCursosLibres.rsCmCurso.MoveFirst

End If

End Function

Private Function CmdSiguiente_onclick() As Boolean

DeCursosLibres.rsCmCurso.MoveNext

If DeCursosLibres.rsCmCurso.EOF Then

DeCursosLibres.rsCmCurso.MoveLast

End If

End Function

Private Function CmdUltimo_onclick() As Boolean

DeCursosLibres.rsCmCurso.MoveLast

End Function

Finalmente, guarde y pruebe su aplicación.

Aplicación Nº 3

Diseñar una aplicación que permita cargar en una tabla

HTML el contenido de la tabla Curso. La tabla HTML se debe

crear dinámicamente de acuerdo al número de registros

existentes.

Para desarrollar nuestra aplicación, añada una nueva

página DHTML al proyecto anterior. Para ello seleccione el menú

Proyecto y elija la opción Agregar DHTML Page. En seguida

proceda a ingresar el siguiente código:

Dim ColBind As BindingCollection

Pág. 393

Page 394: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Private Sub DHTMLPage_Load()

Dim RsResults As ADODB.Recordset

Set ColBind = New BindingCollection

Set ColBind.DataSource = DeCursosLibres

ColBind.DataMember = “CmCurso”

Set RsResults = DeCursosLibres.rsCmCurso

Do While Not RsResults.EOF

Document.body.insertAdjacentHTML “BeforeEnd”, _

“<Table Border Cellspacing=1 Cellpadding=7>” & _

“<Td Width=50>” & RsResults!CurCodigo & “</Td>” & _

“<Td Width=200>” & RsResults!CurNombre & “</Td>” & _

“<Td Width=50>” & RsResults!CurVacantes & “</Td>” & _

“<Td Width=200>” & RsResults!CurProfe & “</Td>” & _

“</Table>”

RsResults.MoveNext

Loop

RsResults.MoveFirst

RsResults.Close

End Sub

Finalmente, no olvide cambiar el componente de inicio

antes de ejecutar su aplicación.

Aplicación Nº 4

Diseñar una aplicación DHTML que permita seleccionar de un

control Select (similar a un cuadro combinado), el nombre de un

profesor y a continuación se muestren en una tabla HTML

dinámica los cursos que dicta dicho profesor.

Un elemento Select, es similar a un cuadro combinado. Por

ejemplo, para agregar un elemento Select denominado SelProfe a

una la página HTML, simplemente arrastrar el elemento a la

página. A continuación establecer las siguientes propiedades:

Pág. 394

Page 395: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Seleccion1

Nombre SelProfe

Id SelProfe

Value

Para especificar los elementos de lista que se deben

mostrar en el elemento Select agregar el siguiente código al

procedimiento de evento Load de la página HTML, veamos:

Private Sub DHTMLPage_Load()

Dim SelElement As HTMLSelectElement

Dim Cn As ADODB.Connection

Dim RsProfe As ADODB.Recordset

Set Cn = New ADODB.Connection

Set RsProfe = New ADODB.Recordset

Cn.Open “Provider=Microsoft.Jet.OLEDB.4.0;” & _

“Data Source=C:\FundVB\Data\CursosLibres.MDB;” & _

“Persist Security Info=False”

RsProfe.ActiveConnection = Cn

RsProfe.CursorType = adOpenStatic

RsProfe.LockType = adLockOptimistic

RsProfe.CursorLocation = adUseClient

RsProfe.Open “Select Distinct CurProfe From Curso”

Do While Not RsProfe.EOF()

Set SelElement = Document.createElement(“OPTION”)

SelElement.Text = RsProfe!CurProfe

SelProfe.Options.Add SelElement

RsProfe.MoveNext

Loop

End Sub

Al ejecutar su aplicación debe ser similar a la figura

mostrada:

Pág. 395

Page 396: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Finalmente a manera de ejercicio para el estudiante,

proceda a escribir el código necesario para mostrar la

información relacionada con cada profesor.

Pág. 396

Page 397: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Microsoft Visual Basic

GUÍA DE LABORATORIO Nº 12

Objetivos

Luego de completar este laboratorio, el estudiante será

capaz de:

• Utilizar funciones API de Windows desde Microsoft Visual

Basic.

• Convertir declaraciones de C a Visual Basic.

• Añadir un sistema de ayuda a una aplicación.

• Usar el asistente para empaquetado y distribución.

• Generar programas de instalación mediante disquetes, carpetas

en una unidad local de red o en una publicación Web.

Consideraciones

Para el desarrollo del presente laboratorio Ud. deberá

crear una carpeta C:\FundVB\Lab12, para guardar sus trabajos

correspondientes a este laboratorio.

Aplicación Nº 1

Un programador de aplicaciones Visual Basic, además de

conocer su entorno de trabajo, debe conocer su entorno de

programación, conocido generalmente como Interfaz de

Programación de Aplicaciones para Windows (Windows Application

Programming Interface, Windows API).

La API de Windows viene a ser un conjunto de funciones

desarrolladas en lenguaje C. Sin embargo, muchos programadores

de Visual Basic recurren a estas funciones para conseguir hacer

lo que es imposible (o muy complicado) desde Visual Basic.

Pág. 397

Page 398: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Las funciones API de Windows no son nada complicadas como

pueden pensar algunos programadores de Visual Basic.

Como primer ejercicio vamos a escribir una aplicación que

permita modificar el título de un formulario. En la práctica,

siempre se modifican los títulos del formulario con la

propiedad Caption de Visual Basic, pero este ejercicio ofrece

una manera sencilla de declarar y llamar a una API de Windows.

El primer paso consiste en añadir un módulo de código al

proyecto. En seguida proceda a declarar la función en la

sección de declaraciones del módulo:

Public Declare Function SetWindowText Lib “user32” _

Alias “SetWindowTextA” (ByVal hWnd As Long, _

ByVal lpString As String) As Long

Luego, en el formulario ingrese el código que se muestra a

continuación:

Private Sub Form_Load()

SetWindowText Form1.hWnd, “Bienvenidos a la API de Windows”

End Sub

Al ejecutar su aplicación, su resultado debe ser similar a

la siguiente figura:

Pág. 398

Page 399: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Aplicación Nº 2

Desarrollar una aplicación que permita reproducir un

archivo Wav o Midi. Utilizar la función API de Windows

mciExecute para lograr el objetivo deseado.

Como se sabe, el lenguaje C diferencia las letras

mayúsculas de las minúsculas. Por ello, si Ud. comete un error,

por ejemplo utiliza una letra mayúscula en lugar de una

minúscula (o viceversa), la función declarada no será

reconocida y obtendrá un mensaje de error.

Para evitar este tipo de problemas, vamos a utilizar el

Visor API de Windows. En seguida, del menú Complementos elija

la opción Administrador de Complementos. Del cuadro de diálogo

que se presenta cargar la opción Visor de API de VB 6. Al dar

un click en el botón Aceptar, se añadirá en el menú

Complementos la opción Visor de API.

En seguida ingrese al Visor de API. Se debe presentar una

pantalla similar a la siguiente:

Pág. 399

Page 400: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

En la pantalla anterior, seleccione el menú Archivo y

elija la opción Cargar archivo de texto. En el cuadro de

diálogo que se presenta elegir el archivo Win32api.Txt y dar un

click en el botón Abrir.

Pág. 400

Page 401: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

De la siguiente pantalla Ud. podrá seleccionar la función

que desea, luego active la opción público y dar un click en el

botón Agregar para visualizar el código de declaración de dicha

función.

En seguida haga click en el botón Copiar y pegue dicho

código a su aplicación. Recordar que la declaración de la

función API se debe realizar en un módulo, por lo tanto debe

agregar un nuevo módulo y pegar el siguiente código:

Public Declare Function mciExecute Lib “winmm.dll” _

(ByVal lpstrCommand As String) As Long

Luego proceda a diseñar la interfaz de la aplicación. Para

ello ubique los siguientes controles:

1 control Image

Pág. 401

Page 402: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

2 botones de comando

En seguida establezca las propiedades según se indica a

continuación:

Form1

Nombre FrmMultimedia

Caption Hacer sonar un fichero Wav o Midi

BorderStyle 3-Fixed Dialog

Image1

Picture C:\Archivos de programa\Microsoft Visual

Studio\Common\Graphics\Icons\Misc\Mike.ico

Stretch True

Command1

Nombre CmdEjecutar

Caption &Ejecutar

Command2

Nombre CmdSalir

Caption &Salir

Una vez establecidas las propiedades, proceda a ingresar

el siguiente código:

Private Sub CmdEjecutar_Click()

iResult = mciExecute(“Play c:\vbN2\bmp\34.wav”)

End Sub

Private Sub CmdSalir_Click()

Unload Me

End Sub Aplicación Nº 3

Pág. 402

Page 403: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Uno de los temas en los que Windows ha creado un estándar

es el sistema de ayuda de las aplicaciones. Para ello incluye

una aplicación denominada WinHelp como motor de ayuda de

Windows.

Los pasos necesarios para crear un sistema de ayuda son

los siguientes:

• Crear un archivo de texto RTF.

• Compilar el archivo RTF mediante el compilador de ayudas Help

Workshop, para obtener el archivo HLP.

• Utilizar el motor de ayuda WinHelp.

En vista de lo anterior, lo primero que necesitamos para

crear nuestro sistema de ayuda, es un archivo con formato RTF

donde se incluirá el texto de la ayuda. Para ello ingrese a

Microsoft Word 2000 y digite lo siguiente:

Microsoft Visual Basic 6.0

Curso de programación

Profesor Carlos Castillo Peralta Contenido

• Microsoft Visual Basic Nivel I • Microsoft Visual Basic Nivel II • Microsoft Visual Basic Nivel III

En seguida ubique el cursor en la última línea de texto y

presione la combinación de teclas Ctrl + Enter, para comenzar

en una nueva página. A continuación digite lo siguiente:

Pág. 403

Page 404: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Microsoft Visual Basic 6.0

Curso de programación

Profesor Carlos Castillo Peralta Nivel I

• Conceptos básicos • Elementos del lenguaje • Entrada y salida de datos • Sentencias de control • Arreglos • Estructuras • Archivos de datos

Volver

En seguida ubique el cursor en la última línea de texto

que acaba de ingresar y pulse Ctrl + Enter para comenzar a

digitar el siguiente texto en una página diferente:

Microsoft Visual Basic 6.0

Curso de programación

Profesor Carlos Castillo Peralta Nivel II

• Creación de bases de datos • Aplicaciones Cliente Servidor • Sentencias SQL • Entorno de datos • Objetos de Datos ActiveX (ADO) • Reportes

Volver

Pág. 404

Page 405: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

De manera análoga a los demás casos, ubique el cursor en

la última línea de texto y presione Ctrl + Enter. En seguida

ingrese el siguiente texto:

Microsoft Visual Basic 6.0

Curso de programación

Profesor Carlos Castillo Peralta Nivel III

• Creación componentes • Lenguaje HTML • Visual Basic Script • Aplicaciones DHTML • API de Windows • Creación de archivos de ayuda • Empaquetado y distribución

Volver

Finalmente, debe obtener un archivo de cuatro páginas.

Guarde su archivo como MiAyuda.RTF.

El archivo de ayuda que vamos a construir va a utilizar

más de una página, y en ese caso se requiere especificar un

identificador para cada página.

Ahora procederemos a crear los identificadores de páginas.

Para ello ubicar el cursor en la primera página antes del

encabezado Microsoft Visual Basic 6.0 y seleccione del menú

Insertar la opción Nota al pie. Luego, ingresar como marca

personal el símbolo # tal como se muestra en la siguiente

figura:

Pág. 405

Page 406: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Al dar click en el botón Aceptar, el cursor se ubicará

automáticamente en el pie de página donde debe digitar VBMain

delante del símbolo #.

En la misma página, ubicar el cursor delante de la palabra

Microsoft Visual Basic Nivel I y darle el atributo de subrayado

doble. Luego, escribir VB1 inmediatamente después del texto

subrayado y a este identificador darle el atributo de oculto.

Realizar acciones similares para las dos siguientes

líneas, después del texto Microsoft Visual Basic Nivel II

escribir VB2 y para Microsoft Visual Basic Nivel III escribir

VB3. No olvidar que estos identificadores deben tener atributo

de oculto.

En la segunda página ubicar el cursor antes del encabezado

Microsoft Visual Basic 6.0 y seleccione del menú Insertar la

opción Nota al pie. Luego, ingresar como marca personal el

símbolo # y luego digitar en el pie de página VB1. Luego en la

misma página, posicionar el cursor delante de la palabra Volver

y darle el atributo de subrayado doble. Escribir VBMain

inmediatamente después del texto subrayado y a este

identificador darle el atributo de oculto.

Pág. 406

Page 407: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Continuar de manera similar con las siguientes páginas. Al

concluir vuelva a guardar su archivo. La primera página debe

presentar una apariencia similar a la siguiente figura:

Continuando con nuestro esquema, ahora debemos generar el

archivo HLP a partir del archivo RTF que acabamos de crear.

Para ello debemos ejecutar la aplicación Microsoft Help

Workshop. Desde el menú Inicio, elija la carpeta Programas,

luego elija la carpeta Microsoft Visual Studio 6.0, en seguida

seleccione la carpeta Herramientas de Microsoft Visual Studio

6.0, y luego haga clic sobre la aplicación Help Workshop. A

continuación se presentará una ventana similar a la mostrada en

la siguiente figura:

Pág. 407

Page 408: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Seleccione el menú File y elija la opción New. A

continuación se mostrará un cuadro de diálogo similar al

siguiente:

Seleccione la opción Help Project y dar un click en el

botón OK. En seguida se presentará una ventana en la cual debe

indicar el nombre y la ruta del archivo HLP que desea generar.

Para nuestro caso digite MiAyuda y haga click sobre el botón

Guardar, tal como se indica en la figura que se muestra a

continuación:

Pág. 408

Page 409: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Al hacer click en el botón Guardar, en seguida se

presentará la siguiente pantalla:

Ahora que Ud. ha creado un proyecto de ayuda, necesita

agregar la información sobre su archivo o archivos de ayuda.

Pág. 409

Page 410: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

¿Ha creado su archivo de ayuda MiAyuda.RTF? Si Ud. ya lo

ha creado haga click en el botón Files y en seguida aparecerá

la siguiente pantalla:

Luego dar un click en el botón Add. En seguida se

presentará la siguiente ventana en la cual debe especificar el

nombre y la ruta de su archivo de ayuda RTF. Para nuestro

seleccione MiAyuda y haga click en el botón Abrir.

Pág. 410

Page 411: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

En seguida se mostrará la siguiente pantalla. Ud. haga

click sobre el botón OK.

A continuación se presentará una pantalla similar a la

figura mostrada:

Pág. 411

Page 412: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

A continuación vamos a definir una ventana. Para ello haga

click sobre el botón Windows. En seguida aparecerá un cuadro de

diálogo en el cual debe ingresar el nombre de la ventana. Para

nuestro caso digite Main. Luego haga click en el botón OK.

En seguida se presentará el siguiente cuadro de diálogo.

En la ficha General ingrese el texto que se indica para la

barra de título de la ventana.

Pág. 412

Page 413: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

En la ficha Position defina el tamaño inicial de la

ventana de ayuda, para ello haga click en el botón Auto-Sizer.

En seguida se presentará una ventana de prueba similar a

la que se muestra en la figura siguiente. Cambie las

dimensiones de esta ventana según su parecer y haga click en el

botón OK.

Pág. 413

Page 414: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

A continuación seleccione la ficha Buttons y active los

botones que Ud. quiere agregar para su ventana.

Luego seleccione la ficha Color. En seguida se presentará

una pantalla similar a la siguiente:

Pág. 414

Page 415: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Para cambiar el color de la zona de no desplazamiento o la

zona de desplazamiento pulse el botón Change al lado de la

ventana de muestra. Escoja el color que Ud. desee y entonces

haga click en el botón Aceptar.

El archivo de proyecto debe presentar una apariencia

similar a la figura mostrada:

Bueno, Ud. acaba de crear su primer proyecto de ayuda

básico. Más adelante si así lo necesitará puede cambiar

cualquiera de estas opciones. Para ello simplemente debe abrir

su archivo de proyecto de ayuda y realizar los cambios que

considere pertinente.

Finalmente guarde y pruebe su proyecto. Para lo cual debe

dar click en el botón Save and Compile. En seguida se

presentará una pantalla similar a la siguiente:

Pág. 415

Page 416: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

En seguida ingrese al menú File y elija la opción Run

WinHelp. Luego, se presentará una pantalla similar a la

mostrada:

Pág. 416

Page 417: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

En seguida dar click en el botón View Help. A continuación

se presentará una pantalla similar a la figura siguiente.

Pruebe ingresando a las otras páginas, para ello simplemente

haga click en cualquiera de los tres ítems que se muestran en

la sección Contenido.

¿Sabe Ud. como añadir una imagen de mapa de bits a nuestro

archivo de ayuda? La respuesta es bastante sencilla. Para ello

realice los siguientes pasos:

Ingrese a Microsoft Word 2000 y proceda a abrir el archivo

MiAyuda.RTF. Ubiquese en la primera página y añada el siguiente

texto {BMC CCP.BMP} antes del nombre del profesor. Luego guarde

su archivo.

A continuación cargue el Help Workshop. Luego dar click

sobre el botón Bitmaps. Se presentará una pantalla similar a la

figura siguiente:

Pág. 417

Page 418: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

En seguida haga click en el botón Add. A continuación se

presentará una ventana similar a la siguiente figura:

En el cuadro de diálogo anterior seleccione la ruta que se

indica. Luego haga click en el botón OK.

Finalmente, grabe y compile su proyecto de ayuda. Para

ello dar click en el botón View Help.

Pág. 418

Page 419: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

A continuación se presentará una ventana similar a la

siguiente figura:

Por último, veremos como utilizar nuestros archivos de

ayuda desde una aplicación Visual Basic. Para tal fin abra un

nuevo proyecto y añada un botón de comandos al formulario.

Cambie el nombre del botón por CmdAyuda y proceda a ingresar el

siguiente código:

Private Sub CmdAyuda_Click()

Dim Ayuda

Ayuda = Shell(“C:\Windows\WinHelp.exe ” & _

“C:\FundVB\Lab12\MiAyuda.HLP”, 1)

End Sub

Aplicación Nº 4

Pág. 419

Page 420: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

Después de crear una aplicación Visual Basic, por lo

general debemos proporcionársela al usuario final, ya sea en

disquetes, CD, a través de una red local, o bien a través de

una Intranet o Internet. Esto requiere primero empaquetar la

aplicación y después distribuirla.

Como ejemplo, vamos a generar el programa de instalación

para la aplicación creada en el ejercicio anterior. Para ello

es necesario que tenga abierta dicha aplicación.

Primero debemos iniciar el Asistente de empaquetado y

distribución. Para tal fin, del Menú Complementos seleccione la

opción Administrador de complementos y añada la utilidad

Package and Deployment Wizard. Al momento de iniciar el

Asistente se visualizará una ventana similar a la siguiente

figura:

Pág. 420

En seguida haga click en el botón Empaquetar. Esto hará

que el Asistente le presente varios cuadros de diálogo que le

Page 421: BORLAND C++ 5 - motosbrava.commotosbrava.com/administracion/uploads/manuales/125.pdf · aplicaciones Windows. El lenguaje de programación Visual Basic Script para programar en Internet

pedirán información referente al proyecto que vamos a

empaquetar y le permitirá elegir qué opciones quiere incorporar

al programa de instalación, el tipo de empaquetado, la carpeta

donde se almacenará el paquete de instalación, qué archivos

desea incluir adicionalmente en el paquete, qué grupos y

elementos de grupo del menú Inicio se deberán crear en el

equipo del usuario final durante la instalación de la

aplicación, etc. A medida que avanza, si necesita más

información consulte al Jefe de Práctica.

Una vez concluido el proceso de empaquetado cierre

Microsoft Visual Basic. Luego haga click en el menú Inicio y

seleccione la opción Ejecutar. Seguidamente ingrese la ruta de

nuestro programa de instalación y dar click en Aceptar, tal

como se indica en la figura:

En esos instantes se dará inicio a la instalación de

nuestra aplicación. Concluido este proceso, seleccione el menú

Inicio, carpeta Programas y ubique la carpeta que contiene la

aplicación. Finalmente proceda a ejecutar su aplicación.

Fin de las prácticas de laboratorio.

Suerte.

Pág. 421