Febrero de 2010
PROFE231
VISUAL BASIC 6.0
Una breve introducción | Profr. Leonel Orozco Celaya
VISUAL BASIC ASPECTOS GENERALES Cuando nace la programación orientada a objetos, uno de los principios más importantes era la reutilización de código, es decir, codificando una sola vez, podríamos usar ese objeto en cualquiera de nuestros proyectos sin volver a codificarlo, lo que supone un considerable ahorro de tiempo y costo en el diseño y mantenimiento. Visual Basic es un lenguaje de programación de propósito general, con una gran potencia en toda su estructura. Su implementación en el sistema operativo Windows y sus herramientas visuales, han hecho de este lenguaje uno de los más usados en lo que a desarrollo de aplicaciones se refiere. La palabra "Visual" hace referencia al método que se utiliza para crear la interfaz gráfica de usuario (GUI). En lugar de escribir numerosas líneas de código para describir la apariencia y la ubicación de los elementos de la interfaz, simplemente puede agregar objetos prefabricados en su lugar 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 o computación. Los proyectos o aplicaciones que se crean con VB son ejecutables en sistemas operativos de 32 bits, tal como lo son windows 95, 98, ME, NT, XP. Características de la programación con VB
La interfaz de usuario se crea usando barras de herramientas con objetos (controles) prefabricados, cada uno con una función específica que facilita la creación de la aplicación. Programación orientada a eventos. Al estar diseñado para trabajar con el SO Windows, su entorno gráfico también responde a eventos. Por ejemplo, si se oprime determinada tecla ocurre “algo” o cuando se pulsa con el botón del ratón pasa “algo diferente”, estos son eventos a los que debe estar preparada una aplicación creada con VB. En una aplicación controlada por eventos, el código no sigue una ruta determinada, ejecuta distintas secciones de código como respuestas a los eventos (acciones de usuario, mensajes del sistema, código, etc.)
Profesor: Leonel Orozco Celaya (
[email protected])
Página 2
Todos los lenguajes de programación para Windows comparten la misma característica: la orientación a eventos. Las aplicaciones creadas para Windows no siguen una estructura de ejecución lineal. Esto implica que un programa no va a seguir una secuencia fija de instrucciones, ejecutándose línea a línea, sino que debe responder a las acciones que el usuario, el sistema operativo u otras aplicaciones realizan sobre él; estas acciones se conocen en Visual Basic como eventos.
Un evento es una acción reconocida por un formulario o un control. Las aplicaciones controladas por eventos ejecutan código Basic como respuesta a un evento. Cada formulario y control de Visual Basic tiene un conjunto de eventos predefinidos. Si se produce uno de dichos eventos y el procedimiento de evento asociado tiene código, Visual Basic llama a ese código (un procedimiento de evento).
Utiliza una aproximación interactiva para el desarrollo. Interpreta el código a medida que se escribe, interceptando y resaltando la mayoría de los errores de sintaxis en el momento. Compila parcialmente el código según se escribe. Al ejecutar y probar la aplicación, tardará poco tiempo en terminar la compilación. Si el compilador encuentra un error, quedará resaltado en el código. Se puede corregir el error y seguir compilando sin tener que empezar de nuevo.
La programación con VB Al igual que en cualquier lenguaje de programación, el programador tiene dos alternativas para desarrollar la aplicación: sentarse delante de la computadora y empezar a crear todos los elementos que se necesitan, o se puede determinar los pasos para el desarrollo del programa antes de escribirlo. La primera alternativa que aparenta ser la más rápida, es la menos indicada para diseñar una aplicación, así que se recomendará seguir con la segunda opción. 1. Planificar 2. Crear el programa 2.1. Interfaz gráfica de usuario 2.2. Asignar propiedades 2.3 Escribir el código 3. Probar el código 4. Compilar
Profesor: Leonel Orozco Celaya (
[email protected])
Página 3
5. Distribuir
La planificación. Consiste en determinar qué debe hacer el programa (es el algoritmo). Algunas de las preguntas que se pueden formular son las siguientes: o ¿Cuál es el objetivo del programa? o ¿Qué información ingresara el usuario? o ¿Qué hará el programa con la información? o ¿Qué respuestas producirá y cómo las dará? Interfaz de usuario. Define la manera en la cual la aplicación interactuará con el usuario. Para ello se hace uso de las barras de herramientas que proporciona VB.
El administrador de PROYECTOS Para crear una aplicación con Visual Basic se trabaja con proyectos. Un archivo de proyecto (.vbp). es una colección de archivos que se usan para generar una aplicación. Después de ensamblar todos los componentes de un proyecto y escribir el código, se puede compilar el proyecto para crear un archivo ejecutable. Las siguientes secciones describen los diferentes tipos de archivos y objetos que se pueden incluir en un proyecto. 1. Módulos de formulario Los módulos de formulario (extensión de nombre de archivo .frm) pueden contener texto descriptivo del formulario y sus controles, incluyendo los valores de sus propiedades. También pueden contener declaraciones de formulario de constantes, variables y procedimientos externos, así como procedimientos de evento y procedimientos generales. 2. Módulos de clase Los módulos de clase (.cls) son similares a los módulos de formulario, excepto en que no tienen interfaz de usuario visible. Se pueden usar módulos de clase para crear objetos propios, incluyendo código para métodos y propiedades. 3. Módulos estándar Los módulos estándar (.bas) pueden contener declaraciones públicas o a nivel de módulo de tipos, constantes, variables, procedimientos externos y procedimientos públicos.
Profesor: Leonel Orozco Celaya (
[email protected])
Página 4
4. Archivos de recursos Los archivos de recursos (extensión de nombre de archivo .res) contienen mapas de bits, cadenas de texto y otros datos que se pueden modificar sin volver a modificar el código. 5. Documentos ActiveX Los documentos ActiveX (.dob) son similares a los formularios, pero se muestran en un explorador de Internet como Internet Explorer. 6. Módulos de controles de usuario y de páginas de propiedades Los módulos de controles de usuario (.ctl) y de páginas de propiedades (.pag) son similares a los formularios, pero se usan para crear controles ActiveX y las páginas de propiedades asociadas para mostrar propiedades en tiempo de diseño. 7. Componentes Además de archivos y módulos, también es posible agregar otro tipo de componentes a un proyecto.
Controles ActiveX Los controles ActiveX (extensión de nombre de archivo .ocx) son controles opcionales que se pueden agregar al cuadro de herramientas y se pueden usar en formularios.
Objetos insertables Los objetos insertables, como un objeto Hoja de cálculo de Microsoft Excel, son componentes que se pueden usar como bloques para generar soluciones integradas. Una solución integrada puede contener datos en diferentes formatos, como hojas de cálculo, mapas de bits y texto, creados por diferentes aplicaciones.
Referencias También puede agregar referencias a componentes ActiveX externos que se pueden usar en la aplicación.
Diseñadores ActiveX Los diseñadores ActiveX son herramientas para diseñar clases a partir de las cuales es posible crear objetos. La interfaz de diseño para formularios es el diseñador predeterminado. Puede haber disponibles otros diseñadores adicionales desde otros orígenes.
Controles estándar Los controles estándar los proporciona Visual Basic. Los controles estándar, como CommandButton (botón de comando) o Frame (marco), siempre están incluidos en el cuadro de herramientas, al contrario de lo que ocurre con los controles ActiveX y los objetos insertables, que se pueden agregar y quitar del cuadro de herramientas.
Profesor: Leonel Orozco Celaya (
[email protected])
Página 5
Elementos para la creación de una aplicación El primer paso para crear una aplicación con Visual Basic es crear la interfaz, es decir, la parte visual de la aplicación con la que va a interactuar el usuario. Los formularios y controles son los elementos de desarrollo básicos que se usan para crear la interfaz; son los objetos con los que se trabaja para desarrollar la aplicación. Los objetos de Visual Basic aceptan propiedades, métodos y eventos. En VB, los datos de un objeto (configuración o atributos) se llaman propiedades, mientras que los diversos procedimientos que pueden operar sobre el objeto se conocen como sus métodos (es lo que puede hacer con el objeto). Un evento es una acción reconocida por un objeto, como hacer clic con el mouse o presionar una tecla, y puede escribir código que responda a ese evento. Los objetos de Visual Basic se crean a partir de clases; así, un objeto se dice que es una instancia de una clase. La clase define las interfaces de un objeto, si el objeto es público y en qué circunstancias se puede crear
Formularios Los formularios son objetos que exponen las propiedades que definen su apariencia, los métodos que definen su comportamiento y los eventos que definen la forma en que interactúan con el usuario. Mediante el establecimiento de las propiedades del formulario y la escritura de código de Visual Basic para responder a sus eventos, se personaliza el objeto para cubrir las necesidades de la aplicación.
Ciclo de vida de un formulario Comprender el ciclo de vida de un formulario es básico para el programador de VB, puesto que son estos elementos los que permitirán al usuario interactuar con la aplicación. Sólo comprendiendo qué acciones podrán realizarse sobre los formularios y en qué momentos, podremos controlar adecuadamente la ejecución de nuestros programas. En la vida de un formulario puede pasar por cinco estados diferentes. En orden cronológico son:
Profesor: Leonel Orozco Celaya (
[email protected])
Página 6
Creado: el formulario existe como objeto, pero todavía no es visible. Cuando un formulario está siendo creado, se genera el evento Initialize. En esta fase del proceso de carga de un formulario no podemos actuar sobre los objetos que lo componen.
Cargado: ya podemos acceder a los controles del formulario, pero éste no es visible. Un formulario se encuentra en este estado en el proceso de carga, cuando se oculta o cuando se establece a False su propiedad Visible. Cuando se inicia el proceso de carga de un formulario, se genera el evento Load.
Mostrado: Es el estado normal de un formulario. Podemos acceder a todos los elementos que lo componen y podemos actuar sobre ellos, pues el formulario es visible.
Durante este estado, cada vez que hay que repintar el formulario (por ejemplo, cuando una ventana que se ha situado sobre éste desaparece) se genera el evento Paint. Además, si el formulario recupera el foco después de haberlo perdido (por ejemplo, al cambiar a otra aplicación con Alt+Tab y volver después al formulario), se genera el evento Activate.
Descargado: una vez terminado este proceso el formulario no es visible, y sus componentes no son accesibles. El proceso de descarga se produce cuando se cierra el formulario (pulsando el botón CERRAR , ejecutando el método Unload del formulario, etc). El proceso de descarga de un formulario, a su vez, generará dos eventos:
QueryUnload y Unload (en este orden). En los dos eventos podemos detener el proceso de descarga estableciendo el valor del parámetro Cancel a cualquier número distinto de 0. En general, aprovecharemos estos eventos para liberar la memoria ocupada por los elementos que pertenecen al formulario antes de que este se cierre, salvar el trabajo que esté pendiente de guardado, etc.
Eliminado: aunque un formulario esté descargado, mientras existe cualquier referencia al mismo no será eliminado totalmente de memoria. Cuando se produce esta circunstancia (el formulario está descargado y nadie hace referencia a él) se genera el evento Terminate, y el formulario desaparece de memoria.
Controles Los controles son objetos que están contenidos en los objetos de formularios. Cada tipo de control tiene su propio conjunto de propiedades, métodos y eventos, que lo hacen adecuado para una finalidad determinada.
Profesor: Leonel Orozco Celaya (
[email protected])
Página 7
Puntero (Pointer). Permite seleccionar objetos dentro del proyecto; se puede cambiar el tamaño o mover un control que ya se ha dibujado en un formulario. PictureBox. Muestra imágenes gráficas (decorativas o activas), como un contenedor que recibe la salida de los métodos gráficos o como un contenedor para otros controles. Label. Permite definir texto que el usuario no podrá cambiar, tales como encabezados o diversos mensajes. TextBox. Contiene el texto que el usuario puede escribir o cambiar. Su principal finalidad es la entrada de datos. Marco (Frame). Permite crear un agrupamiento funcional o gráfico de controles. Para agrupar controles, se debe dibujar primero el marco y después dibujar los controles dentro del marco. CommandButton. Crea un botón en el que el usuario puede hacer clic para ejecutar un comando. CheckBox. Crea una casilla de verificación que el usuario puede seleccionar fácilmente para indicar si algo es verdadero o falso, o que presenta al usuario múltiples opciones cuando éste puede elegir más de una. OptionButton. Permite mostrar múltiples opciones de las que el usuario sólo puede elegir una. ComboBox. Permite crear una combinación de cuadro de texto y cuadro de lista. El usuario puede seleccionar un elemento de la lista o escribir un valor en el cuadro de texto. ListBox. Se utiliza para mostrar una lista de elementos de los que el usuario puede escoger uno. La lista se puede desplazar si tiene más elementos de los que se pueden mostrar en un momento dado. HScrollBar (barra de desplazamiento horizontal). Le proporciona una herramienta gráfica para desplazarse rápidamente por una larga lista de elementos o de una gran cantidad de información, para indicar la posición actual en una escala o para utilizarlo como un dispositivo de entrada o un indicador de velocidad o de cantidad. VScrollBar (barra de desplazamiento vertical). Le proporciona una herramienta gráfica para desplazarse rápidamente por una larga lista de elementos o de una gran cantidad de información, para indicar la posición actual en una escala o para utilizarlo como un dispositivo de entrada o un indicador de velocidad o de cantidad. Timer. Genera eventos Timer con los intervalos definidos. Este control no es visible en tiempo de ejecución. DriveListBox. Muestra las unidades de disco válidas. DirListBox (cuadro de lista de directorios). Muestra los directorios y las rutas de acceso.
Profesor: Leonel Orozco Celaya (
[email protected])
Página 8
FileListBox. Muestra una lista de archivos. Formas (Shape). Permite dibujar una gran variedad de formas en el formulario, en tiempo de diseño. Puede elegir entre un rectángulo, un rectángulo redondeado, un cuadrado, un cuadrado redondeado, un óvalo o un círculo. Line. Se utiliza para dibujar una gran variedad de estilos de línea en el formulario en tiempo de diseño. Imagen (Image). Muestra en el formulario una imagen gráfica de un mapa de bits, un icono o un metarchivo . Las imágenes que se muestran en un control Image sólo pueden ser decorativas y utilizan menos recursos que un control PictureBox. Datos (Data). Le proporciona acceso a los datos almacenados en bases de datos mediante los controles enlazados del formulario. ActiveX. Permite vincular e incrustar objetos de otras aplicaciones en la aplicación de Visual Basic.
Profesor: Leonel Orozco Celaya (
[email protected])
Página 9
FUNDAMENTOS DE PROGRAMACION Una aplicación no es más que un conjunto de instrucciones para que el equipo realice una o varias tareas. La estructura de una aplicación es la forma en que se organizan las instrucciones; es decir, dónde se almacenan las instrucciones y el orden en que se ejecutan. Puesto que una aplicación de Visual Basic se basa en objetos, la estructura de su código se aproxima mucho a su representación física en pantalla. Por definición, los objetos contienen datos y código. El formulario que ve en la pantalla es una representación de las propiedades que definen su apariencia y su comportamiento intrínseco. Por cada formulario de una aplicación hay un módulo de formulario relacionado (con la extensión de nombre de archivo .frm) que contiene su código. Cada módulo de formulario contiene procedimientos de evento (secciones de código donde se colocan las instrucciones que se ejecutarán como respuesta a eventos específicos). Los formularios pueden contener controles. Por cada control de un formulario, existe el correspondiente conjunto de procedimientos de evento en el módulo de formulario. Además de procedimientos de evento, los módulos de formulario pueden contener procedimientos generales que se ejecutan como respuesta a una llamada desde cualquier procedimiento de evento. El código de una aplicación de Visual Basic está organizado de forma jerárquica. Una aplicación típica está compuesta por uno o más módulos: un módulo de formulario por cada formulario de la aplicación, módulos estándares opcionales para el código compartido y módulos de clase opcionales.
Secuencia típica de eventos en una aplicación controlada por eventos: 1. Se inicia la aplicación y se carga y muestra un formulario. 2. El formulario (o un control del formulario) recibe un evento. El evento puede estar causado por el usuario (por ejemplo, por la pulsación de una tecla), por el sistema (por ejemplo, un evento de cronómetro) o, de forma indirecta, por el código (por ejemplo, un evento Load cuando el código carga un formulario). 3. Si hay código en el procedimiento de evento correspondiente, se ejecuta. 4. La aplicación espera al evento siguiente. El código en Visual Basic se almacena en módulos. Hay tres tipos de módulos: de formulario, estándar y de clase.
Profesor: Leonel Orozco Celaya (
[email protected])
Página 10
CONCEPTOS BASICOS DEL CODIGO:
Dividir una única instrucción en varias líneas Puede dividir una instrucción larga en varias líneas en la ventana del Editor de código si utiliza el carácter de continuación de línea (un espacio en blanco seguido de un signo de subrayado). Data1.RecordSource = "SELECT * FROM Titles, Publishers" _ & "WHERE Publishers.PubId = Titles.PubID"
Combinar instrucciones en una línea Se puede colocar mas de una instruccción en una línea si se utiliza un signo de dos puntos (:) para separarlas: Text1.Text = "Hola" : Red = 255 : Text1.BackColor = _ Red ELEMENTOS DEL LENGUAJE CONSTANTES Una constante es un nombre significativo que sustituye a un número o una cadena que no varía. Hay dos orígenes para las constantes:
Constantes intrínsecas o definidas por el sistema proporcionadas por aplicaciones y controles. En Visual Basic, los nombres de constantes tienen un formato que combina mayúsculas y minúsculas, con un prefijo que indica la biblioteca de objetos que define la constante. Las constantes de las bibliotecas de objetos de Visual Basic y Visual Basic para aplicaciones tienen el prefijo "vb"; por ejemplo, vbTileHorizontal.
Las constantes simbólicas o definidas por el usuario se declaran mediante la instrucción Const. La sintaxis para declarar una constante es la siguiente: [Public|Private] Const nombreConstante[As tipo] = expresión
Profesor: Leonel Orozco Celaya (
[email protected])
Página 11
Una instrucción Const puede representar una cantidad matemática, de cadena de caracteres o de fecha y hora: Const conPi = 3.14159265358979 Public Const conMaxPlanetas As Integer = 9 Const conFechaSalida = #1/1/95# Public Const conVersion = "07.10.A" Const conNombreClave = "Enigma"
Alcance de las constantes definidas por el usuario Una instrucción Const tiene igual alcance que una declaración de variable y se le aplican las mismas reglas:
Para crear una constante que sólo exista en un procedimiento, se debe declara dentro del procedimiento. Para crear una constante disponible para todos los procedimientos de un módulo, pero no para el código que está fuera del módulo, declararla en la sección Declaraciones del módulo. Para crear una constante disponible en toda la aplicación, declarar la constante en la sección Declaraciones de un módulo estándar y la palabra clave Public.
VARIABLES Se declara una variable mediante la instrucción Dim, proporcionando un nombre a la variable: Dim | Public | Static nombreVariable [As tipo] Las variables que se declaran en un procedimiento mediante la instrucción Dim sólo existen mientras se ejecuta el procedimiento. Cuando termina el procedimiento, desaparece el valor de la variable. Además, el valor de una variable de un procedimiento es local de dicho procedimiento; es decir, no puede tener acceso a una variable de un procedimiento desde otro procedimiento. Estas características permiten usar los mismos nombres de variables en distintos procedimientos sin preocuparse por posibles conflictos o modificaciones accidentales.
Profesor: Leonel Orozco Celaya (
[email protected])
Página 12
Static. Se consigue que las variables locales no se creen y destruyan al entrar y salir de los procedimientos donde fueron declaradas sino que mantengan su valor mientras se ejecuta la aplicación. El nombre de una variable: Debe comenzar con una letra. No puede incluir un punto o un carácter de declaración de tipo. No debe exceder de 255 caracteres. Debe ser única en el mismo alcance, que es el intervalo desde el que se puede hacer referencia a la variable: un procedimiento, formulario, etc. La cláusula opcional As tipo de la instrucción Dim le permite definir el tipo de dato o de objeto de la variable que va a declarar.
Establecer el alcance de las variables Dependiendo de cómo se declara, una variable tiene como alcance un procedimiento (local) o un módulo. Alcance
Privado
Público
Nivel de procedimiento
Las variables son privadas procedimiento en el que aparecen.
del
No es aplicable. No puede declarar variables públicas dentro de un procedimiento.
Nivel de módulo
Las variables son privadas del módulo en el que aparecen.
Las variables están disponibles para todos los módulos.
TIPOS DE DATOS Tipo de datos
Valores aceptados
Boolean
True, False / Si, No
Byte
0 - 255
Currency
Tipo de dato muy útil para los cálculos que incluyen dinero o cálculos de signo decimal fijo, en los que la exactitud es extremadamente importante. Este tipo de datos se utiliza para almacenar números de hasta 15 dígitos a la izquierda del signo decimal y 4 dígitos a la derecha.
Profesor: Leonel Orozco Celaya (
[email protected])
Página 13
Date (Time)
Tipo de datos utilizado para almacenar fechas y horas como un número real. El valor de la izquierda de los decimales representa la fecha y valor de la derecha representa una hora.Time. Tipo de datos que almacena un valor de hora. El valor depende del valor del reloj del origen de datos.
Double
Valores decimales de doble precisión
Integer
- 32,768 hasta 32,767
Long
Almacena como un número de 32 bits de longitud (4 bytes) con un valor comprendido en el rango -2,147,483,648 a 2,147,483,647.
Object
Tipo de datos que representa cualquier referencia a un tipo Object. Las variables Object se almacenan como direcciones de 32 bits (4 bytes) que hacen referencia a objetos.
Single
Almacena números de signo flotante de precisión simple en formato IEEE. Las variables Single se almacenan como números de 32 bits (4 bytes) dentro del intervalo 3,402823E38 a -1,401298E-45 para valores negativos, 1,401298E-45 a 3,402823E38 para valores positivos y 0.
String
Cadenas de caracteres
Variant
Tipo de datos especial que contiene datos numéricos, cadenas o fechas, así como los valores especiales Empty y Null. Todas las variables se convierten en tipo variante, si no se declaran explícitamente de otro tipo.
Profesor: Leonel Orozco Celaya (
[email protected])
Página 14
Operadores de Visual Basic 6.0 Tipo
Operación
Operador Vbasic
Exponenciación Cambio de signo (operador unario) Multiplicación, división División entera Resto de una división entera Suma y resta
^ *, / \ Mod +, -
Concatenar o enlazar
&+
Igual a Distinto Menor que / menor o igual que Mayor que / mayor o igual que
= < >=
Comparar dos expresiones de caracteres Comparar dos referencias a objetos
Like Is
Negación And Or inclusivo Or exclusivo Equivalencia (opuesto a Xor) Implicación
Not And Or Xor Eqv Imp
en
Aritmético
Concatenación Relacional
Otros
Lógico
And, Or Not Negación lógica de una expresión Xor Realiza una exclusión lógica entre dos expresiones Si una y sólo una de las expresiones es True, el resultado es True. Eqv Realiza una equivalencia de dos expresiones. Si las dos expresiones son verdaderas o falsas, el resultado es verdadero (True). Imp Realiza una implicación lógica de dos expresiones. El resultado de la expresión es falsa, sólo si la primera es verdadera y la segunda es falsa; en todos los demás casos es verdadera.
Profesor: Leonel Orozco Celaya (
[email protected])
Página 15
Prioridad de los operadores Cuando hay varias operaciones en una misma expresión, cada parte de la misma se evalúa y se resuelve en un orden predeterminado según la prioridad de los operadores Cuando hay expresiones que contienen operadores de más de una categoría, se resuelven antes las que tienen operadores aritméticos, a continuación las que tienen operadores de comparación y por último las de operadores lógicos. Los operadores de comparación tienen todos, la misma prioridad; es decir, se evalúan de izquierda a derecha, en el orden en que aparecen. Los operadores lógicos y aritméticos se evalúan en el siguiente orden de prioridad: Aritméticos
Comparación
Lógicos
Exponenciación (^)
Igualdad (=)
Not
Negación (–)
Desigualdad ()
And
Multip. y división (*, /)
Menor que ()
Xor
Módulo aritmético (Mod)
Menor o igual que (=)
Imp
Profesor: Leonel Orozco Celaya (
[email protected])
Página 16
ESTRUCTURA DE CONTROL
Selectivas If...Then Usar la estructura If...Then para ejecutar una o más instrucciones basadas en una condición. If condición Then instrucción If condición Then
instrucciones
End If
If...Then...Else Para definir varios bloques de instrucciones, uno de los cuales se ejecutará: If condición1 Then [bloque de instrucciones 1] [ElseIf condición2 Then [bloque de instrucciones 2]] ... [Else [bloque de instrucciones n]] End If
Select Case Visual Basic proporciona la estructura Select Case como alternativa a If...Then...Else para ejecutar selectivamente un bloque de instrucciones entre varios bloques de instrucciones. La estructura Select Case funciona con una única expresión de prueba que se evalúa una vez solamente, al principio de la estructura. Visual Basic compara el resultado de esta expresión con los valores de cada Case de la estructura. Si hay una coincidencia, ejecuta el bloque de instrucciones asociado a ese Case:
Profesor: Leonel Orozco Celaya (
[email protected])
Página 17
Select Case expresiónPrueba [Case listaExpresiones1 [bloque de instrucciones 1]] [Case listaExpresiones2 [bloque de instrucciones 2]] . . . [Case Else [bloque de instrucciones n]] End Select Cada listaExpresiones es una lista de uno o más valores. Si hay más de un valor en una lista, se separan los valores con comas. Cada bloque de instrucciones contiene cero o más instrucciones. Si más de un Case coincide con la expresión de prueba, sólo se ejecutará el bloque de instrucciones asociado con la primera coincidencia. Visual Basic ejecuta las instrucciones de la cláusula (opcional) Case Else si ningún valor de la lista de expresiones coincide con la expresión de prueba. Ejemplo: Dim num As Integer num = 100 Select Case num Case 0 MsgBox "Es cero" Case 1, 2, 3 MsgBox "Es 1, 2 o 3" Case 1 To 100 MsgBox "Es positivo menor o igual a 100" Case Is > 100 MsgBox "Positivo mayor a 100" Case Else MsgBox "Es Negativo" End Select
Profesor: Leonel Orozco Celaya (
[email protected])
Página 18
Repetitivas Do...Loop Utilizar el bucle Do para ejecutar un bloque de instrucciones un número indefinido de veces. Hay algunas variantes en la instrucción Do...Loop, pero cada una evalúa una condición numérica para determinar si continúa la ejecución. En el ejemplo de Do...Loop siguiente, las instrucciones se ejecutan siempre y cuando condición sea True: Do While condición
instrucciones
Loop Otra variante de la instrucción Do...Loop ejecuta las instrucciones primero y prueba condición después de cada ejecución. Esta variación garantiza al menos una ejecución de instrucciones: Do
Instrucciones Loop While condición Hay otras dos variantes análogas a las dos anteriores, excepto en que repiten el bucle siempre y cuando condición sea False en vez de True. Hace el bucle cero o más veces Hace el bucle al menos una vez Do Until condición
instrucciones
Loop
Do
instrucciones Loop Until condición
For … Next For contador = iniciar To finalizar [Step incremento]
instrucciones Next [contador]
Profesor: Leonel Orozco Celaya (
[email protected])
Página 19
While … Wend Ejecuta una serie de instrucciones mientras la condición sea verdadera. While condición [intrucciones] Wend
Profesor: Leonel Orozco Celaya (
[email protected])
Página 20
PROCEDIMIENTOS Y FUNCIONES Procedimiento Sub Es un bloque de código que se ejecuta como respuesta a un evento. La sintaxis de un procedimiento Sub es la siguiente: [Private|Public][Static] Sub nombreProcedimiento (argumentos)
instrucciones
End Sub Se pueden colocar en módulos estándar, módulos de clase y módulos de formulario. De forma predeterminada, son Public en todos los módulos, lo que significa que se les puede llamar desde cualquier parte de la aplicación. Se clasifican en: Procedimientos Generales Un procedimiento general indica a la aplicación cómo realizar una tarea específica. Una vez que se define un procedimiento general, se le debe llamar específicamente desde la aplicación. Procedimientos de Eventos Cuando un objeto en Visual Basic reconoce que se ha producido un evento, llama automáticamente al procedimiento de evento utilizando el nombre correspondiente al evento. Como el nombre establece una asociación entre el objeto y el código, se dice que los procedimientos de evento están adjuntos a formularios y controles.
Un procedimiento de evento de un control combina el nombre real del control (especificado en la propiedad Name), un carácter de subrayado (_) y el nombre del evento.
Un procedimiento de evento de un formulario combina la palabra "Form", un carácter de subrayado y el nombre del evento.
Procedimiento Function: Procedimiento que realiza una tarea específica dentro de un programa de Visual Basic y devuelve un valor.
Profesor: Leonel Orozco Celaya (
[email protected])
Página 21
La sintaxis de un procedimiento Function es la siguiente: [Private|Public][Static] Function nombreProcedimiento (argumentos) [As tipo]
instrucciones
End Function
Al igual que un procedimiento Sub, un procedimiento Function es un procedimiento diferente que puede tomar argumentos, realizar una serie de instrucciones y cambiar el valor de los argumentos. A diferencia de los procedimientos Sub, los procedimientos Function pueden devolver un valor al procedimiento que realiza la llamada. Ejemplo: Private Sub boton_Click () Dim cadena as String Cadena = Iif (EsPrimo(Val(text1)),”Es primo”,”No es primo”) MsgBox cadena End Sub Function EsPrimo (x As Integer) As Bolean Dim i as Integer EsPrimo = True If x > 3 Then i=2 Do Until i > x-1 If x Mod I = 0 Then EsPrimo = False i =x Else i=i+1 End If Loop End iF End Function
Profesor: Leonel Orozco Celaya (
[email protected])
Página 22
Algunas funciones de Visual Basic Función Matemática Valor absoluto Arco tangente Exponencial Parte entera Logaritmo Redondeo
Función en VB Abs(x) Atn(x) Exp(x) Int(x), Fix(x) Log(x) Round(x, ndec)
Función Matemática Nº aleatorio Seno y coseno Tangente Raíz cuadrada Signo (1, 0, -1)
Función en VB Rnd Sin(x), Cos(x) Tan(x) Sqr(x) Sgn(x)
Utilidad
Función de VB 6.0
Número de caracteres de una cadena Conversión a minúsculas o a mayúscula Conversión de cadenas a números y de números a cadenas Extracción de un nº de caracteres en un rango, de la parte derecha o izquierda de una cadena Extracción de sub-cadenas Unión de sub-cadenas Comparación de cadenas de caracteres Hallar si una cadena es parte de otra(está contenida como sub-cadena) Hallar una cadena en otra a partir del final (reverse order) Buscar y reemplazar una subcadena por otra en una cadena
Len(string | varname) LCase(x), UCase(x) Str(n), CStr(n), Val(string) Mid(string, ini[, n]) Right(string, length) Left(string, length) Split(string, [[delim], n]) Join(string, [delim]) strComp(str1, str2) InStr([n], str1, str2) InstrRev(str1, str2, [n]) Replace(string, substring, replacewith)
Profesor: Leonel Orozco Celaya (
[email protected])
Página 23
Descripción general de propiedades de Formularios y Controles
Propiedades más comunes de los FORMULARIOS
GENERALES Name Icon Keypreview
MaxButton MinButton MousePointer WindowState
APARIENCIA BackColor BorderStyle
Nombre con el cual se identificará al formulario en la codificación. Icono que se muestra en la parte superior derecha del formulario. Devuelve o establece un valor que determina si los eventos de teclado de los formularios se invocan antes que los eventos de teclado de los controles. Los eventos de teclado son KeyDown, KeyUp y KeyPress. Determina si el formulario se puede o no maximizar. Determina si el formulario se puede o no minimizar. Permite seleccionar el apuntador del ratón. Selecciona el modo en el cual se ejecutará el formulario: normal, maximizado o minimizado. Define el color de fondo del formulario Define el tipo de borde del formulario: sin borde, si se puede
Profesor: Leonel Orozco Celaya (
[email protected])
Página 24
Caption FillColor FillStyle ForeColor Picture POSICION Height Left Moveable StatUpPosition Top Width
cambiar el tamaño, etc. Texto que aparece en la parte superior del formulario. Color con el cual se llenarán los círculos y cuadros. Estilo de relleno: sólido, horizontal, etc. Color de la fuente del formulario. Permite seleccionar y mostrar una imagen en el formulario. Devuelve/asigna la altura del formulario. D/A la distancia a la izquierda con el objeto contenedor del formulario. D/A un valor que determinar si el formulario puede ser desplazado. D/A la posición del formulario con respecto a su contenedor o de la pantalla. D/A la distancia entre la parte superior del contenedor con respecto al formulario. D/A el ancho del formulario.
Convenciones de nombres de objetos Los objetos deben llevar nombres con un prefijo coherente que facilite la identificación del tipo de objeto. A continuación se ofrece una lista de convenciones recomendadas para algunos de los objetos permitidos por Visual Basic.
Prefijos sugeridos para controles Tipo de control
Prefijo
Ejemplo
Barra de desplazamiento horizontal
hsb
hsbVolumen
Barra de desplazamiento vertical
vsb
vsbIndice
Barra de estado
sta
staFechaHora
Barra de progreso
prg
prgCargarArchivo
Botón animado
ani
aniBuzon
Botón de número
spn
spnPaginas
Botón de opción
opt
optGenero
Botones de comando
cmd
cmdSalir
Profesor: Leonel Orozco Celaya (
[email protected])
Página 25
Casilla de verificación
chk
chkSoloLectura
Comunicaciones
com
comFax
Contenedor OLE
ole
oleHojaCalculo
Control (se usa en procedimientos cuando el tipo específico es desconocido)
ctr
ctrActual
Control deslizante
sld
sldEscala
Cronómetro
tmr
tmrAlarma
Cuadrícula
grd
grdPrecios
Cuadrícula de datos
dgd
dgdTitulos
Cuadrícula enlazada a datos
dbgrd
dbgrdResultadosConsulta
Cuadrícula MS Flex
msg
msgClientes
Cuadro combinado de datos
dbc
dbcAutor
Cuadro combinado de imagen
imgcbo
imgcboProducto
Cuadro combinado enlazado a datos
dbcbo
dbcboIdioma
Cuadro combinado, cuadro de lista desplegable
cbo
cboIngles
Cuadro de imagen
pic
picVGA
Cuadro de lista
lst
lstCodigos
Cuadro de lista de archivos
fil
filOrigen
Cuadro de lista de directorios
dir
dirSource
Cuadro de lista de unidades
drv
drvDestino
Cuadro de lista enlazada a datos
dblst
dblstTipoTrabajo
Cuadro de texto
txt
txtApellido
Datos
dat
datBiblio
Datos ADO
ado
adoBiblio
Datos remotos
rd
rdTitulos
Diálogo común
dlg
dlgAbrirArchivo
Etiqueta
lbl
lblMensajeAyuda
Profesor: Leonel Orozco Celaya (
[email protected])
Página 26
Fichas
tab
tabOpciones
Hierarchical Flexgrid
flex
flexPedidos
Forma
shp
shpCirculo
Formulario
frm
frmEntrada
Gráfico
gra
graGanancias
Imagen
img
imgIcono
Información del sistema
sys
sysMonitor
Línea
lin
linVertical
Lista de datos
dbl
dblEditor
Lista de imágenes
ils
ilsTodosIconos
Marco
fra
fraIdioma
MCI
mci
mciVideo
Mensaje MAPI
mpm
mpmEnviarMensaje
Menú
mnu
mnuAbrirArchivo
MS Chart
ch
chVentasPorRegion
MS Tab
mst
mstPrimero
Panel 3D
pnl
pnlGrupo
Picture clip
clp
clpBarraHerramientas
Repetidor de datos
drp
drpUbicacion
RichTextBox
rtf
rtfInforme
Selector de fecha
dtp
dtpEditado
Sesión MAPI
mps
mpsSesión
UpDown
upd
updDirección
Visor de árbol
tre
treOrganización
Visor de lista
lvw
lvwEncabezados
Vista de mes
mvw
mvwPeriodo
Profesor: Leonel Orozco Celaya (
[email protected])
Página 27