Fundamentos de Microsoft Visual Basic

download Fundamentos de Microsoft Visual Basic

of 421

Transcript of Fundamentos de Microsoft Visual Basic

CAPTULO 1

FUNDAMENTOSMicrosoft Visual Basic es un conjunto de herramientas que posibilitan el desarrollo de aplicaciones para Windows de una manera rpida y sencilla, basado en el lenguaje BASIC y en la programacin orientada a objetos. La palabra Visual hace referencia al mtodo que se

utiliza para crear la interfaz grfica de usuario. En lugar de escribir numerosas lneas de cdigo para implementar la

interfaz, simplemente se utiliza el ratn 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 ms programadores que ningn otro lenguaje en la historia de la informtica. Visual Basic ha evolucionado a

partir del lenguaje BASIC original y ahora contiene centenares de instrucciones, funciones y palabras clave, muchas de las cuales estn directamente relacionadas con la interfaz grfica de Windows. El lenguaje de programacin Visual Basic no es exclusivo de Microsoft Visual Basic. Este lenguaje es utilizado tambin por Microsoft Excel, Microsoft Access y muchas Pg. 1 otras

aplicaciones Windows. El lenguaje de programacin Visual Basic Script para programar en Internet es un subconjunto del

lenguaje Visual Basic. De tal forma, que la inversin 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 aplicacin Windows: hacer click en el icono correspondiente. En seguida se presentar una ventana similar a la figura siguiente:

Pg. 2

En la ventana anterior indicar el tipo de proyecto que desea crear (para nuestro caso seleccionar EXE estndar) y dar click sobre el botn 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 mens Cuadro de herramientas Explorador de proyectos Posicin del formulario Barra de mens Pg. 3 Barra de herramientas Diseador de formularios Ventana de propiedades Mens contextuales

Presenta las rdenes que se utilizan para desarrollar una aplicacin. Las opciones ms utilizadas son: Archivo, Edicin, Ver, Ventana y Ayuda. Se proporcionan otros mens para tener acceso a funciones especficas de programacin como Proyecto, Formato o Depuracin. Barra de herramientas Facilita el acceso rpido a las rdenes ms comnmente utilizadas. Omitimos el significado de cada botn porque le ser mostrado al pasar el puntero del ratn sobre cada uno de ellos.

Puede visualizar otras barras de herramientas ejecutando la opcin Barra de herramientas del Men Ver. Cuadro de herramientas Proporciona un conjunto de herramientas que permiten

disear la interfaz grfica de usuario.

Pg. 4

Icono Puntero

Descripcin

Cuadro de imagen Etiqueta Cuadro de texto Marco Botn de comando Casilla de verificacin Botn de opcin Cuadro combinado Cuadro de lista Barra de desplazamiento horizontal Barra de desplazamiento vertical Cronmetro Cuadro de lista de unidades Cuadro de lista de directorios Cuadro de lista de archivos Formas Lneas Imagen Contenedor OLE

Pg. 5

Para utilizar algn objeto simplemente debe hacer doble click sobre el icono correspondiente, luego puede cambiar su posicin y sus dimensiones. Diseador 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

aplicacin o proyecto.

Pg. 6

Ventana de propiedades Como veremos ms 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.

Posicin del formulario Esta ventana le permite especificar la posicin de los formularios de la aplicacin.

Mens contextuales Pg. 7

Es

un a

men un

emergente

que

presenta objeto.

rdenes

especficas un men

relativas

determinado

Para

abrir

contextual, dar click derecho sobre el objeto. Por ejemplo, al dar click derecho sobre el formulario se presenta el siguiente men contextual.

Ventana de cdigo Se presenta cuando se hace doble click sobre un objeto que se encuentra en el Diseador 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).

Pg. 8

MI PRIMERA APLICACIN Hay tres pasos principales para crear una aplicacin en Visual Basic: Crear la interfaz. Establecer propiedades. Escribir el cdigo. Para siguiente ver como se para realiza crear esto, una siga los pasos del que

ejemplo

aplicacin

sencilla

consiste en un formulario y un botn de comando. Cuando haga click en el botn de comando aparecer el mensaje Visual Basic es fcil en un cuadro de dilogo predefinido. Creacin de la interfaz Para el desarrollo del presente ejemplo proceda a crear una nueva aplicacin. En seguida aadir un botn 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:

Pg. 9

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 siguiente y pulsar las la tecla F4. Por ejemplo de la figura y

muestra

propiedades

del

botn

comando

podemos ver que la propiedad Caption tiene el valor Command1.

Pg. 10

Puede

cambiar de

el la

valor ventana

de

cualquier y

propiedad simplemente anterior

seleccionndolo modificando su

anterior para el

valor,

por

ejemplo

caso

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 aplicacin. La apariencia de la

interfaz debe ser similar a la figura mostrada:

Pg. 11

Escribiendo el cdigo Para ingresar el cdigo a la aplicacin debe dar doble click sobre el control al cual asociaremos dicho cdigo. Para nuestro caso dar doble click sobre el botn de comando e

ingresar el cdigo que se indica a continuacin:

Para guardar la aplicacin que acaba de crear, seleccione la opcin Guardar Proyecto del Men Archivo. Bueno, ahora slo falta que ejecute su aplicacin. Para ello simplemente debe pulsar la tecla F5. El resultado debe ser similar al siguiente:

Pg. 12

CAPTULO 2

LOS OBJETOSVisual Basic se basa en la programacin orientada a

objetos (POO), la cual es una forma de programacin que utiliza objetos (similares a los objetos del mundo real) para la

solucin 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 ms largos de una manera sencilla.

MECANISMOS BSICOS DE LA POO Los mecanismos bsicos de la programacin orientada a

objetos son: Objetos Propiedades Mtodos Eventos Mensajes Clases

Pg. 13

Objetos Un objeto es una entidad que tiene atributos particulares (propiedades) y unas formas de operar sobre ellos (mtodos). 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 objeto. propiedades Hay representan las caractersticas como Caption que del la

propiedades

particulares,

poseen los botones de comando por ejemplo, y genricas como Name que la poseen todos lo objetos. Mtodos Los mtodos son procedimientos asociados a un objeto. Se ejecutan como respuesta a un evento, por ejemplo al dar click en un botn de comando. Tambin pueden ser invocados

explcitamente en el programa. Eventos Un evento es la capacidad de un objeto de reaccionar

cuando ocurre una determinada accin (accin y reaccin). Como respuesta a un evento se enva un mensaje y se ejecuta un determinado mtodo (procedimiento).

Pg. 14

Mensajes Un mensaje es una llamada a un mtodo (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 estn constantemente recibiendo, interpretando y

respondiendo a mensajes de otros objetos. Clases Una clase es una descripcin para producir objetos de esa clase o tipo. Es decir se trata de una generalizacin de un tipo especfico 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.

CARACTERSTICAS DE LA POO Las caractersticas fundamentales de la programacin

orientada a objetos son: Abstraccin Encapsulamiento Herencia Polimorfismo

Pg. 15

Abstraccin La abstraccin 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 podra decir que es sese el objeto y olvdese de como funciona en forma interna. Por ejemplo, para manejar una computadora no necesitamos saber como funcionan sus circuitos electrnicos, en trminos de corriente, tensin, etc. Encapsulamiento Esta caracterstica permite ver un objeto como una caja negra autocontenida en la que se ha metido de alguna manera toda la informacin los que maneja dicho objeto. bsicas, Esto permite

manipular

objetos

como

unidades

permaneciendo

oculta su estructura interna. Herencia La herencia es la caracterstica que permite compartir automticamente propiedades y mtodos entre objetos. Es decir, se pueden crear nuevas clases de objetos en base a clases existentes. Ms concreto, un objeto puede heredar un conjunto general de propiedades y mtodos a las que puede aadir

Pg. 16

aquellas caractersticas que son especficas suyas. El usuario de Visual Basic no dispone de esta caracterstica.

Polimorfismo Polimorfismo, del griego cuyo significado es muchas

formas, es la caracterstica que permite implementar mltiples formas de un mismo mtodo, dependiendo cada una de ellas de la clase sobre la que se realiza la implementacin. Esto hace posible que se puede acceder a una variedad de mtodos

distintos (todos con el mismo nombre) utilizando exactamente el mismo medio de acceso.

LOS OBJETOS DE VISUAL BASIC Visual Basic soporta la abstraccin, la encapsulacin, el polimorfismo y la reutilizacin de cdigo. La reutilizacin de cdigo es la capacidad de trasladar caractersticas de un objeto a otro, lo que se logra con alguna forma de herencia. Esto se consigue mediante la creacin y uso del objeto. Los objetos de Visual Basic estn divididos en dos tipos: controles y contenedores. Los controles son un medio grfico que permiten a los usuarios interactuar con la aplicacin para la manipulacin de datos y ejecucin de tareas. Son ejemplo de controles:

etiquetas, cuadros de texto, botones de comando, casillas de Pg. 17

verificacin,

botones

de

opcin,

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 ms utilizados tenemos a los formularios, marcos y

cuadrculas. El formulario ms los controles constituyen la interfaz de la aplicacin.

REFERENCIANDO OBJETOS La sintaxis para referenciar objetos es la siguiente: OBJETO.PROPIEDAD = VALOR Por ejemplo, para establecer el ttulo de un formulario a Visual Basic es fcil, la orden sera: Form1.Caption = Visual Basic es fcil

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

Pg. 18

Para aclarar este concepto desarrollaremos la siguiente aplicacin, la cual consiste en un formulario, un cuadro de texto y un botn de comando. El usuario debe ingresar un

mensaje en el cuadro de texto y al pulsar el botn de comando, el mensaje recientemente ingresado, se coloca como ttulo del formulario.

Para ello proceda a construir la interfaz mostrada en la figura anterior. Luego, dar doble click sobre el botn de

comando e ingrese el siguiente cdigo: Private Sub Command1_Click() Form1.Caption = Text1.Text End Sub Seguidamente guarde y proceda ejecutar su aplicacin. Como puede verificar, el evento Click se dispara cada vez que el usuario pulsa (hace click) sobre un control.

CONVENCIN DE NOMBRES PARA LOS OBJETOS

Pg. 19

La convencin a seguir en la presente gua - para dar nombre a los objetos - consiste en utilizar ciertos prefijos, los cuales indicaran el tipo de objeto del que se trata. Prefijo Frm Fra Lbl Txt Cmd Chk Opt Lst Cbo Tim HS VS Pic Img Drv Dir Fil Ole Grd Formulario Marco Etiqueta Cuadro de texto Botn de comando Casilla de verificacin Botn de opcin Cuadro de lista Cuadro combinado Cronmetro Barra de desplazamiento horizontal Barra de desplazamiento vertical Cuadro de imagen Imagen Cuadro de lista de unidades Cuadro de lista de directorios Cuadro de lista de archivos Contenedor OLE Cuadrcula Objeto

Pg. 20

Gra Ctr

Grfico Control (se utiliza en procedimientos cuando el tipo de control es desconocido)

CAPTULO 3

EL LENGUAJEVisual Basic es un lenguaje de programacin basado en el lenguaje BASIC, al cual incorpora la funcionalidad de la

programacin orientada a objetos. El cdigo de Visual Basic se almacena en mdulos, donde cada mdulo est subdividido en distintas secciones, una para cada objeto del mdulo. Cada seccin de cdigo puede contener uno o ms procedimientos, formados por declaraciones de

constantes y variables, expresiones, sentencias de control y llamadas a procedimientos y/o funciones. En este captulo vamos a analizar los diferentes elementos que intervienen al momento de realizar el cdigo para una

aplicacin.

TIPOS DE DATOS Los datos con los que trabajaremos probablemente incluyan informacin relacionada con nmeros, dinero, nombres,

Pg. 21

descripciones,

fechas,

etc.

Cada

dato

corresponde

a

un

determinado tipo, es decir, pertenece a una categora de datos que se manipulan de maneras similares. Tipo Integer Long Descripcin Entero (2 bytes) Entero largo (4 bytes) Rango -32768 a 32767 -2147483648 a 2147483647 Single Punto flotante de simple -3.40E+38 a 3.40E+38 doble -1.79D+308 a 1.79D+308 +/922337203685477.5807 Byte String Carcter (1 byte) Cadena de caracteres 0 a 255 (1 Aproximadamente hasta 64K (65400

precisin (4 bytes) Double Punto flotante de

precisin (8 bytes) Currency Monetario (8 bytes)

byte por carcter)

caracteres) Boolean Date Lgico (2 bytes) Fecha/Hora (8 bytes) True o False 01/ENERO/100 a 31/DICIEMBRE/9999 Variant (por omisin) Cualquier tipo de dato Con nmeros hasta el intervalo de un tipo Double. Con caracteres Pg. 22 22

bytes + 1 byte por carcter

IDENTIFICADORES Los identificadores son nombres dados a los elementos de una aplicacin, tales como constantes, variables,

procedimientos, funciones, objetos, etc. Un identificador es una secuencia de caracteres la que puede de ser de hasta 255

caracteres.

Para

construccin

identificadores

debemos

tener presente las siguientes reglas: Deben comenzar con una letra y no puede contener espacios en blanco. Letras, dgitos y caracteres subrayados estn permitidos

despus del primer carcter. No se puede utilizar Una palabra una palabra tiene reservada un como

identificador.

reservada

significado

especial para Visual Basic.

CONSTANTES Una durante constante la almacena de un un dato cuyo valor no cambia una

ejecucin

programa.

Para

declarar

constante utilice la siguiente sintaxis: Const NOMBRE_CONSTANTE [As TIPO] = VALOR Pg. 23

Si no se declara el tipo de constante (utilizando As TIPO) se asigna a la constante el tipo de dato ms apropiado a su valor. El valor de una constante puede ser numrico,

alfanumrico, carcter o de tipo fecha y hora. Por ejemplo: Const MAXIT = 25 Const PI As Double = 3.141592 Const CADENA As String = Visual Basic es fcil Const FECHA_POR_DEFECTO = #01/01/99#

VARIABLES Una variable almacena un dato cuyo valor puede cambiar durante la ejecucin 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 instruccin Dim puede realizar ms de una declaracin, teniendo en cuenta que la clusula opcional As TIPO le permite definir el tipo de dato de cada variable que vaya a declarar. Por ejemplo: Dim X, Y As Integer

Pg. 24

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 omisin) 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 los son smbolos Los que indican son cmo los sern datos

manipulados

operandos.

operandos

(constantes y/o variables) sobre los que acta los operadores para producir un determinado resultado. Operadores aritmticos Operador ^ Significado Exponenciacin Menos unario

Pg. 25

* \

/

Multiplicacin y divisin Divisin entera Resto de una divisin entera Suma y resta

Mod + -

Operadores relacionales Operador = Igual que Diferente que Menor que Mayor que Menor o igual que Mayor o igual que Significado

< >

Operadores lgicos Operador Not And Or Xor Eqv Imp Negacin Conjuncin Disyuncin inclusiva Disyuncin exclusiva Equivalencia (opuesto a Xor) Implicacin (falso si primer operando verdadero y segundo operando falso) Significado

Pg. 26

Operadores de cadenas de caracteres Operador & Like SENTENCIAS Una sentencia es una lnea de cdigo que indica una o ms operaciones sentencias, 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 ms de una lnea fsica utilizando el carcter de continuacin de lnea (un espacio en blanco seguido del carcter de subrayado). Por ejemplo: Dim CH4_ENTRADA As Double, CH4_SALIDA As Double, _ CH4_GENERA As Double, CH4_CONSUME AS Double a realizar. Una de lnea otras puede por incluir dos varias Por Concatenacin Compara dos cadenas de caracteres Significado

separadas

unas

puntos.

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 sern estudiados en captulos

posteriores. Pg. 27

Otra posibilidad de proporcionar datos o de visualizarlos durante la ejecucin de una aplicacin es utilizando cajas de dilogos predefinidas. Debido a que esta es la forma ms simple de realizar la E/S de datos nos ocuparemos de ella.

Entrada de datos La entrada de datos permite proporcionar valores durante la ejecucin de una aplicacin. Estos valores son ingresados generalmente mediante el teclado y asignados a variables del programa. En Visual Basic una forma de ingresar datos a la aplicacin es utilizando la caja de dilogo predefinida

provista por la funcin InputBox. Su sintaxis es la siguiente: VARIABLE = InputBox(MENSAJE [, TTULO] [, PREDETERMINADO]) Donde MENSAJE es el mensaje que indica al usuario el tipo de informacin 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 dilogo solicitando la informacin requerida:

Pg. 28

Como

puede

observar,

el

resto

de

los

parmetros

son

opcionales. TTULO es el texto que se muestra en la barra de ttulo del cuadro de dilogo, si se omite TTULO, el nombre de la aplicacin es la que se muestra en la barra de ttulo. PREDETERMINADO es una expresin de cadena que aparece en el cuadro de texto como respuesta predeterminada si no se

proporciona ningn otro texto. Si se omite PREDETERMINADO el cuadro de texto se muestra vaco. 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 dilogo que se

presenta en la figura siguiente:

Pg. 29

Salida de datos La salida de datos generalmente informacin realizar la de la memoria de y consiste en en en tomar la Para Basic,

mostrarla de datos

pantalla. Visual

operacin

salida

podemos utilizar el procedimiento MsgBox, cuya sintaxis es como sigue: MsgBox MENSAJE [, ICONO, TTULO] MENSAJE es La cadena que se muestra como salida en la caja de dilogo. ICONO es se refiere al estilo de icono que se va ha utilizar y TTULO es una texto que se mostrar en la barra de ttulo de la caja de dilogo. Por ejemplo: Dim EDAD As Integer EDAD = InputBox(Ingrese su edad?) EDAD = EDAD + 10 MsgBox Dentro de 10 aos su edad ser: & Str(EDAD) Si ejecuta el cdigo anterior e ingresa su edad (en mi caso 29 aos) la salida debe ser similar a la figura siguiente:

Pg. 30

Para crear una

que

pueda

ejecutar

el y

cdigo haga

anterior, click

proceda sobre

a el

nueva

aplicacin

doble

formulario, luego ingrese el cdigo anterior: Private Sub Form_Load() Dim EDAD As Integer EDAD = InputBox(Ingrese su edad?) EDAD = EDAD + 10 MsgBox Dentro de 10 aos su edad ser: & Str(EDAD) End Sub A manera de observacin cabe sealar que la funcin Str() se utiliza para convertir una expresin numrica 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 evala una determinada condicin y en funcin a ello ejecuta uno de entre dos posibles grupos de sentencias. Su sintaxis es la siguiente: Pg. 31

If CONDICIN Then SENTENCIAS_VERDADERAS Else SENTENCIAS_FALSAS End If Si CONDICIN es verdadera Si se es ejecuta falsa el se grupo ejecuta de el

SENTENCIAS_VERDADERAS. grupo de

CONDICIN

SENTENCIAS_FALSAS.

Por ejemplo, el siguiente cdigo 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 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 mltiples alternativas. Su sintaxis es como sigue: If CONDICIN_1 Then Pg. 32 & Str(B)

SENTENCIAS_1 ElseIf CONDICIN_2 Then SENTENCIAS_2 . . . Else SENTENCIAS_FALSAS End If Si CONDICIN_1 es verdadera se ejecuta el grupo de

SENTENCIAS_1, y si es no se cumple, se evalan secuencialmente las condiciones siguientes hasta Else, ejecutndose las

sentencias correspondientes al primer ElseIf cuya condicin sea verdadera. Si todas las condiciones son falsas, se ejecutan las SENTENCIAS_FALSAS correspondientes a Else. Por ejemplo considere el siguiente cdigo, el cual imprime el nombre del mes correspondiente a los nmeros del 1 al 12. Dim N As Integer N = InputBox(Ingrese N?) If N = 1 Then MsgBox Enero ElseIf N = 2 Then ElseIf N = 3 Then ElseIf N = 4 Then ElseIf N = 5 Then : MsgBox Febrero : MsgBox Marzo : MsgBox Abril : MsgBox Mayo Pg. 33

ElseIf N = 6 Then ElseIf N = 7 Then ElseIf N = 8 Then ElseIf N = 9 Then

: MsgBox Junio : MsgBox Julio : MsgBox Agosto : 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 expresin con diferentes valores. Su sintaxis es la siguiente: Select Case EXPRESIN_TEST Case EXPRESIN_1 SENTENCIAS_1 Case EXPRESIN_2 SENTENCIAS_2 . . . Case Else SENTENCIAS_FALSAS End Select Pg. 34

En

este

caso

se

comprueba

el

valor

de

EXPRESIN_TEST

frente a la lista expresiones EXPRESIN_1, EXPRESIN_2, . . . y as sucesivamente, y busca el primer Case que incluya el valor evaluado en EXPRESIN_TEST, ejecutando a continuacin el bloque de sentencias correspondiente. Si no existe un valor igual a EXPRESIN_TEST, entonces se ejecuta las SENTENCIAS_FALSAS

correspondientes al Case Else. A manera de ejemplo vamos a codificar el programa de la seccin anterior el cual imprime el nombre del mes

correspondiente a los nmeros del 1 al 12. Pero en esta vez utilizaremos la estructura Select Case (compare con cual de ambas estructuras es ms cmodo trabajar). Dim N As Integer N = InputBox(Ingrese N?) Select Case N Case 1 Case 2 Case 3 Case 4 Case 5 Case 6 Case 7 Case 8 Case 9 : MsgBox Enero : MsgBox Febrero : MsgBox Marzo : MsgBox Abril : MsgBox Mayo : MsgBox Junio : MsgBox Julio : MsgBox Agosto : MsgBox Setiembre Pg. 35

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 tambin 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 = 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 Pg. 75

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 aplicacin que permita realizar consultas acerca de un determinado curso. La relacin de cursos se presentar mediante un cuadro combinado, del cual el usuario debe seleccionar el curso de su inters y en seguida se presentar el nombre del profesor encargado del curso (teora), el nombre del jefe de prctica (laboratorio), as como los horarios de teora y de laboratorio,

respectivamente.

Pg. 76

Para el desarrollo de la presente aplicacin proceda a ubicar los siguientes controles en el formulario: 1 etiqueta 1 cuadro de texto 1 cuadro combinado 1 botn de comando En seguida proceda a establecer las propiedades segn se indica: Form1 Nombre BorderStyle Caption FrmConsultaCursos 3-Fixed Dialog Consulta de cursos

Pg. 77

Label1 Nombre Caption Text1 Nombre MultiLine ScrollBars Text Combo1 Nombre Text Style Command1 Nombre Caption CmdSalir &Salir 2-Dropdown List CboCursos TxtCurso True 2-Vertical LblCursos Cursos:

Seguidamente proceda a ingresar el cdigo que se indica a continuacin: 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 Pg. 78

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) = Crdoba 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) = Crdoba Saavedra, Javier Matriz(5, 2) = Crdoba 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 Pg. 79

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 teora: & _ Matriz(CboCursos.ListIndex, 0) H_TEORIA = Horario de teora: & _ Matriz(CboCursos.ListIndex, 1) P_LAB = Jefe de prctica: & _ 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 combinacin de retorno de carro y avance de lnea, es equivalente a Chr(13) + Chr(10). Para este en ejemplo memoria en RAM particular mediante el hemos uso almacenado de un la

informacin

arreglo

bidimensional (Matriz).

Pg. 80

Cronmetro Un cronmetro sirve para controlar el tiempo transcurrido desde el inicio de una accin.

Propiedad Interval

Descripcin Especifica el nmero de milisegundos que se esperar para disparar el evento Timer.

El

control

Cronmetro

responde

al

evento

Timer,

cuya

descripcin es:

Evento Timer Ocurre cuando en

Descripcin el la nmero de milisegundos Interval ha

especificado transcurrido.

propiedad

A

manera

de

ejemplo

vamos

a

desarrollar

la

siguiente

aplicacin que simula el funcionamiento de un reloj digital.

Pg. 81

Para el desarrollo de la presente aplicacin proceda a ubicar los siguientes controles sobre el formulario: 1 etiqueta 1 cuadro de texto 1 cronmetro 1 botn de comando En seguida proceda a establecer las propiedades segn se indica: Form1 Nombre BorderStyle Caption Label1 Nombre Caption Text1 Nombre Text Timer1 Nombre Interval Command1 Nombre Caption CmdTerminar &Terminar Pg. 82 Timer1 500 TxtHora LblHora Hora FrmReloj 3-Fixed Dialog Reloj digital

Seguidamente proceda a ingresar el cdigo que se indica a continuacin: 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 grfico si el control no es lo bastante grande para mostrar la imagen completa.

Propiedad AutoSize Especifica si

Descripcin el su tamao control para ajusta un

automticamente

mostrar

grfico completo. Picture Especifica control. Pg. 83 el archivo de imagen para el

El

evento

que

suele

manejarse

para

este

control

es

MouseMove, cuya descripcin es:

Evento MouseMove

Descripcin Ocurre cuando el usuario mueve el ratn 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 ms rapidez que un cuadro de imagen.

Propiedad Picture Especifica control. Stretch Especifica archivo como el

Descripcin archivo de imagen para el

se para

ajusta que

el

tamao dentro

del del

grfico

quepa

control imagen.

Para MouseMove.

este

control

tambin

se

suele

manejar

el

evento

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

La posicin ms a la izquierda se corresponde con el valor mnimo, la posicin ms a la derecha con el valor mximo, y cualquier otra posicin es un valor entre ellos dos.

Propiedad Max

Descripcin Especifica el valor mximo que puede tomar la propiedad Value.

Min

Especifica el valor mnimo que puede tomar la propiedad Value.

LargeChange

Especifica en cuanto cambiar el valor de la propiedad Value cuando el usuario haga click antes o despus 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 Change

Descripcin Ocurre inmediatamente despus que el cuadrado de desplazamiento ha sido movido.

Scroll

Ocurre mientras el cuadrado de desplazamiento est siendo movido (este evento slo ocurre cuando el cuadrado es arrastrado).

Barras de desplazamiento vertical Pg. 85

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 posicin ms hacia arriba se corresponde con el valor mnimo, la posicin ms hacia abajo se corresponde con el valor mximo, y cualquier otra posicin es un valor entre ellos dos. Las propiedades y eventos de las barras de desplazamiento horizontal y vertical son anlogas. Como ejemplo, vamos a construir una aplicacin 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 aplicacin proceda a ubicar los siguientes controles en el formulario: 3 etiquetas

Pg. 86

3 barras de desplazamiento horizontal 1 cuadro de imagen En seguida proceda a establecer las propiedades segn se indica: Form1 Nombre BorderStyle Caption Label1 Nombre Caption Label2 Nombre Caption Label3 Nombre Caption HScroll1 Nombre LargeChange Max Min SmallChange Value HScroll2 HSRojo 10 255 0 1 255 LblAzul Azul LblVerde Verde LblRojo Rojo FrmColores 3-Fixed Dialog Colores

Pg. 87

Nombre LargeChange Max Min SmallChange Value HScroll3 Nombre LargeChange Max Min SmallChange Value Picture1 Nombre BackColor

HSVerde 10 255 0 1 0

HSAzul 10 255 0 1 0

PicFondo &H000000FF&

Seguidamente proceda a ingresar el cdigo que se indica a continuacin: 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() Pg. 88

PicFondo.BackColor = RGB(HSRojo, HSVerde, HSAzul) End Sub En el cdigo 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 vlida en tiempo de ejecucin. Utilice este control para presentar una lista de todas las unidades vlidas del sistema.

Propiedad Drive

Descripcin Especifica la unidad seleccionada en tiempo de ejecucin.

Este control responde al evento Change, cuya descripcin es la siguiente:

Evento Change

Descripcin Ocurre cuando el usuario hace click sobre la unidad Change que desea seleccionar. si se El evento la tambin ocurre selecciona

unidad mediante el teclado.

Cuadro de lista de directorios Pg. 89

Un cuadro de lista de directorios muestra directorios y rutas de acceso en tiempo de ejecucin. Utilice este control para mostrar una lista jerrquica de directorios.

Propiedad Path

Descripcin Especifica la ruta de acceso actual.

Un

cuadro

de

lista

de

directorios

tambin

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 ejecucin. Utilice este control para mostrar una

lista de los archivos seleccionados por tipo.

Propiedad Path Pattern

Descripcin Especifica la ruta de acceso actual. 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

aplicacin

que

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

puede seleccionar la unidad actual de trabajo, la carpeta y el archivo y poder visualizar su contenido (en este caso archivos grficos *.JPG).

Para el desarrollo de la presente aplicacin 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 segn se indica: Form1 Nombre Caption FrmVisor Visor Pg. 91

Label1 Nombre Caption Label2 Nombre Caption Label3 Nombre Caption Label4 Nombre Caption Drive1 Nombre Dir1 Nombre File1 Nombre Pattern Image1 Nombre Stretch ImgVista True File1 *.JPG Dir1 Drive1 LblVista Vista previa LblArchivo Archivo LblCarpeta Carpeta LblUnidad Unidad

Seguidamente proceda a ingresar el cdigo que se indica a continuacin: Private Sub Drive1_Change() Pg. 92

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 instruccin On Error activa una rutina de control de errores y especifica la ubicacin de la misma en un

procedimiento. LA FUNCIN MSGBOX A menudo habr situaciones en las cuales tendr que

presentar algn mensaje (por ejemplo una pregunta) y en funcin

Pg. 93

de

la

respuesta

del

usuario

se

ejecutar

una

determinada

accin.

La

funcin

MsgBox()

muestra

un

cuadro

de

dilogo

predefinido y retorna un valor de tipo entero dependiendo del botn seleccionado por el usuario. Su sintaxis es de la

siguiente forma: VALOR = MsgBox(MENSAJE [, BOTN + ICONO, TTULO]) Donde MENSAJE se refiere a una expresin de cadena que se muestra como mensaje en el cuadro de dilogo. BOTN es una expresin numrica que se refiere al tipo y cantidad de botones a utilizar. ICONO es una expresin numrica que se refiere al estilo de icono que se va ha utilizar. TTULO es una texto que se mostrar en la barra de ttulo de la caja de dilogo. Tipo de botn Valor 0 Aceptar Botn vbOKOnly Nombre

Pg. 94

1 2 3 4 5

Aceptar y Cancelar Anular, Reintentar, Ignorar S, No y Cancelar S y No Reintentar y Cancelar

vbOKCancel vbAbortRetryIgnore vbYesNoCancel vbYesNo vbRetryCancel

Tipo de icono Valor 16 32 48 64 Icono Mensaje crtico Signo de interrogacin Signo de exclamacin Signo de informacin Nombre vbCritical vbQuestion vbExclamation vbInformation

Valores retornados Valor 1 2 3 4 5 6 7 Aceptar Cancelar Anular Reintentar Ignorar S No Botn vbOK vbCancel vbAbort vbRetry vbIgnore vbYes vbNo Nombre

Como ejemplo vamos a construir un formulario que presente un botn Salir, de tal forma que cuando el usuario pulse dicho botn se presente el siguiente mensaje:

Pg. 95

En

caso

de

que

el

usuario

elija

la

opcin

S,

la

aplicacin debe terminar. En caso contrario, es decir si el usuario elige la opcin No, se debe proseguir con la

aplicacin. Para el desarrollo del presente ejemplo, proceda a ubicar sobre el formulario un botn de comando (CmdSalir), a

continuacin ingresar el siguiente cdigo: Private Sub CmdSalir_Click() Dim RESP As Integer RESP = MsgBox(Desea terminar la aplicacin?, _ vbQuestion + vbYesNo, Pregunta) If RESP = vbYes Then End End If End Sub Para ilustrar mejor el uso de la funcin MsgBox() vamos a desarrollar la siguiente aplicacin que permite mostrar los diferentes tipos de botones e iconos generados por la funcin.

Pg. 96

Para ello proceda a ubicar los siguientes controles en el formulario: 2 cuadros de lista 1 botn de comando En seguida proceda a establecer las propiedades segn se indica: Form1 Nombre BorderStyle Caption List1 Nombre List2 Nombre Command1 LstIcono LstBoton FrmFuncionMsgBox 3-Fixed Dialog Funcin MsgBox

Pg. 97

Nombre Caption

CmdMensaje &Mensaje

Seguidamente proceda a ingresar el cdigo que se indica a continuacin: 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 crtico LstIcono.AddItem Signo de interrogacin LstIcono.AddItem Signo de exclamacin LstIcono.AddItem Signo de informacin 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

Pg. 98

CAPTULO 5

EL FORMULARIOUn formulario es un objeto contenedor que sirve para

disear la interfaz de usuario. En el formulario se colocan los controles para que el usuario pueda interactuar con la

aplicacin de una manera fcil e intuitiva.

Los formularios tienen sus propias propiedades, eventos mtodos con los que se puede controlar su apariencia

y y

comportamiento, muchos de los cuales ya han sido utilizados en las aplicaciones de los captulos anteriores y que a

continuacin pasamos a describir.

Pg. 99

Propiedad AutoRedraw Especifica si

Descripcin se activa el redibujado

automtico del formulario. BackColor BorderStyle Especifica el color de fondo del formulario. Especifica formulario. Caption Especifica el texto que se muestra en la un estilo de borde para el

barra de ttulo 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 botn Maximizar. MinButton Especifica si el formulario tiene un botn Minimizar. Picture Especifica el archivo de imagen que se va ha mostrar como fondo para el formulario. StartUpPosition Especifica la posicin 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). Pg. 100

Nota Un twip es una unidad independiente de la pantalla

utilizada para asegurar que la colocacin y la proporcin de los elementos de la pantalla de la aplicacin 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 centmetro.

Los

eventos

a

los

que

responde

un

formulario

son

los

siguientes:

Evento Activate

Descripcin 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

botn

derecho del ratn sobre el formulario. QueryUnload Ocurre descarga Unload). Resize Ocurre cuando se muestra primero el antes del de iniciarse el proceso del de

formulario

(antes

evento

formulario o se cambian sus dimensiones. Unload Ocurre cuando el formulario se descarga de la memoria.

Pg. 101

Los mtodos que se pueden utilizar con un formulario son los siguientes:

Mtodo Hide PopupMenu

Descripcin Oculta un formulario. Presenta un men popup en la posicin actual del ratn.

Print Refresh

Imprime un valor sobre el formulario. 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 automticamente.

Como

ejemplo

vamos

a

desarrollar

una

aplicacin

que

utilice dos formularios. Desde el primer formulario el usuario podr ir al segundo formulario y viceversa.

Pg. 102

Para el desarrollo de la presente aplicacin proceda a crear un nuevo proyecto. Seguidamente debe ubicar dos botones de comando en el formulario. Luego establezca las siguientes propiedades: Form1 Nombre Caption Command1 Nombre Caption Command2 Nombre Caption CmdSalir &Salir CmdIr &Ir Form1 Primer formulario

Seguidamente procede a ingresar el cdigo que se muestra a continuacin: Private Sub CmdIr_Click() Form2.Show Form1.Hide End Sub Private Sub CmdSalir_Click() End End Sub

Pg. 103

Luego debe aadir un formulario adicional al proyecto. Para tal fin, seleccione el men Proyecto y elija la opcin Agregar formulario.

Del

cuadro

de

dilogo

que

se

presenta

elija

el

icono

Formulario y haga click en el botn Abrir, tal como se indica en la figura. En ese instante se aadir un nuevo formulario al proyecto. Luego, proceda a ubicar un botn de comandos en el formulario que acaba de aadir y establezca las siguientes

propiedades: Form2 Nombre Caption ControlBox Form2 Segundo formulario False

Pg. 104

Command2 Nombre Caption CmdVolver &Volver

En seguida proceda a ingresar el cdigo que se indica a continuacin: Private Sub CmdVolver_Click() Form1.Show Form2.Hide End Sub

ESTILOS DE FORMULARIO Visual Basic cuenta con seis diferentes estilos de

formulario, cuya descripcin es la siguiente:

Valor 0 1 None

Estilo

Descripcin No presenta ningn borde. Puede incluir un Men de control, una Slo Barra de y los ttulo un botn cambiar botones , un botn tamao y Maximizar mediante Minimizar. de Maximizar

Fixed Single

puede

Minimizar. 2 Sizable (Predeterminado). Puede cambiar de tamao mediante cualquiera de los elementos opcionales de borde indicados para Fixed Single.

Pg. 105

Valor 3

Estilo Fixed Dialog

Descripcin Puede incluir un Men de control y una Barra de ttulo, pero no los botones Maximizar ni Minimizar. No puede cambiar de tamao.

4

Fixed ToolWindow

Slo muestra el botn Cerrar y el texto de la barra de ttulo aparece con un tamao de fuente reducido. No puede cambiar su tamao.

5

Sizable ToolWindow

Slo muestra el botn Cerrar y el texto de la barra de ttulo aparece con un tamao de fuente reducido. Puede cambiar de tamao.

Como

ejemplo

vamos

a

desarrollar

una

aplicacin

que

permita representar los diferentes estilos de formulario de Visual Basic.

Pg. 106

Para el desarrollo de la presente aplicacin 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 continuacin: Form1 Nombre Caption BorderStyle List1 Nombre List LstTipoForm 0-None 1-Fixed Single 2-Sizable 3-Fixed Dialog 4-Fixed ToolWindow 5-Sizable ToolWindow Command1 Nombre Caption Command2 Nombre Caption CmdSalir &Salir CmdMostrar &Mostrar FrmPrincipal Estilos de formulario 3-Fixed Dialog

Pg. 107

Seguidamente procede a ingresar el cdigo que se muestra a continuacin: 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 Pg. 108

Private Sub LstTipoForm_DblClick() Call CmdMostrar_Click End Sub Private Sub CmdSalir_Click() End End Sub Seguidamente proceda a aadir los formularios para las diferentes opciones del cuadro de lista. Cambie los nombres de los formularios segn se indica:

Formulario Form2 Form3 Form4 Form5 Form6 Form7 FrmNone

Nombre

FrmFixedSingle FrmSizable FrmFixedDialog FrmFixedToolWindow FrmSizableToolWindow

Luego debe activar el formulario FrmNone, ubicar un botn de comandos sobre el mismo y establecer las siguientes

propiedades: Form2 Nombre BorderStyle Caption FrmNone 0-None None Pg. 109

Command1 Nombre Caption CmdVolver &Volver

Una vez establecidas las propiedades, proceda a ingresar el cdigo que se muestra a continuacin: Private Sub CmdVolver_Click() Unload Me End Sub Para concluir con el diseo de la aplicacin, simplemente repita el procedimiento anterior para los dems tipos de

formularios. Como mediante habr el podido observar, podemos al mostrar de un formulario modal

mtodo

Show

hacerlo

forma

(vbModal) o no modal (opcin 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 mdulos estndar, los cuales son contenedores de procedimientos y declaraciones a los que tienen acceso otros mdulos de la aplicacin.

Pg. 110

Como ejemplo vamos a construir la siguiente aplicacin, la cual enva un mensaje de texto del primer formulario hacia el segundo formulario.

Para el desarrollo de la presente aplicacin proceda a crear un nuevo proyecto y aada un formulario adicional, de tal forma que tenga los formularios Form1 y Form2. Seguidamente ubicar los siguientes controles:

Form1 Text1 Command1 Command2 TxtMensaje1 CmdEnviar CmdSalir Text1 Command1 Command2

Form2 TxtMensaje2 CmdRecibir CmdVolver

A continuacin proceda a ingresar el cdigo que se indica para el primer formulario (Form1):

Pg. 111

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 cdigo siguiente: Private Sub CmdRecibir_Click() TxtMensaje2 = Mensaje End Sub Private Sub CmdVolver_Click() Form2.Hide Form1.Show End Sub Seguidamente debe aadir un mdulo estndar al proyecto, para ello, seleccione el Men Proyecto y elija la opcin

Agregar mdulo, se debe presentar un cuadro de dilogo similar a la figura mostrada, en el cual debe dar click en el botn Abrir. Pg. 112

Seguidamente proceda a declarar la variable Mensaje como pblica en la seccin de declaraciones del mdulo que acaba de aadir:

Una

variable

pblica

(Public)

es

una

variable

que

se

declara a nivel de mdulo y se le puede acceder desde cualquier otro mdulo.

Pg. 113

FORMULARIOS MDI Un formulario MDI (Interfaz de Documentos Mltiples) es una ventana que acta como fondo de una aplicacin y es el contenedor hijas). (ventana padre) de otros formularios (ventanas

En una aplicacin MDI pueden haber varias ventanas hijas, pero slo una ventana como padre debe por aplicacin. su Para que una

ventana

acte

hija

tener

propiedad

MDIChild

establecida a True. Como ejemplo vamos a desarrollar una aplicacin MDI que incluya tres ventanas hijas. Para tal fin proceda a crear un nuevo proyecto y seguidamente agregar dos formularios (simples) al mismo.

Pg. 114

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 opcin Agregar formulario MDI, del cuadro de dilogo que se presenta hacer click en el botn Abrir.

A continuacin dar doble click sobre el formulario MDI e ingresar el siguiente cdigo: Private Sub MDIForm_Load() Form1.Show Form2.Show Form3.Show End Sub Pg. 115

Ahora

slo

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

aplicacin. Cabe destacar que en los formularios MDI por lo general no se pueden incluir controles, debido a ello se suele trabajar con mens de opciones o barras de herramientas para indicar alguna accin a realizar.

Pg. 116

CREACIN DE MENS Un men es un conjunto de opciones que se presentan al usuario, entre las cuales debe elegir una de ellas. Dependiendo de la decisin se realizarn una serie de acciones.

Para disear un men cualquiera dar click derecho sobre el formulario y del men emergente que se presenta elegir la

opcin Editor de mens.

Pg. 117

En seguida se ha de presentar el Editor de mens de Visual Basic.

Para

crear

un

men,

tener

en

cuenta

los

siguiente

procedimientos:

Ingresar el Editor de mens. Introducir el ttulo del men en el cuadro de texto Caption,el cual aparecer en la barra de mens.

Introducir un nombre para el men en el cuadro de texto Name,el cual ser utilizado en el cdigo para referirse al men.

Introducir

los

elementos

que

componen

el

men,

para

ello

escriba en los cuadros de texto Caption y Name el ttulo y el nombre del correspondiente elemento del men. Pg. 118

Para diferenciar un elemento del men del propio men, hayque sangrar el ttulo del elemento, para tal fin,

seleccinelo y haga click en el botn flecha hacia la derecha ( ).

Un elemento de men puede ser una orden (si el elementosiguiente aparece sangrado al mismo nivel) o un submen (si el elemento siguiente aparece sangrado un nivel ms).

Utilizando separadores puede agrupar las rdenes en funcinde lo que realizan. Para insertar un separador, escriba un nico guin (-) en el cuadro Caption del Editor de mens. Tiene que especificar tambin un nombre para el separador.

Para aadir un acelerador (una tecla o combinacin de teclasque permiten activar un men), utilizar la propiedad

Shortcut.

La propiedad Checked es til para indicar si una orden estactiva 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 unmomento en el cual no tiene sentido que est activa.

La propiedad Visible es til cuando durante la ejecucin sedesea ocultar un elemento de men.

Cerrar

el

Editor

de

mens,

para

ello

una

vez

que

haya

finalizado su diseo pulse el botn Aceptar.

Pg. 119

Como ejercicio intente construir el men mostrado en la figura anterior.

Caption &Archivo . . . &Artculo . . . &Cliente . . . &Vendedor . . . . . . &Salir &Proceso . . . &Pedido . . . &Facturacin &Reporte . . . &Registro de ventas . . . Catlogo de &artculos . . . . . . &Cliente del mes . . . &Vendedor del mes Ay&uda . . . &Contenido . . . &Indice . . . &Bsqueda . . . . . . &Acerca de

Name MnuArchivo MnuArchivoArticulo MnuArchivoCliente MnuArchivoVendedor MnuArchivoLinea MnuArchivoSalir MnuProceso MnuProcesoPedido MnuProcesoFacturacion MnuReporte MnuReporteRegVentas

ShortCut Ninguno Ninguno Ninguno Ninguno Ninguno Ctrl + X Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno

MnuReporteLinea MnuReporteClienteMes MnuReporteVendMes MnuAyuda MnuAyudaContenido MnuAyudaIndice MnuAyudaBusqueda MnuAyudaLinea MnuAyudaAbout

Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno

Pg. 120

Para

probar

el

men

que

acaba

de

crear,

ingrese

el

siguiente cdigo: Private Sub MnuArchivoArticulo_Click() MsgBox Seleccion la opcin Artculo End Sub Private Sub MnuArchivoCliente_Click() MsgBox Seleccion la opcin Cliente End Sub Private Sub MnuArchivoVendedor_Click() MsgBox Seleccion la opcin 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 aplicacin?, _ vbQuestion + vbYesNo, Pregunta) If RESP = vbYes Then End Else: Cancel = True End If End Sub Pg. 121

Luego

al

ejecutar

su

aplicacin

y

seleccionar

el

men

Archivo, opcin Artculo, el resultado ser similar a la figura mostrada:

Hasta ahora hemos programado la salida de una aplicacin, asociando el cdigo al botn Salir. Sin embargo, cuando el usuario hace click en el botn Cerrar de la barra de ttulo o en la opcin Salir del Men de control del formulario, el cdigo escrito para el botn Salir es ignorado. Para remediar esta situacin, en el ejemplo anterior

cuando el usuario pulsa el botn Salir, se invoca al evento Unload. La palabra al reservada desde Me proporciona se est una forma de el

referirse cdigo.

formulario

donde

ejecutando

Recordar desencadena

que

el el

evento usuario

Unload intenta

del cerrar

formulario el

se

cuando

formulario

mediante cualquiera de las formas descritas anteriormente. Para utilice el determinar parmetro si ocurre Si la descarga es del False formulario ocurre la

Cancel.

Cancel

descarga, si Cancel es True impide que el formulario se quite. CREACIN DE UNA BARRA DE HERRAMIENTAS Pg. 122

Una opciones

barra ms

de

herramientas de un

contiene men, de

botones tal manera

con que

las el

utilizadas

usuario haciendo click en dicho control activara la opcin indicada de una manera ms rpida. Para crear una barra de herramientas debemos utilizar dos controles que no estn en la lista de controles estndar, por tanto debemos agregar dichos controles que se encuentran en el componente Microsoft Windows Common Controls 6.0, tal como se indica a continuacin:

Pg. 123

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

Pg. 124

Se ha de presentar un cuadro de dilogo similar a la figura mostrada:

Activar

la

ficha

Imgenes

y

pulsar

el

botn

Insertar

imagen para seleccionar las imgenes que se incluirn en el control ImageList. Para el a ejemplo, cada uno debe de incluir los ocho de imgenes la barra que de

corresponden herramientas.

botones

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 opcin Propiedades. Del cuadro de dilogo que se presenta en la ficha General establecer las siguientes propiedades:

Pg. 125

Luego,

en

la

ficha

Botones

pulse

el

botn

Insertar

botn. En el cuadro de texto Image se debe indicar un nmero que corresponde al orden de imagen a mostrar.

Pg. 126

El lector debe continuar con este proceso hasta completar los botones restantes, segn:

Index 1 2 3 4 5 6 7 8

ToolTipText Artculo Cliente Vendedor Pedido Facturacin Registro de ventas Catlogo de artculos Ayuda

Image 1 2 3 4 5 6 7 8

Como el cdigo a ejecutar tiene que ser el mismo cuando el usuario elija una opcin del men o de un click sobre un botn 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 cdigo es muy sencillo, ya que slo muestra un mensaje con la opcin seleccionada (esto por razones de simplicidad). Para probar la funcionalidad de la barra de herramientas que acaba de crear ingrese el siguiente cdigo:Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

Pg. 127

Select Case Button.Index Case 1: MsgBox Seleccion la opcin Artculo Case 2: MsgBox Seleccion la opcin Cliente Case 3: MsgBox Seleccion la opcin Vendedor Case 4: MsgBox Seleccion la opcin Pedido Case 5: MsgBox Seleccion la opcin Facturacin Case 6: MsgBox Seleccion la opcin Registro de ventas Case 7: MsgBox Seleccion opcin Catlogo de artculos Case 8: MsgBox Seleccion la opcin Ayuda End Select End Sub

El

evento ButtonClick se dispara cuando el usuario hace

click sobre un botn de la barra de herramientas. La propiedad Index permite identificar el nmero de botn pulsado.

CREACIN 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 aplicacin. 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:

Pg. 128

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.

Pg. 129

El resto de propiedades se establecern mediante cdigo al momento de la carga del formulario. Private Sub MDIForm_Load() Dim I As Integer For I = 1 To 2 StatusBar1.Panels.Add 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 ' Se agregan 2 paneles ms

teclas, la hora y la fecha del sistema con un mnimo de cdigo.

Constante sbrText sbrCaps sbrNum sbrIns sbrScrl sbrTime

Valor 0 1 2 3 4 5

Descripcin (Predeterminado). Texto o mapa de bits. Tecla BLOQ MAYS. Tecla BLOQ NM. Tecla INS. Tecla BLOQ DESPL. Muestra la hora actual con el formato del sistema.

sbrDate

6

Muestra la fecha actual con el formato del sistema. Pg. 130

CREACIN DE UN MEN CONTEXTUAL Un men contextual es un men emergente (flotante) que se muestra sobre un formulario, independiente de la barra de

mens. Para mostrar un men contextual el usuario debe pulsar el botn derecho del ratn sobre el formulario. A menudo querr usar un men contextual para tener acceso a opciones que no se encuentran disponibles en la barra de mens. Para crear un men que no se presente en la barra de mens, haga invisible un elemento de men de nivel superior en tiempo de diseo (asegrese de que la casilla de verificacin Visible del Editor de mens no est activada). Cuando Visual Basic presenta un men emergente, pasa por alto la propiedad Visible del men de nivel superior especificado.

Pg. 131

Para crear el men contextual de la figura, debe ingresar al Editor de mens y aadir lo siguiente:

Caption &Herramientas . . . Calculadora . . . Calendario . . . Solitario MnuTools

Name

Visible

MnuToolsCalc MnuToolsCalen MnuToolsSol

3 3 3

Seguidamente proceda a ingresar el cdigo que se indica a continuacin: 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 End Sub Pg. 132

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 funcin Shell ejecuta un programa ejecutable y devuelve un tipo Variant (Double) que representa la identificacin de la tarea del programa si se ha ejecutado con xito, en caso

contrario devuelve cero.

Pg. 133

CAPTULO 6

CONTROLES ACTIVEXLos controles ActiveX son objetos que no forman parte del conjunto de controles estndar de Visual Basic, sino ms bien han sido desarrollados por terceras personas. Los controles ActiveX existen como archivos independientes con extensin .OCX y deben ser cargados antes de utilizarse. Para ello ingresar al Men Proyecto y elija la opcin

Componentes.

Pg. 134

CONTROL ANIMATION El control Animation permite reproducir archivos de

extensin .AVI que no tengan sonido para crear animaciones. Para agregar este control debe seleccionar el componente

Microsoft Windows Common Controls-2 6.0.

Propiedad AutoPlay

Descripcin Especifica si el archivo AVI se reproducir automticamente al cargarse el control.

Mtodo Close Open Play

Descripcin Cierra el archivo AVI abierto actualmente. Permite abrir el archivo AVI. Reproduce Animation. el archivo AVI en el control

Stop

Termina la reproduccin del archivo AVI.

Como ejemplo vamos a desarrollar un formulario que permita reproducir un archivo AVI, tal como se muestra en la figura:

Pg. 135

Para ello crear un nuevo formulario y agregar un control Animation (Animation1) y dos botones de comando (CmdIniciar y CmdTerminar, respectivamente). Luego ingrese el cdigo 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 dilogo estndar que permiten realizar las operaciones ms comnmente empleadas en el diseo 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.

Pg. 136

Propiedad Color FileName

Descripcin Especifica el color seleccionado. Especifica la ruta y nombre del archivo

seleccionado. Filter Especifica el tipo de archivos que se han de mostrar en un cuadro de dilogo Abrir o Guardar como. FilterIndex Especifica el filtro predeterminado para un cuadro de dilogo Abrir o Guardar como, en caso se est utilizando varios filtros.

Mtodo ShowColor ShowFont ShowHelp ShowOpen ShowPrinter ShowSave

Descripcin Presenta la paleta de colores. Presenta el cuadro de dilogo Fuentes. Presenta la ayuda de Windows. Presenta el cuadro de dilogo Abrir. Presenta el cuadro de dilogo Imprimir. Presenta el cuadro de dilogo Guardar como.

Como

ejemplo

vamos

a

desarrollar

una

aplicacin

que

permite cambiar el color de fondo de un formulario en tiempo de ejecucin. Para ello el usuario debe dar click en el botn 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:

Pg. 137

Para ello crear un nuevo formulario, agregarle un botn de comando (CmdCambiarColor) y un control CommonDialog. Luego

ingresar el siguiente cdigo: Private Sub CmdCambiarColor_Click() CommonDialog1.ShowColor Form1.BackColor = CommonDialog1.Color End Sub Como siguiente ejemplo vamos a desarrollar una aplicacin que permita mostrar el contenido de un archivo JPG. Este deber ser seleccionado por el usuario de un cuadro de dilogo Abrir, tal como se indica en la figura: Pg. 138

Al

hacer

click

en

el

botn

Abrir,

el

archivo

seleccionado debe ser mostrado en el formulario:

Para

el

diseo

de

esta

aplicacin

crear

un

nuevo

formulario y ubicar un botn de comando (CmdAbrirArchivo), un control imagen y un control CommonDialog.

Pg. 139

Seguidamente continuacin:

ingrese

el

cdigo

que

se

indica

a

Private Sub CmdAbrirArchivo_Click() Dim FILTRO As String, FILE As String FILTRO = Imgenes JPEG (*.JPG)|*.JPG CommonDialog1.Filter = FILTRO CommonDialog1.ShowOpen FILE = CommonDialog1.FileName Image1.Picture = LoadPicture(FILE) End Sub

CONTROL MARCHOSO El control Marchoso tiene como funcin 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 FileName

Descripcin Especifica la ruta y nombre del archivo GIF animado.

A manera de ejemplo vamos a disear un formulario que permita mostrar archivos GIF animados.

Pg. 140

Para ello proceda a crear un nuevo formulario y ubicar un botn de comando (CmdVerGIFAnimado), un control Marchoso y un control CommonDialog. Luego, ingresar el siguiente cdigo:

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 cuadrcula la cual permite mostrar datos en forma de celdas. Una celda es la regin formada por la interseccin de una fila y una

columna.

Pg. 141

Para agregar este control debe seleccionar el componente Microsoft Hierarchical FlexGrid Control 6.0 (OLEDB).

Propiedad Col

Descripcin Especifica el nmero de columna de la celda actual.

Cols

Especifica el nmero total de columnas, fijas y no fijas.

FixedCols

Especifica el nmero de columnas fijas. El valor por defecto es 1.

FixedRows

Especifica el nmero de filas fijas. El valor por defecto es 1.

Row

Especifica actual.

el

nmero

de

fila

de

la

celda

Rows

Especifica el nmero total de filas, fijas y no fijas.

Text TextArray

Especifica el contenido de la celda actual. 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 cuadrcula presenta barras de desplazamiento horizontales, verticales o ambas a la vez.

Como

ejemplo

vamos

a

desarrollar

una

aplicacin

que

visualice un cuadrado mgico de orden impar

N . Un cuadrado

mgico se compone de nmeros enteros comprendidos entre 1 y

N 2 . La suma de los nmeros que figuran en cada fila, cadacolumna y cada diagonal son idnticos. Pg. 142

Por ejemplo para nmeros:

N = 5 tenemos el siguiente arreglo de

Un mtodo de construccin del cuadrado consiste en situar el nmero 1 en el centro de la primera fila, el nmero

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 posicin del nmero caiga en una celda ocupada, se elige la casilla situada por debajo del nmero que acaba de ser situado. Para el desarrollo de la presente aplicacin 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 cdigo que se indica: Private Sub TxtN_Change() Pg. 143

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

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 numrica, una combinacin que en ocasiones se

denomina control Spinner. Para agregar un control UpDown debe seleccionar el

componente Microsoft Windows Common Controls-2 6.0.

Propiedad BuddyControl Especifica auxiliar. BuddyProperty Especifica sincronizar auxiliar. Increment la el el

Descripcin control utilizado como

propiedad control

utilizada UpDown con

para su

Especifica un valor que determina la cantidad en que vara la propiedad Value cuando se hace click en los botones del control UpDown.

Max

Especifica el valor mximo del intervalo de desplazamiento del control UpDown.

Min

Especifica el valor mnimo 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

aplicacin

que

permita mostrar el cdigo ANSI de un carcter especificado. Pg. 145

Para

tal

fin

crear

un

nuevo

formulario

y

ubicar

los

siguientes controles: 2 etiquetas (Cdigo ANSI, Carcter), 2 cuadros de texto (TxtANSI, TxtCaracter) y 1 control UpDown. Luego establezca las propiedades que se indican: UpDown1 Nombre BuddyControl BuddyProperty Increment Max Min SyncBuddy UpDown1 TxtANSI Text 1 255 0 True

Seguidamente proceda a transcribir el siguiente cdigo: Private Sub TxtANSI_Change() TxtCaracter = Chr(TxtANSI) End Sub CONTROL MONTHVIEW

Pg. 146

El control MonthView permite al usuario la posibilidad de ver y establecer informacin de fechas mediante una interfaz similar a un calendario. Para agregar este control seleccionar el componente Microsoft Windows Common Controls-2 6.0.

Propiedad Day Month Year Value DayOfWeek

Descripcin Especifica el nmero de da mostrado. Especifica el nmero de mes mostrado. Especifica el nmero de ao mostrado. Especifica la fecha mostrada. Especifica el da de la semana

correspondiente a la fecha mostrada. Week Especifica el nmero de la semana en que cae la fecha mostrada. MultiSelect Especifica si se puede seleccionar un

intervalo contiguo de fechas. MaxSelCount Especifica pueden MultiSelect. SelStart SelEnd MonthColumns MonthRows Especifica los lmite del inferior intervalo y de superior fechas el nmero mximo mediante de la das que

seleccionarse

propiedad

respectivamente seleccionado. Permiten

mostrar

ms

de

un

mes el

simultneamente.

MonthColumns

especifica

nmero de meses que se mostrarn en sentido horizontal. MonthRows especifica el nmero de meses que se mostrarn en sentido vertical. Evento Descripcin

Pg. 147

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

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 cdigo: Private Sub MonthView1_DateClick(ByVal DateClicked As Date) Pg. 148

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 funcin WeekdayName retorna una cadena con el nombre del da de la semana especificado. Requiere como argumento el nmero de da de la semana. La funcin MonthName retorna una cadena con el nombre del mes especificado. Requiere como argumento el nmero de mes. El evento DateClick tiene un parmetro DateClicked que especifica la fecha seleccionada. Puede utilizar este valor (DateClicked) para obtener la fecha en la que el usuario hizo click.

CONTROL CALENDAR Pg. 149

El control Calendar es similar en funcionalidad al control MonthView, pues tambin presenta un calendario. Para agregar este control seleccionar el componente Control Calendar de

Microsoft 9.0.

Propiedad Day Month Year Value

Descripcin Especifica el nmero de da mostrado. Especifica el nmero de mes mostrado. Especifica el nmero de ao mostrado. Especifica la fecha mostrada.

Como ejemplo vamos a desarrollar la aplicacin anterior, pero esta vez haciendo uso de un control Calendar.

Pg. 150

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 cdigo: Private Sub Calendar1_Click() TxtFecha = WeekdayName(Weekday(Calendar1.Value)) & , _ & Str(Calendar1.Day) & de _ & MonthName(Calendar1.Month) & de _ & Str(Calendar1.Year) End Sub La funcin Weekday retorna un nmero entero que representa el da de la semana de una fecha dada. Se utiliza para suplir a la propiedad DayOfWeek la cual no est permitida para el

control Calendar.

Pg. 151

CAPTULO 7

ARCHIVOSUn archivo entre de (fichero) s, es un conjunto como una de informacin en un

relacionada dispositivo duro). Los

almacenada

unidad

almacenamiento almacenados que pueden

secundario en un

(disquete, son en de

disco manera

datos de modo

archivo

permanente

ser

manipulados

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 tambin una extensin de 1 a 3 letras, normalmente son significativas y relativas al contenido del mismo. Por ejemplo: LEAME.TXT MISDATOS.DAT PLANILLA.XLS SHAKIRA.BMP Archivo de texto Archivo de datos Archivo de MS-Excel Archivo de mapa de bits

Pg. 152

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 descripcin

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 descripcin 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 informacin ms simple estara

formado por un carcter. OPERACIONES SOBRE EL SISTEMA DE ARCHIVOS Pg. 153

Para manipular el sistema de archivos de un disco, Visual Basic proporciona las sentencias que a continuacin se

describen. Sentencia Kill Permite eliminar un archivo almacenado en un disco. Su sintaxis es de la forma: Kill NOMBRE_ARCHIVO Donde identifica NOMBRE_ARCHIVO al archivo es una se cadena desea de caracteres Se que

que

borrar.

permiten

caracteres comodn (* y ?). Si el archivo no existe se produce un error. Por ejemplo: Kill C:\TEMP\TEMPO.DAT La instruccin 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 Donde NOMBRE_ACTUAL es una cadena de caracteres que

especifica el nombre actual del archivo y NOMBRE_NUEVO es otra Pg. 154

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 instruccin anterior cambia el nombre del archivo

TEMPO.DAT por el nombre CURSO.DAT. El contenido del archivo permanece inalterado y su localizacin fsica 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 vaca 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: Pg. 155

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 carcter que especifica la nueva unidad de disco. Si el parmetro UNIDAD es una cadena de mltiples caracteres slo se lee la primera letra. Por ejemplo:

ChDrive A OPERACIONES CON ARCHIVOS

Pg. 156

Para

realizar

alguna su

operacin nombre

sobre

un Las

archivo

hay

referenciarlo

mediante

completo.

operaciones

bsicas que se pueden realizar con los archivos son:

Abrir, preparar un archivo para hacer referencia a l. Escribir, introducir un elemento de informacin a un archivo. Leer, obtener un elemento de informacin de un archivo. Modificar, alterar un elemento de informacin ya existente enun archivo.

Cerrar, evitar cualquier otra referencia al archivo en tantono se le abra otra vez.

TIPOS DE ARCHIVOS Los tipos de archivos dependen del modo como estn

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 continuacin pasamos a describir cada uno de ellos en forma detallada. ARCHIVOS DE ACCESO SECUENCIAL

Pg. 157

En

un

archivo

de

acceso

secuencial

los

registros

se

almacenan siguiendo una a otro, segn el orden en que son ingresados. Cuando se lee la informacin, 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 continuacin. Sentencia Open Permite abrir un archivo. La sintaxis para esta sentencia es la siguiente: Open NOMBRE_ARCHIVO For MODO As # NMERO_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 Output Escritura de

Descripcin datos. Si el archivo existe, su

contenido actual se destruye. Si el archivo no existe, se crea. Append Aadir datos. Los datos son aadidos 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 parmetro NMERO_ARCHIVO es un entero cuyo valor debe estar comprendido entre 1 y 511. Este nmero ser asociado al Pg. 158

nombre

del

archivo

mientras

ste

permanezca

abierto.

Para

obtener el nmero del siguiente archivo disponible se utiliza la funcin FreeFile(). Como ejemplo suponga que se requiere abrir el archivo

DEMO.DAT ubicado en la carpeta C:\DATA, la instruccin sera 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 # NMERO_ARCHIVO, LISTA_DE_EXPRESIONES Donde NMERO_ARCHIVO es el nmero utilizado cuando el

archivo fue abierto. LISTA_DE_EXPRESIONES es un conjunto de expresiones (numricas, de cadena, de fecha, etc.) separadas por punto y coma (;) que sern escritas en el archivo. La sentencia Print escribe en el archivo una imagen de los datos tal y como se habran visualizado sobre el formulario con la sentencia Print. Por ejemplo: Dim N1 As Integer N1 = FreeFile()

Pg. 159

Open C:\DATA\DEMO.DAT For Output As # N1 Print # N1, Visual Basic es fcil; , ; Date() Al ejecutarse el cdigo anterior se escribira en el

archivo la siguiente informacin: Visual Basic es fcil, 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 # NMERO_ARCHIVO, LISTA_DE_EXPRESIONES Donde NMERO_ARCHIVO es el nmero utilizado cuando el

archivo fue abierto. LISTA_DE_EXPRESIONES es un conjunto de expresiones (numricas, de cadena, de fecha, etc.) separadas por punto y coma (;) que sern escritas en el archivo. La sentencia Write inserta comas (,) entre las expresiones de la LISTA_DE_EXPRESIONES, por tanto no es necesario poner delimitadores explcitamente como en el caso de la sentencia Print. Cuando se utiliza la sentencia Write para escribir

informacin en un archivo, se siguen distintas convenciones

Pg. 160

universales, de modo que los datos siempre se pueden leer e interpretar correctamente, independientemente de la

configu