Guía básica de Visual Basic 6.0

5,105 views

Published on

Guia de estudio Visual Basic 6.0

Published in: Education

Guía básica de Visual Basic 6.0

  1. 1. ESCUELA MODELO DEVON MODULO VISUAL BASIC 6.0 Prof.Patricia Ferrer
  2. 2. V I S U A L B A S I C 6 . 0 B Á S I C O Página 3 de 62 Presentación La informática hoy día se significa como un instrumento estratégico en la consolidación del concepto de calidad, al interior y exterior de cualquier organización. Mayor productividad, eficiencia y confiabilidad; en breve, mayor competitividad. Es lo que el desarrollo de ésta rama ha devuelto en los procesos donde se involucra el manejo de información, los cuales, están presentes en cualquier actividad y en todos los ámbitos. La capacitación en éste rubro, por consiguiente, es más que necesaria, pues es el medio a través del cual se pueden plantear propuestas de solución asociadas a los problemas que se generan de la administración de datos en una organización; en este sentido, el desarrollo de programas implica una conciencia plena de esta problemática y también una visión creativa en busca de alternativas que satisfagan las necesidades y requerimientos particulares en los centros de trabajo. En este contexto las herramientas como Visual Basic constituyen una alternativa viable en esa constante demanda de conocimientos y actitudes que establezcan una mejor y más eficaz gestión de la información. El Instituto Mexicano del Seguro Social conjuntamente con el Sindicato Nacional de Trabajadores del Seguro Social comprometidos con la superación y actualización del personal, impulsan la Capacitación en materia de Informática, Humanística, Promocional y de Programas Institucionales que se vinculen a la solución de los problemas de la operación, favoreciendo el otorgamiento de servicios de calidad. La Coordinación de Informática del Centro Nacional de Capacitación y Calidad, cumple con la tarea de Diseñar los cursos de capacitación y elaborar los Materiales de Apoyo Didáctico para sustentar los programas de capacitación en Informática que integran el Plan de Trabajo de esta Coordinación y que están abiertos a todos nuestros compañeros trabajadores. Así pues, se presenta a continuación el Material de Apoyo Didáctico del Participante “Visual Basic 6.0 Básico”, mismo que ha sido elaborado con información actualizada y los sustentos pedagógico y didáctico, que garantizan el cumplimiento del propósito para el cual fue elaborado: conducir el aprendizaje de los trabajadores, promoviendo la autosuficiencia en la construcción de aplicaciones de software de uso específico que atiendan las necesidades concretas en las diferentes áreas laborales. Este material de apoyo está distribuido en cinco unidades temáticas que se describen a continuación: Módulo I Elementos generales Módulo II El entorno de trabajo en Visual Basic Módulo III La programación en Visual Basic Módulo IV Controles y objetos especiales Cada uno de estos contiene información detallada de los términos, componentes y procedimientos empleados con mayor frecuencia en la gestión y operación de las herramientas descritas. Resulta más que obligada la práctica cotidiana de los temas tratados en este material de apoyo didáctico, sólo de esta forma podrá observar un aprendizaje significativo y una mejora efectiva en su desempeño laboral.
  3. 3. V I S U A L B A S I C 6 . 0 B Á S I C O Página 5 de 62 Módulo I Elementos generales Algoritmos Un algoritmo es un conjunto de pasos o acciones que llevan una secuencia lógica y sistemática con el objeto de resolver un problema específico. El desarrollo de algoritmos implica tres etapas básicas y tres módulos de operación. Las Etapas… 1. Análisis del problema. Consiste en identificar el problema: sus elementos, condiciones, causas, efectos… 2. Construcción del algoritmo. Es la descripción de una solución posible al problema. 3. Verificación del algoritmo. Tiene que ver con la prueba de la solución planteada. Los Módulos de operación… 1. Entrada de datos. Es la acción de introducir datos al sistema, captura. 2. Procesamiento de datos. La ejecución de operaciones secuenciales, lógicas y organizadas cuyo propósito es generar un resultado al procesar los datos. 3. Salida de datos. Incluye esas acciones que permiten enviar al exterior los resultados obtenidos. Así también, en cualquier algoritmo deben identificarse tres características: son precisos, determinísticos y finitos. El algoritmo es preciso, puesto que indica el orden que llevará cada acción en la solución del problema; es determinístico porque siempre ha de arrojar el mismo resultado; y es finito, en función de que posee una acción concluyente o final. Se conocen diversas técnicas para resolver problemas (diseñar algoritmos) entre las que mencionamos: Diagramas de Flujo Es la representación gráfica de las funciones que realiza un sistema y el flujo que siguen los datos en los procesos que tienen lugar dentro del mismo. Tal representación describe los pasos que se siguen para resolver una situación concreta y utiliza símbolos normalizados y estandarizados para expresar cada una de las acciones y operaciones que tienen efecto en el interior del sistema al que se refiere. Dicho de otra manera, un diagrama de flujo es la representación gráfica de un algoritmo. Parte de la simbología elemental que se emplea en el diseño de diagramas de flujo se ilustra a continuación: Al diseñar diagramas de flujo deben considerarse ciertas estructuras, que permitan establecer la manera en que interaccionan los datos entre sí, en los procesos en los cuales se han incluido, a estos elementos se les conoce con el nombre de estructuras Algorítmicas, siendo tres tipos los que se manejan comúnmente: I. Secuencial: muestra que después de una acción sigue otra y así sucesivamente hasta el término del proceso. Acción 1 Acción 2 Acción 3 Acción …n Inicio/Fin Leer/Escribir Proceso Automático Decisión Base de Datos Flujo de Datos
  4. 4. V I S U A L B A S I C 6 . 0 B Á S I C O Página 6 de 62 II. Selectiva: representa la evaluación de una condición lógica y, según el resultado de esa evaluación, se ejecutan ciertas acciones. III. Repetitiva: expresa la repetición de una o varias acciones; un número determinado de veces, mientras una condición establecida se cumpla o hasta que una condición determinada resulte verdadera. Pseudocódigos Un pseudocódigo (llamado también falso lenguaje), es una serie de normas léxicas y gramaticales parecidas a la mayoría de los lenguajes de programación, pero sin llegar a la rigidez de sintaxis de estos ni a la fluidez del lenguaje coloquial. Esto permite codificar un programa con mayor agilidad que en cualquier lenguaje de programación, con la misma validez semántica, normalmente se utiliza en las fases de análisis o diseño de Software, o en el estudio de un algoritmo. Forma parte de las distintas herramientas de la ingeniería de software. No hay ningún compilador o intérprete de pseudocódigos informáticos (en el caso de que los hubiera, serían los mismos usuarios y lectores del pseudocódigo), por lo tanto no puede ser ejecutado en un equipo de cómputo, pero las similitudes con la mayoría de los lenguajes informáticos lo hacen fácilmente convertible. El pseudocódigo describe un algoritmo utilizando una mezcla de frases en lenguaje común, instrucciones de programación y palabras clave que definen las estructuras básicas; su objetivo es permitir que el programador se centre en los aspectos lógicos de la solución a un problema. No siendo el pseudocódigo un lenguaje formal, varían de un programador a otro, es decir, no hay una estructura semántica ni arquitectura estándar para crearlos. Sin duda representan una herramienta ágil para el estudio y diseño de aplicaciones; no obstante, su empleo exige el conocimiento de las estructuras de control de datos secuencial, selectiva y repetitiva, cuyos modelos pueden observarse en la siguiente página. Condición Acciones Verdadero Falso Falso Acción 2 Acción 1 Condición Verdadero
  5. 5. V I S U A L B A S I C 6 . 0 B Á S I C O Página 7 de 62 Estructuras de control  Secuencial Acción 1 Acción 2 Acción …n  Selectiva  Simple Si <condición> entonces Acción 1 Acción 2 Acción …n Fin de si  Doble Si <condición> entonces Acción 1 Acción 2 Acción …n Si no Acción 3 Acción 4 Acción …n Fin de si  Anidada Si <condición1> y <condición2> y <condición3> y <condición4> entonces Acción 1 Acción 2 Acción …n Fin de si  Múltiple Seleccionar Caso objeto Caso 1 Acción(es) 1 Caso 2 Acción(es) 2 Caso 3 Acción(es) 3 Caso …n Acción(es) 4 Caso distinto Acción(es) 5 Fin de Selección  Repetitiva  Hasta Hacer hasta <condición> Acción 1 Acción 2 Acción …n Repetir
  6. 6. V I S U A L B A S I C 6 . 0 B Á S I C O Página 8 de 62  Mientras Hacer Mientras <condición> Acción 1 Acción 2 Acción …n Repetir  Para Para <contador> = valor_inicial Hasta valor_final Acción 1 Acción 2 Acción …n Siguiente Ejemplo de Algoritmo, Diagrama de flujo y Pseudocódigo. Problema: Elaborar el algoritmo de la suma de dos números con una calculadora convencional. Algoritmo: 1. Digitar el primer valor a sumar 2. Oprimir o seleccionar el operador suma (+) 3. Digitar el segundo valor a sumar 4. Oprimir el botón que muestre el resultado de la operación (=) Diagrama de Flujo: Pseudocódigo: Inicio Leer Valor1 Leer + Leer Valor2 R = Valor1 + Valor2 Escribir R Fin Inicia Términa Valor 1 Operador + Valor 2 R = Valor 1 + Valor 2 R
  7. 7. V I S U A L B A S I C 6 . 0 B Á S I C O Página 9 de 62 Módulo II El entorno de trabajo en Visual Basic Una vez que hayas instalado Visual Basic 6.0 en el equipo de cómputo, utliza el siguiente procedimiento para ejecutarlo y comenzar una sesión de trabajo: 1. Haga clic en el menú Inicio. 2. Seleccione la opción Programas o Todos los programas. 3. Localice la carpeta Microsoft Visual Basic 6.0, si la versión instalada es la versión Profesional; seleccione Microsoft Visual Studio, si la versión instalada es la versión Corporativa. 4. Finalmente haga clic en Microsoft Visual Basic 6.0. De manera predeterminada, cada vez que inicias una sesión de trabajo en Visual Basic, se muestra el cuadro de diálogo Nuevo Proyecto, en el que puedes seleccionar la creación de algún proyecto nuevo, trabajar en un proyecto existente o tal vez buscar entre aquellos que recientemente fueron utilizados en el equipo. La ventana de Visual Basic 6.0 Después de haber seleccionado la opción conveniente, se mostrará en pantalla la ventana de Visual Basic 6.0 Profesional, la cual tiene una apariencia similar a la de la imagen siguiente… Visual Basic 6.0 Profesional
  8. 8. V I S U A L B A S I C 6 . 0 B Á S I C O Página 10 de 62 Inicialmente, en esta ventana deberás identificar cinco elementos básicos: Cuadro de herramientas (ToolBox) Formulario (Form) Explorador de proyectos (Project Explorer) Ventana de Propiedades (Window Properties) Ventana Posición de Formulario (Form Layout) Cuadro de herramientas. Proporciona las herramientas que permiten ubicar los controles en un formulario durante el diseño del mismo. La ficha General establece de manera predeterminada el grupo de botones con los que contaremos al iniciar nuevos proyectos en Visual Basic. El cuadro de herramientas puede activarse desde el menú Ver, Cuadro de Herramientas, o haciendo clic en el botón Cuadro de herramientas de la barra estándar. Formulario. Es el área sobre el cual se diseña la interfaz de la aplicación. Cada formulario está contenido en una ventana llamada ventana de formulario. Los formularios se muestra desde el menú Ver, opción Objeto; combinando las teclas Shift + F7 o haciendo clic en el botón Ver objeto, en el Explorador de Proyectos. Explorador de proyectos. Contiene y muestra todos los ficheros (formularios, módulos, clases, recursos…) que conforman una aplicación ó proyecto; para visualizar esta sección combina las teclas Ctrl + R; del menú Ver selecciona Explorador de Proyecto, o bien, haz clic en el botón del mismo nombre en la barra estándar.
  9. 9. V I S U A L B A S I C 6 . 0 B Á S I C O Página 11 de 62 Ventana Propiedades. Cada objeto lleva asociado un conjunto de propiedades (nombre, apariencia, posición, tamaño, color, etc.); para especificar los valores de esas propiedades, utilizaremos la ventana de propiedades. Para mostrarla presiona la tecla F4, o bien; selecciona la opción Ventana de Propiedades, del menú Ver, o da clic en el botón Ventana de Propiedades de la barra estándar. Ventana de Posición de formulario. Esta sección permite establecer manualmente la posición que tendrá cada formulario en pantalla al ejecutarse. Para mostrar este elemento, haz clic en el menú Ver y selecciona la opción Ventana Posición de formulario. Como otras aplicaciones de Microsoft, Visual Basic 6.0 posee una colección de barras de herramientas, cuatro en total, mismas que se ilustran enseguida:  Barra Estándar:  Barra Edición:  Barra Depuración:  Barra Editor de formularios Práctica 1: Los componentes de la ventana de Visual Basic 6.0 Iniciar sesión de trabajo 1. Abre el menú Inicio, selecciona el submenú Programas o Todos los programas; selecciona la carpeta Microsoft Visual Basic 6.0 y haz clic en el icono Microsoft Visual Basic 6.0. 2. En el cuadro de diálogo Nuevo Proyecto, selecciona la pestaña Nuevo; haz clic en el icono Exe estándar y oprime el botón Abrir. Inserción de controles del cuadro de herramientas 3. En el cuadro de herramientas, haz doble clic en el botón Etiqueta (Label) , aparecerá un objeto con el texto Label1 sobre el Formulario, como se muestra en la siguiente imagen. 4. Pulsando continuamente la tecla Control y ayudándote de las teclas de navegación ( y ), mueve la etiqueta a la esquina superior izquierda del formulario, de forma que quede ubicada como se observa en la imagen de la siguiente página.
  10. 10. V I S U A L B A S I C 6 . 0 B Á S I C O Página 12 de 62 5. Nuevamente haz doble clic en la herramienta Etiqueta y coloca al nuevo objeto debajo del anterior. 6. Ahora haz doble clic en el botón Cuadro de texto (TextBox) , aparecerá sobre el formulario un control con el texto Text1. Desplázalo hacia arriba para dejarlo ubicado a la derecha de la etiqueta Label1: 7. Repite las acciones del punto anterior y desplaza al cuadro de texto junto a la etiqueta Label2. 8. Haz doble clic en la herramienta Botón de Comando (CommandButton) , se mostrará sobre el formulario el objeto Command1, colócalo a la derecha del cuadro de texto Text1. Repite esta acción para mostrar el Command2 y sitúalo a la derecha del cuadro de texto Text2. El formulario deberá visualizarse así:
  11. 11. V I S U A L B A S I C 6 . 0 B Á S I C O Página 13 de 62 Definción de propiedades de los controles 9. Selecciona el formulario y desde la Ventana Propiedades define las siguientes características: Propiedad Valor o Contenido Nombre frmAcceso BackColor &H80000001& BorderStyle 1 - Fixed Single Caption Pantalla de Acceso StartUpPosition 2 - CenterScreen 10. Selecciona la etiqueta Label1 y define las siguientes propiedades: Propiedad Valor o Contenido Nombre lblAcceso Autosize True BackStyle 0 - Transparent Caption Usuario: Font MS Sans Serif, estilo Normal, tamaño 14 ForeColor &H00FFFFFF& 11. Para la etiqueta Label2, aplica los siguientes valores: Propiedad Valor o Contenido Nombre lblPassword Autosize True BackStyle 0 - Transparent Caption Password: Font MS Sans Serif, estilo Normal, tamaño 14 ForeColor &H00FFFFFF& 12. Selecciona el cuadro de texto Text1 y modifica las propiedades como se describe abajo. Propiedad Valor o Contenido Nombre txtUsuario Font MS Sans Serif, estilo Normal, tamaño 14 ForeColor &H80000001& Left 1500 MaxLenght 10 Text ToolTipText Escribe aquí tu nombre de usuario o inicio de sesión Width 1600
  12. 12. V I S U A L B A S I C 6 . 0 B Á S I C O Página 14 de 62 13. Para el cuadro de texto Text2, aplica los siguientes valores: Propiedad Valor o Contenido Nombre txtPassword Font MS Sans Serif, estilo Normal, tamaño 14 ForeColor &H80000001& Left 1500 MaxLenght 10 PasswordChar * Text ToolTipText Escribe aquí tu contraseña o password Width 1600 14. Ahora selecciona el objeto Command1, y ajusta las propiedades: Propiedad Valor o Contenido Nombre cmdAceptar BackColor &H80000013& Caption &Aceptar Font MS Sans Serif, estilo Negrita, tamaño 10 Style 1 - Graphical 15. Para el control Command2, utiliza los valores siguientes: Propiedad Valor o Contenido Nombre cmdCancelar BackColor &H80000013& Caption &Cancelar Font MS Sans Serif, estilo Negrita, tamaño 10 Style 1 - Graphical Al concluir esta fase de definición de propiedades, que es parte esencial en el diseño de una aplicación, el formulario deberá tener una apariencia similiar a la del gráfico siguiente: Más adelante, el instructor te dará más información sobre las propiedades de los controles y la manera en que éstas afectan su apariencia y comportamiento. Por lo pronto sólo utilizamos algunas aquí para verificar la utilidad de la ventana propiedades.
  13. 13. V I S U A L B A S I C 6 . 0 B Á S I C O Página 15 de 62 Proyectos (Project) Visual Basic administra la información concerniente a las aplicaciones que se desarrollan, en un tipo especial de archivo llamado proyecto; estos pueden estar conformados por distintos tipos de archivos: formularios, módulos, módulos de clase y ficheros de recursos. El código que activa los controles de un formulario es almacenado con el formulario mismo en archivos independientes. El código general compartido por todos los formularios de una aplicación puede ser dividido en varios módulos, que se guardan también de forma independiente. No obstante, aunque Visual Basic almacena separadamente los archivos que forman un proyecto, hace un seguimiento de la ubicación de los archivos y su contenido, creando para ello un archivo de proyecto, al que asigna la extensión .vbp (de Visual Basic Program/Project). Los formularios se almacenan con la extensión .frm y contienen una imagen del formulario y de todos los controles que pertenecen a él, incluidas sus propiedades. También pueden contener subrutinas de manejo de eventos, procedimientos generales, declaraciones de variables y de constantes a nivel de formulario, además de procedimientos externos. Un módulo estándar contiene código Visual Basic que no está asociado a ningún formulario en particular. Los procedimientos que se encuentran en el módulo, pueden ser accedidos desde cualquier otro procedimiento de la aplicación. Se almacenan con la extensión .bas. Los módulos de clase tienen la extensión .cls y contienen subrutinas, funciones, métodos y procedimientos para crear descripciones genéricas de objetos. Estos módulos contienen propiedades que describen el comportamiento de una clase, así como el código que define sus propiedades y métodos. Los archivos de recursos se almacenan con la extensión .res y contienen bitmaps, cadenas de texto, o cualquier otra información que pueda ser modificada sin tener que regenerar el código de la aplicación. En la imagen de arriba, que corresponde al Explorador de proyectos, puede apreciarse cómo es que se organizan los diversos tipos de archivo que integran un proyecto en Visual Basic 6.0. En resumen, un proyecto se define como el grupo de archivos que integran una aplicación (formularios, módulos, clases, recursos…). Todo proyecto nuevo por defecto asume el nombre Proyecto1. Los atributos generales de un proyecto son:  Nombre: En el nombre de un proyecto puedes utilizar el mnemónico vbp, como en su extensión; este puede modificarse en la Ventana Propiedades o en el campo Nombre de Proyecto, de la pestaña General, que se localiza en el cuadro de diálogo Propiedades de Proyecto…, del menú Proyecto. La propiedad Nombre de los objetos utilizados en Visual Basic sólo permite caracteres alfanuméricos y el guión bajo, como carácter especial.  Tipo: indica el tipo de proyecto en el que estamos trabajando (generalmente EXE estándar).  Objeto inicial: indica el nombre del objeto a partir del cual se ejecutará el proyecto (usualmente el formulario o procedimiento principal). Por defecto está asignado como objeto inicial Form1, que es el único archivo que integra cualquier proyecto inicialmente.
  14. 14. V I S U A L B A S I C 6 . 0 B Á S I C O Página 16 de 62 Almacenar un proyecto 16. En el Explorador de proyectos, selecciona Proyecto1 (Proyecto1) 17. En la ventana Propiedades, en la propiedad nombre (la única visible en esta sección para el proyecto), escribe vbpAcceso. Ello hará que en el mismo Explorador de proyectos se actualice el nombre de este. 18. Ahora, abre el menú Archivo y selecciona la opción Guardar Proyecto. Se mostrará el cuadro de diálogo Guardar archivo como, haciendo referencia al único formulario existente, que es parte de la aplicación en desarrollo. Por defecto, Visual Basic envía cada nuevo proyecto a la carpeta VB98, que se localiza dentro de la carpeta Microsoft Visual Studio, contenida en la carpeta Archivos de Programa, del disco local C:; dentro de esta, crea una carpeta personal (asígnale tu nombre o algo que la identifique como tu carpeta precedido del texto Prácticas VB).
  15. 15. V I S U A L B A S I C 6 . 0 B Á S I C O Página 17 de 62 19. Abre tu carpeta personal y en ella crea otra carpeta, esta vez con el nombre Proyecto Acceso e igualmente la abres. 20. Por último, comprueba que en el campo Nombre, aparezca el nombre del formulario (frmAcceso) y de ser así oprime el botón Guardar. 21. Después deberás verificar el nombre del archivo de proyecto (vbpAcceso), mismo que estableciste con anterioridad, para después presionar nuevamente el botón Guardar. Modo Diseño y Modo Ejecución Visual Basic 6.0 de Microsoft puede mostrar el contenido de un proyecto en dos modos distintos de trabajo: modo diseño y modo ejecución. En modo diseño, el usuario construye interactivamente la aplicación, colocando controles en el formulario, definiendo sus propiedades, y desarrollando rutinas de acción para gestionar información. La aplicación se prueba en modo de ejecución. En ese caso el usuario actúa sobre el programa (ejecuta eventos) y prueba cómo responde el programa. Algunas propiedades de los controles deben establecerse en modo de diseño, otras pueden cambiarse en tiempo de ejecución desde el programa escrito en Visual Basic 6.0. Desde que comienzas una sesión de trabajo en Visual Basic 6.0, te encontrarás trabajando en el modo diseño; para cambiar al modo ejecución, puedes utilizar cualquiera de las opciones siguientes:  Selecciona el comando Iniciar, ubicado en el menú Ejecutar.  O bien, haz clic en el botón Iniciar, que se localiza en la barra de herramientas estándar.  O bien, presiona la tecla F5. Para regresar al modo diseño, después de haber verificado el funcionamiento de la aplicación, realiza cualquiera de las siguientes acciones:  Combina las teclas Control + F4  O, si lo prefieres, abre el menú Ejecutar y haz clic en la opción Terminar  O bien, haz clic en el botón Terminar, ubicado en la barra
  16. 16. V I S U A L B A S I C 6 . 0 B Á S I C O Página 18 de 62 estándar. Si en este momento ejecutamos el Proyecto Acceso, lo único que podremos hacer es escribir dentro de los dos cuadros de texto del formulario y oprimir los botones Aceptar y Cancelar, sin que nada más ocurra después, ya que no hemos establecido qué acciones se llevarán a cabo al generar algún evento sobre los controles mencionados, y, en consecuencia, no se apreciará mucha diferencia entre el modo diseño y el modo ejecución. Por esta razón, agregaremos un poco de código a los controles situados en el formulario de acceso. Programando controles 22. Haz doble clic sobre el cuadro de texto txtUsuario. Aparecerá en pantalla la ventana que contiene el código asociado al formulario y sus controles: 23. En la esquina superior izquierda verás el nombre del control desde el cual hiciste doble clic, para llegar a esta ventana, (en este caso el cuadro de texto txtusuario). En la esquina superior derecha, donde se alcanza a leer el texto Change (el nombre de un evento), haz un clic en el botón desplegable y selecciona de la lista el nombre del evento o procedimiento KeyPress (Oprimir tecla). El resultado será: 24. En la posición donde quedó el cursor parpadeando, escribe las instrucciones que aparecen entre las líneas Private Sub y End Sub. Con ellas, lograremos que, al presionar la tecla Enter, cuando el cursor se encuentre parpadeando dentro del control txtUsuario, este se mueva a txtPassword. 25. Al terminar de escribir las instrucciones, combina las teclas Shift + F7, para regresar al formulario.
  17. 17. V I S U A L B A S I C 6 . 0 B Á S I C O Página 19 de 62 26. Haz doble clic ahora sobre el cuadro de texto, txtPassword. Aparecerá nuevamente la ventana donde está el código; tendrás que cambiar el evento Change por el evento KeyPress, como en el caso anterior. 27. Escribe las instrucciones que se muestran en la imagen siguiente desde la posición del cursor. En este caso, al presionar la tecla Enter, el cursor será desplazado al botón de comando cmdAceptar del formulario. 28. Muestra el formulario combinando las teclas Shift + F7. 29. Haz doble clic sobre el botón Aceptar para mostrar nuevamente la ventana de código. En este caso, te encontrarás con el nombre del evento Click, en la esquina superior izquierda de la ventana. Desde la posición que guarda el cursor, entre las líneas Private Sub y End Sub, escribe las instrucciones que se presentan en la imagen de la página siguiente. Estas señalan que si el nombre de usuario escrito en el formulario es idéntico a tu nombre (Juan, Carlos, Silvia, Laura…) y la contraseña escrita es el texto imss, entonces te aparecerá un mensaje de bienvenida al curso de Visual Basic y terminará la ejecución del programa; pero si el nombre de usuario es distinto a tu nombre y la contraseña no es imss, se te notificará con otro cuadro de mensaje, además, se borrará el texto que hayas escrito en ambos casos y el cursor quedará ubicado en el cuadro de texto txtUsuario, para intentarlo otra vez. 30. Regresa al formulario con Shift + F7. 31. Haz doble clic sobre el botón Cancelar. 32. En la posición del cursor, escribe la expresión End. Esta instrucción da por terminada la aplicación. 33. Presiona la tecla F5 para ejecutar la aplicación y verifica el funcionamiento de los controles ya programados. 34. Guarda los cambios efectuados en el proyecto y cierra Visual Basic.
  18. 18. V I S U A L B A S I C 6 . 0 B Á S I C O Página 20 de 62 Práctica 2 - Proyecto Colores a) Inicia una nueva sesión de trabajo en Visual Basic 6.0 b) Asigna como nombre al proyecto: vbpColores. c) Asigna las siguientes características a las propiedades del formulario existente: Propiedad Valor o Contenido Nombre frmColores BackColor &H00E0E0E0& BorderStyle 3 - Fixed Dialog Caption Selección de Colores Height 4000 StartUpPosition 2 - CenterScreen Width 5000 d) En el cuadro de herramientas, localiza y selecciona el control Marco (Frame) y realiza un trazo rectangular sobre el formulario, como se muestra en la imagen siguiente. e) Establece los siguientes valores para las propiedades del objeto Frame. Propiedad Valor o Contenido Nombre fraColores BackColor &H00E0E0E0& Caption Opciones Font MS Sans Serif, estilo Normal, tamaño 14 ForeColor &H00000000& Height 3000 Width 2800 f) Ahora selecciona del cuadro de herramientas el control Forma (Shape) y dibuja un rectángulo a la derecha del marco en el formulario.
  19. 19. V I S U A L B A S I C 6 . 0 B Á S I C O Página 21 de 62 g) Establece las siguientes propiedades para el nuevo control: Propiedad Valor o Contenido Nombre shpColor BackColor &H00E0E0E0& BackStyle 1 - Opaque BorderStyle 0 - Transparent Height 1400 Shape 3 - Circle Width 1400 h) Selecciona del cuadro de herramientas, el control botón de opción (OptionButton) y traza una figura rectangular en la parte superior del frame. i) Define las siguientes propiedades para el control Option1: Propiedad Valor o Contenido Nombre optBlanco BackColor &H00E0E0E0& Caption Blanco Font MS Sans Serif, estilo Normal, tamaño 14
  20. 20. V I S U A L B A S I C 6 . 0 B Á S I C O Página 22 de 62 ForeColor &H00000000& Height 500 Style 1 - Graphical Width 2300 j) Utilizando el botón de opción, inserta tres controles más, debajo de optBlanco. k) Para los tres nuevos botones de opción, utiliza los mismos valores que seleccionaste para el primer botón en las propiedades BackColor, Font, ForeColor, Height, Style y Width. Nombre y Caption quedarían como se describe en las tablas siguientes: Option1 Propiedad Valor o Contenido Nombre optAzul Caption Azul Option2 Propiedad Valor o Contenido Nombre optRojo Caption Rojo Option3 Propiedad Valor o Contenido Nombre optNegro Caption Negro Al concluir estas acciones el formulario lucirá así: l) Selecciona del cuadro de herramientas, el control botón de comando (CommandButton) y dibuja un objeto de estos debajo de la forma circular shpColor.
  21. 21. V I S U A L B A S I C 6 . 0 B Á S I C O Página 23 de 62 m) Establece los valores siguientes para este nuevo control en el formulario: Propiedad Valor o Contenido Nombre cmdCerrar BackColor &H00E0E0E0& Caption &Cerrar Font MS Sans Serif, estilo Normal, tamaño 14 Height 615 Style 1 - Graphical TabIndex 0 Width 1455 Al finalizar, el formulario se verá así: Ahora agregaremos código a los controles del formulario. Cada vez que se oprima alguno de los botones que contienen el nombre de un color, la forma circular se rellenará con el color seleccionado. El botón Cerrar servirá para terminar la ejecución de la aplicación. n) Haz doble clic en el botón Blanco. Se mostrará en pantalla la ventana de código. Escribe la instrucción que se muestra en la imagen:
  22. 22. V I S U A L B A S I C 6 . 0 B Á S I C O Página 24 de 62 o) Regresa al formulario (Shift + F7) y haz doble clic en el botón Azul. En la ventana de código escribe la instrucción: p) Regresa otra vez al formulario y ahora haz doble clic en el botón Rojo. En la ventana de código escribe la instrucción que se muestra entre Private Sub y End Sub. q) Regresa nuevamente al formulario y haz doble clic sobre el botón Negro. Escribe en la ventana código la siguiente instrucción: r) Vuelve al formulario y ahora haz doble clic en el botón Cerrar. Escribe como instrucción la palabra End. s) Ejecuta la aplicación para verificar el funcionamiento de los botones. t) Guarda el archivo de proyecto y el formulario en una carpeta que tenga por nombre Proyecto Colores, misma que ubicarás en tu carpeta personal (Proyectos VB Tu_nombre). Cierra Visual Basic.
  23. 23. V I S U A L B A S I C 6 . 0 B Á S I C O Página 25 de 62 Módulo III La programación en Visual Basic Un programa o aplicación puede definirse como una serie de instrucciones estructuradas y organizadas lógicamente, las cuales, al ejecutarse, permiten que la computadora realice una tarea determinada y cumple así con un objetivo concreto. Todos los programas realizan un cierto proceso sobre los datos de entrada indicados por el usuario, para finalmente, generar los resultados que den respuesta al problema planteado. Los lenguajes de programación son códigos que agrupan símbolos, funciones, instrucciones especiales y una estructura formal, cuya manipulación permite el desarrollo de software. Visual Basic 6.0 es uno de los lenguajes de programación que más entusiasmo despiertan entre los programadores de PCs, tanto expertos como novatos. En el caso de los programadores expertos por la facilidad con la que desarrollan aplicaciones complejas en poquísimo tiempo (comparado con lo que cuesta programar en Visual C++, por ejemplo). En el caso de los programadores novatos por el hecho de ver de lo que son capaces a los pocos minutos de empezar su aprendizaje. El precio que hay que pagar por utilizar Visual Basic 6.0 es una menor velocidad o eficiencia en las aplicaciones. Visual Basic 6.0 es un lenguaje de programación visual, también llamado lenguaje de 4ª generación. Esto quiere decir que un gran número de tareas se realizan sin escribir código, simplemente con operaciones gráficas realizadas con el ratón sobre la pantalla. Tipos de Programas En los primeros tiempos de las computadoras los programas eran de tipo secuencial (también llamados tipo batch) Un programa secuencial es un programa que se arranca, lee los datos que necesita, realiza los cálculos e imprime o guarda en el disco los resultados. De ordinario, mientras un programa secuencial está ejecutándose no necesita ninguna intervención del usuario. A este tipo de programas se les llama también programas basados u orientados a procedimientos o a algoritmos (procedural languages). Este tipo de programas siguen utilizándose ampliamente en la actualidad, pero la difusión de los PCs ha puesto de actualidad otros tipos de programación. Los programas interactivos exigen la intervención del usuario en tiempo de ejecución, bien para suministrar datos, bien para indicar al programa lo que debe hacer por medio de menús. Los programas interactivos limitan y orientan la acción del usuario. Por su parte los programas orientados a eventos son los programas típicos de Windows, tales como Word, Excel o la calculadora. Cuando uno de estos programas ha arrancado, lo único que hace es quedarse a la espera de las acciones del usuario, a las que se les llama eventos. El usuario decide si quiere abrir y modificar un archivo existente, o bien comenzar a crear un archivo desde el principio. Estos programas pasan la mayor parte de su tiempo esperando las acciones del usuario (eventos) y respondiendo a ellas. Las acciones que el usuario puede realizar en un momento determinado son muy diversas y exigen un tipo especial de programación: la programación orientada a eventos. Este tipo de programación es sensiblemente más complicada que la secuencial y la interactiva, pero Visual Basic 6.0 la hace especialmente sencilla y agradable. Visual Basic 6.0 está orientado a la realización de programas para Windows, pudiendo incorporar todos los elementos de este entorno informático: ventanas, botones, cajas de diálogo y de texto, botones de opción y de selección, barras de desplazamiento, gráficos, menús, etc. Prácticamente todos los elementos de interacción con el usuario de los que dispone Windows pueden ser programados en Visual Basic 6.0 de un modo muy sencillo. En ocasiones bastan unas pocas operaciones con el ratón y la introducción a través del teclado de algunas sentencias para disponer de aplicaciones con todas las características de Windows. Rutinas o procedimientos Se le llama rutina o procedimiento a cada bloque de código (grupo de instrucciones) que puede ser ejecutado en un programa; éstos bloques se encuentran contenidos en una ventana especial llamada ventana código y se refieren, casi siempre, a un control u objeto gráfico ubicado dentro de un formulario determinado y a una acción específica de usuario (evento). La estructura general de un procedimiento en Visual Basic es la siguiente: Private Sub nombre del control _ nombre del evento (lista de argumentos) Declaraciones Acciones End Sub
  24. 24. V I S U A L B A S I C 6 . 0 B Á S I C O Página 26 de 62 En la primera línea se muestra la sentencia Private Sub, misma que deberá interpretarse como rutina o procedimiento exclusivo(a); es decir, que únicamente en cierta momento, al encontrarse en ejecución el programa, éste bloque de instrucciones podrían llevarse a efecto. Nombre del control se refiere específicamente al objeto gráfico (formulario, etiqueta, cuadro de texto, cuadro combinado, imagen, etc.) con el cual se asocia o relaciona el bloque de código. Nombre del Evento es el nombre del suceso o acción específica que el usuario tendría que realizar sobre el control descrito para iniciar el evento. Lista de argumentos es una serie de valores que deberán especificarse y que son requeridos en el procedimiento para ejecutar las acciones contenidas en este; algunos procedimientos no exigen el uso de argumentos. La zona de Declaraciones se ha de utilizar para dimensionar constantes, variables o manejadores de error, para lo cual se ha destinado un apartado especial en el módulo siguiente de este material didáctico. La zona de Acciones contendrá cada instrucción o acción concreta que deberá ocurrir al ejecutarse el procedimiento. La expresión End Sub señala la conclusión del procedimiento. Ejemplo 1: Ejemplo 2: La ventana de código incluye dos apartados esenciales, con los cuales tenemos que familiarizarnos y debemos ubicar muy bien al escribir instrucciones: el apartado de controles y el apartado de eventos. Controles Eventos
  25. 25. V I S U A L B A S I C 6 . 0 B Á S I C O Página 27 de 62 El apartado de controles u objetos contiene y despliega los nombres de los distintos elementos gráficos añadidos al formulario, como parte de la interfaz de usuario: La sección de eventos, contiene los nombres de las acciones de usuario programables para cada control, en la imagen que sigue se muestran algunos de los eventos correspondientes a un botón de comando: Ya en el módulo anterior, en los proyectos vbpAcceso y vbpColores tuviste que trabajar con un poco de código, debido a que resulta complicado trabajar la parte visual de una aplicación de manera aislada, sin instrucciones, los controles no contienen ni ejecutan procedimientos por sí sólos, así que desarrollaremos un nuevo proyecto para identificar mejor las etapas en la construcción de una aplicación, mismas que ya habrás reconocido: 1) Se incorporan los controles al formulario, 2) Se determinan los valores que almacenarán las propiedades de los controles; 3) Se escriben el código asociado a cada control con un evento en particular; 4) Se ejecuta la aplicación, para comprobar el funcionamiento del la misma. Errores frecuentes Durante la fase de la programación (o escritura del código), cada vez que se nombra alguno de los controles y se escribe punto (.) delante de este, el editor de Visual Basic 6.0 despliega de forma automática un listado que contiene los nombres de las propiedades y métodos utilizables en ese control en particular, elementos que se muestran organizados alfabéticamente. De esta manera, podemos localizar con facilidad el atributo a manipular de cierto control y seleccionarlo con un par de clics o con la tecla tabulación, sin siquiera tener que escribirlo, ya que el propio editor lo puede hacer. Esto permite reducir en buena medida el empleo de nombres incorrectos de los controles, sus propiedades y métodos, durante la edición de algún procedimiento; digamos que es parte del sistema de ayuda que ofrece Visual Basic 6.0 al programador. Cuando se utiliza el nombre incorrecto de un control, al momento de escribir el código, el editor de Visual Basic no tiene forma de notificarlo, pero tú si lo puedes advertir, si después de escribir el supuesto nombre del control, no se muestra el listado de propiedades y métodos, “Alto… Error… Detente”, no debes continuar, porque de nada servirá esa línea de código, puesto que el objeto no existe. Al ejecutar una aplicación, manteniendo errores en los nombres de los controles, Visual Basic te enviaría un mensaje de error como el que se muestra enseguida.
  26. 26. V I S U A L B A S I C 6 . 0 B Á S I C O Página 28 de 62 Cuando el error tipográfico se refiera al nombre de alguna propiedad o método, de cualquier control, Visual Basic 6.0 tampoco te lo avisará en el modo diseño, lo hará al ejecutar la aplicación, mostrando un mensaje como el siguiente. Cuando al pretender modificar el valor de una propiedad, de cualquier objeto, se omite el supuesto nuevo valor, Visual Basic mostrará una advertencia como la siguiente: Cuando una línea de código está incompleta o rompe la sintaxis de la expresión que se pretendía formular, el Editor de Visual Basic 6.0 lo notifica con un mensaje de advertencia como el siguiente… Si el error consiste en haber utilizado una propiedad como si fuese un método, es decir, simplemente mencionarla o anunciarla, entonces se mostraría una notificación como esta: Cuando se ha escrito alguna expresión que no se refiere a ninguna propiedad, método, función o control en la aplicación, el mensaje de error es el siguiente:
  27. 27. V I S U A L B A S I C 6 . 0 B Á S I C O Página 29 de 62 En todos los casos de error, la aplicación se interrumpe señalando la línea de código donde existe el error, para realizar la corrección conveniente. Después de hacer la corrección, usualmente se detiene la interrupción del proyecto utilizando el comando Terminar de Visual Basic, para reestablecer, restaurar o actualizar la aplicación. Escribir código, entonces, tiene cierta dificultad y esta radica en completar las expresiones que servirán como instrucciones en la aplicación, además de no infringir la sintaxis en cada una de ellas. Práctica 3 - Proyecto Calculadora Utiliza como referencia la imagen de arriba, para situar de manera conveniente a los controles que se utilizarán en el Formulario1 de este proyecto. 1) Inicia un nuevo proyecto en Visual Basic 6.0 2) Nombra al proyecto vbpCalculadora. 3) Define las siguientes características para el Formulario1 (Form1): Propiedad Valor o Contenido Nombre frmCalculadora BackColor &H00E0E0E0& BorderStyle 1 – Fixed Single Caption Calculadora Aritmética Font Berlin Sans FB, estilo Normal, tamaño 16 Height 3700 Icon Icono ubicado en: EscritorioIconsComputerKEYBRD02 StartUpPosition 2 - CenterScreen Width 5500 4) Dibuja un control de Imagen (Image) en el extremo derecho del formulario y ajusta sus propiedades de acuerdo a los valores de la siguiente tabla:
  28. 28. V I S U A L B A S I C 6 . 0 B Á S I C O Página 30 de 62 Propiedad Valor o Contenido Nombre imgCalculadora Height 2600 Picture Imagen AG00021_.gif ubicada en: C:Archivos de programaMicrosoft OfficeCLIPARTPUB60COR Width 1800 5) Inserta un control Etiqueta (Label) en el extremo superior izquierdo del formulario y define las siguentes propiedades: Propiedad Valor o Contenido Nombre lblValor1 Autosize True BackStyle 0 - Transparent Caption Valor 1: 6) Inserta dos nuevas etiquetas, debajo de la anterior y define sus propiedades. Label1 Label2 Propiedad Valor o Contenido Nombre lblValor2 Autosize True BackStyle 0 - Transparent Caption Valor 2: Propiedad Valor o Contenido Nombre lblResultado Autosize True BackStyle 0 - Transparent Caption Resultado: 7) Coloca un control Cuadro de texto (TextBox) delante de cada etiqueta en el formulario. Utiliza los siguientes valores para modificar sus propiedades. Text1 Propiedad Valor o Contenido Nombre txtValor1 Alignment 1 - Right Justify Height 465 Text Width 1500 Text2 Propiedad Valor o Contenido Nombre txtValor2 Alignment 1 - Right Justify Height 465 Text Width 1500 Text3 Propiedad Valor o Contenido Nombre txtResultado Alignment 1 - Right Justify Height 465 Text Width 1500 8) Dibuja una nueva Etiqueta (Label) entre los controles txtValor1 y txtValor2. Los valores para las propiedades de este nueva etiqueta son los siguientes: Propiedad Valor o Contenido Nombre lblOperador Alignment 2 - Center Autosize True BackStyle 0 - Transparent
  29. 29. V I S U A L B A S I C 6 . 0 B Á S I C O Página 31 de 62 Caption op. 9) Inserta un botón de comando (CommandButton) entre los controles txtValor2 y txtResultado y asígnale las siguientes propiedades: Propiedad Valor o Contenido Nombre cmdResultado BackColor &H00C0C0C0& Caption = Style 1 - Graphical Width 1500 Agregaremos un par de menús al formulario actual; para ello tienes que abrir el Editor de menús de Visual Basic 6.0. El primero se llamará Operaciones y mostrará los nombres de las operaciones de cálculo que podrá ejecutar la calculadora y el segundo, de nombre Opciones, contendrá los comandos Borrar y Cerrar. 10) Abre el menú Herramientas y selecciona la opción Editor de menús, se mostrará un cuadro de diálogo con el mismo nombre:
  30. 30. V I S U A L B A S I C 6 . 0 B Á S I C O Página 32 de 62 11) En el apartado Caption: escribe Operaciones, el primero de los menús; y en la sección Name: escribe mnuOperaciones (para los menús emplea el prefijo mnu…). Después de esto, ya podrás visualizar el primer menú en lista, en la zona inferior del cuadro de diálogo. 12) Presiona el botón Siguiente, para agregar un nuevo elementos de menú. Los campos Caption y Name quedarán vacíos para recibir la información de este. 13) D el menú Operaciones dependerán las opciones Suma, Resta, División, Multiplicación, Potencia y Raíz. Para obtener ese efecto visual en el formulario, debes presionar el botón FlechaDerecha con el que establecerás la dependencia del nuevo menú con relación al anterior. 14) A hora escribe en Caption el texto Suma y en el campo Name escribe mnuSuma; presiona otra vez el botón Siguiente. Continua escribiendo los textos y nombres del resto de opciones hasta terminar con el menú Raíz. Menú Caption Name Resta Resta mnu Resta División División mnu División Multiplicación Multiplicación mnu Multiplicación Potencia Potencia mnuPotencia Raiz Raiz mnuRaiz
  31. 31. V I S U A L B A S I C 6 . 0 B Á S I C O Página 33 de 62 15) Ahora crearemos el segundo de los menús, de nombre Opciones. Para ello es necesario eliminar la dependencia de este nuevo elemento con respecto del menú Operaciones; Presiona el botón Siguiente y oprime el botón FlechaIzquierda. 16) En Caption escribe Opciones y en Name escribe mnuOpciones. 17) Oprime nuevamente el botón Siguiente. 18) Presiona el botón FlechaDerecha. 19) Agrega los menús dependientes Borrar y Cerrar, utilizando esos textos como Caption; y mnuBorrar, además de mnuCerrar como nombres respectivamente. Actualmente la lista de elementos de menú debe ser similar a la de la imagen siguiente: 20) Finalmente oprime el botón Aceptar. El formulario debe contar ya con una apariencia similar a la de la imagen de la página 30 de este material. Ahora se requiere de agregar el código correspondiente a cada control. 21) Selecciona el formulario y presiona la tecla F7, para abrir la ventana de código del formulario. De manera predeterminada, Visual Basic 6.0 muestra el procedimiento más común asociado al último control gráfico seleccionado en el formulario, o al formulario mismo. En el apartado de controles, asegúrate de que aparezca Form, y en el de eventos, verifica que se visualice Load. 22) Escribe las instrucciones siguientes, entre las líneas Private Sub y End Sub. Cuando el formulario sea cargado o ejecutado, los controles txtValor1, txtValor2, txtResultado y cmdIgual se encontrarán inhabilitados; es decir, no podrán utilizarse. Además, la etiqueta lblOperador no mostrará ningún texto o carácter. 23) Selecciona de la lista de controles al objeto mnuSuma, se mostrará un nuevo procedimiento con el evento Click como opción predeterminada. Escribe el código siguiente para el procedimiento mnuSuma_Click. Estas instrucciones producen un resultado completamente opuesto a aquellas establecidas al cargarse el formulario. En este caso, los controles que originalmente se encuentran inhabilitados, ahora no lo están, hecho que nos permitirá utilizarlos sin mayor problema.
  32. 32. V I S U A L B A S I C 6 . 0 B Á S I C O Página 34 de 62 24) Selecciona ahora el control mnuResta y escribe las líneas de código contenidas en la imagen de la página siguiente. Como puedes observar, el código utilizado para el menú Resta es idéntico al empleado en el menú Suma, o cuando menos las primeras cuatro líneas y la última, por lo que lo estamos duplicando código y ese es un error que no debemos cometer, puesto que aún falta programar los menús de las cuatro operaciones de cálculo restantes y tendríamos que utilizar instrucciones similares, prácticamente lo único distinto sería el signo u operador de cálculo a mostrarse de acuerdo a la opción elegida (el Caption de la etiqueta lblOperador). Vamos a utilizar como alternativa de solución, para así evitarnos duplicar lo menos posible código, la creación de un procedimiento independiente (de cualquier control y evento), un procedimiento que pueda ser compartido por los distintos objetos del proyecto, del formulario y que puede ser ejecutado en distintos momentos durante la puesta en marcha de la aplicación. 25) Corta las instrucciones correspondientes al procedimiento mnuSuma_Click, suprime las del procedimento mnuResta_Click y desplaza el cursor al final de la ventana de código. 26) Escribe en la posición del cursor el texto Sub Activar_Controles y presiona la tecla Enter. Se mostrará un nuevo procedimiento en la ventana… 27) Pega en la ubicación del cursor las instrucciones que cortaste anteriormente del procedimiento mnuSuma_Click… y elimina la última línea (lblOperador.Caption = ”+”). El procedimiento quedará así: 28) Ahora busca e inserta en el procedimiento mnuSuma la instrucción que actualiza el contenido de la etiqueta lblOperador con el símbolo + y escribe en la línea de abajo, el nombre del procedimiento que habilitará los controles, Activar_Controles.
  33. 33. V I S U A L B A S I C 6 . 0 B Á S I C O Página 35 de 62 29) Copia las dos líneas del procedimiento mnuSuma_Click, enseguida localiza el procedimiento mnuResta_Click y pega el código. Sólo cambia el símbolo + por el símbolo -. 30) Busca y selecciona de la lista de controles el objeto mnuDivisión y vuelve a pegar el código de mnuSuma; asegúrate de cambiar el símbolo + por el símbolo /. 31) Repite las aciones anteriores para el control mnuMultiplicación y utiliza como símbolo a *. 32) Repite de nuevo las acciones anteriores con el objeto mnuPotencia y utiliza el símbolo ^ para la etiqueta lblOperador, pero además se modificará el Caption de las etiquetas lblValor1 y lblValor2, por Número y Potencia respectivamente. 33) Selecciona y copia las instrucciones del procedimiento anterior para pegarlas en el procedimiento mnuRaíz_Click y además de cambiar el operador ^ por Rz, actualiza el caption de la etiqueta lblValor2 por el texto Raíz. Hasta aquí, verifica el comportamiento de los controles en el formulario ejecutando la aplicación; debes cerciorarte de que cada bloque de instrucciones codificado funcione según fue programado. Al cargarse el formulario no debe ser posible situar el cursor en ninguno de los cuadros de texto, como tampoco será posible orpimir el botón de comando, ya que éstos se encuentran inactivos. Solamente cuando elijas del menú Operaciones cualquiera de ellas, entonces podrás comprobar la habilitación de los controles mencionados, el cambio en el operador de cálculo que se muestra en la etiqueta lblOperador y en los casos de Potencia y Raíz, verás el cambio en el Caption de la etiqueta lblValor2. Encontrarás un defecto después de utilizar estos dos últimos controles, detéctalo e intenta solucionarlo, considera este hecho como una oportunidad para poner a prueba tu razonamiento lógico y tu creatividad en la solución de problemas. Las opciones Borrar y Cerrar del menú Opciones, aún no contienen instrucciones específicas, por lo que no sucederá nada si las seleccionas durante la ejecución.
  34. 34. V I S U A L B A S I C 6 . 0 B Á S I C O Página 36 de 62 El objeto mnuBorrar deberá eliminar cualquier valor almacenado en los cuadros de texto y en la etiqueta que muestra el símbolo asociado a la operación de cálculo seleccionada. También deberá devolver a las etiquetas lblValor1 y lblValor2 su contenido original e inhabilitar los controles, como al iniciarse la aplicación. 34) Detén la ejecución del proyecto y regresa a la ventana de código. 35) Selecciona del apartado de controles el objeto mnuBorrar y escribe el siguiente código: 36) Selecciona el control mnuCerrar y escribe la instrucción End. Ejecuta y prueba nuevamente la aplicación. 37) En la ventana de código selecciona, del apartado de controles, el botón de comando cmdIgual. Este control deberá mostrar el resultado de la operación de cálculo seleccionada; si se eligió la operación Suma, Resta, División o cualquier otra, el botón arrojará el resultado de la operación de cálculo en el cuadro de texto txtResultado. De faltar alguno de los dos valores numéricos en sus respectivos controles, se mostrará un aviso gráfico sugiriendo ingresar el dato faltante y no se podrá continuar con la operación. Adicionalmente, cuando se genere el resultado, los cuadros de texto y el mismo botón de comando quedarán inactivos. El código a ingresar para el control cmdIgual se muestra en la pantalla siguiente: 38) Verifica por última vez el funcionamiento global de la aplicación e intenta corregir el código escrito si llegas a localizar algún error. 39) Guarda los archivos de formulario y proyecto, dentro de la carpeta Proyectos VB Tu_Nombre, en un nuevo contenedor llamado Proyecto Calculadora.
  35. 35. V I S U A L B A S I C 6 . 0 B Á S I C O Página 37 de 62 Estructuras de Control Al ocurrir cierto evento durante la ejecución de una aplicación, Visual Basic responde llamando al procedimiento asociado con el control que reconoce tal evento. La orientación a eventos, característica de los programas desarrollados en Visual Basic, se traduce en que la mayoría de las operaciones disponibles en las aplicaciones, serán ejecutadas mediante procedimientos de eventos. El código permite procesar la entrada de datos, el cálculo de nuevos valores y la salida de información, entre otras tareas. Puedes crear procedimientos capaces de responder a cualquier situación en la medida en que conozcas y apliques estructuras de control: las estructuras de decisión, que se utilizan para comparar variables, propiedades y valores; y los bucles, que nos dan la posibilidad de ejecutar un grupo de sentencias una y otra vez un número determinado de veces, mientras o hasta que se cumpla determinada condición. Expresión condicional Una de las herramientas más útiles en el procesamiento de información es la expresión condicional, que forma parte de una sentencia de programa que realiza preguntas que requieren respuestas lógicas o boleanas (del tipo True o False, Yes o No…) sobre una propiedad o variable en el código del programa. La siguiente expresión condicional: Precio = 180; resultará Verdadera, si la variable precio contiene un valor similar a 180, en caso contrario resultará Falsa. En este tipo de expresiones se utilizan operadores de relación: Operador Significado = Igual que… <> Distinto de… > Mayor que… < Menor que… >= Mayor o igual que… <= Menor o igual que… If… Then La estructura If… Then permite evaluar una condición en el programa y llevar a cabo una serie de instrucciones, según sea el resultado de dicha condición. Cuando solamente se requiere de la ejecución de acciones al cumplirse la condición especificada (alternativa simple), tendría que utilizarse una sintaxis similar a la siguiente: If condición Then Instrucción 1 Instrucción 2 Instrucción n End if En la primera práctica de este curso, ya tuviste la posibilidad de utilizar esta estructura, en los dos cuadros de texto del formulario de acceso: “Si se oprime la tecla Enter, entonces, el cursor se coloca en el control que tiene por nombre txtpassword”
  36. 36. V I S U A L B A S I C 6 . 0 B Á S I C O Página 38 de 62 Cuando se espera que, al no cumplirse la condición, tenga lugar una serie de instrucciones opuestas o diferentes a las que ocurrirían en caso de cumplirse esta (alternativa doble), entonces la sintaxis de If … then mantendría una estructura similar a la siguiente: If condición Then Instrucción 1 Instrucción 2 Instrucción n Else Instrucción 1 Instrucción 2 Instrucción n End if En el mismo formulario de acceso de la práctica 1 de este curso empleaste esta estructura: “Si el nombre de usuario es tu_nombre y la contraseña es imss, entonces se mostrará el mensaje de bienvenida al curso de Visual Basic y terminará ahí la aplicación; de lo contrario, aparecerá un mensaje advirtiendo un error en el nombre de usuario y/o la contraseña, se borrarán los datos ingresados y el cursor quedará situado en el control que tiene por nombre txtUsuario” Select Case Esta estructura se utiliza cuando se tiene que comprobar el valor de una variable y en función de este valor, seleccionar y ejecutar una serie de instrucciones específicas (alternativa múltiple). La sintaxis a manejar con Select Case es la siguiente. Select Case variable Case 1 el primer valor posible en la variable Instrucción 1 Instrucción 2 Instrucción n Case 2 el segundo valor posible en la variable Instrucción 1 Instrucción 2 Instrucción n Case 3 el tercer valor posible en la variable Instrucción 1 Instrucción 2 Instrucción n Case Else algún otro valor en la variable, distinto de los anteriores Instrucción 1 Instrucción 2 Instrucción n End Select
  37. 37. V I S U A L B A S I C 6 . 0 B Á S I C O Página 39 de 62 Justo en el último procedimiento programado en la práctica 3 del curso, tuviste que añadir y utilizar la estructura Select Case. Recordarás que, de acuerdo al caption de la etiqueta lblOperador, se realiza determinada operación de cálculo y el valor obtenido queda almacenado en el control txtResultado. Do While Permite ejecutar un grupo de acciones mientras cierta condición resulte verdadera; los bucles con DO se utilizan cuando no se conoce con exactitud el número de ocasiones en las que se repetirá el conjunto de instrucciones. La sintaxis común en esta estructura es la siguiente: Do While condición Instrucción 1 Instrucción 2 Instrucción n Loop delimita el bloque de instrucciones a repetir en el bucle. Do Until Permite ejecutar un grupo de sentencias hasta la condición determinada se cumpla. La sintaxis habitual para esta estructura es la siguiente: Do Until condición Instrucción 1 Instrucción 2 Instrucción n Loop delimita el bloque de instrucciones a repetir en el bucle. For… Next Permite ejecutar un conjunto de sentencias contenidas en un procedimiento, un número determinado de veces. For contador=ValorInicial To ValorFinal delimita el número de repeticiones del bucle. Instrucción 1 Instrucción 2 Instrucción n Next indica ejecutar la siguiente repetición del bucle. En las prácticas de los capítulos siguientes, incorporaremos procedimientos que incluyan el uso de bucles, para mostrar la funcionalidad de las extructuras Do y For.
  38. 38. V I S U A L B A S I C 6 . 0 B Á S I C O Página 40 de 62 Módulo IV Controles y objetos especiales Puede definirse al objeto como un conjunto complejo de datos y programas que poseen cierta constitución e integran una organización. Un objeto no puede ser un dato simple, sino que guarda en su interior un número determinado de componentes bien organizados; tampoco puede ser un ente aislado, ya que siempre forma parte de un sistema o entidad. La composición de un objeto habitualmente considera tres elementos: Relaciones. Permiten que el objeto se inserte en la organización (sistema, aplicación, proyecto…) y están formadas esencialmente por vínculos a otros objetos. Propiedades. Distinguen a un objeto del resto que forma parte de la misma organización y tiene valores que dependen de la propiedad de que se trate. Las propiedades de un objeto son heredadas a sus descendientes en la organización; se les llama también atributos. Métodos. Son las operaciones que pueden realizarse sobre el objeto, normalmente incorporados en forma de programas (código) que el objeto es capaz de ejecutar y que también pone a disposición de sus descendientes a través de la herencia. Sinónimos de método: función, rutina, programa. Los objetos son pues, entidades o elementos hacia los cuáles están dirigidas ciertas acciones en un programa. Mnemónicos: Se le llama Mnemónico a la abreviatura o prefijo que se añade al nombre de un objeto o cosa; ésta permite identificar rápidamente el área, materia o clase a la que pertenece, y deja ver también sus posibles cualidades, características, funciones y otros elementos componentes. En Visual Basic se recomienda hacer uso de ciertos mnemónicos para tener un mejor control de los objetos que se han incluido en la aplicación en desarrollo; no es una regla que tenga que seguirse al pie de la letra, sin embargo la facilidad y rapidez con la que es posible identificar a los diferentes elementos que integran el proyecto, tanto en la fase de diseño de formularios, como en la etapa de codificación, precisamente se debe al uso de los mnemónicos. Puntero (Pointer) En la fase de diseño del formulario funciona como un simple selector o posicionador de controles. La selección de un solo elemento se produce dando un click sobre el objeto deseado; si se requiere de seleccionar dos o más elementos, se tendrá que presionar de forma continua la tecla <Shift> mientras se da click sobre el resto de objetos. Cuando los controles están seleccionados, será posible el arrastre de los mismos hacia otra zona dentro del formulario activo, los podremos copiar o mover hacia otras ventanas de formulario, si resulta conveniente hacerlo. Si se da doble click en alguno de los controles o en el mismo formulario, se mostrará la ventana Código, en cuyo caso escribiríamos algún procedimiento o subalgoritmo. Durante la ejecución del proyecto, el puntero permitirá la asignación una o más funciones conocidas en Windows, doble click, arrastrar y colocar, menú contextual, entre otras. Así también podrás observar una apariencia distinta a la habitual, siempre que se indique con anticipación en la propiedad MousePointer del formulario y los controles; o bien, desde el código, para señalar al usuario cierto tipo de acciones (espera, inserción de texto, selección, arrastre…). Algunos de los punteros preestablecidos son:  Default: predeterminado en windows  Arrow: flecha  ArrowHourGlass: flecha y reloj de arena  ArrowQuestion: flecha y signo de interrogación  CrossHair: cruz  HourGlass: reloj de arena  Ibeam: en forma de I  UpArrow: flecha hacia arriba  Custom: se emplea para personalizar el icono del puntero. (archivos *.ico, *.cur)
  39. 39. V I S U A L B A S I C 6 . 0 B Á S I C O Página 41 de 62 Formulario (Form) Se ha descrito ya que el formulario sirve como plano para dibujar controles, es decir, una pantalla sobre la cual organizamos los elementos que el usuario deberá utilizar para comunicarse e interactuar con la aplicación. En Visual Basic se trabaja con dos tipos de formulario: Formulario SDI (Single Document Interface) y Formulario MDI (Multiple Document Interface). Los formularios SDI se comportan como ventanas independientes dentro de la aplicación, es decir, se abren, cierran, minimizan, restauran o maximizan en su propio espacio, aunque integren junto con otros formularios la misma aplicación. Por su parte los formularios MDI actúan como contenedores de formularios secundarios o subventanas dentro de la aplicación. Esos subformularios, en realidad son formularios SDI, que se comportan como ventanas hijas del formulario MDI al haber manipulado la propiedad correspondiente. Importante: sólo puede haber un formulario SDI por proyecto. De acuerdo al tipo de formulario seleccionado en el proyecto, Visual Basic muestra un icono distinto para cada uno, que nos permite diferenciarlos entre sí; tal icono se muestra en la barra de título de los formularios y en el explorador de proyectos junto al nombre de éstos: Las propiedades que con mayor frecuencia se manipulan de un formulario son las siguientes: Nombre (Name): Por defecto, todos los formularios que se van añadiendo a un proyecto llevan por nombre Form, seguido del número secuencial que corresponde al orden en que han sido incorporados a la aplicación (Form1, Form2, Form3, Form4, Form5…). En un formulario se emplea el mnemónico frm. Ejemplos: frmventas, frmclientes, frmacceso. Appearance: Permite establecer si los controles situados en el formulario se mostrarán con el efecto 3D o se verán planos; los valores posibles son: ☞ 0 - Flat ☞ 1 - 3D Backcolor: con esta propiedad se fija un color de fondo para el formulario. Borderstyle: es posible determinar uno de seis estilos de borde para el formulario en la etapa de diseño. El estilo seleccionado modifica la apariencia del formulario y el estado de los botones de control. Los estilos disponibles son: ☞ 0 - None ☞ 1 - Fixed Single ☞ 2 - Sizable ☞ 3 - Fixed Dialog ☞ 4 - Fixed ToolWindow ☞ 5 - Sizable ToolWindow Caption: sirve para modificar el texto contenido en la barra de título del formulario.
  40. 40. V I S U A L B A S I C 6 . 0 B Á S I C O Página 42 de 62 Enabled: todos los objetos poseen esta propiedad y se utiliza para activar o desactivar el objeto, es decir para que pueda responder o no a las acciones que el usuario ejecuta sobre él. Esta es una propiedad boleana y sólo reconoce dos valores que son: ☞ True ☞ False Font: establece automáticamente el estilo, tamaño, efecto y la fuente con que se mostrará la información contenida en los controles dibujados en el formulario. Height: determina la altura del formulario. Icon: permite adecuar el icono que se muestra en la barra de título del formulario. Los archivos que pueden utilizarse en esta propiedad son iconos o cursores (*.ico, *.cur). MaxButton: muestra u oculta el botón maximizar del formulario. Sus valores son: ☞ True ☞ False MinButton: muestra u oculta el botón minimizar del formulario. Sus valores son: ☞ True ☞ False MouseIcon: Permite establecer un icono personalizado para el puntero, cuando la propiedad MousePointer corresponde a 99 – Custom. MousePointer: Permite modificar la apariencia del puntero cuando éste se desplace por encima del formulario, durante la ejecución del programa. Moveable: determina si en el tiempo de ejecución el formulario podrá o no ser desplazado; para ello se cuenta con dos valores: ☞ True ☞ False Picture: permite agregar una imagen a la superficie del formulario. La imagen que se carga en formulario asume una posición fija dentro del mismo y no permite modificar su tamaño. ScaleMode: esta propiedad establece le unidad de medida que se utilizará al dibujar controles. Las opciones disponibles son las siguientes: ☞ 0 - User ☞ 1 - Twip (unidad predeterminada para todos los controles) ☞ 2 - Point ☞ 3 - Pixel ☞ 4 - Character ☞ 5 - Inch ☞ 6 - Millimeter ☞ 7 - Centimeter ShowInTaskBar: indica si el formulario se mostrará o no en la barra de tareas durante la ejecución. ☞ True ☞ False StartUpPosition: permite definir la ubicación inicial que ocupará el formulario al mostrarse enla pantalla: ☞ 0 - Manual ☞ 1 - CenterOwner ☞ 2 - CenterScreen ☞ 3 - Windows Default
  41. 41. V I S U A L B A S I C 6 . 0 B Á S I C O Página 43 de 62 Width: permite establecer el ancho del formulario. WindowState: determina el estado de la ventana del formulario al ser abierto; los posibles estados son: ☞ 0 - Normal ☞ 1 - Minimized ☞ 2 - Maximized Algunos de los métodos que pueden utilizarse sobre un formulario son, entre otros:  Hide: oculta el formulario, pero no lo descarga.  Load: carga el formulario señalado.  PrintForm: envía a la impresora la imagen del formulario activo.  SetFocus: lleva el enfoque al formulario indicado.  Show: muestra el formulario indicado.  Unload: descarga el formulario indicado. Para agregar formularios a la aplicación pueden seguirse tres vías: Desde la Barra de menús…  Menú Proyecto  Agregar Formulario Desde la Barra estándar…  Clic en el botón Agregar formulario Desde el Explorador de Proyectos…  Clic derecho en el fichero Formularios  Seleccionar Agregar  Seleccionar Formulario En los tres casos se mostrará el cuadro de diálogo Agregar formulario, ilustrado en la siguiente página.
  42. 42. V I S U A L B A S I C 6 . 0 B Á S I C O Página 44 de 62 Visual Basic ofrece dos alternativas al ejecutar la instrucción Agregar formulario, puede ser un formulario Nuevo o un formulario existente. Si se tuviesen otros proyectos, los formularios almacenados en dichos proyectos podrían insertarse en la aplicación activa, considerando únicamente la recomendación de guardar con otro nombre y en otra carpeta, cada formulario insertado de esta forma, ya que de modificarse en el proyecto origen, perdería las características asignadas dentro del proyecto en el cual se agregó, pues se inserta como un archivo vinculado. Editor de menús (Menu Editor) Como es sabido un Menú es una lista de opciones disponibles en una aplicación. Suelen utilizarse en la ejecución de instrucciones muy concretas y la mayoría de éstas nos devuelve pantallas adicionales para especificar datos. La creación de Menús en Visual Basic no nos lleva al cuadro de herramientas, a diferencia de los controles anteriores; se debe utilizar un recurso llamado Editor de Menús (Menu Editor), al que se puede acceder desde el menú Herramientas (Tools); o bien, desde la barra Estándar de Visual o con el método abreviado CONTROL + E. La pantalla del editor de menús se muestra en el siguiente gráfico:
  43. 43. V I S U A L B A S I C 6 . 0 B Á S I C O Página 45 de 62 Para un menú pueden definirse distintas propiedades, entre las que mencionamos:  Name: a diferencia de los controles que hasta ahora se han mencionado, los menús no adoptan un nombre de manera automática. El nombre de un menú tiene que ser asignado por el usuario, para ello se sugiere emplear el mnemónico Mnu. Por ejemplo: mnuCatálogos, mnuOperaciones, mnuArchivo…  Caption: esta propiedad debe contener el texto que el usuario verá en pantalla. Con bastante frecuencia nos encontramos con un carácter subrayado en el texto de un menú, que facilita el acceso al mismo en combinación con la tecla Alt o la tecla de función F10. Para obtener ese tipo de comportamiento en nuestros menús, es necesario que se agregue en el Caption del menú, justo a la izquierda del carácter que deseemos mostrar subrayado, el símbolo ampersand (&) y listo. Ejemplo:  Shortcut: con ella podemos definir una combinación de teclas o método abreviado para acceder de manera rápida a alguna de las opciones de menú que tengan que comportarse como instrucciones o comandos específicos durante la ejecución del programa. Esta opción no podrá utilizarse con menús de primer nivel o submenús.  Enabled: propiedad que determina si una opción de menú estará disponible o no en tiempo de ejecución.  Visible: establece si la opción de menú será visible o no por defecto al ejecutarse la aplicación.  WindowList: define un menú como contenedor de la lista de ventanas que dependen de un formulario MDI, del cual dependen varios SDI Child‟s. Jerarquía La jerarquía de un menú está condicionada por su dependencia con algún otro. Podemos decir que un menú que depende de otro es realmente un submenú. Para crear submenús se utiliza el botón Flecha Derecha, localizado en el Editor de menús. Este botón empuja al nuevo menú a la derecha, haciendo que dependa del inmediato superior. Si por razón alguna es necesario reorganizar la posición de los menú o redefinir la dependencia entre estos, bastará con utilizar el resto de los botones con flechas según se requiera.
  44. 44. V I S U A L B A S I C 6 . 0 B Á S I C O Página 46 de 62 Etiqueta (Label) Las etiquetas muestran texto que el usuario no puede cambiar directamente cuando la aplicación está abierta; esto sólo es posible en la fase de diseño o durante la ejecución de algún procedimiento en el que se incluya la actualización del contenido de la etiqueta. Con este control podemos mostrar rótulos (el nombre de una sección o campo, por ejemplo), los resultados de una operación de cálculo, la fecha, la hora o cualquier otro dato que resulte necesario dentro de un formulario. Las propiedades que se gestionan con mayor frecuencia en una etiqueta son: Nombre (Name): Por defecto aparecen como Label1, Label2, Label3..., de acuerdo al orden de creación. El mnemónico que emplean es lbl. Ejemplos: lblmatricula, lblnombre, lblprecio, lblfecha. Appearance: establece si la etiqueta se muestra con efecto 3D o plana. ☞ 0 - Flat ☞ 1 - 3D  Autosize: determina si el tamaño de la etiqueta se ajustará automáticamente a la extensión del texto que contiene. ☞ 0 - True ☞ 1 - False  BackColor: permite definir un color de relleno o fondo a la etiqueta.  BackStyle: determina si el relleno de la etiqueta será visible o no. ☞ 0 - Transparent ☞ 1 - Opaque  BorderStyle: determina si la etiqueta llevará borde o no. ☞ 0 - None ☞ 1 - Fixed Single  Caption: es la propiedad utilizada para adecuar el texto que se mostrará como etiqueta.  Font: permite ajustar la fuente, tamaño, estilo y efectos del texto en la etiqueta.  ForeColor: permite modificar el color del texto en la etiqueta.  Height: esta propiedad establece la altura que tendrá la etiqueta.  ToolTipText: es una propiedad que permite mostrar un texto alternativo que sugiera u oriente al usuario, cuando el puntero del ratón pase por encima de la etiqueta.  Visible: determina si la etiqueta estará visible u oculta en tiempo de ejecución. ☞ 0 - True ☞ 1 – False  Width: permite definir el ancho o largo que tendrá la etiqueta dentro del formulario. Cuadro de texto (TextBox) Este control puede mostrar información determinada por el usuario, ya sea en la etapa de diseño o mediante código, en tiempo de ejecución; no obstante, el uso más frecuente que se le da consiste en permitir la entrada de datos que puedan gestionarse en otro momento por otros controles. Algunas propiedades de los cuadros de texto…  Nombre (Name): Se muestran originalmente como Text1, Text2, Text3...; los cuadros de texto utilizan el mnemónico txt, ejemplos: txtedad, txtnombre, txtsalario.  Alingment: establece el formato de alineación que mantendrán los datos dentro del cuadro de texto, habiendo tres posibilidades: ☞ 0 - Left Justify ☞ 1 - Right Justify ☞ 2 - Center
  45. 45. V I S U A L B A S I C 6 . 0 B Á S I C O Página 47 de 62 Appearance: establece si el control se mostrará en relieve o plano. ☞ 0 - Flat ☞ 1 - 3D  BackColor: determina el color de relleno del cuadro de texto  BorderStyle: determina si el cuadro de texto mostrará borde o no. ☞ 0 - None ☞ 1 - Fixed Single  Enabled: determina si el objeto estará activo en tiempo de ejecución. ☞ 0 - True ☞ 1 - False  Font: permite ajustar la fuente, tamaño, estilo y efectos del texto en el cuadro.  ForeColor: permite modificar el color del texto en el cuadro.  Height: permite establecer la altura del cuadro de texto.  Left: permite fijar la distancia del borde izquierdo del cuadro de texto con respecto del de su contenedor.  MaxLenght: establece el número máximo de caracteres que puede contener el cuadro de texto. 65535.  MousePointer: Permite modificar la apariencia del puntero cuando éste se desplace por encima del cuadro de texto, durante la ejecución del programa.  MultiLine: determina si el control aceptará o no múltiples líneas de texto.  PasswordChar: permite establecer el carácter opcional con el que será enmascarado el texto digitado por el usuario. Los caracteres podrían ser, por ejemplo: *, #, „, <, °, +, ^, etc. Se llama PasswordChar, puesto que es común trabajar esta propiedad en cuadros de texto en los que habrán de manejarse contraseñas, claves confidenciales o NIP‟s.  ScrollBars: indica si el cuadro de texto contendrá o no barras de desplazamiento. ☞ 0 - None ☞ 1 - Horizontal ☞ 2 - Vertical ☞ 3 - Both  TabIndex: establece el orden de tabulación del cuadro de texto en el formulario.  TabStop: indica si el usuario podrá usar la tecla TAB para pasar el enfoque del cuadro de texto a otro objeto. ☞ 0 - True ☞ 1 - False  Text: establece el texto contenido en el control.  ToolTipText: permite mostrar una etiqueta de texto emergente, cuando el puntero se sitúe sobre el cuadro de texto durante la ejecución.  Top: permite fijar la distancia del borde superior del cuadro de texto con respecto del de su contenedor.  Visible: determina si el control estará visible u oculto en tiempo de ejecución. ☞ 0 - True ☞ 1 – False  Width: permite definir el ancho del cuadro de texto. El método más frecuente en un botón de comando es:  SetFocus: lleva el foco o cursor al cuadro de texto referido.
  46. 46. V I S U A L B A S I C 6 . 0 B Á S I C O Página 48 de 62 Botón de comando (CommandButton) Tiene la forma de un “botón” y se usa para iniciar, interrumpir o terminar un proceso, como pudieran ser, calcular el resultado de una operación aritmética, mostrar un formulario, cerrar un formulario, enviar información a otra aplicación, etc. Vease aquí la descripción de sus propiedades elementales:  Nombre (Name): Se muestran originalmente con la leyenda Command1, Command2, Command3...; los botones de comando emplean el mnemónico cmd, ejemplos: cmdeliminar, cdmsalir, cmdexportar...  BackColor: determina el color de fondo del botón de comando, acción que podrá comprobarse sólo si la propiedad Style está en modo gráfico.  Caption: esta propiedad contiene el texto que se mostrará en el interior del botón.  Font: permite ajustar la fuente, tamaño, estilo y efectos del texto en el botón de comando, siempre que la propiedad Style se mantenga en modo gráfico.  Picture: permite establecer el archivo de imagen que se mostrará sobre el botón de comando, cuando la propiedad Style esté en modo gráfico.  Style: determina la apariencia del botón, ya sea con el estilo clásico de Windows o con una imagen personalizada. ☞ 0 - Standard ☞ 1 - Graphical  TabIndex: establece el orden de tabulación que corresponde al botón dentro del formulario.  TabStop: indica si el usuario podrá usar la tecla TAB para pasar el enfoque del botón de comando a otro objeto. ☞ 0 - True ☞ 1 - False  ToolTipText: permite mostrar una etiqueta de texto emergente, cuando el puntero se sitúe sobre el botón de comando durante la ejecución.  Visible: determina si el control estará visible u oculto en tiempo de ejecución. ☞ 0 - True ☞ 1 – False El método que más comunmente se utiliza con los botones de comando es:  SetFocus: lleva el enfoque al botón indicado. Marco (Frame) Esta herramienta permite agrupar una serie de controles, que se vuelven “dependientes” del marco; es decir, son afectados por algunas instrucciones que se dirijan a su comportamiento. Si en algún momento el marco se oculta o permanece inactivo, los controles en su interior heredan los mismas cambios. Las propiedades sobresalientes de un Frame son:  Nombre (Name): Frame1, Frame2, Frame3... son los nombres por defecto; con los frames tenemos que usar el mnemónico fra. Ejemplos: frabotones, fradatos, frapagos...  Appearance: establece si el marco se mostrará en relieve o plano.  BackColor: determina el color de fondo de marco.  Caption: esta propiedad contiene el texto que se mostrará en el borde del marco.  Font: permite ajustar la fuente, tamaño, estilo y efectos del texto en el marco.  ForeColor: permite modificar el color del texto en el rótulo del marco.  Height: permite establecer la altura del marco.  Width: permite definir el ancho del marco.
  47. 47. V I S U A L B A S I C 6 . 0 B Á S I C O Página 49 de 62 Casilla de verificación (CheckBox) Con este control en Visual Basic podemos seleccionar o desactivar, según se requiera, una o varias opciones en un grupo de alternativas. La casilla de verificación sólo asume dos valores generalmente: checked o unchecked y las propiedades que habitualmente se gestionan de esta clase de control son las siguientes:  Nombre (Name): los nombres por defecto para las casillas de verificaión son Check1, Check2… y el mnemónico empleado con éstas es chk, ejemplos: chkimss, chkispt…  Alingment: define la posición que guardará la casilla respecto al texto que le acompaña, las opciones disponibles son: ☞ 0 - Left Justify ☞ 1 - Right Justify  Appearance: establece si la casilla se mostrará en relieve o plana.  BackColor: define el color del área de la casilla de verificación.  Caption: contiene el texto que se mostrará junto a la casilla.  Height: determina la altura que tendrá el área de la casilla.  Left: establece la distancia a la que se ubicará la casilla con relacion al borde izquierdo del formulario o marco donde se haya colocado.  Picture: permite mostrar un gráfico en la casilla cuando el estilo de la misma es gráfico.  Style: se utiliza para modificar la apariencia del control, que puede ser… ☞ 0 - Standard ☞ 1 - Graphical  TabIndex: permite definir el orden de tabulación de la casilla dentro del formulario.  Top: establece la distancia de la casilla con relación al borde superior del formulario o marco dentro del que se sitúe.  Value: define el valor por default con que se mostrará la casilla al ejecutarse el programa, ofrece tres posibilidades… ☞ 0 - Unchecked ☞ 1 - Checked ☞ 2 - Grayed  Visible: determina si el control se mostrará o estará oculto al iniciar la ejecución.  Width: permite definir el ancho del área de la casilla. El método más utilizado en las casillas verificación es:  SetFocus: lleva el foco o cursor a la casilla referida. Botón de opción (OptionButton) Se le conoce también como botón excluyente debido al comportamiento que asume cuando hay más botones de su tipo dentro del formulario o marco en el cual se sitúen éstos. En un grupo de botones de opción sólo uno puede ser seleccionado, de ahí que se le llame excluyente. Algunas de las propiedades con las que se trabaja frecuentemente de este control, son…  Nombre (Name): los nombres prestablecidos para los botones de opción son Option1, Option2, Option3… y el mnemónico que utilizan es opt; ejemplos: optMasculino, optFemenino…  Alingment: define la posición que guardará el botón de opción respecto al texto que le acompaña, las opciones disponibles son: ☞ 0 - Left Justify ☞ 1 - Right Justify
  48. 48. V I S U A L B A S I C 6 . 0 B Á S I C O Página 50 de 62  Appearance: permite seleccionar la apariencia del área del botón, que puede ser plana o tridimensional.  BackColor: define el color del área del botón de opción.  Caption: contiene el texto que se mostrará junto al botón.  Height: determina la altura que tendrá el área del botón.  Left: establece la distancia a la que se ubicará el botón de opción respecto al borde izquierdo del formulario o marco donde se haya colocado.  Picture: permite dar al botón una apariencia gráfica, cuando la propiedad Style se ha definido como Graphical.  Style: se utiliza para modificar la apariencia del control, que puede ser… ☞ 0 - Standard ☞ 1 - Graphical  TabIndex: permite definir el orden de tabulación que corresponderá al botón dentro del formulario.  Top: establece la posición del botón con relación al borde superior del formulario o marco dentro del que se sitúe.  Value: define el valor automático con que se mostrará el botón al ejecutarse el programa, sólo presenta dos posibilidades… ☞ True ☞ False  Visible: determina si el control se mostrará o estará oculto al iniciar la ejecución.  Width: permite definir el ancho del área del botón. El método utilizado con mayor frecuencia en los botones de opción es:  SetFocus: lleva el foco o cursor al botón de opción referido. Cuadro de lista (ListBox) Los cuadros de lista contienen un grupo de opciones que son elegibles dentro de una aplicación; generalmente muestran una barra de desplazamiento que permite al usuario navegar o desplazarse entre el conjunto de alternativas disponibles dentro del mismo. Las propiedades básicas de esta clase de control se describen enseguida.  Nombre (Name): por defecto al insertar un nuevo cuadro de lista sobre el formulario activo, Visual Basic asigna el nombre List, sucedido del número consecutivo que a éste le toque según corresponda en orden de creación: List1, List2, List3… Hemos de utilizar el mnemónico lst para los cuadros de lista, ejemplos: lstPaís, lstProvincia, lstEstadoCivil, etc.  Appearance: permite seleccionar la apariencia que tendrá el cuadro de lista, ésta puede ser plana o 3D. ☞ 0 - Flat ☞ 1 - 3D  BackColor: propiedad con la que se define el color de relleno o fondo del cuadro de lista.  Columns: se utiliza para especificar si el cuadro de lista contendrá una barra de desplazamiento vertical u horizontal. Para ello se tienen que indicar los valores 0 ó 1, respectivamente.  Enabled: determina si el cuadro de lista podrá ser gestionado o no durante la ejecución del programa.  List: nos permite agregar el conjunto de elementos que se mostrarán en el cuadro de lista.  Multiselect: propiedad que establece si el cuadro de lista permitirá o no selecciones múltiples. ☞ 0 - None ☞ 1 - Simple ☞ 2 - Extended
  49. 49. V I S U A L B A S I C 6 . 0 B Á S I C O Página 51 de 62  Sorted: esta propiedad se emplea para ordenar los elementos contenidos en el cuadro de lista; usualmente el ordenamiento es de tipo ascendente (A-Z).  Style: con ella se puede establecer si dentro del cuadro de lista, los elementos se mostrarán como simples textos, o bien, como un grupo de opciones con casillas de verificación. En el primer caso, sólo podría seleccionarse un solo elemento de la lista; sin embargo en el segundo caso se tiene la posibilidad de seleccionar varios de estos elementos o todos, si fuera necesario. Los métodos que incluye una caja de lista son:  AddItem: agrega un elemento de lista a la caja.  Clear: elimina el contenido de la caja de lista referida.  RemoveItem: borra un elemento de la lista que existe en la caja.  SetFocus: lleva el enfoque a la caja de lista. Cuadro combinado (ComboBox) El cuadro combinado es un objeto que agrupa las características del cuadro de texto con las del cuadro de lista; es decir, nos permite escribir dentro del mismo, aunque de manera predeterminada éste contiene ya una lista de opciones. Al escribir dentro de un cuadro combinado generalmente no agregamos datos, pero sí podemos desplazarnos a la opción más próxima o parecida. Las propiedades generales de un cuadro combinado son…  Nombre (Name): cada vez que se agrega un cuadro combinado en el formulario activo, Visual Basic da por defecto el nombre Combo1, Combo2, Combo3… El mnemónico asignado a los cuadros combinados es cbo, por ejemplo: cboPuesto, cboDepartamento, cboÁrea, cboArtículo, etc.  BackColor: propiedad con la que se define el color de relleno del cuadro combinado  Enabled: determina si el cuadro combinado podrá ser gestionado o no durante la ejecución del programa.  Font: permite ajustar la fuente, tamaño, estilo y efectos del texto en el cuadro combinado.  ForeColor: permite modificar el color del texto en el cuadro combinado.  ItemData: permite definir un número específico para cada elemento de lista del cuardo combinado.  List: nos permite agregar el conjunto de elementos que se mostrarán en la lista del cuadro combinado.  Locked: esta propiedad define si el usuario podrá escribir o no dentro del cuadro combinado.  Sorted: esta propiedad ordena los elementos de lista contenidos en el cuadro combinado; el tipo de ordenamiento utilizado es ascendente (A-Z).  Style: permite seleccionar el formato o estilo del cuadro combinado; cada estilo determina el comportamiento del combo al estar en ejecución el programa y para ello Visual Basic ofrece las tres opciones siguientes: ☞ 0 - DropDownCombo ☞ 1 - Simple Combo ☞ 2 - DropDownList  TabIndex: establece el orden de tabulación que corresponderá al cuadro combinado dentro del formulario contenedor.  Text: establece el texto que mostrará por default el cuadro combinado en tiempo de ejecución. Sólo en el caso de haber seleccionado el estilo DropDownList esta propiedad no tiene efecto alguno. Los métodos que incluye el cuadro combinado son similares a los de una caja de lista:  AddItem: agrega un elemento de lista al cuadro combinado.  Clear: elimina el contenido del cuadro combinado.  RemoveItem: borra un elemento de la lista que contiene el cuadro combinado.  SetFocus: lleva el enfoque al cuadro combinado.
  50. 50. V I S U A L B A S I C 6 . 0 B Á S I C O Página 52 de 62 Imagen (Image) Este control se utiliza para mostrar gráficos sobre los formularios; soporta prácticamente cualquier formato de imagen conocido. Las propiedades que no deben pasar desapercibidas de un control imagen son las siguientes:  Nombre: Por defecto, cada nuevo control de imagen que se añade a un formulario ennun proyecto, ésta aperece nombrado como image1, image2, image3… según el orden secuencial en el que se agreguen. El mnemónico que se utiliza en esta clase de control es img.  BorderStyle: Permite aplicar un borde a la imagen.  Height: Establece la altura del área donde se mostrará laimagen.  MousePointer: Determina la imagen del puntero, cuando éste se coloque por encima de la imagen, durante la ejecución del programa.  Picture: Permite establecer el archivo gráfico que contendrá el control de imagen (archivos con formato bmp, dib, cur, ico, gif, jpg, wmf, emf)  Stretch: establece si la imagen podrá ajustarse o no a la superficie trazada para el control de imagen.  Width: Establece el ancho del área donde se mostrará laimagen. Control de datos (Data) Este objeto nos da la posibilidad de gestionar información contenida en bases de datos de formatos diversos: visualizar, agregar, eliminar o actualizar registros (como Access, Dbase, Excel, FoxPro, Paradox y Lotus). El control de datos tiene que relacionarse con otros objetos en Visual Basic para finalmente poder verificar que la gestión de la base de datos se realiza de manera conveniente. El uso del control de datos implica utilizar las propiedades DataSource y DataField de cuadros de texto, etiquetas, cuadros de lista, casillas de verificación, imágenes, cajas de imagen y cuadros combinados, para operar de forma conveniente el archivo de la base de datos que se pretenda. DataSource debe referirse al nombre del control de datos disponible en el formulario y que gestiona la información que nos interesa para el objeto seleccionado; DataField tendrá como valor el nombre del campo o atributo a partir del cual el objeto en uso desplegará información. Antes de intentar vincular cualquier control con una base de datos es necesario considerar las siguientes propiedades del control de datos:  Nombre (Name): Los controles de datos se nombran consecutivamente Data1, Data2, Data3… Emplean el mnemónico dat, y como ejemplos mencionamos datClientes, datProveedores, datLibros.  Align: propiedad con la que se define la ubucación del control de datos con respecto del formulario donde se ha situado. Visual Basic da cinco posibilidades en esta propiedad: ☞ 0 - None ☞ 1 - Align Top ☞ 2 - Align Bottom ☞ 3 - Align Left ☞ 4 - Align Right  Appearance: determina si el control de datos tendrá aspecto plano o tridimensional.  BOFAction: establece la posible acción que se ejecutará si se presioan el botón Ir al Inicio, del control de datos.  Caption: determina el texto que se mostrará en el dorso del control de datos. Usualmente el texto debe hacer referencia al origen de datos o tabla que alimenta al objeto.  Connect: esteblece el formato de la base da datos con la cuál se pretende conectar el control de datos.  DataBaseName: se utiliza para definir la ruta y nombre del archivo de base de datos con el que se realizará la conexión.
  51. 51. V I S U A L B A S I C 6 . 0 B Á S I C O Página 53 de 62  EOFAction: establece la acción que se ejecutará si se presiona el botón Ir al Final, del control de datos.  ReadOnly: determina si será posible editar la base de datos desde el control de datos o si por el contrario sólo se visualizará la información.  RecordSetType: permite indicar el tipo de objeto que utilizará el control de datos para manipular la información. Lo más común es manejar tablas, así pues se sugiere seleccionar tal opción. No obstante, desde el código se pueden utilizar sentencias SQL que filtren información proveniente de la Base de datos y la descarguen en el control de datos.  RecordSource: se conoce también como origen de datos, es decir, ésta propiedad debe señalar el nombre de la tabla o consulta proveniente de la base de datos que alimentará al recordset del control de datos. Cuando se desee manejar un query o filtro desde el código, la propiedad recordsetype deberá contener la opción dynaset, debido a que se trata de un objeto dinámico. Práctica 4 - Proyecto Ventas 1. Inicia un nuevo proyecto en Visual Basic 6.0 2. En el Explorador de proyectos, haz clic derecho sobre el objeto Form1 y selecciona la opción Quitar Form1, para comenzar desde cero esta aplicación; momentáneamente el proyecto se quedará sin archivos. 3. Llama al proyecto vbpVentas. 4. Abre el menú Proyecto y selecciona la opción Agregar formulario MDI… No existen plantillas o asistente para el diseño de un formulario MDI, así que, en el cuadro de diálogo Agregar formulario MDI sólo presiona el botón Abrir. 5. Define las siguientes propiedades para el nuevo formulario… Propiedad Valor o Contenido Nombre MDIVentas Caption Sistema Automatizado de Ventas [Pantalla Principal] Icon Icono ubicado en: EscritorioIconsOfficeGRAPH01 WindowState 2 - Maximized 6. Abre el editor de menús e inserta los siguientes elementos:
  52. 52. V I S U A L B A S I C 6 . 0 B Á S I C O Página 54 de 62 7. Guarda el formulario MDI y el proyecto en la carpeta Proyecto Ventas que crearás dentro de tu carpeta personal. 8. Agrega un formulario SDI nuevo y define las siguientes propiedades para este objeto… Propiedad Valor o Contenido Nombre frmClientes BackColor &H00E0E0E0& BorderStyle 2 - Sizable Caption Módulo de Clientes WindowState 2 - Maximized MDIChild True MinButton False 9. Guarda este formulario en la carpeta Proyecto Ventas. 10. Inserta cuatro etiquetas en el formulario y utiliza las siguientes propiedades para estas: Label1 Propiedad Valor o Contenido Nombre lblId Autosize True BackStyle 0 - Transparent Caption Id de Cliente: Font Bookman Old Style, estilo normal, tamaño 14 ForeColor &H00C00000& Label4 Propiedad Valor o Contenido Nombre lblDomicilio Autosize True BackStyle 0 - Transparent Caption Domicilio Fiscal Font Berlin Sans FB, estilo normal, tamaño 16 ForeColor &H00C00000& Label2 Propiedad Valor o Contenido Nombre lblNombre Autosize True BackStyle 0 - Transparent Caption Nombre: Font Bookman Old Style, estilo normal, tamaño 14 ForeColor &H00C00000& Label3 Propiedad Valor o Contenido Nombre lblRfc Autosize True BackStyle 0 - Transparent Caption R.F.C. Font Bookman Old Style, estilo normal, tamaño 14 ForeColor &H00C00000& 11. Inserta un cuadro de texto por cada etiqueta en el formulario y adecua sus propiedades.
  53. 53. Text1 Propiedad Valor o Contenido Nombre txtId Alignment 1 - Right Justify Font Berlin Sans FB, estilo normal, tamaño 16 Forecolor &H00404040& MaxLenght 5 Text ToolTipText Clave o ID del cliente Width 1000 Text4 Propiedad Valor o Contenido Nombre txtDomicilio Alignment 0 - Left Justify Font Berlin Sans FB, estilo normal, tamaño 16 Forecolor &H00404040& Height 850 MaxLenght 100 Multiline True Text (Texto) ToolTipText Domicilio Fiscal del cliente Width 7000 Text2 Propiedad Valor o Contenido Nombre txtNombre Alignment 0 - Left Justify Font Berlin Sans FB, estilo normal, tamaño 16 Forecolor &H00404040& MaxLenght 50 Text ToolTipText Nombre o Razón Social del cliente Width 7000 Text3 Propiedad Valor o Contenido Nombre txtRfc Alignment 0 - Left Justify Font Berlin Sans FB, estilo normal, tamaño 16 Forecolor &H00404040& MaxLenght 13 Text ToolTipText Registro Federal de Contribuyentes Width 2500 12. Inserta un marco debajo del control txtDomicilio, que actualmente se encuentra en el formulario, y define sus propiedades según la tabla. Propiedad Valor o Contenido Nombre fraRegion BackColor &H00E0E0E0& Caption Región Font Berlin Sans FB, estilo normal, tamaño 16 ForeColor &H00C00000& Height 1125 Width 7000
  54. 54. 13. Dentro del marco dibuja cuatro botones de opción con las características que se muestran en las tablas de abajo. Option1 Propiedad Valor o Contenido Nombre optNorte BackColor &H00E0E0E0& Caption &Norte Font Berlin Sans FB, estilo normal, tamaño 16 ForeColor &H00C00000& Width 1500 Option4 Propiedad Valor o Contenido Nombre optPoniente BackColor &H00E0E0E0& Caption &Poniente Font Berlin Sans FB, estilo normal, tamaño 16 ForeColor &H00C00000& Width 1500 Option2 Propiedad Valor o Contenido Nombre optOriente BackColor &H00E0E0E0& Caption &Oriente Font Berlin Sans FB, estilo normal, tamaño 16 ForeColor &H00C00000& Width 1500 Option3 Propiedad Valor o Contenido Nombre optSur BackColor &H00E0E0E0& Caption &Sur Font Berlin Sans FB, estilo normal, tamaño 16 ForeColor &H00C00000& Width 1500 14. Inserta enseguida cuatro botones de comando situados debajo del marco anterior y utiliza los valores que se muestran en las tablas. Command1 Propiedad Valor o Contenido Nombre cmdNuevo BackColor &H00E0E0E0& Caption Height 735 Picture Icono ubicado en: EscritorioIcons ArrowsPOINT06 Style 1 - Graphical ToolTipText Haz clic aquí para agregar un nuevo registro Width 1575 Command2 Propiedad Valor o Contenido Nombre cmdAceptar BackColor &H00E0E0E0& Caption Height 735 Picture Icono ubicado en: EscritorioIcons MiscCHECKMRK Style 1 - Graphical ToolTipText Haz clic aquí para guardar el registro Width 1575 Command3 Propiedad Valor o Contenido Nombre cmdCancelar BackColor &H00E0E0E0& Caption Height 735 Picture Icono ubicado en: EscritorioIcons WritingERASE02 Style 1 - Graphical ToolTipText Haz clic aquí para borrar los datos insertados y/o cancelar el registro actual Width 1575
  55. 55. V I S U A L B A S I C 6 . 0 B Á S I C O Página 57 de 62 Command4 Propiedad Valor o Contenido Nombre cmdCerrar BackColor &H00E0E0E0& Caption Height 735 Picture Icono ubicado en: EscritorioIcons WrittingNOTE04 Style 1 - Graphical ToolTipText Haz clic aquí para cerrar el formulario Width 1575 15. Guarda los cambios y abre la ventana de código para escribir las instrucciones convenientes. 16. Cuando el formulario sea ejecutado, no deberán estar habilitados los cuadros de texto, los botones de opción y los botones de comando cmdAceptar y cmdCancelar no serán visibles. Únicamente estarán activos los botones cmdNuevo y cmdCerrar; para ello crearemos un procedimiento general, cuyo nombre será Inactivo; sitúa el cursor en la zona más baja de la ventana código y escribe las instrucciones que se muestran en la imagen siguiente: 17. Adicionalmente, los cuadros de texto y los botones de opción deberán mostrarse sin valores predeterminados y para ello crearemos otro procedimiento de nombre BorrarDatos. 18. Ambos procedimientos tendrán efecto cuando el formulario se cargue. Localiza y selecciona del apartado de controles al objeto Form e inserta las siguientes líneas:

×