0 Bewertungen0% fanden dieses Dokument nützlich (0 Abstimmungen)
139 Ansichten54 Seiten
El documento describe Visual Basic 6.0, incluyendo cómo crear una aplicación básica con un formulario, botón y código, y los conceptos clave de programación orientada a objetos como objetos, propiedades, métodos y eventos.
El documento describe Visual Basic 6.0, incluyendo cómo crear una aplicación básica con un formulario, botón y código, y los conceptos clave de programación orientada a objetos como objetos, propiedades, métodos y eventos.
El documento describe Visual Basic 6.0, incluyendo cómo crear una aplicación básica con un formulario, botón y código, y los conceptos clave de programación orientada a objetos como objetos, propiedades, métodos y eventos.
Visual Basic es un lenguaje de programacin dirigido por eventos, desarrollado por Alan Cooper para Microsoft. Este lenguaje de programacin es un dialecto de BASIC, con importantes agregados. EJECUTANDO VISUAL BASIC
En seguida se presentar una ventana similar a la figura siguiente:
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:
3 Visual Basic 6.0
Entorno de desarrollo
El entorno de desarrollo es muy similar al de otros lenguajes. Realizando una instalacin tpica del producto, las caractersticas bsicas se presentan de la siguiente forma:
Barra de mens
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.
4 Visual Basic 6.0
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
5 Visual Basic 6.0
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.
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.
6 Visual Basic 6.0
Posicin del formulario
Esta ventana le permite especificar la posicin de los formularios de la aplicacin.
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).
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.
7 Visual Basic 6.0
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:
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.
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.
8 Visual Basic 6.0
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:
Escribiendo el cdigo
Para ingresar el cdigo a la aplicacin debe dar doble clic sobre el control al cual asociaremos dicho cdigo. Para nuestro caso dar doble clic 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:
9 Visual Basic 6.0
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 auto contenido 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
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).
10 Visual Basic 6.0
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.
LOS OBJETOS DE VISUAL BASIC
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 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
11 Visual Basic 6.0
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
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 Para dar nombre a los objetos - consiste en utilizar ciertos prefijos, los cuales indicaran el tipo de objeto del que se trata.
Icono Prefijo
(Abreviatura)
Nombre (Objeto) Ingles
Frm formulario Form
pic Cuadro de imagen Picture box
Lbl Etiqueta Label
txt Cuadro de texto Texbox
Fra Marco Frame
Cmd Botn de comando Command button
Chk Casilla de verificacin Check box
Opt Botn de opcin Option button
Cbo Cuadro combinado Combo y drop-list box
Lst Cuadro de lista list
Hs Barra de desplazamiento horizontal Horizontal scroll bar
Vs Barra de desplazamiento vertical Vertical scroll bar
Tim Cronmetro timer
Drv Cuadro de lista de unidades Drive list box
dir Cuadro de lista de directorios Dir list box
fil Cuadro de lista de archivos File list box
shp Formas Shape
lin Lneas line
img Imagen image
Ole Contenedor OLE
Visual Basic 6.0 12
13 Visual Basic 6.0
EL LENGUAJE
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
TIPOS DE DATOS
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 bytes + 1 byte por carcter
14 Visual Basic 6.0
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.
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
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
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.
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
15 Visual Basic 6.0
OPERADORES:
Los operadores son smbolos que indican cmo sern manipulados los operandos.
Operadores aritmticos
Operador Significado ^ Exponenciacin - Menos unario * / 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 Menor o igual 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) Operadores de cadenas de caracteres
Operador
Significado & Concatenacin Like Compara dos cadenas de caracteres
16 Visual Basic 6.0
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
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.
Otra posibilidad de proporcionar datos o de visualizarlos durante la ejecucin de una aplicacin es utilizando cajas de dilogos predefinidas.
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:
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:
17 Visual Basic 6.0
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:
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:
18 Visual Basic 6.0 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:
If CONDICIN Then
SENTENCIAS_VERDADERAS
Else
End If
SENTENCIAS_FALSAS
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?)
19 Visual Basic 6.0 If A Mod B = 0 Then
Else
End If
MsgBox Str(A) & es divisible por & Str(B)
MsgBox Str(A) & no es divisible por & Str(B)
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 SENTENCIAS_1 ElseIf CONDICIN_2 Then SENTENCIAS_2 .
Else
End If . .
SENTENCIAS_FALSAS
Si CONDICIN_1 es verdadera se ejecuta el grupo de SENTENCIAS_1, y si 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 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
20 Visual Basic 6.0 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
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 Case 10 : MsgBox Octubre Case 11 : MsgBox Noviembre
21 Visual Basic 6.0 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 <= X <= 10 Case Else MsgBox X < 1 o X > 10 End Select
Estructura For . . . Next: Esta estructura es utilizada para ejecutar un bucle un nmero determinado de veces. El nmero de iteraciones deber 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
22 Visual Basic 6.0
Para que este cdigo funcione correctamente debe establecer la propiedad AutoRedraw del formulario a True.
Estructura While . . . Wend: 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 N primeros nmeros naturales, es decir S = 1 + 2 + 3 + 4 + . . . + 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 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]
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 N ingresado por teclado:
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 Loop While C <= N 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
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.
24 Visual Basic 6.0
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:
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.
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.
25 Visual Basic 6.0
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. 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.
26 Visual Basic 6.0
Style Especifica la apariencia del control, ya sea estndar (estilo estndar de Windows) o grfica (con una imagen personalizada). 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 6 cajas de texto 3 botones de comando Una vez ubicados los controles, establezca las propiedades segn se indica:
Modificar las siguientes Propiedades de las etiquetas y el formulario
27 Visual Basic 6.0
Form1 Label 1 Nombre FrmCajero Nombre LblCantidad BorderStyle 3-Fixed Dialog AutoSize True Caption Cajero automtico Label 2 Label 3 Nombre LblB10 Nombre LblB20 AutoSize True AutoSize True Caption Billetes de S/. 10 Caption Billetes de S/. 20 Label 4 Label 5 Nombre LblB50 Nombre LblB100 AutoSize True AutoSize True Caption Billetes de S/. 50 Caption Billetes de S/. 100 Label6 Nombre LblB200 AutoSize True Caption Billetes de S/. 200
Modifique los siguientes Botones de comando y cajas de texto
Text1 Text2 Nombre TxtCantidad Nombre TxtB10 Text Text Text3 Text4 Nombre TxtB20 Nombre TxtB50 Text Text Text5 Text6 Nombre TxtB100 Nombre TxtB200 Text Text Command1 Command2 Nombre CmdAceptar Nombre CmdLimpiar Caption &Aceptar 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
28 Visual Basic 6.0
Else
End If End Sub 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)
MsgBox Cantidad a retirar debe ser mltiplo de 10 TxtCantidad = TxtCantidad.SetFocus 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 En el cdigo anterior hemos utilizado el mtodo SetFocus para enfocar la caja de texto TxtCantidad, esto es, para posicionar el cursor sobre ella.
Ejemplo 2 Desarrollar un programa que lea un numero entero y muestre la tabla de multiplicar de dicho nmero. Para el diseo de la interfaz del programa se presenta el siguiente ejemplo:
29 Visual Basic 6.0
Paso # 1. Ubique los siguientes controles en el formulario:
1 Etiqueta 2 Cajas de Texto 1 Botn de Comando
Paso #3. Al terminar de colocar sobre el formulario los controles, proceda a modificar sus propiedades, como se incida a continuacioo:
Formulario Etiqueta 1 Nombre Tablas Nombre Numero BorderStyle 3-Fixed Dialog Caption Ingrese un Numero: Caption Tabla de Multiplicar Caja 1 Botn de Comando 1 Nombre TNumero Nombre Limpiar Text Vaco Caption &Limpiar Caja 2 Nombre TTabla MultiLine True Locked True ScrollBar 2-Vertical Text Vaco
Paso #3. Ahora debe escribir el siguiente cdigo.
Private Sub TNumero_Change() If IsNumeric(TNumero) Then Dim N As Integer Dim P As Integer Dim I As Integer Dim s As String N = Val(TNumero) s = "" For I = 0 To 12 P = N * I s = s & N & " * " & I & " = " & P & vbCrLf Next I TTabla = s Else If TNumero = "" Then Exit Sub Else MsgBox "Ingrese un nmero", vbCritical, "Mensaje" TTabla = "" End If End If End Sub Private Sub Limpiar_Click() TNumero = "" TTabla = "" TNumero.SetFocus End Sub
Paso #4. Agregue una imagen al fondo del formulario y el botn salida. Guarde el programa con el nombre de Tablas de multiplicar.
30 Visual Basic 6.0
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 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).
31 Visual Basic 6.0
Los botones de opcin tambin suelen responder al evento Click.
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.
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.
32 Visual Basic 6.0
Cronmetro
accin. Un cronmetro sirve para controlar el tiempo transcurrido desde el inicio de una
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.
Para el desarrollo de la presente aplicacin proceda a ubicar los siguientes controles sobre el formulario:
Form1 1 etiqueta 1 cuadro de texto 1 cronmetro 1 botn de comando En seguida proceda a establecer las propiedades segn se indica:
Nombre FrmReloj BorderStyle 3-Fixed Dialog Caption Reloj digital
33 Visual Basic 6.0
Label1
Nombre LblHora Caption Hora
Text1
Nombre TxtHora Text
Timer1
Nombre Timer1 Interval 500
Command1
Nombre CmdTerminar Caption &Terminar 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.
34 Visual Basic 6.0
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.
es: El evento que suele manejarse para este control es MouseMove, cuya descripcin
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.
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.
35 Visual Basic 6.0
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
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.
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
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.
36 Visual Basic 6.0
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.
LA FUNCIN MSGBOX:
A menudo habr situaciones en las cuales tendr que presentar algn mensaje (por ejemplo una pregunta) y en funcin 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.
37 Visual Basic 6.0
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 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:
38 Visual Basic 6.0
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.
39 Visual Basic 6.0
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
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
40 Visual Basic 6.0
Ejemplo 1.1: Sencillo programa de colores y posiciones
En la Figura 1.2 se muestra el formulario y los con- troles de un ejemplo muy sencillo que permite mo- ver una caja de texto por la pantalla, permitiendo a su vez representarla con cuatro colores diferentes.
En la Tabla 1.2 se describen los controles uti- lizados, as como algunas de sus propiedades ms importantes (sobre todo las que se separan de los valores por defecto). Los ficheros de este proyecto se llamarn Colores0.vbp y Colores0.frm. Figura 1.2. Formulario y controles del
Ejemplo 1.1.
Control
Propiedad
Valor
Control
Propiedad
Valor frmColores0 Name frmColores0 optVerde Name optVerde
Caption Colores
Caption Verde fraColores Name fraColor fraPosicion Name fraPosicion
Caption Colores
Caption Posicin optAzul Name optAzul optArriba Name optArriba
Caption Azul
Caption Arriba optRojo Name optRojo optAbajo Name optAbajo
Caption Rojo
Caption Abajo optAmarillo Name optAmarillo txtCaja Name txtCaja
Caption Amarillo
Text Tabla 1.2. Objetos y propiedades del ejemplo Colores0.
A continuacin se muestra el cdigo correspondiente a los procedimientos de este ejemplo.
Option Explicit Private Sub Form_Load() txtCaja.Top = 0 End Sub
Private Sub optArriba_Click() txtCaja.Top = 0 End Sub
Private Sub optAbajo_Click() txtCaja.Top = frmColores0.ScaleHeight - txtCaja.Height End Sub
Private Sub optAzul_Click() txtCaja.BackColor = vbBlue End Sub
Private Sub optRojo_Click() txtCaja.BackColor = vbRed
41 Visual Basic 6.0
End Sub
Private Sub optVerde_Click() txtCaja.BackColor = vbGreen End Sub
Private Sub optAmarillo_Click() txtCaja.BackColor = vbYellow End Sub
Sobre este primer programa en Visual Basic 6.0 se pueden hacer algunos comentarios:
1. El comando Option Explicit sirve para obligar a declarar todas las variables que se utilicen. Esto impide el cometer errores en los nombres de las variables (confundir masa con mesa, por ejemplo). En este ejemplo esto no tiene ninguna importancia, pero es conveniente acostum- brarse a incluir esta opcin. Declarar una variable es crearla con un nombre y de un tipo de- terminado antes de utilizarla.
2. Cada una de las partes de cdigo que empieza con un Private Sub y termina con un End Sub es un procedimiento, esto es, una parte de cdigo independiente y reutilizable. El nombre de uno de estos procedimientos, por ejemplo optAzul_Click(), es tpico de Visual Basic. La pri- mera parte es el nombre de un objeto (control); despus va un separador que es el carcter de subrayado (_); a continuacin el nombre de un evento -click, en este caso-, y finalmente unos parntesis entre los que iran los argumentos, en caso de que los hubiera.
Ejemplo 1.2: Minicalculadora elemental
En este ejemplo se muestra una calculadora elemental que permite hacer las cuatro operaciones aritmticas (Figura 1.3). Los ficheros de este proyecto se pueden llamar minicalc.vbp y minicalc.frm.
El usuario introduce los datos y clica sobre el botn correspondiente a la operacin que desea reali- zar, apareciendo inmediatamente el resultado en la ca- ja de texto de la derecha.
Figura 1.3. Minicalculadora elemental.
42 Visual Basic 6.0
La Tabla 1.3 muestra los objetos y las propie- dades ms importantes de este ejemplo.
Control
Propiedad
Valor
Control
Propiedad
Valor
frmMinicalc Name frmMinicalc lblEqual Name lblEqual
Caption Minicalculadora
Caption = txtOper1 Name txtOper1 cmdSuma Name cmdSuma
Text
Caption + txtOper2 Name txtOper2 cmdResta Name cmdResta
Text
Caption - txtResult Name txtResult cmdMulti Name cmdProd
Text
Caption * lblOp Name lblOp cmdDivi Name cmdDiv
Caption
Caption /
Tabla 1.3. Objetos y propiedades del ejemplo Minicalculadora. .
A continuacin se muestra el cdigo correspondiente a los procedimientos que gestionan los eventos de este ejemplo.
Option Explicit
Private Sub cmdDiv_Click() txtResult.Text = Val(txtOper1.Text) / Val(txtOper2.Text) lblOp.Caption = "/" End Sub
Private Sub cmdProd_Click() txtResult.Text = Val(txtOper1.Text) * Val(txtOper2.Text) lblOp.Caption = "*" End Sub
Private Sub cmdResta_Click() txtResult.Text = Val(txtOper1.Text) - Val(txtOper2.Text) lblOp.Caption = "-" End Sub
Private Sub cmdSuma_Click() txtResult.Text = Val(txtOper1.Text) + Val(txtOper2.Text) lblOp.Caption = "+" End Sub
En este ejemplo se ha utilizado repetidamente la funcin Val() de Visual Basic. Esta funcin convierte una serie de caracteres numricos (un texto formado por cifras) en el nmero entero o de punto flotante correspondiente. Sin la llamada a la funcin Val() el operador +aplicado a cadenas de caracteres las concatena, y como resultado, por ejemplo, 3+4 dara 34. No es lo mismo los caracteres 1 y 2 formando la cadena o string 12 que el nmero 12; la funcin val() convierte cadenas de caracteres numricos con los que no se pueden realizar operaciones aritmticas- en los nmeros correspondientes con los que s se puede operar matemticamente-. Visual Basic 6.0 transforma de modo automtico nmeros en cadenas de caracteres y viceversa, pero este es un caso en el que dicha transformacin no funciona porque el operador + tiene sentido tanto con nmeros como con cadenas.
43 Visual Basic 6.0 Ejemplo 1.3: Transformacin de unidades de temperatura
La Figura 1.4 muestra un programa sencillo que permite ver la equivalencia entre las escalas de temperaturas en grados centgrados y grados Fahrenheit. Los ficheros de este proyecto se pueden llamar Temperat.vbp y Temperat.frm.
En el centro del formulario aparece una barra de desplazamiento vertical que permite desplazarse con incrementos pequeos de 1 C y grandes de 10 C. Como es habitual, tambin puede cambiarse el valor arrastrando con el ratn el cursor de la barra. Los valores mximos y mnimo de la barra son 100 C y -100 C.
A ambos lados de la barra aparecen dos cua- dros de texto (color de fondo blanco) donde aparecen los grados correspondientes a la barra en ambas esca- las. Encima aparecen dos rtulos (labels) que indican la escala de temperaturas correspondiente. Comple- tan la aplicacin un botn Salir que termina la ejecucin y un men File con la nica opcin Exit, que termina asimismo la ejecucin de programa.
Figura 1.4. Equivalencia de temperaturas..
La Tabla 1.4 indica los controles utilizados en este ejemplo junto con las propiedades y los va- lores correspondientes.
Control
Propiedad
Valor
Control
Propiedad
Valor
frmTemp Name frmTemp vsbTemp Name vsbTemp
Caption Conversor de temperatu- ras
Min 100 mnuFile Name mnuFile
Max -100
Caption &File
SmallChange 1 mnuFileExit Name mnuFileExit
LargeChange 10
Caption E&xit
Value 0 cmdSalir Name cmdSalir lblCent Name lblCent
Caption Salir
Caption Grados Centgrados
Font MS Sans Serif, Bold, 14
Font MS Sans Serif, 10 txtCent Name txtCent lblFahr Name lblFahr
text 0
Caption Grados Fahrenheit txtFahr Name txtFahr
Font MS Sans Serif, 10
text 32
Tabla 1.4. Controles y propiedades del Ejemplo 1.3.
44 Visual Basic 6.0 Por otra parte, el cdigo con el que este programa responde a los eventos es el contenido
en los siguientes procedimientos:
Option Explicit
Private Sub cmbSalir_Click() Beep End End Sub
Private Sub mnuFileExit_Click() End End Sub
Private Sub vsbTemp_Change() txtCent.Text = vsbTemp.Value txtFahr.Text = 32 + 1.8 * vsbTemp.Value End Sub
Sobre este tercer ejemplo se puede comentar lo siguiente:
1. Se ha utilizado la propiedad Value de la barra de desplazamiento, la cual da el valor actual de la misma con respecto a los lmites inferior y superior, previamente establecidos (-100 y 100).
2. Mediante el procedimiento cmdSalir_Click, se cierra el programa, gracias a la instruccin End. El cometido de Beep no es otro que el de emitir un pitido a travs del altavoz del orde- nador, que indicar que en efecto se ha salido del programa.
3. La funcin mnuFileExit_Click() y activa desde el men y termina la ejecucin sin emitir nin- gn sonido.
4. Finalmente, la funcin vsbTemp_Change() se activa al cambiar el valor de la barra de despla- zamiento; su efecto es modificar el valor de la propiedad text en las cajas de texto que mues- tran la temperatura en cada una de las dos escalas.
Ejemplo 1.4: Colores RGB
La Figura 1.5 muestra el formulario y los contro- les del proyecto Colores. Los ficheros de este proyecto se pueden llamar Colores.vbp y Colo- res.frm.
En este ejemplo se dispone de tres barras de desplazamiento con las que pueden controlarse las componentes RGB del color del fondo y del color del texto de un control label.
45 Visual Basic 6.0 Dos botones de opcin permiten determinar si los valores de las barras se aplican al
fondo o al texto. Cuando se cambia del texto al fondo o viceversa los valo- res de las barras de desplazamiento (y la posicin de los cursores) cambian de modo acorde.
A la dcha. de las barras de desplazamiento tres cajas de texto contienen los valores num- ricos de los tres colores (entre 0 y 255). A la izda. tres labels indican los colores de las tres barras.
Figura 1.5. Colores de fondo y de texto.
La Tabla 1.5 muestra los controles y las propiedades utilizadas en el este ejemplo.
Control
Propiedad
Valor
Control
Propiedad
Valor frmColores Name frmColores hsbColor Name hsbColor
Caption Colores
Min 0 lblCuadro Name lblCuadro
Max 255
Caption INFORMTICA 1
SmallChange 1
Font MS Sans Serif, Bold, 24
LargeChange 16 cmdSalir Name cmdSalir
Index 0,1,2
Caption Salir
Value 0
Font MS Sans Serif, Bold, 10 txtColor Name txtColor optColor Name optColor
Text 0
Index 0,1
Locked True
Caption Fondo, Texto
Index 0,1,2
Font MS Sans Serif, Bold, 10 lblColor Name lblColor
Caption Rojo,Verde,Azul
Index 0,1,2
Font MS Sans Serif, 10
Tabla 1.5. Objetos y propiedades del ejemplo Colores.
46 Visual Basic 6.0
Una caracterstica importante de este ejemplo es que se han utilizado vectores (arrays) de controles. Las tres barras se llaman hsbColor y se diferencian por la propiedad I ndex, que toma los valores 0, 1 y 2. Tambin las tres cajas de texto, las tres labels y los dos botones de opcin son arrays de controles. Para crear un array de controles basta crear el primero de ellos y luego hacer Copy y Paste tantas veces como se desee, respondiendo afirmativamente al cuadro de dilogo que pregunta si desea crear un array.
El procedimiento Sub que contiene el cdigo que gestiona un evento de un array es nico para todo el array, y recibe como argumento la propiedad I ndex. De este modo que se puede saber exac- tamente en qu control del array se ha producido el evento. As pues, una ventaja de los arrays de controles es que pueden compartir el cdigo de los eventos y permitir un tratamiento conjunto por medio de bucles for.
A continuacin se muestra el cdigo correspondiente a los procedimientos que tratan los eventos de este ejemplo.
Option Explicit Public Brojo, Bverde, Bazul As Integer Public Frojo, Fverde, Fazul As Integer
Private Sub hsbColor_Change(Index As Integer) If optColor(0).Value = True Then lblCuadro.BackColor = RGB(hsbColor(0).Value, hsbColor(1).Value, _
Dim i As Integer For i = 0 To 2 hsbColor(2 ).Value) txtColor(i).Text = hsbColor(i).Value Next i Else lblCuadro.ForeColor = RGB(hsbColor(0).Value, hsbColor(1).Value, _
For i = 0 To 2 hsbColor(2 ).Value) txtColor(i).Text = hsbColor(i).Value Next i End If
47 Visual Basic 6.0
End Sub
Private Sub optColor_Click(Index As Integer) If Index = 0 Then 'Se pasa a cambiar el fondo Frojo = hsbColor(0).Value Fverde = hsbColor(1).Value Fazul = hsbColor(2).Value hsbColor(0).Value = Brojo hsbColor(1).Value = Bverde hsbColor(2).Value = Bazul Else 'Se pasa a cambiar el texto Brojo = hsbColor(0).Value Bverde = hsbColor(1).Value Bazul = hsbColor(2).Value hsbColor(0).Value = Frojo hsbColor(1).Value = Fverde hsbColor(2).Value = Fazul End If End Sub
El cdigo de este ejemplo es un poco ms complicado que el de los ejemplos anteriores y requiere unas ciertas explicaciones adicionales adelantando cuestiones que se vern posteriormente:
1. La funcin RGB() crea un cdigo de color a partir de sus argumentos: las componentes RGB (Red, Green and Blue). Estas componentes, cuyo valor se almacena en un byte y puede oscilar entre 0 y 255, se determinan por medio de las tres barras de desplazamiento.
2. El color blanco se obtiene con los tres colores fundamentales a su mxima intensidad. El co- lor negro se obtiene con los tres colores RGB a cero. Tambin se pueden introducir con las constantes predefinidas vbWhite y vbBlack, respectivamente.
3. Es importante disponer de unas variables globales que almacenen los colores del fondo y del texto, y que permitan tanto guardar los valores anteriores de las barras como cambiar stas a sus nuevos valores cuando se clica en los botones de opcin. Las variables globales, definidas en la parte de definiciones generales del cdigo, fuera de cualquier procedimiento, son visi- bles desde cualquier parte del programa. Las variables definidas dentro de una funcin o pro- cedimiento slo son visibles desde dentro de dicha funcin o procedimiento (variables loca- les).
4. La funcin hsbColor_Change(I ndex As I nteger) se activa cada vez que se cambia el valor en una cualquiera de las barras de desplazamiento. El argumento I ndex, que Visual Basic define automticamente, indica cul de las barras del array es la que ha cambiado de valor (la 0, la 1 la 2). En este ejemplo dicho argumento no se ha utilizado, pero est disponible por si se hubiera querido utilizar en el cdigo.
48 Visual Basic 6.0
Men Hamburguesa Precio (Q.) 10.00 Hot Dog 5.00 Cerveza 8.00 Gaseosa 4.50 Ensalada 1 12.00 Ensalada 2 18.75 Tostadas 15.00 Refrescos 4.00 Pltanos Fritos 25.00 Porcin de pastel Chocolate 8.50 Porcin de pastel 3 leches 10.00 Porcin de pastel fresa 10.00
Ejemplo 2
Desarrolle un programa que muestre el men para el restaurante Antojitos y que calcule las ventas totales al final del da, asi como los impuestos a pagar (12 % ). El men de ejemplo es el siguiente:
Para el diseo de la interfaz del programa se presenta el siguiente ejemplo:
49 Visual Basic 6.0
Paso #1
Para el diseo del cuadro de men utilizaremos el control Microsoft hierarchical FlexGrid. Seleccione el Men Proyecto y elija la opcin Componentes, en la grfica se puede observar la ventana componentes y la forma como se presenta en la caja de herramientas. Luego active la casilla de verificacin Microsoft hierarchical FlexGrid Control 6.0 OLEDB y clic sobre el botn Aceptar. El control se agregar al cuadro de herramientas.
Paso #3. Ubique los siguientes controles en el formulario:
14 Etiquetas. 14 Cajas de texto. 1 Control MSHFlexGrid. 3 Botones de Comando.
Paso #4
Elabore el diseo de entrada y salida de productos. Al terminar de colocar sobre el formulario los controles, seleccione cada uno de ellos y modifique sus propiedades, en la ventana de propiedades del control seleccionado, debe establecer las propiedades que se requieren para este ejercicio, como se indica a continuacin.
50 Visual Basic 6.0
Formulario Etiqueta 1 Nombre Comida Rpida Nombre Hamburguesa BorderStyle 3-fixed Dialog AutoSize True Caption Los Antojitos Caption Hamgurguesa: Moveable False StartUpPosition 2-centerScreen Etiqueta 2 Etiqueta 3 Nombre Hot_Dog Nombre Cerveza AutoSize True AutoSize True Caption Hot Dog: Caption Cerveza: Etiqueta 4 Etiqueta 5 Nombre Gaseosa Nombre Ensalada1 AutoSize True AutoSize True Caption Gaseosa: Caption Ensalada Cesar: Etiqueta 6 Etiqueta 7 Nombre Ensalada2 Nombre Tostadas AutoSize True AutoSize True Caption Ensalada de Vejetales: Caption Tostadas: Etiqueta 8 Etiqueta 9 Nombre Refresco Nombre Pltanos AutoSize True AutoSize True Caption Refresco: Caption Porcin de Platanos Etiqueta 10 Etiqueta 11 Nombre Pastel_Chocolate Nombre Pastel3Leches AutoSize True AutoSize True Caption Porcin de Pastel Chocolate Caption Porcin Pastel 3 Leches Etiqueta 12 Etiqueta 13 Nombre PastelFresas Nombre VentaTotal AutoSize True AutoSize True Caption Porcin de Pastel Fresa Caption Venta Total Q.: Etiqueta 14 Nombre Impuesto AutoSize True Caption Impuesto Q.:
MSHFlexGrid1
Nombre Men Font Verdana (Negrita 10) FontFixed Verdana (Negrita 10)
51 Visual Basic 6.0
Caja de Texto 1 Caja de Texto 2 Nombre THamburguesa Nombre THot_Dog Text Vaco Text Vaco Caja de Texto 3 Caja de Texto 4 Nombre TCerveza Nombre TGaseosa Text Vaco Text Vaco Caja de Texto 5 Caja de Texto 6 Nombre TEnsalada1 Nombre TEnsalada2 Text Vaco Text Vaco Caja de Texto 7 Caja de Texto 8 Nombre TTostada Nombre TRefresco Text Vaco Text Vaco Caja de Texto 9 Caja de Texto 10 Nombre TPlatanos Nombre TPastelChocolate Text Vaco Text Vaco Caja de Texto 11 Caja de Texto 12 Nombre TPastelLeches Nombre TPaselFresa Text Vaco Text Vaco Caja de Texto 13 Caja de Texto 14 Nombre TVentaTotal Nombre TImpuesto Text Vaco Text Vaco Botn 1 Botn 2 Nombre Aceptar Nombre Limpiar Caption &Acepat Caption &Limpiar Botn 3 Nombre Salir Caption &Salir Picture C:\Archivos de Programa\Microsoft Visual Studio\Common\ Graphics\Icons\Arrows\Point04.ico Style 1-Graphical
Paso #4
Se debe ingresar datos a la cuadricula. Doble Clic sobre el formulario y escriba el siguiente Cdigo:
Paso #5. Doble Clic sobre el botn Aceptar, Escriba lo siguiente: Private Sub Aceptar_Click()
Declara las variables a utulizar
Dim hamburguesa As Integer Dim Hotdog As Integer Dim Cerveza As Integer Dim gaseosa As Integer Dim ensalada1 As Integer Dim ensalada2 As Integer Dim tostada As Integer Dim refresco As Integer Dim platanos As Integer
53 Visual Basic 6.0 Dim pastelchcolate As Integer
Dim pastel3leches As Integer Dim PastelFresa As Integer Dim VentaTotal As Double Dim Impuesto As Double
Guarda los valores de variables de tipo texto para cada producto