Visual Basic 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 Visual Basic PDF

  • CAPTULO 1

    FUNDAMENTOS

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

    Pg. 1

  • 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 Barra de herramientas Cuadro de herramientas Diseador de formularios Explorador de proyectos Ventana de propiedades Posicin del formulario Mens contextuales Barra de mens

    Pg. 3

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

    Puntero

    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 men emergente que presenta rdenes especficas

    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 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 ver como se realiza esto, siga los pasos del

    siguiente ejemplo para crear una aplicacin sencilla que

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

    siguiente muestra las propiedades del botn de comando y

    podemos ver que la propiedad Caption tiene el valor Command1.

    Pg. 10

  • Puede cambiar el valor de cualquier propiedad

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

    Visual 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 propiedades representan las caractersticas del

    objeto. Hay propiedades particulares, como Caption que la

    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 que maneja dicho objeto. Esto permite

    manipular los objetos como unidades bsicas, 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 Objeto Frm Formulario

    Fra Marco

    Lbl Etiqueta

    Txt Cuadro de texto

    Cmd Botn de comando

    Chk Casilla de verificacin

    Opt Botn de opcin

    Lst Cuadro de lista

    Cbo Cuadro combinado

    Tim Cronmetro

    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 Cuadrcula

    Pg. 20

  • Gra Grfico

    Ctr Control (se utiliza en procedimientos cuando

    el tipo de control es desconocido)

    CAPTULO 3

    EL LENGUAJE

    Visual 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

    Pg. 21

    Los datos con los que trabajaremos probablemente incluyan

    informacin relacionada con nmeros, dinero, nombres,

  • 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 Descripcin Rango Integer Entero (2 bytes) -32768 a 32767

    Long Entero largo (4 bytes) -2147483648 a

    2147483647

    Single Punto flotante de simple

    precisin (4 bytes)

    -3.40E+38 a

    3.40E+38

    Double Punto flotante de doble

    precisin (8 bytes)

    -1.79D+308 a

    1.79D+308

    Currency Monetario (8 bytes) +/-

    922337203685477.5807

    Byte Carcter (1 byte) 0 a 255

    String Cadena de caracteres (1

    byte por carcter)

    Aproximadamente

    hasta 64K (65400

    caracteres)

    Boolean Lgico (2 bytes) True o False

    Date Fecha/Hora (8 bytes) 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 22

    Pg. 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 que puede ser de hasta 255

    caracteres. Para la construccin de 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 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 ejecucin de un programa. Para declarar una

    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 son smbolos que indican cmo sern

    manipulados los operandos. Los operandos son los datos

    (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

    Mod Resto de una divisin entera

    + - Suma y resta

    Operadores relacionales

    Operador Significado = Igual que

    Diferente que < Menor que > Mayor que Mayor o igual que

    Operadores lgicos

    Operador Significado Not Negacin

    And Conjuncin

    Or Disyuncin inclusiva

    Xor Disyuncin exclusiva

    Eqv Equivalencia (opuesto a Xor)

    Imp Implicacin (falso si primer operando

    verdadero y segundo operando falso)

    Pg. 26

  • Operadores de cadenas de caracteres

    Operador Significado

    & Concatenacin

    Like Compara dos cadenas de caracteres

    SENTENCIAS

    Una sentencia es una lnea de cdigo que indica una o ms

    operaciones a realizar. Una lnea 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 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

    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 consiste en tomar la

    informacin de la memoria y mostrarla en pantalla. Para

    realizar la operacin de salida de datos en Visual Basic,

    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 que pueda ejecutar el cdigo anterior, proceda a

    crear una nueva aplicacin y haga doble click sobre el

    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 se ejecuta el grupo de

    SENTENCIAS_VERDADERAS. Si CONDICIN es falsa se ejecuta el

    grupo de 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 & 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 mltiples alternativas. Su sintaxis es como sigue:

    If CONDICIN_1 Then

    Pg. 32

  • 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 : MsgBox Febrero ElseIf N = 3 Then : MsgBox Marzo ElseIf N = 4 Then : MsgBox Abril ElseIf N = 5 Then : MsgBox Mayo

    Pg. 33

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

    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

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

    continuacin:

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

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

    antes de que este finalice.

    Por ejemplo, el siguiente cdigo imprime los cuadrados de

    los nmeros enteros del 1 al 25.

    Dim C As Integer

    For C = 1 To 25

    Print C

    Next

    Para que este cdigo funcione correctamente debe

    establecer la propiedad AutoRedraw del formulario a True.

    Estructura While . . . Wend

    Pg. 37

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

    nmero de iteraciones no se conoce por anticipado y el cuerpo

  • del bucle se repite mientras se cumple una determinada

    condicin. Su sintaxis es la siguiente:

    While CONDICIN

    SENTENCIAS_REPETITIVAS

    Wend

    La estructura While . . . Wend evala la CONDICIN en cada

    iteracin y si el resultado es verdadero contina su ejecucin.

    El bucle termina cuando CONDICIN es falsa.

    A manera de ejemplo, considere el siguiente cdigo, el

    cual imprime en pantalla la suma de los primeros nmeros

    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 condicin

    dada sea cierta, o hasta que una condicin dada sea cierta. La

    Pg. 38

  • condicin puede ser verificada antes o despus de ejecutarse el

    cuerpo del bucle. Su sintaxis es:

    Formato 1: Do [While/Until] CONDICIN

    SENTENCIAS_REPETITIVAS

    [Exit Do]

    Loop Formato 2: Do

    SENTENCIAS_REPETITIVAS

    [Exit Do]

    Loop [While/Until] CONDICIN

    Esta estructura (como se puede observar en ambos formatos)

    permite realizar varias estructuras diferentes dependiendo si

    la condicin de terminacin 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

    Pg. 39 Loop While C

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

    Sentencia GoTo Transfiere el control a una lnea especfica de cdigo,

    identificada por una etiqueta o por un nmero de lnea. Su

    sintaxis es:

    GoTo ETIQUETA/NUMERO_LNEA

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

    programacin.

    Por ejemplo podra escribir un bucle para imprimir los

    cuadrados de los nmeros enteros del 1 al 25.

    Dim X As Integer

    X = 0

    LABEL1:

    X = X + 1

    Print X ^ 2

    If X < 25 Then GoTo LABEL1

    Pg. 40

  • Un uso abusivo de la sentencia GoTo da lugar a cdigos

    difciles de interpretar y de mantener. Por ello, se recomienda

    su uso solamente en ocasiones excepcionales. La tarea que vaya

    a desempear 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 coleccin finita de datos del mismo tipo, que

    comparten un nombre comn, a los que se puede acceder por la

    posicin (ndice) que ocupa cada uno de ellos dentro del

    arreglo. Cada elemento del arreglo es una variable que puede

    contener un nmero o una cadena de caracteres, dependiendo del

    tipo de arreglo que se declare.

    Los arreglos en Visual Basic se clasifican en estticos y

    dinmicos.

    Arreglos estticos Son aquellos arreglos cuyo tamao no puede cambiar en

    tiempo de ejecucin. La declaracin de un arreglo esttico se

    puede realizar mediante la siguiente sintaxis:

    Dim NOMBRE_ARREGLO(DIMENSONES) As TIPO

    Pg. 41

  • Donde DIMENSIONES es una lista de nmeros, separados por

    comas y que definen las dimensiones del arreglo. Esta lista

    puede ser de la siguiente forma:

    DIMENSIN_1, DIMENSIN_2, DIMENSIN_3, . . ., DIMENSIN_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 precisin.

    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 numeracin de los elementos de un

    arreglo por defecto comienza en cero, para hacer que la

    Pg. 42

  • numeracin comience en 1, debe ingresar la siguiente orden en

    la seccin de Declaraciones del mdulo de formulario:

    Luego, para declarar los mismos arreglos de los casos

    anteriores, las sentencias seran 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 consideracin del lector.

    Arreglos dinmicos Son aquellos arreglos en los que su tamao puede definirse

    o modificarse en tiempo de ejecucin. Para declara una arreglo

    dinmico utilice la siguiente sintaxis:

    Dim NOMBRE_ARREGLO() As TIPO

    Para definir el tamao del arreglo utilizar la siguiente

    sintaxis:

    Pg. 43

  • ReDim NOMBRE_ARREGLO(NMERO_ELEMENTOS)

    Cada vez que se ejecuta la sentencia ReDim, todos los

    valores almacenados en el arreglo se pierden. Para definir o

    cambiar el tamao del arreglo conservando los valores del mismo

    use la siguiente sintaxis:

    ReDim Preserve NOMBRE_ARREGLO(NMERO_ELEMENTOS)

    Para liberar el espacio de memoria utilizado por arreglos

    dinmicos que ya no son tiles, utilizar la sintaxis:

    Erase NOMBRE_ARREGLO

    La orden Erase asigna cero a cada elemento de los arreglos

    numricos y nulo () a cada elemento de los arreglos de cadena

    de caracteres.

    A manera de ejemplo considere el siguiente cdigo que

    declara y hace uso de un arreglo dinmico:

    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

    Pg. 44

  • REGISTROS

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

    una coleccin de datos de diferentes tipos, conocidos como

    campos, los cuales se encuentran evidentemente relacionados.

    Un registro slo se puede ser creado en la seccin de

    declaraciones de un mdulo. La sintaxis correspondiente es:

    Private Type NOMBRE_REGISTRO

    DECLARACIONES_DE_LOS_MIEMBROS

    End Type

    Por ejemplo considere el siguiente cdigo 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

    Pg. 45

  • 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 prrafo anterior se pueden escribir

    de una manera ms fcil, ms legible y ms 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 bsicos en

    programacin. A continuacin sern estudiadas detalladamente.

    Declaracin de una funcin

    Pg. 46

  • Una funcin es un procedimiento que cuando se ejecuta

    devuelve un nico resultado al procedimiento que la invoc. La

    sintaxis correspondiente a la declaracin de una funcin es:

    Function NOMBRE_FUNCIN([LISTA_PARMETROS]) [As TIPO]

    SENTENCIAS

    [NOMBRE_FUNCIN = VALOR_RETORNADO]

    [Exit Function]

    End Function

    Donde LISTA_PARMETROS es una secuencia de variables

    separadas por comas que se corresponden con los argumentos

    pasados cuando es invocada la funcin.

    Para especificar el tipo de datos que ser retornado por

    la funcin utilice la clusula opcional As TIPO, el tipo es

    Variant por omisin.

    El valor retornado por la funcin es almacenado en su

    propio nombre, es decir en NOMBRE_FUNCIN, que acta como

    variable dentro del cuerpo de la funcin. Si no se efecta esta

    asignacin el valor devuelto ser cero si la funcin es de tipo

    numrica, nulo () si la funcin es de tipo cadena, o vaco

    (Empty) si la funcin es de tipo Variant.

    La clusula opcional Exit Function permite salir de una

    funcin antes de que la funcin finalice, en caso sea esto

    necesario.

    Pg. 47

  • La sintaxis para la llamada a una funcin es de la

    siguiente forma:

    VARIABLE = NOMBRE_FUNCIN([LISTA_ARGUMENTOS])

    Donde LISTA_ARGUMENTOS es una secuencia de constantes,

    variables o expresiones separadas por comas. El nmero de

    argumentos debe ser igual al nmero de parmetros de la

    funcin. Los tipos de los argumentos deben coincidir con los

    tipos de sus correspondientes parmetros.

    A manera de ejemplo considere la implementacin de la

    siguiente funcin:

    32)( 2 ++= xxxf

    En la seccin de Declaraciones del mdulo de formulario

    ingrese el siguiente cdigo:

    Function F(X As Double) As Double

    F = X ^ 2 + 2 * X + 3

    End Function

    Para invocar la funcin creada recientemente, codifique

    las siguientes lneas:

    Dim A As Double, RESP As Double

    A = InputBox(Ingrese A?)

    RESP = F(A)

    Pg. 48

  • MsgBox (Str(RESP))

    Paso de argumentos a una funcin El paso de argumentos a una funcin es la forma como se

    ingresan los datos y variables al interior de la funcin 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 parmetro en el cuerpo de la

    funcin, tambin se produce en el argumento correspondiente de

    la llamada a la funcin. Esta forma de pasar los argumentos a

    una funcin es til para funciones que devuelven ms de un

    valor. Por ejemplo, considere la siguiente funcin que calcula

    las races reales de una ecuacin cuadrtica 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)

    Pg. 49

  • RAIZ = True ' Verdadero si hay races reales

    Else

    RAIZ = False ' Falso si no hay races reales

    End If

    End Function

    La llamada a esta funcin se puede realizar de la manera

    que se presenta a continuacin:

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

    End If

    Paso de argumentos por valor

    Cuando se ejecuta una funcin, se podr especificar que el

    valor de un argumento no sea cambiado por esta funcin, pasando

    dicho argumento por valor. Para ello se debe anteponer la

    Pg. 50

  • palabra reservada ByVal a la declaracin del parmetro en la

    cabecera de la funcin. Por ejemplo:

    Function F(ByVal X As Double) As Double

    F = X ^ 2 + 2 * X + 3

    End Function

    La cabecera de la funcin F especifica que X ser pasado

    por valor y no por referencia.

    Funciones recursivas Se dice que una funcin es recursiva si se llama a s

    misma. Por ejemplo la funcin FACTORIAL cuyo cdigo se presenta

    a continuacin 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_PARMETROS])

    Pg. 51

  • SENTENCIAS

    [Exit Sub]

    End Sub

    La explicacin es anloga a la dada para las funciones.

    Sin embargo, un procedimiento no puede ser utilizado en una

    expresin, ya que un procedimiento no retorna ningn valor a

    travs 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 cdigo corresponde a un

    procedimiento que calcula e imprime la suma de los primeros

    nmeros 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

    Pg. 52 End If

  • Next

    MsgBox La suma es S= & Str(S)

    End Sub

    La llamada a este procedimiento podra ser de la forma:

    Call SUMA_IMPAR(25)

    Pg. 53

  • CAPTULO 4

    USO DE LOS CONTROLES

    Los controles son aquellos objetos que se encuentran

    dentro de un contenedor y que permiten la interaccin entre el

    usuario y la aplicacin, ya sea para manipular datos y/o

    ejecutar tareas.

    En Visual Basic, los controles suelen ser agrupados en

    tres categoras:

    Controles bsicos Controles complementarios Controles externos Los controles bsicos 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 verificacin, un cuadro

    combinado o un cronmetro.

    Los controles externos se refieren a aquellos controles

    creados por terceros. Este tipo de controles son llamados

    ActiveX.

    Pg. 54

  • CONTROLES BSICOS

    Los controles bsicos lo conforman las etiquetas, cuadros

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

    se puede implementar con slo estos tres objetos.

    Etiqueta Una etiqueta es un control que permite presentar texto de

    solo lectura. Se utiliza para mostrar ttulos 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 ejecucin.

    Propiedad Descripcin

    Alignment Especifica la forma como se alinear el texto.

    AutoSize Especifica si se cambia automticamente el tamao 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 ms de una lnea cuando el texto es amplio.

    Pg. 55

  • 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 aplicacin. El valor de un cuadro de texto por

    lo general se asocia a una variable de memoria.

    Propiedad Descripcin

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

    MaxLenght Especifica la longitud mxima (en caracteres) que puede escribirse en el control.

    MultiLine Especifica si el control admitir mltiples lneas.

    PasswordChar Determina si se muestran en el control los caracteres escritos por el usuario o los caracteres de marcador de posicin.

    ScrollBars Especifica si se muestran las barras de desplazamiento horizontales o verticales.

    SelLength Especifica el nmero de caracteres seleccionados.

    SelStart Especifica el inicio del texto seleccionado. Si su valor es 0, el texto seleccionado comienza por el primer carcter.

    SelText Contiene el texto seleccionado.

    Text Contiene el texto introducido en el control. Puede inicializar el contenido en tiempo de diseo.

    Pg. 56

  • Los eventos asociados a un cuadro de texto son los

    siguientes:

    Evento Descripcin

    Change Ocurre cuando se cambia el contenido del control utilizando el teclado o el ratn.

    KeyPress Ocurre cuando se pulsa una tecla.

    Botn de comando Un botn de comando es un control que suele emplearse para

    ejecutar una accin, como cerrar un formulario, imprimir un

    informe, etc.

    Propiedad Descripcin

    Cancel Especifica si el control responder a la tecla ESC, por lo general para terminar la aplicacin.

    Caption Muestra un ttulo para el control.

    Default Especifica si el control responder a la tecla ENTRAR, sin importar la ubicacin 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 estndar (estilo estndar de Windows) o grfica (con una imagen personalizada).

    Pg. 57

  • Los botones de comando suelen responder al evento Click,

    cuya descripcin es:

    Evento Descripcin

    Click Ocurre cuando el usuario hace click sobre el control.

    A manera de ejemplo vamos a desarrollar la siguiente

    aplicacin. Esta consiste en un cajero automtico 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 aplicacin que

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

    nmero de billetes a utilizar.

    Para el desarrollo de la presente aplicacin proceda a

    ubicar los siguientes controles en el formulario:

    6 etiquetas

    Pg. 58

  • 6 cajas de texto

    3 botones de comando

    Una vez ubicados los controles, establezca las propiedades

    segn se indica:

    Form1 Nombre FrmCajero BorderStyle 3-Fixed Dialog Caption Cajero automtico 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

    Pg. 59

  • 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

    Pg. 60

  • Nombre CmdAceptar Caption &Aceptar Command2 Nombre CmdLimpiar Caption &Limpiar Command3 Nombre CmdSalir Caption &Salir

    Para aadir cdigo a la aplicacin haga doble click sobre

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

    Pg. 61

  • MsgBox Cantidad a retirar debe ser mltiplo de 10

    TxtCantidad =

    TxtCantidad.SetFocus

    End If

    End Sub

    Luego, haga doble click sobre el botn Limpiar y aada

    el siguiente cdigo:

    Private Sub CmdLimpiar_Click()

    TxtCantidad =

    TxtB200 =

    TxtB100 =

    TxtB50 =

    TxtB20 =

    TxtB10 =

    TxtCantidad.SetFocus

    End Sub

    Finalmente dar doble click sobre el botn Salir y aada

    el siguiente cdigo:

    Private Sub CmdSalir_Click()

    End

    End Sub

    Pg. 62

  • En el cdigo anterior hemos utilizado el mtodo 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 bsicos en aplicaciones en las cuales su uso

    facilita o mejora el diseo de la interfaz. Como el lector

    podr verificar, algunos controles son ms adecuados que otros

    dependiendo del tipo de aplicacin que se pretenda desarrollar.

    Marco Un marco es un objeto contenedor que puede utilizarse para

    agrupar casillas de verificacin, botones de opcin, botones de

    comando, etc.

    Propiedad Descripcin

    Caption Muestra un ttulo para el control.

    Casilla de verificacin Una casilla de verificacin se utiliza para alternar entre

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

    verificacin es independiente de las dems ya que cada una

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

    verificacin en grupos para mostrar mltiples opciones entre

    Pg. 63

  • las cuales el usuario puede seleccionar todas las que desee a

    la vez.

    Propiedad Descripcin

    Caption Muestra un ttulo para el control.

    Value Devuelve o establece el estado del control, puede ser: Desactivado (0), Activado (1).

    Las casillas de verificacin suelen responder al evento

    Click.

    Botn de opcin Un botn de opcin se utiliza para alternar entre dos

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

    las casillas de verificacin, la diferencia radica en que de un

    grupo de botones de opcin el usuario slo puede seleccionar un

    nico botn a la vez.

    Propiedad Descripcin

    Caption Muestra un ttulo para el control.

    Value Devuelve o establece el estado del control, puede ser: Desactivado (Falso), Activado (True).

    Los botones de opcin tambin suelen responder al evento

    Click.

    Pg. 64

  • A manera de ejemplo vamos a desarrollar la siguiente

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

    verificacin Convertir a maysculas, todo el texto que haya

    escrito en el cuadro de texto se presentar en maysculas y

    todo texto que escriba a continuacin (mientras la opcin est

    activada) tambin deber aparecer en maysculas.

    Para el desarrollo de la presente aplicacin proceda a

    ubicar los siguientes controles en el formulario:

    1 cuadro de texto

    2 marcos

    3 botones de opcin

    4 casillas de verificacin

    Pg. 65

  • Una vez ubicados los controles, establezca las propiedades

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

    Pg. 66

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

    Una vez establecidas las propiedades, proceda a ingresar

    el cdigo que se indica a continuacin:

    Private Sub OptRojo_Click()

    If OptRojo.Value Then TxtMensaje.ForeColor = RGB(255, 0, 0)

    End If

    Pg. 67 End Sub

  • 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

    Pg. 68

  • 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 funcin RGB() especifica el color que se asigna a la

    propiedad ForeColor.

    La funcin UCase() retorna una cadena de caracteres en

    maysculas.

    Pg. 69

  • 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 ms de

    dichos elementos. Si el nmero de elementos supera el nmero

    que puede mostrarse, se agregar automticamente una barra de

    desplazamiento al control.

    Propiedad Descripcin

    List Contiene los elementos de la lista. Puede definirlos en tiempo de diseo.

    ListCount Especifica el nmero de elementos de la lista. Su valor siempre es uno ms que el mayor valor de ListIndex.

    ListIndex Especifica el nmero 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 nmero de elementos seleccionados.

    Selected Especifica si un elemento de la lista est seleccionado.

    Sorted Especifica si los elementos de la lista se ordenan alfabticamente.

    Text Especifica el valor del elemento seleccionado en ese instante. El valor es tratado como una cadena de caracteres.

    Pg. 70

  • Los mtodos que se pueden utilizar para un cuadro de lista

    son los siguientes:

    Mtodo Descripcin

    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 slo se podr ingresar un dato sino

    tambin seleccionarlo de la lista. Presenta las mismas

    propiedades, eventos y mtodos que el cuadro de lista a

    excepcin de lo siguiente:

    Propiedad Descripcin

    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 slo 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 slo una lista desplegable.

    Pg. 71

  • Como ejemplo del uso de listas vamos a desarrollar una

    aplicacin 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 aplicacin proceda a

    ubicar los siguientes controles en el formulario:

    3 etiquetas

    1 cuadro de texto

    2 listas

    5 botones de comando

    Pg. 72

  • En seguida proceda a establecer las propiedades segn 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

    Pg. 73

  • 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 &Aadir Default True

    Seguidamente proceda a ingresar el cdigo que se indica a

    continuacin:

    Pg. 74 Private Sub CmdAnnadir_Click()

  • 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

    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 FrmConsultaCursos BorderStyle 3-Fixed Dialog Caption Consulta de cursos

    Pg. 77

  • 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 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 ejemplo en particular hemos almacenado la

    informacin en memoria RAM mediante el uso de un arreglo

    bidimensional (Matriz).

    Pg. 80

  • Cronmetro Un cronmetro sirve para controlar el tiempo transcurrido

    desde el inicio de una accin.

    Propiedad Descripcin

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

    El control Cronmetro responde al evento Timer, cuya

    descripcin es:

    Evento Descripcin

    Timer Ocurre cuando el nmero de milisegundos especificado en la propiedad Interval ha transcurrido.

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

    Pg. 82

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

    AutoSize Especifica si el control ajusta automticamente su tamao para mostrar un grfico completo.

    Picture Especifica el archivo de imagen para el control.

    Pg. 83

  • El evento que suele manejarse para este control es

    MouseMove, cuya descripcin es:

    Evento Descripcin

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

    Picture Especifica el archivo de imagen para el control.

    Stretch Especifica como se ajusta el tamao del archivo grfico para que quepa dentro del control imagen.

    Para este control tambin 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.

    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 Descripcin

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

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

    Pg. 87

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

    Drive Especifica la unidad seleccionada en tiempo de ejecucin.

    Este control responde al evento Change, cuya descripcin

    es la siguiente:

    Evento Descripcin

    Change Ocurre cuando el usuario hace click sobre la unidad que desea seleccionar. El evento Change tambin ocurre si se selecciona la 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 Descripcin

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

    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 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 FrmVisor Caption Visor

    Pg. 91

  • 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 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 Botn Nombre

    0 Aceptar vbOKOnly

    Pg. 94

  • 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 crtico vbCritical 32 Signo de interrogacin vbQuestion 48 Signo de exclamacin vbExclamation 64 Signo de informacin vbInformation

    Valores retornados Valor Botn 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 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 FrmFuncionMsgBox BorderStyle 3-Fixed Dialog Caption Funcin MsgBox List1 Nombre LstBoton List2 Nombre LstIcono Command1

    Pg. 97

  • Nombre CmdMensaje Caption &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 FORMULARIO

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

    mtodos con los que se puede controlar su apariencia 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 Descripcin AutoRedraw Especifica si se activa el redibujado

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

    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 botn derecho del ratn 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.

    Pg. 101

  • Los mtodos que se pueden utilizar con un formulario son

    los siguientes:

    Mtodo Descripcin

    Hide Oculta un formulario.

    PopupMenu Presenta un men popup en la posicin actual del ratn.

    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 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 Form1 Caption Primer formulario Command1 Nombre CmdIr Caption &Ir Command2 Nombre CmdSalir Caption &Salir

    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 Form2 Caption Segundo formulario ControlBox False

    Pg. 104

  • Command2 Nombre CmdVolver Caption &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 Estilo Descripcin 0 None No presenta ningn borde.

    1 Fixed Single Puede incluir un Men de control, una Barra de ttulo , un botn Maximizar y un botn Minimizar. Slo puede cambiar de tamao mediante los botones Maximizar y Minimizar.

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

    Pg. 105

  • Valor Estilo Descripcin 3 Fixed Dialog 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 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

    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 Nombre

    Form2 FrmNone Form3 FrmFixedSingle Form4 FrmSizable Form5 FrmFixedDialog Form6 FrmFixedToolWindow Form7 FrmSizableToolWindow

    Luego debe activar el formulario FrmNone, ubicar un botn de comandos sobre el mismo y establecer las siguientes propiedades: Form2 Nombre FrmNone BorderStyle 0-None Caption None

    Pg. 109

  • Command1 Nombre CmdVolver Caption &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 habr podido observar, al mostrar un formulario

    mediante el mtodo Show podemos hacerlo de forma modal

    (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