Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Visual Basic 2008
Visual Basic 2008
El proceso de desarrollo
Visual Basic Express facilita el proceso de desarrollar aplicaciones; en la mayora de los casos, el proceso consta de los pasos siguientes:
Cree un proyecto. Un proyecto contiene todos los archivos necesarios para la aplicacin y almacena informacin sobre la aplicacin. A veces, una aplicacin contendr ms de un proyecto, por ejemplo, un proyecto de aplicacin para Windows y uno o varios proyectos de biblioteca de clases. Tal aplicacin se denomina solucin, que es slo otro nombre para un grupo de proyectos. Disee la interfaz de usuario. Para ello, puede arrastrar distintos controles, como botones y cuadros de texto, a una superficie de diseo conocida como formulario. Puede establecer propiedades que definan el aspecto y comportamiento del formulario y de sus controles.
Nota
Para aplicaciones que no tienen ninguna interfaz de usuario, como bibliotecas de clases o aplicaciones de consola, este paso no es necesario.
Escriba el cdigo. A continuacin, tendr que escribir el cdigo de Visual Basic Expressque define cmo se comportar la aplicacin y cmo interactuar con el usuario. Visual Basic Express facilita la escritura de cdigo con caractersticas como Intellisense, finalizacin automtica y miniprogramas. Pruebe el cdigo. Siempre desear probar la aplicacin para asegurarse de que se comporta del modo que esperaba; este proceso se conoce como depuracin. Visual Basic Express dispone de herramientas de depuracin que facilitan la bsqueda y correccin de errores en el cdigo de forma interactiva. Distribuya la aplicacin. Una vez que la aplicacin est completa, puede instalar el programa final en el equipo o distribuirlo y compartirlo con otros usuarios. Visual Basic Express utiliza una nueva tecnologa conocida como publicacin de ClickOnce, que permite implementar fcilmente una aplicacin con un asistente y proporcionar versiones actualizadas de la aplicacin si ms adelante realiza cambios.
Familiarizarse
A primera vista, la interfaz de usuario de Visual Basic Express, tambin conocida como entorno de desarrollo integrado o IDE, puede resultar extraa, pero una vez que se familiarice, la encontrar fcil de utilizar. En las secciones siguientes se describen las partes del IDE que ms utilizar. Al iniciar Cuando abre por primera vez Visual Basic Express, ver que la ventana Pgina de inicio ocupa la mayor parte. La Pgina de inicio contiene una lista de los proyectos recientes en los que se puede hacer clic, un rea Introduccin con Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 3
vnculos a temas de Ayuda importantes y una lista de vnculos a artculos en lnea y otros recursos. Si se conecta a Internet, esta lista se actualizar regularmente. Puede cambiar lo que aparece en la Pgina de inicio para que se ajuste a sus preferencias personales. Para obtener ms informacin, vea Cmo: Personalizar la seccin de noticias de la Pgina de inicio. En el lado derecho del IDE, se muestra la ventana Explorador de soluciones. Inicialmente est en blanco, pero aqu es donde se mostrar la informacin sobre su proyecto o grupos de proyectos conocidos como soluciones. Para obtener ms informacin, vea Utilizar el Explorador de soluciones.
En el lado izquierdo del IDE, se muestra una ficha vertical marcada Cuadro de herramientas. Tambin est en blanco inicialmente, pero a medida que trabaja se rellenar con elementos que se pueden utilizar para la tarea en la que est trabajando. Para obtener ms informacin, vea Usar el Cuadro de herramientas. En la parte superior del IDE hay una barra de mens y una barra de herramientas. Los mens y los botones de la barra de herramientas cambian Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 4
segn la tarea del momento, tmese algo de tiempo para explorar y ver qu opciones estn disponibles. Tambin puede personalizar los mens y la barra de herramientas para que se ajusten a sus preferencias personales. Para obtener ms informacin, vea Cmo: Personalizar las barras de herramientas (Visual Studio). En la parte ms inferior del IDE hay una barra de estado que muestra Listo. Cuando trabaja en el IDE, la barra de estado cambia y muestra mensajes relacionados con la tarea en curso, por ejemplo, la barra de estado muestra informacin sobre el progreso de un proyecto que est generando. Modo de diseo Cuando abre o crea un proyecto, el aspecto del IDE cambia al modo de diseo. sta es la parte visual de Visual Basic, donde se disea el aspecto de la aplicacin.
En el modo de diseo, la Pgina de inicio se cubre con otra ventana conocida como Diseador de Windows Forms, que es bsicamente un lienzo en blanco que representa la interfaz de usuario de la aplicacin. Observe que la Pgina de inicio todava est disponible haciendo clic en la ficha correspondiente en el Diseador de Windows Forms. Cuando est visible el Diseador de Windows Forms, el cuadro de herramientas contiene varios controles (representaciones de botones, campos de texto, cuadrculas, etc.) que se pueden colocar en el formulario y organizar como se desee. Para obtener ms informacin, vea Diseador de Windows Forms. Tambin observar que aparece una nueva ventana, la ventana Propiedades, bajo la ventana Explorador de soluciones. Aqu es donde establecer las Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 5
distintas propiedades que definen el aspecto y comportamiento del formulario y sus controles. Para obtener ms informacin, vea Propiedades (Ventana). De forma predeterminada, no se muestra la ventana Lista de tareas en la parte inferior del IDE, pero proporciona un lugar donde puede llevar un seguimiento de las tareas que es necesario realizar o anotar cuando programa. Para obtener ms informacin, vea Lista de tareas (Visual Studio). Si hace doble clic en un formulario o control, se abre una nueva ventana llamada Editor de cdigo. Aqu es donde escribe el cdigo real para la aplicacin. El Editor de cdigo es algo ms que un simple editor de texto, ya que utiliza una tecnologa conocida como IntelliSense que facilita la escritura del cdigo al proporcionar informacin segn escribe. Para obtener ms informacin, vea Opciones de IntelliSense especficas de Visual Basic.
Nota Para algunos tipos de proyectos, como los proyectos de bibliotecas de clase que no disponen de interfaz de usuario, se muestra el Editor de cdigo en lugar del Diseador de Windows Forms.
Modo de ejecucin Cuando ejecuta o depura la aplicacin, el IDE cambia a modo de ejecucin. Se inicia la aplicacin y aparece una ventana adicional relacionada con la depuracin. Cuando est en el modo de ejecucin, no puede hacer cambios en el Diseador de Windows Forms, la ventana Propiedades ni en el Explorador de soluciones, pero puede modificar el cdigo en el Editor de cdigo.
En el modo de ejecucin, aparece una nueva ventana conocida como la ventana Inmediato en la parte inferior del IDE. Si coloca la aplicacin en el modo de interrupcin, puede consultar valores y probar el cdigo en la ventana Inmediato. Para obtener ms informacin, vea Inmediato (Ventana). Durante la ejecucin se pueden mostrar ventanas adicionales y observar los valores de variables, mostrar los resultados y otras tareas de depuracin seleccionndolas en el men Depurar. Otras ventanas importantes Hay numerosas ventanas adicionales en el IDE, cada una para una tarea de programacin concreta. Algunas de las ms comunes se muestran a continuacin. La ventana Lista de errores aparece en la parte inferior del IDE si se escribe cdigo incorrecto o aparecen otros errores en tiempo de diseo. Para obtener ms informacin, vea Lista de errores (Ventana). Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 7
La ventana del Examinador de objetos se utiliza para examinar las propiedades, mtodos y eventos de los objetos que se pueden utilizar en la aplicacin. Para obtener ms informacin, vea Examinador de objetos. El Diseador de proyectos se utiliza para configurar las propiedades de la aplicacin, incluidos los recursos, el comportamiento de depuracin, la configuracin de implementacin y mucho ms. Para obtener ms informacin, vea Introduccin al Diseador de proyectos. El Explorador de base de datos permite visualizar y utilizar bases de datos existentes o crear y disear otras nuevas. Para obtener ms informacin, vea Explorador de servidores/Explorador de bases de datos. Personalizacin Visual Basic Express permite personalizar el IDE cambiando el diseo de ventana, seleccionando qu ventanas se van a mostrar, agregando o eliminando comandos de men y botones de la barra de herramientas, etctera. Para obtener ms informacin, vea Personalizar el entorno de desarrollo.
Se muestra un nuevo formulario en el IDE y se agregan los archivos necesarios para el proyecto a la ventana Explorador de soluciones. Si ste es el primer proyecto de Aplicacin para Windows que ha creado, se denomina "WindowsApplication1".
Informacin detallada
Acaba de crear un proyecto para el programa de exploracin Web. Un proyecto en Visual Basic Expresses un lugar para almacenar partes del programa y mantenerlas organizadas. Cuando crea un nuevo proyecto por primera vez, slo existe en la memoria. Si cierra el entorno de desarrollo integrado (IDE) de Visual Basic, se le pide que guarde o descarte el proyecto. Cuando lo guarde, puede darle un nombre ms significativo. Al abrir el cuadro de dilogo Nuevo proyecto, haba diversos tipos de proyectos entre los cuales elegir. El programa de exploracin Web es una Aplicacin para Windows normal; es decir, un programa que se puede ejecutar desde el men Inicio. Al crear el proyecto, apareca un formulario (tambin conocido como diseador de formularios) en el entorno de desarrollo integrado (IDE). Este formulario representa una ventana que se mostrar cuando se ejecuta el programa. Muchos programas muestran ms de una ventana, por lo que un proyecto puede contener mltiples formularios.
Haga clic en la ficha Todos los formularios Windows Forms del Cuadro de herramientas, seleccione el control Panel y arrastre un panel a la esquina superior izquierda del formulario. Sugerencia Si tiene dificultades para encontrar el control correcto, haga clic con el botn secundario del mouse (ratn) en el Cuadro de herramientas y seleccione Ordenar elementos alfabticamente. En la misma ficha, arrastre un control Button y colquelo en la parte superior del control Panel. Sugerencia
Puede cambiar la posicin de los controles mediante una operacin de arrastrar y colocar. Tambin puede cambiar el tamao de los controles haciendo clic y arrastrando el borde o la esquina del control.
Desde la misma ficha, arrastre un control TextBox y colquelo en la parte superior del control Panel. Finalmente, en la ficha Todos los formularios Windows Forms, seleccione un control WebBrowser y colquelo debajo del control Panel. Sugerencia
Si tiene abierta la ventana Cuadro de herramientas, es posible que desee cerrarla ahora para tener ms espacio de trabajo. Puede hacerlo haciendo clic una vez ms en el icono Ocultar automticamente.
Informacin detallada
Acaba de agregar cuatro controles al formulario. Los controles contienen cdigo que define el aspecto que tendrn y las tareas que pueden realizar. Por ejemplo, considere el control Button: casi todos los programas tienen un botn "Aceptar" o un botn "Salir". Si bien podra escribir su propio cdigo para dibujar un botn en la pantalla, cambiar su apariencia cuando se presione y Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 10
realizar alguna tarea cuando se haga clic en l, hacerlo para cada programa enseguida se convertir en un asunto tedioso. El control Button ya contiene el cdigo necesario para hacer estas tareas, lo que le ahorra mucho trabajo innecesario. Como puede ver, el Cuadro de herramientas contiene numerosos controles y cada uno de ellos tiene un propsito nico. Los controles Panel se pueden utilizar para contener otros controles, como los que acaba de agregar. Los controles Button se utilizan generalmente para realizar tareas cuando el usuario hace clic en ellos; por ejemplo, cerrar el programa. Los controles TextBox se utilizan para escribir texto en una pantalla a travs del teclado. Un control WebBrowser proporciona funciones de exploracin Web integradas similares a Internet Explorer: seguro que no desea escribir todo el cdigo de esa funcin. En prximas lecciones aprender a personalizar la apariencia de stos y de otros muchos controles, as como tambin a escribir el cdigo que define su comportamiento. Adems de utilizar los controles del Cuadro de herramientas, tambin puede crear sus propios controles, los que se conocen como controles de usuario; tambin se hablar de ellos en una prxima leccin.
Haga clic en el cuadro superior en la ventana de seleccin de propiedades para establecer la propiedad Dock en Top. El control Panel se expandir para rellenar la parte superior del formulario. En el Diseador de Windows Forms, seleccione el control WebBrowser. En la ventana Propiedades, para establecer la propiedad Dock en Fill seleccione la propiedad Dock, haga clic en la flecha a la derecha y seleccione el cuadro del centro de la ventana de seleccin de propiedades. En el Diseador de Windows Forms, seleccione el control Button. En la ventana Propiedades, seleccione la propiedad Text del control Button. En la columna de la derecha, elimine Button1 y reemplcelo por Go!. Cambie el tamao o vuelva a ubicar cualquiera de los controles y cambie nuevamente el tamao del formulario segn sus preferencias. Nota
Los controles TextBox y Button deben permanecer en la parte superior de Panel o no podr verlos cuando se ejecuta la aplicacin.
Informacin detallada
En esta leccin, se establecen varias propiedades que cambian la apariencia de los controles para la aplicacin. Una propiedad en Visual Basic Expressrepresenta un atributo de un objeto, en este caso, un control. Por ejemplo, un atributo de un control Button es el texto que muestra. En este caso, se establece la propiedad Text para mostrar "Ir". Para obtener ms informacin sobre las propiedades, vea Informacin detallada: comprender propiedades, mtodos y eventos. Las propiedades pueden tomar muchos tipos diferentes de valores adems del texto. Por ejemplo, la propiedad Dock utiliz una ventana de seleccin de propiedades para mostrar las opciones disponibles. Otros valores de la propiedad pueden ser nmeros, una opcin que se selecciona de una lista, o una opcin true o false. Si se cambi el tamao de un control o se reubic, tambin se establecieron las propiedades. Las propiedades Size y Location determinan el tamao y la ubicacin del control en el formulario. Para ver esto en accin, seleccione la propiedad Size en la ventana Propiedades y utilice el mouse para cambiar el tamao del control. Cuando se suelta el botn del mouse, los nuevos valores Size se mostrarn en la ventana Propiedades. Adems de establecer las propiedades en la ventana Propiedades, la mayora de stas se pueden establecer escribiendo un cdigo. En una prxima leccin, Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 12
Un globo tiene propiedades (Color, Alto y Dimetro), responde a eventos (Puncture) y puede ejecutar mtodos (Deflate, MakeNoise). Propiedades Si pudiera programar un globo, el cdigo de Visual Basic Expresspodra parecerse al siguiente "cdigo" que establece las propiedades de un globo.
Balloon.Color = Red
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 13
En este caso, el cdigo describe el comportamiento del globo cuando se produce un evento Puncture: llama al mtodo MakeNoise con un argumento "Bang", (el tipo de ruido a realizar), luego llama al mtodo Deflate. Puesto que el globo ya no est inflado, la propiedad Inflated se establece en False. Si bien, en realidad no puede programar un globo, puede programar un formulario o control de Visual Basic. Como programador, es el responsable. Decida las propiedades que se deben cambiar, los mtodos que se deben invocar o los eventos que se deben responder para lograr la apariencia y el comportamiento deseados. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 14
Copiar cdigo
Informacin detallada
Es posible que haya observado que cuando se abre el Editor de cdigo, ste ya contiene algn cdigo con el siguiente aspecto:
Si no entiende el cdigo, no se preocupe, aprender mucho ms sobre la escritura de cdigo en las siguientes lecciones
En el cuadro de texto, escriba http://www.microsoft.com/spanish y haga clic en el botn Ir. El control WebBrowser del programa va a la pgina principal de Microsoft. Desde all, puede desplazarse por cualquier vnculo relacionado. Para visitar otra pgina Web, escriba la direccin en el cuadro de texto y haga clic en el botn Ir. Para cerrar el programa, en el men Depuracin, haga clic en Detener depuracin.
Sugerencia Tambin puede finalizar el programa haciendo clic en el botn Cerrar situado en la esquina superior derecha del formulario.
Informacin detallada
En esta leccin se ejecut el programa para ver si funcionaba. Para la mayora de los programas de Visual Basic, se repetir este proceso muchas veces. Generalmente, despus de agregar nuevo cdigo, ejecutar el programa para ver si el cdigo lleva a cabo la accin que se espera; de lo contrario, deber corregirlo. Este proceso se llama depuracin; se analizar en detalle en una leccin posterior. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 16
Puede parecer increble que el programa vaya a una pgina Web y que la muestre, como resultado de escribir una sola lnea de cdigo. Esto es lo bueno de Visual Basic, todo el cdigo necesario se integra en el control WebBrowser, lo que le permite ahorrar tiempo y esfuerzo. Si tuviera que hacerlo todo personalmente, tomara cientos o incluso miles de lneas de cdigo. Solucin de problemas Si el programa no se ejecuta ni muestra la pgina Web, hay algunas cosas que puede comprobar: Asegrese de estar conectado a Internet. Abra Internet Explorer e intente desplazarse a la pgina principal de Microsoft. Si funciona en Internet Explorer, tambin debe funcionar en el programa. Asegrese de que escribi la direccin (http://www.microsoft.com/spanish) correctamente. Regrese y compruebe Paso 2: Crear una interfaz de usuario y asegrese de que coloc los controles correctos en el formulario. Regrese a Paso 4: agregar cdigo de Visual Basic y asegrese de que escribi el cdigo correctamente. Pasos siguientes Enhorabuena! Ha completado su primer programa de Visual Basic. Ha mostrado cmo se pueden desarrollar programas eficaces en forma rpida y fcil utilizando Visual Basic. En las siguientes lecciones, se presentarn ms caractersticas del lenguaje de programacin de Visual Basic.
Palabras y texto: utilizar variables de cadena para organizar palabras Matrices: variables que representan ms de un valor Aritmtica: crear expresiones con variables y operadores Comparaciones: Utilizar expresiones para comparar valores
Su primer programa
Preparado para un poco de programacin real? Los vnculos siguientes le guiarn por el proceso de creacin de un programa simple y le mostrarn cmo buscar los errores del programa.
Trmino Hacer que el equipo haga algo: escribir el primer procedimiento Hacer que un programa repita acciones: establecer bucles Definicin Cmo escribir cdigo que indica a su programa que realice una accin determinada. Cmo escribir cdigo que repite acciones en su programa y cuenta las veces que stas se han
For...Next Hacer que un programa elija entre dos posibilidades: la instruccin If...Then Qu hacer cuando algo sale mal: control de errores
realizado. Cmo escribir cdigo que hace cosas diferentes en respuesta a condiciones diferentes.
Cmo escribir cdigo que controla los errores de sus programas. Tambin obtendr informacin sobre los diferentes tipos de errores.
Informacin detallada: convertir un tipo de variable en otro Informacin detallada: utilizar Do...While y Do...Until para repetir hasta obtener una condicin Informacin detallada: utilizar Select Case para decidir entre varias opciones Paseo con gua por Visual Basic
funciona, incluso alguna terminologa de programacin. El mejor punto de partida es comenzar con los conceptos bsicos.
Qu es un lenguaje de programacin?
Las personas se expresan utilizando un lenguaje con muchas palabras. Los equipos utilizan un lenguaje simple que consta slo de nmeros 1 y 0, con un 1 que significa "activado" y un 0 que significa "desactivado". Tratar de hablar con un equipo en su propio lenguaje sera como tratar de hablar con los amigos utilizando el cdigo Morse, se puede hacer, pero para qu? Un lenguaje de programacin acta como un traductor entre el usuario y el equipo. En lugar de aprender el lenguaje nativo del equipo (conocido como lenguaje mquina), se puede utilizar un lenguaje de programacin para dar instrucciones al equipo de un modo que sea ms fcil de aprender y entender. Un programa especializado conocido como compilador toma las instrucciones escritas en el lenguaje de programacin y las convierte en lenguaje mquina. Esto significa que, como desarrollador de Visual Basic, no precisa entender lo que el equipo hace o cmo lo hace, slo es necesario entender cmo funciona el lenguaje de programacin de Visual Basic.
Los elementos de programacin de Visual Basic Expressincluyen instrucciones, declaraciones, mtodos, operadores y palabras clave. A medida que avance en las siguientes lecciones, ir aprendiendo ms sobre estos elementos y cmo utilizarlos. El lenguaje escrito y hablado tambin tiene reglas, o sintaxis, que definen el orden de las palabras en una frase. Visual Basic Expresstambin tiene su sintaxis, al comienzo resulta extraa pero realmente es muy simple. Por ejemplo, para decir "La velocidad mxima de mi automvil es 55", se escribira:
Car.Speed.Maximum = 55
Ms adelante aprender ms sobre la sintaxis y las herramientas de Visual Basic, por ejemplo IntelliSense, que es una gua para utilizar la sintaxis correcta al escribir los programas. El lenguaje hablado y escrito tambin posee su estructura: por ejemplo, un libro consta de captulos con prrafos que contienen frases. Los programas escritos en Visual Basic Expresstambin tiene una estructura: los mdulos son como los captulos, los procedimientos como los prrafos y las lneas de cdigo como las frases.
Asignar la variable. Proporcionar un valor a la variable. Utilizar la variable. Recuperar el valor contenido en la variable y utilizarlo en el programa.
Declarar variables
Cuando declara una variable, tiene que decidir cmo llamarla y qu tipo de datos asignarle. Se declara una variable utilizando las palabras clave Dim y As, como se muestra a continuacin.
Visual Basic Express Dim aNumber As Integer Copiar cdigo
Esta lnea de cdigo indica al programa que se desea utilizar una variable denominada aNumber, que almacene nmeros enteros (el tipo de datos Integer). Puesto que aNumber es un Integer, slo puede almacenar nmeros enteros. Por ejemplo, si desea almacenar 42,5 utilizar el tipo de datos Double. Y si desea almacenar una palabra, utilizar un tipo de datos String. Otro tipo de datos que vale la pena mencionar en este punto es Boolean, que puede almacenar un valor True o False. Aqu hay ms ejemplos de cmo declarar las variables.
Visual Basic Express Dim aDouble As Double Dim aName As String Dim YesOrNo As Boolean Copiar cdigo
Asignar variables
Se asigna un valor a la variable con el signo =, que a veces se denomina operador de asignacin, como se muestra en el ejemplo siguiente.
Visual Basic Express aNumber = 42 Copiar cdigo
Esta lnea de cdigo toma el valor 42 y lo almacena en la variable declarada previamente denominada aNumber.
Si declara las variables y asigna los valores predeterminados en una sola lnea, puede evitar posibles errores. Todava puede utilizar la asignacin para dar despus un valor diferente a la variable.
Intntelo
En este ejercicio, escribir un breve programa que crea cuatro variables, les asigna valores y a continuacin muestra cada valor en una ventana llamada cuadro de mensaje. Comencemos creando el proyecto donde se almacenar el cdigo. Para crear el proyecto Si an no est abierto, abra Visual Basic Expressen el men Inicio de Windows. En el men Archivo, haga clic en Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba Variables y haga clic en Aceptar.
Visual Basic Expresscrear los archivos para el programa y abrir el Diseador de Windows Forms. A continuacin, crear las variables. Para crear las variables y mostrar sus valores Haga doble clic en el formulario. El Editor de cdigo abrir una seccin de cdigo llamada Form1_Load. Esta seccin de cdigo, denominada procedimiento, contiene las instrucciones que se llevarn a cabo cuando se cargue por primera vez el formulario en la memoria. En el procedimiento Form1_Load, escriba el siguiente cdigo.
Visual Basic Express Dim anInteger As Integer = 42 Dim aSingle As Single = 39.345677653 Dim aString As String = "I like candy" Dim aBoolean As Boolean = True Copiar cdigo
Este cdigo declara cuatro variables: Integer, Single, String y Boolean, y asigna sus valores predeterminados.
Sugerencia Al escribir el cdigo, quiz haya observado que despus de escribir As, aparece una lista de palabras bajo el cursor. Esta caracterstica se llama Intellisense. Le permite escribir las primeras letras de una palabra y seleccionarla en la lista. Una vez seleccionada, presione la tecla TAB para finalizar la palabra. Nota Siempre que representa texto real en un programa, ste debe aparecer entre comillas (""). Esto le dice al programa que interprete el texto como texto real en lugar de interpretarlo como un nombre de variable. Cuando asigna a una variable Boolean un valor True o False, no pone la palabra entre comillas, porque True y False son palabras clave de Visual Basic, con significados especiales propios.
Las primeras cuatro lneas del cdigo le dicen al programa que muestre cada valor que asign en el paso anterior en una nueva ventana, utilizando la funcin MsgBox. La lnea final indica al programa que finalice despus de ejecutar este procedimiento: se utiliza la instruccin End. Presione F5 para ejecutar el programa. Haga clic en el botn Aceptar en cada ventana segn aparezcan. Observe que sucesivamente se muestra el valor de cada variable y, a continuacin, el programa finaliza. Despus de que el programa finaliza, puede regresar y cambiar los valores que se asignaron en el cdigo y ejecutar la aplicacin de nuevo: ver que se muestran los nuevos valores.
El tipo de dato numrico que ms se utiliza es Integer, utilizado para representar un nmero entero (un nmero sin parte fraccionaria). Cuando se elige un tipo de datos para representar nmeros enteros, hay que utilizar el tipo de datos Long si la variable va a almacenar nmeros mayores que dos mil millones; de lo contrario, el tipo Integer es ms til. No todos los nmeros son nmeros enteros; por ejemplo, cuando se divide dos nmeros enteros, el resultado es a menudo un nmero entero ms una fraccin (9 dividido por 2 es igual a 4,5). El tipo de datos Double se utiliza para representar nmeros que tienen una parte fraccionaria.
Nota Hay tipos de datos numricos adicionales como Decimal, Short, SByte y UInteger; stos se suelen utilizar en programas muy grandes donde puede ser un problema utilizacin de la memoria o la velocidad. De momento, los tipos de datos numricos bsicos es todo lo que va a necesitar. Si desea obtener ms informacin sobre los tipos de datos avanzados, vea Tipos de datos numricos.
Si necesita almacenar ms de un tipo de datos en una nica variable, puede utilizar un tipo de datos compuesto. Los tipos de datos compuestos incluyen matrices, estructuras y clases. Ms adelante obtendr ms informacin sobre estos tipos de datos. Finalmente, hay casos en los que el tipo de datos que necesita almacenar debe ser distinto en momentos diferentes. El tipo de datos Object le permite declarar una variable y a continuacin definir despus su tipo de datos. Tambin obtendr ms informacin sobre el tipo de datos Object en una leccin posterior.
Qu es una cadena?
Una cadena es cualquier serie de caracteres de texto, como letras, nmeros, caracteres especiales y espacios. Las cadenas pueden ser frases y oraciones legibles, como "El rpido zorro de color caf salta sobre el perro perezoso" o una combinacin aparentemente ininteligible como "@#fTWRE^3 35Gert". Las variables String se crean del mismo modo que otras variables: declarando primero la variable y asignndole un valor, como se muestra a continuacin.
Visual Basic Express Dim aString As String = "This is a string" Copiar cdigo
Al asignar un texto real (tambin denominado literales de cadena) a una variable String, el texto debe estar entre comillas (""). Tambin puede utilizar el carcter = para asignar una variable String a otra variable String, como se muestra en este ejemplo.
Visual Basic Express Dim aString As String = "This is a string" ... Dim bString As String = "" Copiar cdigo
bString = aString
El cdigo anterior establece el valor de bString en el mismo valor que aString (This is a string). Puede utilizar el carcter & para combinar dos o ms cadenas secuencialmente en una nueva cadena, como se muestra a continuacin.
Visual Basic Express Dim aString As String = "Across the Wide" Dim bString As String = "Missouri" Dim cString As String = "" cString = aString & bString Copiar cdigo
El ejemplo anterior declara tres variables de String y asigna respectivamente "Across the Wide" y "Missouri" a las dos primeras y luego asigna los valores combinados de las dos primeras a la tercera variable. Cul cree que es el valor de cString? Le puede sorprender saber que el valor es Across the WideMissouri porque no hay ningn espacio al final de aString o al principio de bString. Las dos cadenas estn simplemente unidas. Si desea agregar espacios o cualquier otro smbolo entre dos cadenas, debe hacerlo mediante un literal de cadena, como " ", como se muestra a continuacin.
Copiar cdigo Dim aString As String = "Across the Wide" Dim bString As String = "Missouri" Dim cString As String = "" cString = aString & " " & bString
Intntelo
Para unir las cadenas En el men Archivo, haga clic en Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto: En el panel Plantillas, haga clic en Aplicacin para Windows. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 28
En el cuadro Nombre, escriba Concatenacin. Haga clic en Aceptar. Se abre un nuevo proyecto de formularios Windows Forms. Haga doble clic en el formulario para abrir el Editor de cdigo. En el procedimiento del evento Form1.Load, declare cuatro variables de cadena y asigne los valores de cadena, como se muestra a continuacin:
Visual Basic Express Dim aString As String = "Concatenating" Dim bString As String = "Without" Dim cString As String = "With" Dim dString As String = "Spaces" Copiar cdigo
Agregue el siguiente cdigo para concatenar las cadenas y mostrar los resultados:
Visual Basic Express MsgBox(aString & bString & dString) ... ' Displays "ConcatenatingWithoutSpaces" MsgBox(aString & " " & cString & " " & dString) ' Displays "Concatenating With Spaces" Copiar cdigo
El texto mostrado en el cuadro de mensaje es el resultado de la unin de las variables de cadena asignadas en un paso anterior. En el primer cuadro, las cadenas estn unidas sin espacios. En el segundo, los espacios se insertan explcitamente entre cada cadena.
Por ejemplo, suponga que est escribiendo un programa para un equipo de bisbol y desea almacenar los nombres de todos los jugadores que se encuentran en el campo de juego. Puede crear nueve variables de cadenas separadas, una para cada jugador o puede declarar una variable de matriz que se parezca al cdigo que aparece a continuacin.
Visual Basic Express Dim players() As String Copiar cdigo
Una variable de matriz se declara colocando parntesis despus del nombre de la variable. Si se sabe cuntos valores se necesita almacenar, tambin se puede especificar el tamao de la matriz en la declaracin de la siguiente manera.
Visual Basic Express Dim players(8) As String Copiar cdigo
Puede parecer extrao que el tamao de la matriz sea 8 cuando un equipo del bisbol tiene 9 jugadores. Esto se debe a que la matriz est formada por una cantidad de valores o elementos, que comienzan con el elemento 0 y terminan con el nmero especificado en la declaracin. En este caso, la matriz contiene los elementos 0 a 8, de un total de nueve.
En el cdigo anterior, el valor John se asigna al primer elemento de la matriz (elemento 0) y el valor Brett se asigna al cuarto elemento (elemento 3). Los elementos de la matriz no se tienen que asignar en orden y cualquier elemento sin asignar tendr un valor predeterminado; en este caso, una cadena vaca. Al igual que con otros tipos de valores, puede declarar y asignar los valores a una matriz en una lnea nica de la siguiente manera.
Visual Basic Express Copiar cdigo
En este caso, las llaves indican una lista de valores. Los valores se asignan a los elementos en el orden mostrado. Observe que no se especifica el tamao de la matriz, lo determina el nmero de elementos que se muestran.
El cdigo anterior recupera el cuarto elemento de la matriz y lo asigna a la variable de cadena AtBat.
Intntelo
Para almacenar los valores en una matriz En el men Archivo, seleccione Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba MyFirstArray y, a continuacin, haga clic en Aceptar. Se abre un nuevo proyecto de formularios Windows Forms. En el Cuadro de herramientas, arrastre un control Textbox al formulario. En el Cuadro de herramientas, arrastre un control Button al formulario. Haga doble clic en Button para abrir el Editor de cdigo. En el procedimiento de evento Button1_Click, agregue el siguiente cdigo:
Visual Basic Express Copiar cdigo
Dim players() As String = {"Dan", "Fred", "Bart", "Carlos", _ "Ty", "Juan", "Jay", "Sam", "Pedro"}
Observe que el cdigo anterior utiliza la funcin CInt para convertir el valor String (TextBox1.Text) en un Integer (i). Puede obtener ms informacin sobre las conversiones en Informacin detallada: convertir un tipo de variable en otro. Presione F5 para ejecutar el programa. Escriba un nmero comprendido entre 0 y 8 en el cuadro de texto y haga clic en el botn. Se muestra el nombre que corresponde a ese elemento en un cuadro de mensaje
5+4
Cuando se evala, la expresin 5 + 4 devuelve el valor 9 y se compone de dos partes: los operandos (5 y 4), que son los valores en los que se realiza la operacin, y el operador (+), que especifica la operacin que se va a realizar.
Este ejemplo declara una nueva variable Integer, llamada anInteger y le asigna el valor devuelto por 5 + 4.
Operadores aritmticos
Las expresiones habitualmente se utilizan para realizar operaciones aritmticas con variables: suma, resta, multiplicacin o divisin. La tabla siguiente describe los operadores normalmente utilizados para operaciones aritmticas.
Operador + (suma) - (resta) * (multiplicacin) / (divisin) Descripcin Devuelve la suma de dos operandos Devuelve la diferencia de dos operandos Devuelve el producto de dos operandos Devuelve el cociente de dos operandos Ejemplo 5+4 5-4 5*4 5/4
El tipo de variable que se utiliza al realizar la operacin aritmtica puede afectar el resultado. La divisin de dos nmeros a menudo da como resultado un valor que no es un nmero entero. Por ejemplo, cuando se divide 3 por 2, el resultado es 1,5. Si se asigna el valor devuelto de esa expresin a una variable Integer, se redondear al nmero entero ms cercano. Al realizar la divisin, se debe utilizar una variable Double para almacenar el valor devuelto.
Nota Tambin se puede convertir una variable de un tipo de datos en otra mediante las funciones de conversin de Visual Basic. Para obtener ms informacin, vea Informacin detallada: convertir un tipo de variable en otro.
Intntelo
Para sumar nmeros En el men Archivo, elija Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba Arithmetic y haga clic en Aceptar. Se abrir un nuevo proyecto de formularios Windows Forms. En el Cuadro de herramientas, arrastre dos controles Textbox al formulario. En el Cuadro de herramientas, arrastre un control Button al formulario. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 33
Haga doble clic en Button para abrir el Editor de cdigo. En el procedimiento de evento Button1_Click, escriba el siguiente cdigo.
Visual Basic Express Dim A As Double = Textbox1.Text Dim B As Double = Textbox2.Text Copiar cdigo
Las primeras dos lneas declaran las variables A y B, que contendrn los valores numricos utilizados en este programa y asignarn los valores de los dos controles TextBox (su texto) a las variables A y B. Las cuatro lneas finales crean expresiones con las dos variables y cada uno de los operadores aritmticos bsicos y muestran los resultados de esas expresiones en un cuadro de mensaje. Presione F5 para ejecutar la aplicacin. Escriba un nmero en cada uno de los cuadros de texto y haga clic en Button1.
Nota Si escribe algn otro carcter en los cuadros de texto, se producir un error.
Las expresiones se crean utilizando los dos nmeros que se escriben y cada uno de los cuatro operadores aritmticos bsicos (suma, resta, multiplicacin y divisin). El resultado de cada expresin se muestra en un cuadro de mensaje
Qu pasa cundo desea mostrar un valor Integer en un control TextBox que requiere una variable de tipo String? La respuesta es que los datos se deben convertir de un tipo a otro. En este tema, estudiar cmo convertir los datos de un tipo en otro y aprender algunas tcnicas utilizadas para la conversin de datos, as como algunos de sus problemas habituales.
Intntelo!
Para convertir una variable en texto En el men Archivo, haga clic en Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba Conversion y haga clic en Aceptar. Se abrir un nuevo proyecto de formularios Windows Forms. Haga doble clic en el formulario para abrir el Editor de cdigo. En el controlador del evento Form1_Load, escriba el siguiente cdigo.
Visual Basic Express Dim anInteger As Integer = 54 MsgBox(CStr(anInteger)) Copiar cdigo
Este cdigo declara una variable de tipo entero llamada anInteger, le asigna un valor de 54 y, a continuacin, convierte ese valor en texto y lo muestra en un cuadro de mensaje llamando a la funcin CStr. Presione F5 para compilar y ejecutar la aplicacin. Aparece un cuadro de mensaje que indica 54. Probemos algo slo por diversin. En el Editor de cdigo, cambie la lnea que indica MsgBox(CStr(anInteger)) para que indique MsgBox(anInteger) y presione F5 para ejecutarla. Qu pasa? El programa se comporta exactamente como hizo antes. Visual Basic Expresses lo suficientemente inteligente como para saber que lo que desea realmente es Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 35
convertir la variable de tipo Integer en texto para que se muestre en el cuadro de mensaje. Sin embargo, no puede confiar en este comportamiento para todas las clases: existen muchos tipos de variables que no se pueden convertir automticamente. Por consiguiente, es una buena prctica usar siempre la funcin CStr, aun cuando una variable se convertira automticamente en texto. Adems de la conversin de variables Integer en texto, se puede utilizar la funcin CStr en cualquier tipo de dato numrico, como Double o Long. Tambin se puede utilizar para convertir la informacin de Date y tipos de datos Boolean en texto. Para obtener ms informacin sobre los tipos de datos, vea Informacin detallada: tipos de datos.
Intntelo!
Para convertir tipos de datos numricos En el Editor de cdigo, elimine el cdigo que escribi en el procedimiento anterior y escriba lo siguiente:
Visual Basic Express Dim A As Integer = 1 Dim B As Integer = 2 MsgBox(CDbl(A / B)) Copiar cdigo
Este cdigo declara dos variables de tipo Integer (A y B), les asigna los valores 1 y 2 y, a continuacin, convierte el resultado de la operacin de divisin (A / B) utilizando la funcin CDbl y lo muestra en un cuadro de mensaje. Presione F5 para compilar y ejecutar la aplicacin. Aparece un cuadro de mensaje que indica 0.5. Visual Basic Express tambin tiene funciones para otros tipos de variables numricas. Por ejemplo, si agrega dos variables de tipo Double y desea redondear el resultado al nmero entero ms cercano, utilice la funcin CInt. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 36
Otras funciones de conversin numricas son CByte, CDec, CLng y CShort. Para obtener una lista de todas las funciones de conversin de Visual Basic, vea Funciones de conversin de tipos.
Intntelo
Para comparar expresiones En el men Archivo, haga clic en Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba Comparison y haga clic en Aceptar. Se abrir un nuevo proyecto de formularios Windows Forms. En el Cuadro de herramientas, arrastre dos controles Textbox al formulario. En el Cuadro de herramientas, arrastre un control Button al formulario. Haga doble clic en Button para abrir el Editor de cdigo. En el controlador de eventos Button1_Click, escriba el siguiente cdigo:
Visual Basic Express Dim A As Double = CDbl(Textbox1.Text) Dim B As Double = CDbl(Textbox2.Text) MsgBox(A > B) MsgBox(A < B) MsgBox(A = B) Copiar cdigo
Las dos primeras lneas declaran las variables A y B, que contendrn los valores numricos usados en este programa; utilizan la instruccin CDbl para convertir el texto de Textbox1 y Textbox2 en valores numricos. Finalmente, las ltimas tres lneas crean expresiones que permiten comparar las dos variables mediante tres operadores de comparacin bsicos y muestran los resultados de esas expresiones en tres cuadros de mensaje. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 38
Presione F5 para ejecutar la aplicacin. Escriba un nmero en cada uno de los cuadros de texto y haga clic en Button1. El primer cuadro de mensaje mostrar True si A (el nmero que escribi en el primer cuadro de texto) es mayor que B (el nmero que escribi en el segundo cuadro de texto); de lo contrario, mostrar False. El segundo cuadro de mensaje mostrar True si A es menor que B, y el tercer cuadro de mensaje mostrar True si ambos nmeros son iguales. Pruebe a escribir diferentes nmeros en los cuadros de texto para ver cmo cambian los resultados.
Qu es un procedimiento?
Un procedimiento es un bloque de cdigo independiente que se puede ejecutar desde otros bloques de cdigo. En general, cada procedimiento contiene el cdigo necesario para realizar una tarea. Por ejemplo, puede tener un procedimiento llamado PlaySound que contiene el cdigo necesario para reproducir un archivo de onda. Aunque puede escribir cdigo que reproduzca un sonido cada vez que el programa deba realizar un ruido, tiene ms sentido crear un procedimiento nico al que se pueda llamar en cualquier parte del programa. Un procedimiento se ejecuta llamndolo en el cdigo. Por ejemplo, para ejecutar el procedimiento PlaySound, simplemente se agrega una lnea de cdigo al programa con el nombre del procedimiento, como se muestra a continuacin. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 39
PlaySound
Es todo lo que tiene que hacer. Cuando el programa llegue a esa lnea, ir al procedimiento PlaySound y ejecutar el cdigo contenido all. A continuacin, el programa regresa a la siguiente lnea que viene despus de la llamada a PlaySound. Puede llamar a tantos procedimientos como desee. Los procedimientos se ejecutan en el orden de llamada. Por ejemplo, podra tener tambin un procedimiento llamado DisplayResults; para ejecutarlo despus de ejecutar el procedimiento PlaySounds, llame a los procedimientos como se muestra a continuacin.
DisplayResults
Las funciones son diferentes, porque las funciones no slo ejecutan cdigos, tambin devuelven un valor. Por ejemplo, imagine una funcin llamada GetDayOfWeek que devuelve un Integer que indica el da de la semana. Se llama a esta funcin primero mediante la declaracin de una variable para almacenar el valor devuelto y luego se asigna el valor devuelto a la variable para un uso posterior, tal como se muestra a continuacin.
Escribir procedimientos
Los procedimientos se escriben colocando primero una declaracin de procedimiento. Una declaracin de procedimiento realiza varias acciones: indica si el procedimiento es una funcin o una subrutina, denomina el procedimiento y detalla todos los parmetros que puede tener (los parmetros se analizarn en detalle ms adelante en esta leccin). A continuacin, se ofrece un ejemplo de una declaracin de procedimiento sencilla. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 40
Copiar cdigo
La palabra clave Sub indica al programa que este procedimiento es una subrutina y no devolver un valor. El nombre de la subrutina (MyFirstSub) viene a continuacin y el parntesis vaco indica que no hay parmetros para este procedimiento. Finalmente, la palabra clave End Sub indica el fin de la subrutina. Todos los cdigos que tiene que ejecutar esta subrutina van entre estas dos lneas. Declarar funciones es similar, pero, adems, se debe especificar el tipo de valor devuelto (como por ejemplo,Integer, String, etc.). Por ejemplo, una funcin que devolvi un valor Integer puede ser similar a la siguiente.
Visual Basic Express Function MyFirstFunction() As Integer End Function Copiar cdigo
Las palabras clave As Integer indican que la funcin devolver un valor Integer . Para devolver un valor desde una funcin, utilice la palabra clave Return, como se muestra en el ejemplo siguiente.
Visual Basic Express Function GetTheNumberOne() As Integer Return 1 End Function Copiar cdigo
Intntelo
Para crear procedimientos En el men Archivo, elija Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba MyFirstProcedure y, a continuacin, haga clic en Aceptar. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 41
Se abre un nuevo proyecto de formularios Windows Forms. Haga doble clic en el formulario para abrir el Editor de cdigo. En el Editor de cdigo, busque la lnea que contiene End Class. ste es el fin de la seccin de cdigo que compone el formulario. Inmediatamente antes de esta lnea, agregue el siguiente procedimiento:
Visual Basic Express Function GetTime() As String Return CStr(Now) End Function Copiar cdigo
Esta funcin utiliza el procedimiento Now integrado para obtener la hora actual, luego utiliza la funcin CStr para convertir el valor devuelto por Now en una String legible. Finalmente, ese valor String se devuelve como el resultado de la funcin. Sobre la funcin que agreg en el paso anterior, agregue el siguiente Sub.
Visual Basic Express Sub DisplayTime() MsgBox(GetTime) End Sub Copiar cdigo
Esta subrutina llama a la funcin GetTime y muestra el resultado que devolvi en un cuadro de mensaje. Finalmente, agregue una lnea al controlador de eventos Form1_Load que llama a la subrutina DisplayTime, como se muestra en el ejemplo.
Visual Basic Express DisplayTime() Copiar cdigo
Presione F5 para ejecutar el programa. Cuando el programa se inicia, se ejecuta el procedimiento de evento Form1_Load . Este procedimiento llama a la subrutina DisplayTime, de manera que la ejecucin del programa va al procedimiento de subrutina DisplayTime. Esa subrutina a su vez llama a la funcin GetTime, por lo que la ejecucin del programa va a la funcin GetTime. Esta funcin devuelve una Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 42
String que representa el tiempo para el procedimiento de subrutina DisplayTime, el que muestra esa cadena en un cuadro de mensaje. Despus de que la subrutina termina de ejecutarse, el programa contina normalmente y muestra el formulario.
Sub PlaySound(ByVal SoundFile As String, ByVal Volume As Integer) My.Computer.Audio.Play(SoundFile, Volume) End Sub
Se llamar a la subrutina con los valores para los parmetros como se muestra a continuacin.
Visual Basic Express PlaySound("Startup.wav", 1) Copiar cdigo
Tambin se pueden declarar los parmetros para las funciones exactamente de la misma forma que lo hara con las subrutinas.
Intntelo
Para crear una funcin con parmetros En el men Archivo, elija Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba parameters y haga clic en Aceptar. Se abre un nuevo proyecto de formularios Windows Forms. En el Cuadro de herramientas, arrastre dos controles Textbox al formulario. En el Cuadro de herramientas, arrastre un control Button al formulario. Haga doble clic en Button para abrir el Editor de cdigo. Inmediatamente despus de la lnea End Sub del controlador de eventos Button1_Click, agregue el siguiente procedimiento:
Visual Basic Express Copiar cdigo
Este cdigo declara dos enteros y convierte el texto de los dos cuadros de texto en valores enteros. Luego pasa dichos valores a la funcin AddTwoNumbers y muestra el valor devuelto en un cuadro de mensaje. Presione F5 para ejecutar el programa. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 44
Escriba un valor numrico en cada cuadro de texto y haga clic en el botn. Se sumarn los dos nmeros y el resultado se mostrar en un cuadro de mensaje.
El bucle For...Next comienza con una variable de contador, i. sta es una variable que utiliza el bucle para contar la cantidad de veces que se ha ejecutado. La siguiente lnea (For i = 1 to 10) le dice al programa cuntas veces se debe repetir el bucle y los valores i que va a tener. Cuando el cdigo entra en el bucle For...Next, se inicia con i que contiene el primer valor, en este caso 1. El programa ejecuta las lneas de cdigo entre la lnea For y la lnea Next, en este caso llamando al mtodo DisplayNumber con un parmetro de i (en este caso tambin 1). Cuando se alcanza la lnea Next, se agrega 1 a i y la ejecucin de programa regresa nuevamente a la lnea For. Esto se repite hasta que el valor de i es mayor que el segundo nmero en la lnea For, en este caso 10. Cuando esto sucede, el programa contina con cualquier cdigo despus de la lnea Next.
Intntelo
Para utilizar la instruccin For...Next Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 45
En el men Archivo, elija Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba ForNext y haga clic en Aceptar. Se abre un nuevo proyecto de formularios Windows Forms. En el Cuadro de herramientas, arrastre un control TextBox y un control Button al formulario. Haga doble clic en Button para abrir el Editor de cdigo. En el controlador de eventos Button1_Click, escriba el siguiente cdigo:
Visual Basic Express Dim i As Integer = 0 Dim NumberOfRepetitions As Integer = CInt(Textbox1.Text) For i = 1 To NumberOfRepetitions MsgBox("This line has been repeated " & i & " times") Next Copiar cdigo
Presione F5 para ejecutar el programa. En el cuadro de texto, escriba un nmero y haga clic en el botn. Aparece un Cuadro de mensaje las veces indicadas en el cuadro de texto.
Informacin detallada: utilizar Do...While y Do...Until para repetir hasta obtener una condicin
En esta leccin, aprender a utilizar las instrucciones Do...While y Do...Until para repetir el cdigo basndose en algunas condiciones. En la leccin anterior, aprendi a utilizar la instruccin For...Next para recorrer un bloque de cdigo un nmero especfico de veces, pero qu ocurre si el nmero de veces que el cdigo se debe repetir es diferente para algunas condiciones? Las instrucciones Do...While y Do...Until permiten repetir un bloque de cdigo mientras cierta condicin sea True o hasta que cierta condicin sea True. Por ejemplo, si se dispona de un programa para agregar una serie de nmeros, pero nunca dese que la suma de los nmeros fuera mayor que 100. Se podra Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 46
En el cdigo anterior, la lnea Do While evala la variable sum para ver si es menor que 100; si lo es, se ejecuta la siguiente lnea de cdigo; si no lo es, se desplaza a la lnea siguiente del cdigo a continuacin de Loop. La palabra clave Loop le dice al cdigo que regrese a la lnea DoWhile y evale el nuevo valor de sum.
Intntelo
Para utilizar una instruccin Do...While En el men Archivo, elija Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba DoWhile y haga clic en Aceptar. Se abre un nuevo proyecto de formularios Windows Forms. En el Cuadro de herramientas, arrastre un control TextBox y un control Button al formulario. Haga doble clic en Button para abrir el Editor de cdigo. En el controlador de eventos Button1_Click, escriba el siguiente cdigo:
Visual Basic Express Dim sum As Integer = 0 Dim counter As Integer = 0 Do While sum < 100 sum = sum + CInt(Textbox1.Text) counter = counter + 1 Loop Copiar cdigo
MsgBox("The loop has run " & CStr(counter) & " times!")
Presione F5 para ejecutar el programa. En el cuadro de texto, escriba un nmero y haga clic en el botn. Aparece un cuadro de mensaje que muestra el nmero de veces que se agreg a s mismo el nmero antes de llegar a 100. En el men Depurar, elija Detener depuracin para finalizar el programa. Mantenga abierto este proyecto. Ms adelante se agregarn elementos.
Instruccin Do...Until
La instruccin Do...While repite un bucle mientras una condicin permanece True, pero a veces es posible que desee que el cdigo se repita a s mismo hasta que una condicin se convierta True. Puede utilizar la instruccin Do...Until del siguiente modo.
Visual Basic Express Dim sum As Integer = 0 Do Until sum >= 100 sum = sum + 10 Loop Copiar cdigo
Este cdigo es similar al cdigo para la instruccin Do...While, slo que esta vez, el cdigo evala la variable sum para ver si es igual a o mayor que 100.
Intntelo
Para utilizar una instruccin Do...Until Agregue el siguiente cdigo debajo de la lnea MsgBox.
Visual Basic Express Dim sum2 As Integer = 0 Copiar cdigo
Dim counter2 As Integer = 0 Do Until sum2 >= 100 sum2 = sum2 + CInt(Textbox1.Text) counter2 = counter2 + 1 Loop MsgBox("The loop has run " & CStr(counter2) & " times!")
Presione F5 para ejecutar el programa. En el cuadro de texto, escriba un nmero y haga clic en el botn. Aparece un segundo cuadro de mensaje que muestra el nmero de veces que se agreg el nmero a s mismo antes de igualar 100 o ms.
Cuando se ejecuta este cdigo, se evala la condicin (la parte entre If y Then). Si la condicin es true, se ejecuta la siguiente lnea de cdigo y se muestra un cuadro de mensaje; si es false, el cdigo pasa a la lnea End If. En otras palabras, el cdigo estipula "Si hoy es lunes, muestre el mensaje".
Intntelo
Para utilizar la instruccin If...Then Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 49
En el men Archivo, elija Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba IfThen y haga clic en Aceptar. Se abre un nuevo proyecto de formularios Windows Forms. Haga doble clic en el formulario para abrir el Editor de cdigo. En el controlador de eventos Form1_Load, escriba el siguiente cdigo.
Visual Basic Express Copiar cdigo
Presione F5 para ejecutar el programa. Si hoy es sbado o domingo, aparecer un cuadro de mensaje indicndole Happy Weekend!. De lo contrario, no aparecer ningn cuadro de mensaje. En el men Depurar, seleccione Detener depuracin para finalizar el programa. Mantenga abierto este proyecto. Se utilizar en el siguiente procedimiento, "Para utilizar la clusula Else". Es posible que haya observado en el ejemplo anterior que la instruccin If...Then utiliz el operador Or para evaluar varias condiciones ("Si es sbado Or si es domingo"). Puede utilizar los operadores Or y And para evaluar tantas condiciones como desee en una instruccin If...Then nica.
La clusula Else
Ha visto cmo utilizar la instruccin If...Then para ejecutar el cdigo si una condicin es true, pero qu pasa si desea ejecutar un cdigo si una condicin es true, pero otro si es false? En este caso, puede utilizar la clusula Else. La clusula Else le permite especificar un bloque de cdigos que se ejecutar si la condicin es false. El siguiente ejemplo muestra cmo funciona la clusula Else.
Visual Basic Express Copiar cdigo
If My.Computer.Clock.LocalTime.DayOfWeek = DayOfWeek.Friday Then MsgBox("Today is Friday!") Else MsgBox("It isn't Friday yet!") End If
En este ejemplo, se evala la expresin; si es true, se ejecuta la siguiente lnea de cdigo y se muestra el primer cuadro de mensaje. Si es false, el cdigo se desplaza a la clusula Else y se ejecuta la lnea Else siguiente, que muestra el segundo cuadro de mensaje.
Intntelo
Para utilizar la clusula Else Cambie el cdigo en la instruccin If...Then de la siguiente forma.
Visual Basic Express Copiar cdigo
If My.Computer.Clock.LocalTime.DayOfWeek = DayOfWeek.Saturday Or _ My.Computer.Clock.LocalTime.DayOfWeek = DayOfWeek.Sunday Then MsgBox("Happy Weekend!") Else MsgBox("Happy Weekday! Don't work too hard!") End If
Presione F5 para ejecutar el programa. El programa mostrar ahora un cuadro de mensaje que indica si es un fin de semana o un da de la semana, con contenido adecuado.
Nota Para cambiar el da de la semana haga doble clic en la hora en la barra de tareas de Windows, si desea probar la ejecucin de los dos bloques de cdigo. (La barra de tareas es la que contiene el botn Inicio de Windows; de manera predeterminada, se encuentra en la parte inferior del escritorio y la hora se muestra en la esquina derecha).
Informacin detallada: utilizar Select Case para decidir entre varias opciones
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 51
En esta leccin, aprender a utilizar la instruccin Select Case para ejecutar cdigo basado en mltiples condiciones. En la leccin anterior, aprendi a utilizar las instrucciones If...Then para ejecutar diferentes bloques de cdigo segn las condiciones. Aunque es posible evaluar ms de dos condiciones en una instruccin If...Then mediante la palabra clave ElseIf, la instruccin Select Case proporciona una manera mucho mejor de evaluar varias condiciones. La instruccin Select Case permite utilizar tantas condiciones (o casos) como sea necesario, y conviene escribir el cdigo para situaciones en las que hay muchas opciones. Por ejemplo, suponga que el programa utiliz una variable String para almacenar una opcin de color y se necesitaba obtener el valor de color. El cdigo para la instruccin Select Case podra ser similar al siguiente:
Visual Basic Express Select Case Color Case "red" MsgBox("You selected red") Case "blue" MsgBox("You selected blue") Case "green" MsgBox("You selected green") End Select Copiar cdigo
Cuando se ejecuta este cdigo, la lnea Select Case determina el valor (Color) de la expresin. Suponga que Color es una variable String y que esta variable es un parmetro para un mtodo que contiene la instruccin Select Case. El valor de Color se compara con el valor para la primera instruccin Case. Si el valor coincide, se ejecuta la siguiente lnea de cdigo y el cdigo pasa a la lnea End Select; si el valor no coincide, se evala la siguiente lnea Case. La instruccin Case adopta muchas formas distintas; en el ejemplo anterior es String. Pero puede ser cualquier tipo de datos o expresin. Puede evaluar un intervalo de nmeros utilizando la palabra clave To, como sigue:
Visual Basic Express Case 1 To 10 Copiar cdigo
En este ejemplo, cualquier nmero entre 1 y 10 ser una coincidencia. Tambin puede evaluar varios valores en una sola instruccin Case separndolos con comas de la siguiente forma:
Visual Basic Express Case "red", "white", "blue" Copiar cdigo
En este ejemplo, cualquiera de los tres valores producir una coincidencia. Tambin puede utilizar operadores de comparacin y la palabra clave Is para evaluar los valores de la siguiente manera.
Visual Basic Express Case Is > 9 Copiar cdigo
Case Else
El ejemplo anterior funciona cuando conoce todas las condiciones posibles, pero qu sucede si hay una condicin con la que no contaba? Por ejemplo, si el valor de Color es yellow, el cdigo simplemente evaluar los tres casos sin encontrar una coincidencia y no se mostrar ningn cuadro de mensaje. La instruccin Case Else se puede utilizar para ejecutar el cdigo cuando no se encuentra ninguna coincidencia, como en el siguiente ejemplo.
Visual Basic Express Select Case Color Case "red" MsgBox("You selected red") Case "blue" MsgBox("You selected blue") Case "green" MsgBox("You selected green") Case Else MsgBox("Please choose red, blue, or green") End Select Copiar cdigo
En el cdigo anterior, si el valor de Color es yellow el cdigo lo comparar con las primeras tres lneas Case sin encontrar una coincidencia. Cuando se llega a la lnea Case Else, se ejecuta la siguiente lnea de cdigo antes de pasar a End Select.
Presione F5 para ejecutar el programa. En el cuadro de texto, escriba un nmero y haga clic en el botn. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 54
Aparecer un cuadro de mensaje que muestra el mensaje de la instruccin Case que coincide con el nmero que ha especificado
El bloque Try...Catch...Finally.
Se puede utilizar el bloque Try...Catch...Finally para controlar errores en tiempo de ejecucin en el cdigo. Puede utilizar Try para un segmento de cdigo; si ese cdigo produce una excepcin, salta al bloque Catch y se ejecuta el cdigo del bloque Catch. Despus de que ese cdigo ha finalizado, se ejecuta cualquier cdigo en el bloque Finally. La instruccin End Try cierra el bloque Try...Catch...Finally completo. En el ejemplo siguiente se ilustra cmo se utiliza cada bloque.
Visual Basic Express Try ' Code here attempts to do something. Copiar cdigo
Catch ' If an error occurs, code here will be run. Finally ' Code in this block will always be run. End Try
Primero, se ejecuta el cdigo del bloque Try. Si se ejecuta sin error, el programa omite el bloque Catch y ejecuta el cdigo del bloque Finally. Si se produce un error en el bloque Try, la ejecucin salta inmediatamente al bloque Catch y se ejecuta el cdigo que se encuentra all; luego se ejecuta el cdigo del bloque Finally.
Intntelo
Para utilizar el bloque Try...Catch En el men Archivo, elija Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba TryCatch y haga clic en Aceptar. Se abre un nuevo proyecto de formularios Windows Forms. En el Cuadro de herramientas, arrastre un control TextBox y un control Button al formulario. Haga doble clic en Button para abrir el Editor de cdigo. En el controlador de eventos Button1_Click, escriba el siguiente cdigo:
Visual Basic Express Try Dim aNumber As Double = CDbl(Textbox1.Text) MsgBox("You entered the number " & aNumber) Catch MsgBox("Please enter a number.") Finally MsgBox("Why not try it again?") End Try Copiar cdigo
Presione F5 para ejecutar el programa. En el cuadro de texto, escriba un valor numrico y haga clic en el botn. Aparece un cuadro de mensaje que muestra el nmero que ha escrito, seguido por una invitacin para volver a intentarlo. A continuacin, escriba un valor no numrico en el cuadro de texto, como una palabra y haga clic en el botn. Esta vez, cuando el programa intente convertir el texto del cuadro de texto en un nmero, no podr hacerlo y se producir un error. En lugar de finalizar el cdigo en el bloque Try, se ejecuta el bloque Catch y aparece un cuadro de mensaje solicitando que se escriba un nmero. Se ejecuta el bloque Finally y se le invita a intentarlo de nuevo.
Utilizar formularios
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 57
Los formularios son las unidades de creacin bsicas para la interfaz de usuario. Cada formulario del programa representa una ventana que se aparece a los usuarios. Al trabajar en el IDE (entorno de desarrollo integrado) de Visual Basic, un formulario es el diseador que se utiliza para disear la interfaz de usuario, lo que sera similar a utilizar Windows Paint para dibujar una imagen. Los controles se utilizan en el diseador para crear la apariencia de la interfaz de usuario. Un control es un objeto que tiene un aspecto y comportamiento predefinidos. Por ejemplo, un control Button tiene el aspecto y el comportamiento de un botn de comando: cuando un usuario hace clic en l, cambia para mostrarlo. Cada control de Visual Basic Expresstiene una finalidad. Por ejemplo, los controles TextBox se utilizan para introducir texto, mientras que los controles PictureBox se utilizan para mostrar imgenes. Hay ms de cincuenta controles diferentes incluidos en Visual Basic; tambin se pueden crear controles propios conocidos como controles de usuario. Obtendr ms informacin sobre cada tipo de control en lecciones posteriores. Al disear la interfaz de usuario, se arrastran los controles desde el Cuadro de herramientas, se colocan en un formulario, luego se ubican y se cambian de tamao para crear el aspecto deseado. Puede cambiar el aspecto an ms estableciendo propiedades de formularios y controles en la ventana Propiedades. Por ejemplo, los formularios y la mayora de los controles tienen una propiedad BackColor que se utiliza para establecer su color de fondo. Las propiedades tambin se utilizan para definir el comportamiento de un formulario o control. Por ejemplo, la propiedad ShowInTaskbar de un formulario determina si el formulario aparecer en la barra de tareas de Windows cuando se est ejecutando el programa. Mediante el uso de propiedades, puede personalizar la apariencia y el comportamiento de la interfaz de usuario.
Intntelo
Para cambiar las propiedades de un formulario En el men Archivo, seleccione Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba FirstForm y haga clic en Aceptar. Se crea un nuevo proyecto de formularios Windows Forms. Aparece un nuevo formulario en la ventana principal y sus propiedades son visibles en la ventana Propiedades, en la esquina inferior derecha del IDE de Visual Basic. Haga clic en el formulario una vez para seleccionarlo. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 58
En la ventana Propiedades, cambie la propiedad Text para que se lea "Mi primer formulario" y presione ENTRAR. El texto en la parte superior del formulario cambia despus de especificar el nuevo valor. En la ventana Propiedades, cambie la propiedad BackColor a un color diferente seleccionando un color desde la lista desplegable. Observe que la propiedad BackColor se cambia a travs de una interfaz especial. Esta interfaz le permite ver el color antes de seleccionarlo y le permite elegir entre los colores utilizados actualmente por el sistema, colores estndar Web o una seleccin de colores ms personalizada. Tambin puede escribir slo el nombre del color (por ejemplo, Red) en el cuadro en la ventana Propiedades. Experimente cambiando otras propiedades del formulario. Cuando est listo, contine con el siguiente procedimiento.
Presione F5 para ejecutar el programa. Aparecer una ventana con los controles que acaba de agregar. Observe que puede hacer clic en el botn, activar y desactivar la casilla de verificacin y escribir en el cuadro de texto
Intntelo!
Para utilizar los botones En el men Archivo, seleccione Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 60
En el cuadro Nombre, escriba ButtonExample y haga clic en Aceptar. Se abrir un nuevo proyecto de formularios Windows Forms. En el Cuadro de herramientas, arrastre un control Button hasta el formulario. En la ventana Propiedades, cambie la propiedad Text para que se lea: What time is it? y, a continuacin, presione ENTRAR. Observe que el texto no se ajusta en el botn. En la ventana Propiedades, seleccione la propiedad AutoSize y establezca su valor en True. El botn cambia de tamao para ajustar el texto. En el formulario, haga doble clic en el botn para abrir el Editor de cdigo. Se abre el Editor de cdigo en medio de un mtodo denominado Button1_Click. ste es el controlador de eventos Button1.Click. El cdigo que escribe aqu se ejecutar cuando se haga clic en el botn. En el controlador del evento Button1_Click, escriba la siguiente lnea de cdigo.
Visual Basic Express Copiar cdigo
Presione F5 para ejecutar el programa. El programa comienza y aparece el formulario. Cuando hace clic en Button, aparece un cuadro de mensaje que muestra la hora actual
El control Label es el control primario para mostrar texto. ste aparece en el formulario como texto delimitado por un rea de forma rectangular. Generalmente, el color de esta rea es igual que el color del formulario, por lo que aparece como si fuera texto del formulario. Dado que el control Label tiene como objetivo principal mostrar texto, las propiedades ms importantes para un control Label son las propiedades que controlan su aspecto. La propiedad Text contiene el texto que se muestra en el control Label. La propiedad Font determina la fuente con la que se mostrar el texto en la propiedad Text. La propiedad ForeColor determina el color del texto en s y la propiedad BackColor determina el color del rea que rodea el texto.
Intntelo
Para crear una interfaz de usuario con los controles Label y Textbox En el men Archivo, seleccione Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba TextBoxExample y, a continuacin, haga clic en Aceptar. Se abrir un nuevo proyecto de formularios Windows Forms. En el Cuadro de herramientas, arrastre un control TextBox, Label y Button hasta el formulario. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 62
Seleccione el control Label y arrstrelo sobre el control TextBox. En la ventana Propiedades, cambie la propiedad Text del control Label al siguiente cdigo.
Presione F5 para ejecutar el programa. Cuando aparezca el formulario, escriba su nombre en el control TextBox y haga clic en el botn. Aparece un cuadro de mensaje que muestra el texto del control TextBox. Cambie el texto y haga clic en el botn nuevamente. Cada vez que haga clic en el botn, se mostrar el texto actualizado.
Puede crear controladores de eventos para una variedad de eventos de control. En esta leccin, crear controladores de eventos para controlar los eventos MouseEnter y MouseLeave de un botn: los eventos que se provocan cuando se mueve un mouse sobre un control.
Intntelo!
Para controlar el evento MouseEnter En el men Archivo, seleccione Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba EventHandler y, a continuacin, haga clic en Aceptar. Se abre un nuevo proyecto de formularios Windows Forms. En el Cuadro de herramientas, arrastre un control Button hasta el formulario. En las ventanas Propiedades, establezca la propiedad AutoSize en True. En el men Ver, elija Cdigo para abrir el Editor de cdigo. Justo sobre el Editor de cdigo, observe los dos cuadros desplegables. El cuadro de la izquierda contiene una lista de todos los controles que aparecen en el formulario, al igual que Form1, (General) y (Eventos de Form1). El cuadro de la derecha muestra cada uno de los eventos disponibles para el elemento que se muestra en el cuadro de la izquierda. En el cuadro de la izquierda, elija Button1. En el cuadro de la derecha, elija MouseEnter. Aparece un nuevo controlador de eventos denominado Button1_MouseEnter en el Editor de cdigo. En el controlador de eventos Button1_MouseEnter, escriba el siguiente cdigo.
Visual Basic Express Button1.Text = "The Mouse has entered" Copiar cdigo
Presione F5 para ejecutar la aplicacin. Pase el puntero del mouse sobre el botn. Observe que cuando el puntero del mouse pasa sobre Button1, el texto del botn cambia.
Quiz haya notado en el ejemplo anterior que aunque el texto de Button1 cambia cuando el puntero del mouse pasa sobre l, cuando ste se quita, el texto no vuelve a cambiar. Si desea que el texto cambie cuando el mouse ya no est sobre el botn, debe controlar el evento MouseLeave adems del evento MouseEnter. Para controlar el evento MouseLeave En el Editor de cdigo, asegrese de que est seleccionado Button1 en la lista desplegable de la izquierda y seleccione MouseLeave del cuadro desplegable de la derecha. Aparece un nuevo controlador de eventos denominado Button1_MouseLeave en el Editor de cdigo. En el controlador de eventos Button1_MouseLeave , escriba el siguiente cdigo.
Visual Basic Express Button1.Text = "The mouse has left" Copiar cdigo
Presione F5 para ejecutar la aplicacin. Ahora cuando el puntero del mouse pasa sobre el botn, el texto cambia a The mouse has entered, pero cuando el mouse ya no est sobre el botn, el texto cambia a The mouse has left.
Button1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.MouseEnter) contiene una clusula Handles (Handles Button1.MouseEnter). Como es lgico, la
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 65
palabra clave Handles le dice al controlador de eventos cules eventos debe controlar. Para compartir un controlador de eventos entre varios controles, simplemente debe agregar los nombres de los controles adicionales y el nombre del evento que desea controlar. Luego, el controlador de eventos recibe una notificacin cuando se produce el evento para cualquiera de dichos controles. Por ejemplo, si tiene dos controles Button y desea utilizar el mismo controlador de eventos para ambos, la clusula Handles puede tener el siguiente aspecto.
Intntelo
Para compartir un controlador de eventos Abra el proyecto EventHandler que cre en la leccin anterior. Si no lo guard, primero deber regresar a la leccin anterior, Hacer que el programa reaccione ante el usuario: crear un controlador de eventos y finalizar los procedimientos de dicha leccin. En el Explorador de soluciones, seleccione Form1.vb y, a continuacin, en el men Ver elija Diseador. En el Cuadro de herramientas, arrastre otro control Button hasta el formulario. En la ventana Propiedades, establezca la propiedad AutoSize en True. En el men Ver, elija Cdigo para abrir el Editor de cdigo. En la declaracin de mtodo Button1_MouseEnter (Private Sub
Button1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.MouseEnter), cambie la clusula Handles para que se lea Handles Button1.MouseEnter, Button2.MouseEnter.
En el cuerpo de la declaracin de evento, reemplace el cdigo con lo siguiente.
Visual Basic Express If sender.Equals(Button1) Then Copiar cdigo
Button1.Text = "The mouse has entered Button1" Else Button2.Text = "The mouse has entered Button2" End If
Este cdigo comprueba si el remitente era Button1 , si es as, se actualiza la propiedad Text de Button1, si no lo es, se actualiza la propiedad Text de Button2. En la declaracin de mtodo Button1_MouseLeave, cambie la clusula Handles para que se lea de la siguiente manera.
En este caso, el cdigo establece la propiedad Text del remitente (Button1 o Button2) en la misma cadena. Presione F5 para ejecutar la aplicacin. Ahora, cuando el puntero del mouse (ratn) pasa sobre el botn, el texto cambia a The mouse has entered junto con el nombre del botn, y cuando el mouse ya no est sobre el botn, el texto vuelve a ser The mouse has left. Intente agregar ms controles al formulario y modificar las clusulas Handles para incluirlos, ni siquiera deben ser del mismo tipo.
Obtener opciones seleccionadas por el usuario: utilizar casillas de verificacin y botones de opcin
En esta leccin, aprender a utilizar casillas de verificacin y botones de opcin para presentar y recuperar las elecciones del usuario. Cuando se crea la interfaz de usuario para el programa, a menudo se necesita un modo de presentar las elecciones. Por ejemplo, suponga que escribi una aplicacin para tomar las rdenes para una pizzera; desear que los usuarios puedan seleccionar cualquiera o todas las variedades de ingredientes para Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 67
cubrir la pizza. El control CheckBox proporciona una representacin visual que hace que esta opcin sea fcil de crear. El control CheckBox se compone de una etiqueta de texto y un cuadro que el usuario puede seleccionar. Cuando el usuario hace clic en el cuadro, aparece una marca de verificacin en l. Si se vuelve a hacer clic en el cuadro, la marca de verificacin desaparece. El estado de la casilla de verificacin se puede recuperar utilizando la propiedad CheckBox.Checked. Si el cuadro muestra una marca de verificacin, la propiedad devuelve True. Si no se muestra ninguna comprobacin, la propiedad devuelve False.
Intntelo
Para utilizar casillas de verificacin En el men Archivo, elija Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba UserChoices y, a continuacin, haga clic en Aceptar. Se abre un nuevo proyecto de formularios Windows Forms. En el Cuadro de herramientas, arrastre un control Button y tres controles CheckBox hasta el formulario. En la ventana Propiedades, cambie la propiedad Text de CheckBox1, CheckBox2 y CheckBox3 para que diga Pepperoni, Sausage y Mushrooms respectivamente. En la ventana Propiedades, cambie la propiedad Text de Button1 para que diga Order Pizza. En el formulario, haga doble clic en el botn; se abrir el controlador de eventos Button1_Click en el Editor de cdigo. Agregue el cdigo siguiente al controlador de eventos Button1_Click:
Visual Basic Express Dim toppings As String = "" If CheckBox1.Checked = True Then toppings &= "Pepperoni " End If Copiar cdigo
If CheckBox2.Checked = True Then toppings &= "Sausage " End If If CheckBox3.Checked = True Then toppings &= "Mushrooms" End If If toppings <> "" Then MsgBox("Your pizza has the following toppings: " & toppings) End If
Presione F5 para ejecutar el programa. Cuando aparezca el formulario, seleccione algunos ingredientes y haga clic en el botn. Se muestra un cuadro de mensaje que indica su eleccin de ingredientes para la pizza.
Al definir un grupo de elecciones, siempre debe establecer una eleccin para que sea el valor predeterminado.
En la ventana Propiedades, establezca la propiedad Text para RadioButton2 en Spicy Sauce. En el formulario, haga doble clic en el botn para abrir el controlador de eventos Button1_Click en el Editor de cdigo. En el controlador de eventos Button1_Click, agregue el siguiente cdigo:
Visual Basic Express If RadioButton1.Checked = True Then MsgBox("You chose regular sauce") Else MsgBox("You chose spicy sauce") End If Copiar cdigo
Presione F5 para ejecutar el programa. Elija uno de los botones de opcin y, a continuacin, haga clic en el botn Order Pizza. Se mostrar un cuadro de mensaje que tiene en cuenta su eleccin. Intente seleccionar ambos botones de opcin al mismo tiempo. Observe que los botones de opcin son excluyentes. Despus de hacer clic en uno, el otro se borra automticamente.
Los controles contenedores ms comunes son el control GroupBox y el control Panel. La diferencia principal entre ambos es que el control GroupBox tiene un borde visible a su alrededor y el control Panel no lo tiene. Cuando se utiliza un control contenedor para agrupar botones de opcin, el control GroupBox es la mejor eleccin porque el borde proporciona una indicacin visual de que las opciones del grupo estn relacionadas.
Intntelo!
Para utilizar un control GroupBox como un contenedor Abra el proyecto UserChoices que cre en la leccin anterior. Si no lo guard, necesitar regresar primero a la leccin anterior, Obtener opciones seleccionadas por el usuario: utilizar casillas de verificacin y botones de opcin, y finalizar los procedimientos. En el Explorador de soluciones, seleccione Form1.vb y, a continuacin, en el men Ver elija Diseador. En el Cuadro de herramientas, arrastre un control GroupBox hasta el formulario. En la ventana Propiedades, cambie la propiedad Text del control GroupBox para que se lea Select a crust. Con el control GroupBox seleccionado, arrastre dos controles RadioButton del Cuadro de herramientas y colquelos sobre el control GroupBox. En la ventana Propiedades, cambie las propiedades Text de RadioButton3 y RadioButton4 a Thin crust y Thick crust, respectivamente. En el formulario, haga doble clic en el botn Pedir pizza para abrir el controlador del evento Button1_Click del Editor de cdigo. En el controlador del evento Button1_Click, agregue el siguiente cdigo:
Visual Basic Express If RadioButton3.Checked = True Then MsgBox("You chose a thin crust") Else MsgBox("You chose a thick crust") End If Copiar cdigo
Presione F5 para ejecutar el programa. Elija uno de los botones de opcin y, a continuacin, haga clic en el botn Pedir pizza. Se muestra un cuadro de Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 71
mensaje que tiene en cuenta su eleccin. Observe que se conserva su seleccin de salsa.
Intntelo
Para agregar una imagen como un recurso En el men Archivo, elija Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba Pictures y haga clic en Aceptar. Se abre un nuevo proyecto de formularios Windows Forms. En la ventana Explorador de soluciones, haga doble clic en el nodo My Project para abrir el Diseador de proyectos. En el Diseador de proyectos, haga clic en la ficha Recursos. Haga clic en Agregar recurso y, a continuacin, elija Agregar archivo existente de la lista desplegable. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 72
Se abrir el cuadro de dilogo Agregar archivo existente a los recursos. Si no ve ningn archivo de imagen, vaya a una carpeta que s contiene imgenes. Seleccione un archivo de imagen (con una extensin de archivo .bmp, .gif o .jpg) y haga clic en Abrir. Para este ejemplo, es mejor elegir una imagen pequea. La imagen se agregar al proyecto y aparecer en la ventana Administrador de recursos. Repita los dos pasos anteriores para agregar una segunda imagen al proyecto. En el men Archivo, elija Cerrar. Si se le solicita guardar los cambios, elija S. Para mostrar imgenes utilizando un control PictureBox En el Explorador de soluciones, seleccione Form1.vb y en el men Ver elija Diseador. En el Cuadro de herramientas, arrastre un control PictureBox hasta el formulario. En la ventana Propiedades, haga clic en el botn ... ubicado junto a la propiedad Image para abrir el cuadro de dilogo Seleccionar recurso. En la lista Entrada, elija una de las imgenes que agreg y haga clic en Aceptar. Seleccione la propiedad SizeMode y establzcala en AutoSize. Observe cmo el control PictureBox cambia automticamente de tamao para ajustar la imagen. En el formulario, haga doble clic en el control PictureBox para abrir el controlador de eventos PictureBox1_Click en el Editor de cdigo. Agregue el cdigo siguiente al controlador de eventos PictureBox1_Click.
Nota Deber reemplazar "MyPictureName2" con el nombre real de la segunda imagen que agreg anteriormente. Visual Basic Express PictureBox1.Image = My.Resources.MyPictureName2 Copiar cdigo
Presione F5 para ejecutar el programa. Cuando aparece el formulario, haga clic en la imagen para que aparezca la segunda imagen. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 73
Intntelo
Para mostrar una imagen de fondo en un formulario En el Explorador de soluciones, seleccione Form1.vb y en el men Ver elija Diseador. Seleccione el formulario haciendo clic en l fuera del control PictureBox. En la ventana Propiedades, haga clic en el botn ... ubicado junto a la propiedad BackgroundImage para abrir el cuadro de dilogo Seleccionar recurso. En la lista Entrada, elija una de las imgenes que agreg antes y haga clic en Aceptar. Observe que la imagen se muestra en el formulario detrs de PictureBox y se ordena en mosaico de manera predeterminada.
Nota Si la imagen en el control PictureBox es demasiado grande, es posible que no se pueda ver la imagen de fondo. En este caso, seleccione el control PictureBox y arrstrelo hacia la parte inferior del formulario.
Seleccione la propiedad BackgroundImageLayout y establzcala en Stretch. Observe cmo la imagen se expande para rellenar todo el formulario. Haga doble clic en el formulario para abrir el Editor de cdigo.
Asegrese de que Eventos de Form1 est seleccionado en el cuadro desplegable del lado izquierdo y elija Hacer clic desde el cuadro desplegable del lado derecho. Agregue el cdigo siguiente al controlador de eventos Form1_Click
Visual Basic Express Copiar cdigo
Presione F5 para ejecutar el programa. Cuando aparece el formulario, haga clic en l para cambiar el diseo.
Intntelo
Para agregar un men En el men Archivo, seleccione Nuevo proyecto. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 75
En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba Menus y haga clic en Aceptar. Se abre un nuevo proyecto de formularios Windows Forms. En el Cuadro de herramientas, arrastre un control MenuStrip hasta el formulario. Independientemente de dnde lo coloca, el control MenuStrip se asocia a la parte ms alta del formulario. Es posible que haya observado que hay un icono MenuStrip1 agregado en un rea gris debajo del formulario, esta rea se denomina bandeja de componentes. Si hace clic fuera del control MenuStrip, desaparecer, puede volverlo a ver haciendo clic en el icono MenuStrip1. En el formulario, haga clic en el control MenuStrip, escriba File y, a continuacin, presione Entrar. Aparecen nuevos cuadros para las entradas adicionales del men abajo y a la derecha del primer elemento de men. stos constituyen espacios para los elementos adicionales del men. Puede continuar agregando elementos de men en cualquier direccin hasta que se complete el men. En el cuadro situado debajo del primer cuadro, escriba Exit y, a continuacin, presione Entrar. Haga doble clic en el men Salir para abrir el Editor de cdigo. En el controlador de eventos ExitToolStripMenuItem_Click, escriba el siguiente cdigo.
Visual Basic Express Application.Exit() Copiar cdigo
Presione F5 para ejecutar el programa. Con el mouse (ratn), seleccione el men Archivo y, a continuacin, elija Salir. Se cierra la aplicacin. En esta leccin, aprendi a utilizar el control MenuStrip para disear los mens. Ahora, puede continuar con la siguiente leccin sobre los temporizadores o puede explorar maneras ms avanzadas de utilizar los mens en Informacin detallada: ms informacin acerca de los mens y luego seguir con la leccin de los temporizadores.
Intntelo!
Para deshabilitar o habilitar elementos de men En el men Archivo, seleccione Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba Menus2 y haga clic en Aceptar. Se abrir un nuevo proyecto de formularios Windows Forms. En el Cuadro de herramientas, arrastre un control MenuStrip y un control TextBox hasta el formulario. En el formulario, haga clic en el control MenuStrip y escriba Edit, a continuacin, presione ENTRAR. En el cuadro situado debajo del primer cuadro, escriba Copy,, a continuacin, presione ENTRAR. En la ventana Propiedades, establezca la propiedad Enabled de CopyToolStripMenuItem en False. Haga doble clic en el control TextBox para abrir el Editor de cdigo. En el controlador del evento TextBox1_TextChanged, escriba el siguiente cdigo.
Visual Basic Express Copiar cdigo
If Textbox1.Text <> "" Then CopyToolStripMenuItem.Enabled = True Else CopyToolStripMenuItem.Enabled = False End If
Presione F5 para ejecutar el programa. Haga clic en el men Edicin; el elemento de men Copiar estar deshabilitado. Escriba algn texto en el control TextBox y, a continuacin, vuelva a hacer clic en el men Edicin; el elemento de men Copiar estar ahora habilitado.
Intntelo
Para crear un men contextual En el men Archivo, seleccione Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba ContextMenus y haga clic en Aceptar. Se abrir un nuevo proyecto de formularios Windows Forms. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 78
En el Cuadro de herramientas, arrastre un control ContextMenuStrip hasta el formulario. En la ventana Propiedades, seleccione la propiedad ContextMenuStrip del formulario y elija ContextMenuStrip1 en la lista desplegable. En el formulario, haga clic en el control ContextMenuStrip y escriba Option1, a continuacin, presione ENTRAR. En el cuadro situado debajo del primer cuadro, escriba Option2,, a continuacin, presione ENTRAR. Haga doble clic en el elemento de men Option1 para abrir el Editor de cdigo. En el controlador del evento Option1ToolStripMenuItem_Click, escriba el siguiente cdigo.
Visual Basic Express MsgBox("You chose Option 1") Copiar cdigo
En el Editor de cdigo, seleccione Option2ToolStripMenuItem en el cuadro desplegable izquierdo y, a continuacin, elija Hacer clic en del cuadro desplegable derecho. Aparecer un nuevo controlador de eventos denominado Option2ToolStripMenuItem _Click en el editor de cdigo. En el controlador del evento Option2ToolStripMenuItem _Click, escriba el cdigo siguiente:
Visual Basic Express MsgBox("You chose Option 2") Copiar cdigo
Presione F5 para ejecutar el programa. Haga clic con el botn secundario del mouse en el formulario y despus en uno de los elementos del men contextual: aparecer un cuadro de mensaje que notifica la opcin elegida.
interfaz de usuario. El componente Timer permite realizar las acciones fijas regularmente sin ninguna entrada por parte del usuario. El componente Timer se diferencia de los controles que ha utilizado hasta ahora en que no tiene una representacin visual en tiempo de ejecucin. Los controles que no tienen ninguna representacin visual se conocen como componentes. Dado que el usuario no puede de ninguna manera interactuar directamente con el componente Timer, se ejecuta en segundo plano. El componente Timer tiene dos propiedades y un evento que son los ms utilizados. La propiedad Enabled determina si el componente Timer funciona. Si la propiedad Enabled se establece en True, el componente Timer est activo. Si la propiedad Enabled se establece en False, el componente Timer no est activo. La propiedad Interval determina el nmero de milisegundos entre los pasos del componente Timer. Por ejemplo, si la propiedad Interval se establece en 1000, el componente Timer provocar el evento Tick cada 1.000 milisegundos o cada segundo. El componente Timer provoca el evento Tick a intervalos regulares que dependen del valor de la propiedad Interval. Puede agregar cdigo a un controlador de eventos Timer.Tick y este cdigo se ejecutar cuando el evento Tick se active. Al establecer las propiedades Enabled y Interval y al agregar el cdigo al controlador de eventos Tick, puede crear cdigo que se ejecute a intervalos regulares sin necesidad de la accin del usuario.
Intntelo
Para utilizar un componente Timer En el men Archivo, seleccione Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba Timer y haga clic en Aceptar. Se abrir un nuevo proyecto de formularios Windows Forms. En el Cuadro de herramientas, arrastre un control Label y un control Timer hasta el formulario. El componente Timer no aparece en el propio formulario, sino en la bandeja de componentes bajo el formulario. Esto es porque el componente Timer no tiene una representacin visual. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 80
Seleccione el componente Timer y, a continuacin, en la ventana Propiedades, establezca la propiedad Enabled en True y la propiedad Interval en 1000. Haga doble clic en el componente Timer para abrir el Editor de cdigo. En el controlador del evento Timer1_Tick, escriba el siguiente cdigo.
Visual Basic Express Copiar cdigo
Label1.Text = My.Computer.Clock.LocalTime.ToLongTimeString
Presione F5 para ejecutar la aplicacin. El texto de la etiqueta se actualiza cada segundo con la hora correcta.
En la mayora de los casos, no necesita detener el programa para corregirlo. Puede corregir el cdigo donde apareci el error y seguir ejecutando el programa desde all; este proceso se llama Editar y continuar. La depuracin se realiza en el IDE (entorno de desarrollo integrado) de Visual Basic, que contiene varios comandos y ventanas especiales para ayudar a encontrar los errores. Obtendr ms informacin en las lecciones siguientes.
Intntelo!
Nota En este ejemplo hay una excepcin. Las excepciones son objetos que se crean (y producen) cuando el programa detecta un error. Se crean distintos tipos de excepciones, dependiendo del tipo de error generado. Con los valores predeterminados del usuario, si se produce una excepcin cuando se ejecuta el programa de Visual Basic, aparecer un cuadro de dilogo que describe el error y ayuda a corregirlo. Para utilizar el proceso de editar y continuar En el men Archivo, seleccione Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba Edit y haga clic en Aceptar. Se abrir un nuevo proyecto de formularios Windows Forms. Haga doble clic en el formulario para abrir el Editor de cdigo. En el controlador del evento Form_Load, agregue el siguiente cdigo:
Visual Basic Express Dim number As Integer = 1 Dim numbers As String = "" MsgBox(numbers + 1) Copiar cdigo
Presione F5 para ejecutar el programa. Se detendr el programa y se mostrar un cuadro de dilogo de excepciones con el mensaje "No se control InvalidCastException". La excepcin ha ocurrido porque hay un error tipogrfico en el cdigo. Se utiliz la variable equivocada: debera ser number, Integer, no numbers, que es una variable String. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 82
Observe que el programa todava est en ejecucin; est en el modo de interrupcin de depuracin. Con Editar y continuar, puede corregir el error sin tener que detener el programa (ni volver a ejecutarlo para comprobarlo). En el Editor de cdigo, cambie numbers + 1 por number + 1. Presione F5 para continuar. Debe aparecer un cuadro de mensaje con el nmero 2.
Errores de compilacin
Los errores de compilacin, tambin conocidos como errores del compilador, son errores que impiden que su programa se ejecute. Cuando se presiona F5 para ejecutar un programa, Visual Basic Expresscompila el cdigo en un lenguaje binario que entiende el equipo. Si el compilador de Visual Basic Expressse encuentra con cdigo que no entiende, emite un error de compilador. La mayora de los errores del compilador se deben a errores cometidos al escribir el cdigo. Por ejemplo, puede escribir mal una palabra clave, omitir alguna puntuacin necesaria o intentar utilizar una instruccin End If sin antes utilizar una instruccin If. Afortunadamente el Editor de cdigo de Visual Basic Expressfue diseado para identificar estos errores antes de que se intente ejecutar el programa. Aprender a encontrar y corregir los errores de compilacin en la leccin siguiente, Error ortogrfico: encontrar y eliminar errores del compilador.
Un ejemplo de esto es la divisin por cero. Suponga que tiene la instruccin siguiente:
Errores lgicos
Los errores lgicos son errores que impiden que su programa haga lo que estaba previsto. Su cdigo puede compilarse y ejecutarse sin errores, pero el resultado de una operacin puede generar un resultado no esperado. Por ejemplo, puede tener una variable llamada FirstName y establecida inicialmente en una cadena vaca. Despus en el programa, puede concatenar FirstName con otra variable denominada LastName para mostrar un nombre completo. Si olvida asignar un valor a FirstName, slo se mostrar el apellido, no el nombre completo como pretenda. Los errores lgicos son los ms difciles de detectar y corregir, pero Visual Basic Expresstambin dispone de herramientas de depuracin que facilitan el trabajo. Aprender a encontrar y corregir los errores lgicos en Qu? Esto no debiera haber ocurrido. Detectar errores lgicos.
del compilador, aparecer un cuadro de dilogo que indica "Errores al generar. Desea continuar?". Si selecciona S, se ejecutar la ltima versin sin errores del programa; si selecciona No, el programa se detendr y aparecer la ventana Lista de errores. La ventana Lista de errores muestra toda la informacin sobre el error, incluida su descripcin y ubicacin en el cdigo. Si hace doble clic en el error en la Lista de errores, se resaltar la lnea incorrecta del cdigo en el Editor de cdigo. Tambin puede presionar F1 para mostrar Ayuda y obtener ms informacin sobre el error y cmo corregirlo. El Editor de cdigo de Visual Basic Expresstambin puede ayudar a encontrar y corregir los errores del compilador antes incluso de que se intente ejecutar el programa. Mediante una caracterstica llamada IntelliSense, Visual Basic Expressobserva el cdigo a medida que se escribe y si encuentra cdigo que producir un error del compilador, lo subraya con una lnea ondulada de color azul. Si mantiene presionado el mouse sobre esa lnea, se muestra un mensaje que describe el error. Si la ventana Lista de errores est visible, tambin mostrar los mensajes de error.
Intntelo
Para encontrar y corregir errores del compilador En el men Archivo, seleccione Nuevo Proyecto. En el panel Plantillas, en el cuadro de dilogo Nuevo proyecto, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba CompilerErrors y haga clic en Aceptar. Se abre un nuevo proyecto de formularios Windows Forms. Haga doble clic en el formulario para abrir el Editor de cdigo. En el controlador de eventos Form_Load, agregue el siguiente cdigo.
Visual Basic Express End If Copiar cdigo
Presione ENTRAR. Ver una lnea ondulada de color azul debajo de End If. Si mantiene presionado el mouse sobre la lnea, ver el mensaje "'End If' debe ir precedida por la instruccin 'If' " correspondiente. Cambie el cdigo para que tenga la siguiente apariencia.
Copiar cdigo
Observe que ha desaparecido la lnea ondulada de color azul. Agregue la nueva lnea de cdigo siguiente despus de la instruccin If... Then.
Visual Basic Express MgBox("Hello") Copiar cdigo
Presione F5 para ejecutar el programa. Aparecer un cuadro de dilogo con el mensaje "Errores al generar. Desea continuar y ejecutar la ltima versin generada correctamente?" Haga clic en No. Se mostrar la ventana Lista de errores con el mensaje de error "No se ha declarado el 'nombre MgBox'". Haga doble clic en el mensaje de error de la Lista de errores y cambie el cdigo por MsgBox("Hello"). Presione F5 de nuevo. Ahora el programa debera ejecutarse y causar la aparicin de un cuadro de mensaje.
error, el programa se detendr y el cuadro de dilogo Ayudante de excepciones se mostrar en la ventana Editor de cdigo. Cuando esto sucede, el programa est en modo de interrupcin, que es el modo en que se realiza la depuracin. El cuadro de dilogo Ayudante de excepciones contiene una descripcin del error, as como sugerencias para la solucin de problemas que indican la causa. Puede hacer clic en las sugerencias sobre solucin de problemas para mostrar los temas de Ayuda y obtener ms detalles. Es necesario corregir el error para que pueda continuar con el programa; para ello, debe inspeccionar el cdigo para encontrar la causa del error. Por ejemplo, si sospecha que se produjo un error porque una variable contiene el valor equivocado, estando todava en el modo de interrupcin, puede utilizar IntelliSense para ver el valor de la variable. Cuando se coloca el mouse sobre la variable en el Editor de cdigo, la informacin sobre herramientas muestra el valor de la variable. Si el valor no es lo que esperaba, compruebe en el cdigo anterior dnde se estableci el valor y despus arregle el cdigo y contine.
Intntelo
Para revisar el valor de una variable En el men Archivo, seleccione Nuevo proyecto. En el panel Plantillas, en el cuadro de dilogo Nuevo proyecto, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba RunTimeErrors y haga clic en Aceptar. Se abrir un nuevo proyecto de formularios Windows Forms. Haga doble clic en el formulario para abrir el Editor de cdigo. En el controlador de eventos Form_Load, agregue el siguiente cdigo.
Visual Basic Express Dim miles As Integer = 0 Dim hours As Integer = 0 Dim speed As Integer = 0 Visual Basic Express miles = 55 speed = miles / hours Copiar cdigo Copiar cdigo
Presione F5 para ejecutar el programa. Aparece un cuadro de dilogo Ayudante de excepciones con el mensaje "No se control OverflowException". Una lnea de puntos que va del cuadro de dilogo a su archivo de cdigo seala la lnea de cdigo que produjo el error. Observe que la primera sugerencia sobre solucin de problemas del Ayudante de excepciones indica que debe asegurarse de no estar dividiendo por cero. Mueva el mouse sobre la variable miles y mantngalo ah durante unos segundos. La informacin sobre herramientas que ver dice "miles 55". Ahora mueva el mouse sobre la variable hours; la informacin sobre herramientas debe decir "hours 0". Debido a que no se puede dividir por cero y el valor de hours es cero, ya ha encontrado la causa del error: no haber actualizado el valor de hours. Agregue la siguiente lnea de cdigo sobre la lnea miles = 55.
Visual Basic Express hours = 2 Copiar cdigo
Haga clic en la flecha amarilla situada en el margen izquierdo del cdigo y arrstrela hasta la lnea hours = 2. Esto permite que el programa contine desde esa lnea en lugar de continuar desde la lnea que contiene el error. Para que se reconozca la solucin del error es necesario ejecutar la nueva lnea de cdigo recin agregada. Presione F5 para que el programa contine. Aparece un cuadro de dilogo que muestra "28 miles per hour".
sin cambiar el cdigo. Una ventana de depuracin especial, la ventana Inmediato, permite hacer eso y ms.
La ventana Inmediato
Cuando el programa est en modo de interrupcin, se puede utilizar la ventana Inmediato para ejecutar fragmentos de cdigo o evaluar variables y expresiones. Por ejemplo, si aparece un error en tiempo de ejecucin debido a una variable vaca, puede comprobar el valor de la variable. Puede utilizar tambin la ventana Inmediato para asignar un valor a esa variable y comprobar cmo se ejecuta el resto del programa.
Sugerencia Cuando ejecuta el programa en modo de depuracin, puede poner el programa en modo de interrupcin en cualquier momento, seleccionando Interrumpir del men Depurar.
Para ejecutar el cdigo en la Ventana Inmediato escrbalo como lo hara en el Editor de cdigo y presione ENTRAR. Para evaluar una variable o expresin, escriba un signo de interrogacin seguido por la variable o expresin que desea evaluar y presione ENTRAR, el resultado se mostrar en la siguiente lnea.
Intntelo!
Para probar el cdigo en la ventana Inmediato En el men Archivo, elija Nuevo proyecto. En el panel Plantillas, en el cuadro de dilogo Nuevo proyecto, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba Immediate y haga clic en Aceptar. Se abre un nuevo proyecto de formularios Windows Forms. En el Cuadro de herramientas, arrastre dos controles TextBox y un control Button al formulario. Haga doble clic en el botn para abrir el Editor de cdigo. En el controlador de eventos Button_Click, agregue el siguiente cdigo.
Visual Basic Express Dim miles As Integer = 0 Dim hours As Integer = 0 Dim speed As Integer = 0 Copiar cdigo
Visual Basic Express miles = CInt(Textbox1.Text) hours = CInt(Textbox2.Text) speed = miles / hours MsgBox(CStr(speed) & " miles per hour")
Copiar cdigo
Presione F5 para ejecutar el programa. Escriba 100 en el primer cuadro de texto y, a continuacin, escriba 0 en el segundo cuadro de texto. Haga clic en Button1. El programa se detendr y aparecer el cuadro de dilogo Ayudante de excepciones con el mensaje "No se control OverflowException". En la ventana Inmediato en la parte inferior del IDE, escriba ?miles y presione ENTRAR. El valor 100 debe aparecer en la lnea siguiente.
Sugerencia Puede abrir en cualquier momento la ventana Inmediato eligiendo Ventanas, Inmediato en el men Depurar.
Escriba ?hours y presione ENTRAR. El valor 0 debe aparecer en la lnea siguiente. Escriba hours = 4 y presione ENTRAR. Escriba ?hours y presione ENTRAR. Observe que el valor de hours es ahora 4, el valor que especific en la lnea anterior. Puede cambiar el valor de hours en la ventana Inmediato sin cambiar el cdigo del programa. Presione F5 para continuar. Se mostrar un cuadro de mensaje con el resultado.
Sugerencia Para evitar que se produzca este error en tiempo de ejecucin, agregue un controlador de errores que compruebe que hay un nmero vlido en el bloque Try y muestre un mensaje al usuario en el bloque Catch. Para obtener ms informacin sobre controladores de errores, vea Qu hacer cuando algo sale mal: control de errores.
Intntelo
Para observar un error lgico En el men Archivo, elija Nuevo proyecto. En el panel Plantillas, en el cuadro de dilogo Nuevo proyecto, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba LogicErrors y haga clic en Aceptar. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 91
Se abre un nuevo proyecto de formularios Windows Forms. Desde el Cuadro de herramientas, arrastre dos controles TextBox y un control Button hacia el formulario. Haga doble clic en Button1 para abrir el Editor de cdigo. En el controlador de eventos Button1_Click, agregue el siguiente cdigo.
Visual Basic Express Dim minutes As Integer = CInt(Textbox1.Text) Dim miles As Double = CDbl(Textbox2.Text) Dim hours As Double = 0 hours = minutes / 60 MsgBox("Average speed " & GetMPH(hours, miles)) Copiar cdigo
Function GetMPH(ByVal miles As Double, ByVal hours As Double) _ As String GetMPH = CStr(miles / hours) End Function
Presione F5 para ejecutar el programa. En el primer cuadro de texto, escriba 10 (para representar 10 minutos) y en el segundo cuadro de texto, escriba 5 (para representar las millas) y, a continuacin, haga clic en Button1. Aparecer un cuadro con el mensaje "Average speed 0.03333334" (velocidad media 0,03333334) ; no obstante, si recorre 5 millas en diez minutos, la respuesta correcta seran 30 mph. Mantenga abierto el proyecto: en el siguiente procedimiento aprender cmo encontrar el error lgico.
En el siguiente procedimiento se establecer un punto de interrupcin y se examinar el cdigo para encontrar el error.
Intntelo
Para establecer un punto de interrupcin y recorrer el cdigo En el Editor de cdigo, busque la lnea hours = minutes / 60 y haga clic en el margen izquierdo. Aparecer un punto rojo en el margen y el cdigo resaltado en rojo, lo que representa un punto de interrupcin. Presione F5 para ejecutar el programa nuevamente. En el primer cuadro de texto, escriba 10 y en el segundo cuadro de texto, escriba 5. Haga clic en Button1. El programa se detendr cuando llegue al punto de interrupcin. La lnea hours = minutes / 60 aparecer resaltada en amarillo. Inspeccione los valores de las variables manteniendo el mouse sobre ellos; el valor de hours debe ser 0 y el valor de minutes debe ser 10. Presione F8 para ejecutar la lnea hours = minutes / 60 y pasar a la siguiente lnea. Inspeccione los valores de las variables de la lnea MsgBox("Average speed " & GetMPH(hours, miles)), el valor de hours debe ser ahora 0.166666672 y el valor de miles debe ser 5.0. Presione F8 de nuevo para ejecutar la lnea actual. Observe que la ejecucin baja a la lnea Function GetMPH. Inspeccione los valores de las variables en esta lnea; observar que el valor de miles es ahora 0.166666672 y el de hours es 5.0, lo contrario de lo que eran en la lnea anterior. Ha encontrado el error. Mantenga abierto el proyecto: en el siguiente procedimiento aprender a corregir el error lgico.
GetMPH(ByVal miles As Double, ByVal hours As Double)..., observar que los argumentos se muestran como miles primero y como hours despus.
Se produjo un error en la lgica porque los argumentos se pasaron en el orden equivocado, produciendo un clculo incorrecto. Si los argumentos hubieran sido de tipos diferentes, habra visto un error en tiempo de ejecucin, pero como los argumentos eran del mismo tipo, no se produjo el error. Fue un error simple, pero el error resultante fue difcil de encontrar. En el siguiente procedimiento se establecer un punto de interrupcin y se recorrer el cdigo para encontrar el error.
Intntelo
Para corregir el error lgico En el Editor de cdigo, cambie la lnea MsgBox("Average speed " & GetMPH(hours, miles)) para que se lea de la siguiente manera:
Visual Basic Express MsgBox("Average speed " & GetMPH(miles, hours)) Copiar cdigo
Haga clic en el punto rojo en el margen izquierdo para borrar el punto de interrupcin. Presione F5 para ejecutar el programa. En el primer cuadro de texto, escriba 10 y en el segundo cuadro de texto, escriba 5. A continuacin, haga clic en Button1. Esta vez el cuadro de mensaje debe mostrar el resultado correcto, "Average speed 30" (velocidad media 30). Puede parecer que se corrigi el programa, pero hay otro error lgico aun ms difcil de encontrar. Si desea probar y encontrarlo, mantenga el proyecto abierto, lo utilizar de nuevo en la leccin Crdito extra: todava hay algo errneo.
ejemplo de esa leccin, an existe un error grave oculto: uno que es ms difcil de encontrar porque slo se produce en situaciones determinadas.
Probar un programa
Como desarrollador, se encuentra en desventaja cuando debe probar el programa para ver si se comporta segn lo deseado. Sabe cmo debe funcionar, de modo que es improbable que se cometa un error que pueda revelar un error lgico. Sin embargo, un usuario que no est familiarizado con el programa puede y har cosas en las que no ha pensado. Por ejemplo, en un programa que calcula millas por hora dividiendo el nmero de millas recorridas por el nmero de horas que demor el viaje, qu pasa si el usuario escribe cero para las horas o las millas? Probmoslo y vea.
Intntelo
Para probar el programa Abra el proyecto LogicErrors que se cre en la leccin anterior, Qu? Esto no debiera haber ocurrido. Detectar errores lgicos.
Nota Si no finaliz o no guard el proyecto anterior, deber regresar y finalizarlo antes de poder continuar.
Presione F5 para ejecutar el programa. En el primer cuadro de texto, escriba 0 (para representar minutos) y en el segundo escriba 5 (para representar millas) y, a continuacin, haga clic en Button1. Se muestra un cuadro de mensaje con el mensaje "Velocidad media infinito." Mantenga abierto el proyecto: en el siguiente procedimiento aprender a encontrar el error lgico.
Puesto que no es til mostrar una velocidad de cero, una manera de corregir el problema es probar un valor de cero y advertir al usuario que debe escribir un nmero mayor. Mientras se realiza esto, tambin se puede evitar que el usuario escriba nmeros negativos, puesto que los nmeros negativos tambin pueden generar un resultado falso. En el siguiente procedimiento, se modificar el cdigo en el controlador de eventos Button1_Click para llamar slo a la funcin GetMPH si los valores son mayores que cero.
Intntelo
Para corregir el error En el Editor de cdigo, cambie el cdigo en el controlador de eventos Button1_Click de la siguiente manera:
Visual Basic Express Dim minutes As Integer = CInt(Textbox1.Text) Dim miles As Double = CDbl(Textbox2.Text) Dim hours As Double = 0 If minutes <= 0 Or miles <= 0 Then MsgBox("Please enter a number greater than zero") Else hours = minutes / 60 MsgBox("Average speed " & GetMPH(hours, miles)) End If Copiar cdigo
Presione F5 para ejecutar el programa nuevamente. En el primer cuadro de texto, escriba 0, y en el segundo, escriba 5. A continuacin, haga clic en Button1. Aparecer el cuadro de mensaje indicndole que especifique un nmero mayor que 0. Intntelo probando el programa con otras combinaciones de nmeros hasta que est seguro de que se ha corregido el error.
Pasos siguientes
En esta leccin, aprendi a encontrar y corregir un error lgico que produjo un comportamiento inesperado. En la siguiente leccin, aprender a utilizar los comentarios en el cdigo.
Tambin puede agregar comentarios al final de las lneas, as como usar el carcter '. Este procedimiento suele realizar para proporcionar comentarios sobre lneas individuales de cdigo, como se ve en el ejemplo siguiente.
Visual Basic Express Copiar cdigo
Al igual que con los comentarios de una nica lnea, el programa omite todo lo que vaya despus del carcter ' de esa lnea.
Si quiere ejecutar el programa sin mostrar esa lnea, pero no desea eliminarla permanentemente, utilice el carcter del comentario (') para ocultarla temporalmente de su programa, tal y como se muestra a continuacin. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 97
Copiar cdigo
Como todo lo que va despus del carcter ' se omite, el programa se ejecutar sin ejecutar esa lnea. Puede quitar el carcter ' despus y se mostrar el cuadro de mensaje.
Intntelo!
Para insertar comentarios En el men Archivo, elija Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba Comments y, a continuacin, haga clic en Aceptar. Se abrir un nuevo proyecto de formularios Windows Forms. Haga doble clic en el formulario para abrir el Editor de cdigo. En el controlador del evento Form1_Load, escriba el siguiente cdigo.
Visual Basic Express ' This code will cause two message boxes to appear MsgBox("This is Message Box 1") ' Display Message Box 1 MsgBox("This is Message Box 2") ' Display Message Box 2 Copiar cdigo
Presione F5 para ejecutar el programa. El programa se inicia y se muestran los dos cuadros de mensaje de uno en uno. En el men Depurar, elija Detener depuracin para finalizar el programa. En el Editor de cdigo, agregue un carcter de comentario (') a la primera lnea del cuadro de mensaje, para que se lea lo siguiente.
Visual Basic Express Copiar cdigo
Presione F5 para ejecutar el programa. Observe que esta vez el programa omite la primera lnea del cuadro de mensaje y slo se muestra el segundo cuadro de mensaje.
que representara los productos, otra tabla para los pedidos y otra para los clientes.
Cada tabla se organiza en una cuadrcula de columnas y filas. Las columnas representan las categoras de los datos de un registro y las filas representan los registros individuales. Por ejemplo, en la ilustracin anterior, la tabla Orders contiene una fila o registro separado que representa cada pedido y columnas que representan el producto pedido, junto con la cantidad y el precio.
En la leccin anterior, aprendi que una base de datos se puede utilizar para almacenar y recuperar datos para los programas de Visual Basic. Primero, debe tener una base de datos a la cual tener acceso. Si bien se puede utilizar una base de datos existente, para estas lecciones aprender a crear una nueva base de datos mediante Visual Database Tools, que se incluye en Visual Basic.
Requisitos previos
Para crear y tener acceso a una base de datos de SQL Server con Visual Basic Express, tambin debe instalar SQL Server . ste se instala de manera predeterminada durante la instalacin de Visual Basic Express, sin embargo, si decidi no instalarlo, deber hacerlo antes de continuar.
Intntelo
Para crear una base de datos En el men Archivo, elija Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba FirstDatabase y haga clic en Aceptar. Se abre un nuevo proyecto de formularios Windows Forms. En el men Proyecto, elija Agregar nuevo elemento. En el cuadro de dilogo Agregar nuevo elemento, seleccione Base de datos SQL. En el cuadro Nombre, escriba FirstDatabase y haga clic en Agregar. Se iniciar el Asistente para la configuracin de orgenes de datos. En el Asistente para la configuracin de orgenes de datos, haga clic en Cancelar. Se agregar una nueva base de datos, FirstDatabase.mdf, al proyecto y aparecer en el Explorador de soluciones.
Intntelo
Para agregar una tabla a la base de datos Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 101
En el men Ver, seleccione Explorador de base de datos. En el Explorador de base de datos, expanda el nodo (haga clic en el signo ms) FirstDatabase.mdf y seleccione el nodo Tables. En el men Datos, elija Agregar nueva Tabla. Se abrir una ventana del Diseador de tablas. En la ventana Propiedades, seleccione Nombre y escriba Addresses. En la ventana del Diseador de tablas, seleccione el campo Nombre de columna y escriba FirstName. Seleccione el campo Tipo de datos y seleccione nvarchar (50) de la lista desplegable; se activar automticamente la columna AllowNulls. Ahora se ha definido la primera columna en la nueva tabla. Repita los dos pasos anteriores para agregar cuatro columnas ms con los siguientes valores: Nombre de columna: LastName, Tipo de datos: nvarchar(50) Nombre de columna: StreetAddress, Tipo de datos: nvarchar(50) Nombre de columna: City, Tipo de datos: nvarchar(50) Nombre de columna: Phone, Tipo de datos: nvarchar(50) En el men Archivo, elija Guardar direcciones.
Intntelo
Para agregar una clave a la tabla Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 102
En el Diseador de tablas, desactive la casilla de verificacin Permitir valores nulos para las filas Nombre y Apellido Seleccione las filas Nombre y Apellido.
Sugerencia Puede hacer clic en el cuadrado gris a la izquierda del campo Nombre, presionar la tecla CTRL y hacer clic en la fila LastName para seleccionar ambos.
En el men Diseador de tablas, elija Establecer clave principal. Aparecer un pequeo smbolo de llave a la izquierda de cada fila. En el men Archivo, elija Guardar direcciones.
Agregar datos
Ahora tiene una base de datos que contiene una tabla nica, Addresses. Por supuesto, una base de datos no es muy til a menos que contenga datos. En el siguiente procedimiento, se agregarn algunos datos a la tabla Addresses. Si desea, puede sustituir los nombres y las direcciones de las personas que conoce por aquellos proporcionados en el ejemplo.
Intntelo
Para agregar datos a la tabla En el Explorador de base de datos, expanda el nodo Tables, seleccione el nodo Direcciones y, a continuacin en el men Datos, elija Mostrar datos de tabla. Se abrir una ventana de tabla de datos. En la ventana de tabla de datos, seleccione el campo Nombre y escriba Samantha.
Nota Observe que cuando selecciona el campo por primera vez, aparece el valor NULL en cada campo; null es un trmino de la base de datos que significa que el campo est vaco.
Seleccione el campo LastName y escriba Smith. Seleccione el campo Direccin y escriba 123 45th Ave. E. Seleccione el campo City y escriba Seattle. Seleccione el campo Phone, escriba 2065550100 y presione la tecla TAB. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 103
Ahora ha definido el primer registro en la tabla Addresses. Repita los cinco pasos anteriores para agregar dos registros ms con los siguientes valores: Nombre: Michael, Apellido: Alexander, Direccin: 789 W. Capital Way, Ciudad: Tacoma, Telfono: 2065550101. Nombre: Andrea, Apellido: Dunker, Direccin: 722 Moss Bay Blvd, Ciudad: Kirkland, Telfono: 2065550102. En el men Archivo, seleccione Guardar todo para guardar el proyecto y la base de datos. Segn ha escrito los datos, quiz haya observado un pequeo icono de lpiz junto a los datos, que desaparece al utilizar la tecla TAB para moverse a la fila siguiente. El icono de lpiz significa que los datos no se han guardado en la base de datos. Cuando se desplaza fuera de la fila en la que est escribiendo los datos, los datos de la fila completa se guardan automticamente en la base de datos.
Intntelo!
Para conectar a una base de datos existente En el men Archivo, elija Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba Addresses y haga clic en Aceptar. Se abrir un nuevo proyecto de formularios Windows Forms. En el Explorador de soluciones, haga clic en la ficha Orgenes de datos . Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 104
En la ventana Orgenes de datos, seleccione Agregar nuevo origen de datos. Se abrir el Asistente para la configuracin de orgenes de datos. Seleccione Base de datos y, a continuacin, haga clic en Siguiente. Haga clic en el botn Nueva conexin. Se abrir el cuadro de dilogo Agregar conexin. En el cuadro de dilogo Agregar conexin, si Origen de datos no es Archivo de base de datos de Microsoft SQL Server (cliente SQL), haga clic en el botn Cambiar y seleccione Archivo de base de datos de Microsoft SQL, en el cuadro de dilogo Cambiar origen de datos. Haga clic en Aceptar. Haga clic en el botn Examinar, desplcese a la ubicacin donde guard la base de datos FirstDatabase.mdf y haga clic en Abrir. Haga clic en Aceptar para cerrar el cuadro de dilogo y, a continuacin, en el Asistente para la configuracin de orgenes de datos, haga clic en Siguiente. Si se le pide copiar el archivo de datos en su proyecto, haga clic en S. En la pgina siguiente del asistente, estar seleccionada la casilla de verificacin S, guardar la conexin como. Haga clic en Siguiente para continuar. En la pgina Elija los objetos de base de datos, expanda el nodo Tablas y, a continuacin, active la casilla de verificacin de la tabla Addresses. Haga clic en Finalizar para finalizar. Se ha agregado un archivo de base de datos local a su proyecto. Observe que se ha agregado un objeto FirstDatabaseDataSet a la ventana Orgenes de datos. En el men Archivo, elija Guardar todo para guardar el proyecto.
necesarios para usted, por lo que todo lo que necesita hacer es seleccionar y colocar los objetos. En esta leccin, obtendr informacin sobre cmo crear un sencillo formulario de visualizacin de datos.
Intntelo!
Para crear un formulario de acceso a datos Abra el proyecto Addresses de la leccin anterior. Si no lo ha finalizado todava, vaya a Obtener la informacin necesaria: conectarse a una base de datos existente y finalice la leccin antes de continuar. En el Explorador de soluciones, seleccione Form1.vb y, a continuacin, en el men Ver elija Diseador. En el Explorador de soluciones, haga clic en la ficha Orgenes de datos . En la ventana Orgenes de datos, explore sin prisas los nodos FirstDatabaseDataSet y Addresses. Puede expandir el nodo Addresses para ver todos los campos individuales de la tabla. Arrastre el nodo Addresses desde la ventana Orgenes de datos al formulario.
Nota Algunos controles se agregan automticamente al formulario, adems se crean y se agregan varios componentes a la bandeja de componentes debajo del formulario. Hay un control DataGridView que mostrar las filas y columnas de la tabla y un control para la exploracin (AddressesBindingNavigator). Asimismo, Visual Basic Expresscrea componentes que se conectan a la base de datos, administran la recuperacin y actualizacin de datos y almacenan los datos en un DataSet local (AddressesBindingSource, AddressesTableAdapter y FirstDatabaseDataSet, respectivamente).
Seleccione el control AddressesDataGridView y en la ventana Propiedades, establezca la propiedad Dock en Fill (haga clic en el botn central). De esta forma, se expandir la cuadrcula para rellenar el formulario. Presione F5 para ejecutar el programa. Los datos de la tabla Addresses se muestran en el control DataGridView en el formulario. Puede utilizar los controles en BindingNavigator para desplazarse entre las filas e incluso agregar o eliminar registros. Tambin puede realizar cambios en los registros modificando los datos mostrados en la cuadrcula, pero estos cambios no se guardarn a menos que haga clic en el icono Guardar datos. En el tema siguiente, obtendr informacin sobre cmo guardar los cambios automticamente en el conjunto de datos.
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 106
Intntelo!
Para actualizar su archivo de base de datos local Abra el proyecto Addresses de la leccin anterior. Si no ha completado todava la leccin anterior, vaya a Mostrar informacin al usuario: mostrar datos en la interfaz de usuario y complete los pasos. En el Explorador de soluciones, seleccione Form1 y, a continuacin, en el men Ver elija Diseador. En el formulario, seleccione el control AddressesDatGridView y elimnelo. En el Explorador de soluciones, haga clic en la ficha Orgenes de datos . En la ventana Orgenes de datos, seleccione la tabla Direcciones y, a continuacin, seleccione Detalles en la lista desplegable. Arrastre el nodo Addresses desde la ventana Orgenes de datos al nuevo formulario. Se agregan controles TextBox por cada campo de la tabla, junto con los controles Label que describen los campos. Haga doble clic en el formulario para abrir el Editor de cdigo. En la lista desplegable Eventos, haga clic en FormClosing. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 107
Este cdigo hace que AddressesTableAdapter copie cualquier cambio del conjunto de datos a la base de datos local. Presione F5 para ejecutar el programa. Realice cambios en parte de los datos o agregue un nuevo registro y, a continuacin, cierre el formulario. Presione F5 de nuevo. Los cambios deben haberse guardado. En este conjunto de lecciones, obtuvo informacin sobre cmo crear una base de datos y un programa para tener acceso a la base de datos. En el conjunto siguiente de lecciones, obtendr informacin sobre clases, las guas para objetos que puede reutilizar en sus programas
Qu es una clase?
En esta leccin, aprender a utilizar clases para representar objetos en sus programas. Como aprendi en una leccin anterior, los programas de Visual Basic Expressse crean con objetos como formularios o controles. Los objetos tambin Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 108
se pueden utilizar para representar cosas reales como personas, equipos informticos o incluso algo ms abstracto, como una cuenta bancaria. Una clase es simplemente una representacin de un tipo de objeto; piense en ella como un plano que describe el objeto. As como un plano puede utilizarse para construir varios edificios, una clase puede utilizarse para crear varias copias de un objeto. Aunque puede que no se haya dado cuenta, ya ha utilizado las clases. Por ejemplo, el control TextBox lo define una clase TextBox, que define su aspecto y sus funciones. Cada vez que arrastra un control TextBox a un formulario, realmente est creando una nueva instancia de la clase TextBox. Cada control TextBox es una copia exacta, aunque distinta, de la clase que lo define, la clase TextBox. Puesto que cada objeto es una "instancia" independiente de una clase, la accin de crear una clase se denomina creacin de instancias. Hasta ahora ha agregado los controles TextBox a su formulario arrastrndolos desde el Cuadro de herramientas, pero tambin puede crear instancias de un objeto TextBox en su cdigo si utiliza la palabra clave New.
Visual Basic Express Dim Textbox1 As New TextBox Copiar cdigo
Obtendr ms informacin sobre crear y utilizar las clases en las lecciones siguientes.
puede tener un mtodo para calcular un saldo. Lo lgico es permitir que un programa lea ese balance pero no que pueda cambiarlo directamente. Puede ocultar los miembros de una clase si los declara como Private o exponerlos si los declara como Public. Tambin puede permitir el acceso a una propiedad y a la vez impedir que el programa cambie su valor declarndolo como ReadOnly. El cdigo siguiente muestra cmo podra ser una clase BankAccount.
Visual Basic Express Class BankAccount Private AccountNumber As String Private AccountBalance As Decimal Public Sub UpdateBalance() ' add code to recalculate balance. End Sub ReadOnly Property Balance() As Decimal Get Return AccountBalance End Get End Property End Class Copiar cdigo
Aunque los programas pueden ser considerablemente diferentes, los atributos que se aplican a una persona seran los mismos. Cada persona tiene nombre, edad, direccin y nmero de telfono. En esta leccin y las siguientes crear una clase que representa una persona; puede guardar esta clase y utilizarla en otros programas que escriba en el futuro. Las clases se pueden crear de tres maneras: como parte del cdigo en un mdulo de formulario en un proyecto de aplicacin para Windows, como un mdulo de clase separado agregado a un proyecto de aplicacin para Windows o como un proyecto de bibliotecas de clase independiente.
Crear clases
Habr observado que en algunas de las lecciones anteriores al hacer doble clic en un formulario y abrir el Editor de cdigo se vea algo parecido a lo siguiente.
Copiar cdigo Public Class Form1 Private Sub Form1_Load...
Correcto, el formulario realmente es una clase, marcada por instrucciones Class y End Class y cualquier cdigo que se haya escrito entre las dos instrucciones es parte de la clase. Aunque de manera predeterminada un mdulo de formulario contiene slo una clase nica, puede crear mdulos adicionales agregando cdigo debajo de la instruccin End Class, tal como se ilustra a continuacin:
Copiar cdigo Public Class Form1 ' Form1 code here End Class Public Class MyFirstClass ' Your class code here End Class
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 111
La desventaja de crear clases de esta manera es que slo estn disponibles dentro del proyecto donde se crearon. Si desea compartir una clase con otros proyectos, puede colocarla en un mdulo de clase.
Mdulos de clase
Un mdulo de clase es un archivo de cdigo separado, que contiene una o ms clases. Como es un archivo independiente, se puede reutilizar en otros proyectos. Los mdulos de clase se pueden crear de dos maneras: como un mdulo agregado a un proyecto de aplicacin para Windows o como un proyecto de bibliotecas de clase independiente. Puede agregar un nuevo mdulo de clase a un proyecto existente seleccionando Clase en el cuadro de dilogo Agregar nuevo elemento, disponible en el men Proyecto. Para trabajar en esta unidad de lecciones, crear un proyecto de bibliotecas de clase independiente.
Intntelo
Para crear un proyecto de biblioteca de clases En el men Archivo, elija Nuevo proyecto. En el panel Plantillas, del cuadro de dilogo Nuevo proyecto, haga clic en Biblioteca de clases. En el cuadro Nombre, escriba Persons y haga clic en Aceptar. Se abrir un nuevo proyecto de bibliotecas de clase y el Editor de cdigo mostrar el mdulo de clase Class1.vb. En el Explorador de soluciones, haga clic con el botn secundario del mouse en Class1.vb y seleccione Cambiar nombre y, a continuacin, cambie el nombre a Persons.vb. Observe que el nombre en el Editor de cdigo tambin cambia a Persons.vb. En el men Archivo, elija Guardar todo. En el cuadro de dilogo Guardar proyecto, haga clic en Guardar.
Sugerencia En lugar de guardar el proyecto en la ubicacin predeterminada, podra crear un directorio en el cual puede almacenar todas sus clases para reutilizarlas. Puede especificar esa carpeta en el campo Location del cuadro de dilogo Guardar proyecto antes de guardar.
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 112
La mayora de las propiedades, sin embargo, son ms complejas; en la mayor parte de los casos desear utilizar un procedimiento de propiedad para agregar una propiedad a una clase. Los procedimientos de propiedad tienen tres partes: una declaracin de una variable privada para almacenar el valor de la propiedad; un procedimiento Get que expone el valor; y un procedimiento Set que, como indica su nombre, establece el valor. Por ejemplo, un procedimiento de propiedad para una propiedad Name de la clase Persons podra ser como el que sigue.
Visual Basic Express Private nameValue As String Public Property Name() As String Copiar cdigo
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 113
Get Name = nameValue End Get Set(ByVal value As String) nameValue = value End Set End Property
La primera lnea de cdigo declara una variable String privada, nameValue que almacenar el valor de la propiedad. El procedimiento de propiedad en s comienza con Public Property y termina con End Property. El procedimiento Get contiene el cdigo que se ejecutar cuando desee leer su valor; por ejemplo, si lee la propiedad Persons.Name, el cdigo devolver el valor almacenado en la variable nameValue. El procedimiento Set contiene cdigo que se utiliza para asignar un nuevo valor a la variable nameValue usando un valor pasado como argumento value. Por ejemplo, si escribi el cdigo Persons.Name = "John", el valor String John se pasar como argumento value; el cdigo del procedimiento Set lo asignar a la variable NameValue para su almacenamiento. Se preguntar por qu complicarse tanto en lugar de utilizar un campo que represente la propiedad Name. En el mundo real, hay ciertas reglas para los nombres: por ejemplo, los nombres normalmente no contienen nmeros. Puede agregar cdigo al procedimiento Set para comprobar el argumento value y devolver un error si contiene nmeros. En el siguiente procedimiento, se agregar un campo y tres propiedades a la clase Persons.
Intntelo
Para agregar propiedades a la clase Abra el proyecto Persons que cre en la leccin anterior. Si no lo guard, primero deber regresar a la leccin anterior, Modelar un objeto en una situacin real: crear la primera clase, y realizar hasta el final los procedimientos de esa leccin. En el Explorador de soluciones, seleccione Persons.vb y en el men Ver seleccione Cdigo. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 114
Public Property MiddleName() As String Get MiddleName = middleNameValue End Get Set(ByVal value As String) middleNameValue = value End Set End Property
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 115
LastName = lastNameValue End Get Set(ByVal value As String) lastNameValue = value End Set End Property
De igual forma, la palabra clave WriteOnly permite establecer un valor de propiedad pero no permite que se lea; por ejemplo, no permite que otros programas lean una propiedad de contrasea. Puede utilizar ese valor para realizar acciones dentro de la clase, pero desear que siga siendo privado. Para crear una propiedad de slo escritura, se crear una propiedad con un procedimiento Set pero sin procedimiento Get, tal como se muestra a continuacin. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 116
Visual Basic Express Private passwordValue As String WriteOnly Property Password() As String Set(ByVal value As String) passwordValue = value End Set End Property
Copiar cdigo
Los procedimientos de propiedad ReadOnly y WriteOnly tambin son tiles cuando se desea tomar un valor de propiedad y convertirlo en un valor diferente. Por ejemplo, pensemos en la edad de una persona. A diferencia del nombre, la edad cambia con el tiempo, si ha asignado la edad a una clase y la lee de nuevo un ao despus, sera incorrecta. En la clase Persons, puede evitarlo agregando dos propiedades: una propiedad WriteOnly BirthYear que representa el ao de nacimiento, que nunca cambia, y una propiedad ReadOnly Age que devuelve un valor calculando la diferencia entre el ao en curso y el ao de nacimiento.
Intntelo
Para agregar propiedades ReadOnly y WriteOnly a la clase Agregue el siguiente cdigo de declaracin debajo de las otras declaraciones en la parte superior del mdulo de clase.
Visual Basic Express Private birthYearValue As Integer Copiar cdigo
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 117
ReadOnly Property Age() As String Get Age = My.Computer.Clock.LocalTime.Year - birthYearValue End Get End Property
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 118
Si bien la mayora de los mtodos de clase son pblicos, tambin se pueden agregar mtodos que slo la clase en s puede utilizar. Por ejemplo, la clase Persons puede tener su propia funcin para calcular la edad de una persona. Al declarar la funcin como Private, no se puede ver o llamar desde fuera de la clase. El cdigo para una funcin privada puede ser similar al siguiente:
Visual Basic Express Copiar cdigo
Private Function CalcAge(ByVal year As Integer) As Integer CalcAge = My.Computer.Clock.LocalTime.Year - year End Function
Ms tarde puede cambiar el cdigo que calcula el valor CalcAge y el mtodo seguir funcionando bien sin cambiar ningn cdigo que utilice el mtodo. Ocultar el cdigo que realiza el mtodo se conoce como encapsulacin. En la clase Persons, se crear un mtodo pblico que devuelve un nombre completo y una funcin privada para calcular la edad.
Intntelo
Para agregar un mtodo a la clase Abra el proyecto Persons que cre en la leccin anterior. Si no lo guard, primero deber regresar a la leccin anterior, Agregar propiedades a una clase y finalizar los procedimientos. En el Explorador de soluciones, seleccione Persons.vb y, en el men Ver, elija Cdigo. Agregue el siguiente cdigo a continuacin de los procedimientos de propiedad.
Visual Basic Express Public Function FullName() As String If middleNameValue <> "" Then FullName = firstNameValue & " " & middleNameValue & " " _ & lastNameValue Else FullName = firstNameValue & " " & lastNameValue End If Copiar cdigo
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 119
Private Function CalcAge(ByVal year As Integer) As Integer CalcAge = My.Computer.Clock.LocalTime.Year - year End Function
Pasos siguientes
En esta leccin, aprendi a agregar mtodos pblicos y privados a una clase. Puede obtener ms informacin sobre los mtodos en Informacin detallada: crear varias versiones del mismo mtodo con sobrecarga o puede continuar con la siguiente leccin y aprender a utilizar y probar la clase que cre.
Informacin detallada: crear varias versiones del mismo mtodo con sobrecarga
En esta leccin, aprender a agregar a la clase varias versiones de un mtodo. En la leccin anterior, aprendi a agregar mtodos a la clase Persons. A veces hay casos en los que un mtodo nico no sirve; por ejemplo, es probable que deba pasar diferentes tipos de datos al mtodo en distintas situaciones o quiz desee devolver formatos diferentes como resultado.
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 120
Se pueden crear varias versiones de un mtodo mediante una tcnica llamada sobrecarga. Cuando una clase tiene ms de un mtodo con el mismo nombre pero con un conjunto de argumentos diferente, el mtodo se sobrecarga.
Sobrecarga
Para crear un mtodo sobrecargado, agregue dos o ms procedimientos Sub o Function a la clase, cada uno con el mismo nombre. En las declaraciones de procedimiento, el conjunto de argumentos para cada procedimiento debe ser distinto o se producir un error. El siguiente ejemplo muestra un mtodo con dos sobrecargas, una que acepta una String y la otra que acepta un Integer como argumento.
Visual Basic Express Public Sub TestFunction(ByVal input As String) MsgBox(input) End Sub Public Sub TestFunction(ByVal input As Integer) MsgBox(CStr(input)) End Sub Copiar cdigo
Si se debe llamar a este mtodo desde el cdigo y pasarle una cadena, se ejecutara la primera sobrecarga y un cuadro de mensaje mostrara la cadena; si se le pas un nmero, se ejecutara la segunda sobrecarga y el nmero se convertira en una cadena y aparecera en el cuadro de mensaje. Puede crear tantas sobrecargas como sea necesario y cada una de ellas puede contener un nmero diferente de argumentos. En la clase Persons, se agregar un mtodo con dos sobrecargas para devolver la inicial del segundo nombre de una persona; una slo con la inicial y la otra con la inicial seguida por un punto.
Intntelo
Para crear un mtodo sobrecargado Abra el proyecto Persons que cre en la leccin anterior. Si no lo guard, regrese a la leccin anterior, Agregar mtodos a una clase y finalice los procedimientos. En el Explorador de soluciones, seleccione Persons.vb y, en el men Ver, elija Cdigo. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 121
Public Function MiddleInitial(ByVal period As Boolean) As String MiddleInitial = Left$(middleNameValue, 1) & "." End Function
Para utilizar y probar la clase Persons, debe crear primero un proyecto de prueba y agregar una referencia al mdulo de clase.
Intntelo
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 122
Para crear un proyecto de prueba para la clase Abra el proyecto Persons que cre en la leccin anterior. Si no lo guard, primero deber regresar a la leccin anterior, Agregar mtodos a una clase y finalizar los procedimientos. En el men Archivo, elija Agregar y seleccione Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba PersonsTest y haga clic en Aceptar. En el Explorador de soluciones, seleccione el proyecto PersonsTest y en el men Proyecto, elija Establecer como proyecto de inicio. En el Explorador de soluciones, seleccione el proyecto PersonsTest y en el men Proyecto, elija Agregar referencia. Se abrir el cuadro de dilogo Agregar referencia. Haga clic en la ficha Proyectos, seleccione Personas y haga clic en Aceptar. Haga doble clic en el formulario para abrir el Editor de cdigo y escriba la siguiente declaracin justo debajo de la lnea Public Class Form1.
Visual Basic Express Dim person1 As New Persons.Persons Copiar cdigo
Esto declara una nueva instancia de la clase Persons. Se preguntar por qu tuvo que escribir dos veces Persons: la primera instancia es el mdulo de clase Persons.vb; la segunda instancia es la clase Persons dentro de ese mdulo. En el men Archivo, elija Guardar todo.
Intntelo
Para probar la clase
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 123
En el Explorador de soluciones, seleccione Form1 y en el men Ver, seleccione Diseador. En el Cuadro de herramientas, arrastre cuatro controles TextBox, un control CheckBox y dos controles Button al formulario. Seleccione el primer control Button y en la ventana Propiedades establezca su propiedad Text en Update . Seleccione el segundo control Button y en la ventana Propiedades establezca su propiedad Text en Full Name . Haga doble clic en el primer botn (Update) para abrir el Editor de cdigo y en el controlador de eventos Button1_Click, agregue el siguiente cdigo.
Visual Basic Express With person1 .FirstName = Textbox1.Text .MiddleName = Textbox2.Text .LastName = Textbox3.Text .BirthYear = Textbox4.Text .Alive = CheckBox1.Checked End With Copiar cdigo
Observe que cuando escribe, se muestra una lista que contiene todos los miembros de la clase Persons. Puesto que se agreg como una referencia, IntelliSense muestra la informacin sobre la clase tal como lo hara para cualquier otra clase. En el controlador de eventos Button2_Click, agregue el siguiente cdigo.
Visual Basic Express ' Test the FullName method. MsgBox(person1.FullName) Copiar cdigo
' test the Age property and CalcAge method. MsgBox(CStr(person1.Age) & " years old")
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 124
If person1.Alive = True Then MsgBox(person1.FirstName & " is alive") Else MsgBox(person1.FirstName & " is no longer with us") End If
Presione F5 para ejecutar el proyecto y mostrar el formulario. En el primer cuadro de texto, escriba su nombre. En el segundo cuadro de texto, escriba su segundo nombre. En el tercer cuadro de texto, escriba su apellido. En el cuarto cuadro de texto, escriba el ao de cuatro dgitos en el que naci (por ejemplo, 1983). Despus, active la casilla de verificacin. Haga clic en el botn Actualizar para establecer las propiedades de la clase y haga clic en el botn Full Name. Se mostrarn tres cuadros de mensaje, con su nombre completo, edad y estado. En el men Archivo, elija Guardar todo.
Intntelo
Para probar los mtodos sobrecargados En el Explorador de soluciones, seleccione Form1 y en el men Ver, seleccione Diseador. En el Cuadro de herramientas, arrastre dos controles ms Button al formulario. Seleccione el tercer control Button y en la ventana Propiedades establezca su propiedad Text en With.
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 125
Seleccione el cuarto control Button y en la ventana Propiedades establezca su propiedad Text en Without. Haga doble clic en el primer botn (With) para abrir el Editor de cdigo y escriba el siguiente cdigo en el controlador de eventos Button3_Click.
Visual Basic Express Copiar cdigo
MsgBox(person1.FirstName & " " & person1.MiddleInitial(True) & _ " " & person1.LastName)
Observe que cuando escribe, se muestra una lista que contiene todos los miembros de la clase Persons. Puesto que se agreg como una referencia, IntelliSense muestra la informacin sobre la clase tal como lo hara para cualquier otra clase. En el controlador de eventos Button4_Click, agregue el siguiente cdigo.
Visual Basic Express Copiar cdigo
MsgBox(person1.FirstName & " " & person1.MiddleInitial & _ " " & person1.LastName)
Presione F5 para ejecutar el proyecto y mostrar el formulario. En el primer cuadro de texto, escriba su nombre. En el segundo cuadro de texto, escriba su segundo nombre. En el tercer cuadro de texto, escriba su apellido. En el cuarto cuadro de texto, escriba el ao de cuatro dgitos en el que naci (por ejemplo, 1983). Despus, active la casilla de verificacin. Haga clic en el botn Actualizar para establecer las propiedades de la clase y haga clic en el botn With. Aparecer un cuadro de mensaje que muestra su nombre con un punto despus de la inicial del segundo nombre Haga clic en el botn Without. Aparecer un cuadro de mensaje que muestra su nombre sin un punto despus de la inicial del segundo nombre En el men Archivo, elija Guardar todo. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 126
Se pueden crear instancias de la nueva clase DerivedClass, se puede tener acceso a sus propiedades y mtodos como BaseClass y se pueden agregar nuevas propiedades y mtodos que son especficos de la nueva clase. Para ver un ejemplo, observe la clase Persons que cre en las lecciones anteriores. Suponga que desea una clase que represente jugadores de bisbol: los jugadores del bisbol tienen todos los atributos definidos en la clase Persons, pero tambin tienen atributos nicos, como su nmero y posicin. En lugar de agregar esas propiedades a la clase Persons, se crear una nueva clase Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 127
Intntelo
Para crear una clase derivada Abra el proyecto Persons que cre en la leccin anterior. Si no lo guard, regrese a Probar una clase y finalice los procedimientos. En el Explorador de soluciones, seleccione el nodo del proyecto Persons. En el men Proyecto, elija Agregar clase. En el cuadro de dilogo Agregar nuevo elemento, escriba Players en el cuadro Nombre, a continuacin, haga clic en Agregar. Se agregar un nuevo mdulo de clase al proyecto. En el Editor de cdigo, agregue lo siguiente justo debajo de la lnea Public Class Players.
Visual Basic Express Inherits Persons Copiar cdigo
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 128
Position = positionValue End Get Set(ByVal value As String) positionValue = value End Set End Property
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 129
Esto declara dos nuevas instancias de la clase Players. En el men Archivo, elija Guardar todo. Para probar la clase derivada En el Explorador de soluciones, seleccione Form1 en el proyecto PlayerTest y en el men Ver, elija Cdigo. En el Editor de cdigo, agregue el siguiente cdigo al procedimiento de evento Form1_Load.
Visual Basic Express With player1 .FirstName = "Andrew" .LastName = "Cencini" .Number = 43 .Position = "Shortstop" End With With player2 .FirstName = "Robert" .LastName = "Lyon" .Number = 11 .Position = "Catcher" End With Copiar cdigo
En el Explorador de soluciones, seleccione Form1 en el proyecto PlayerTest y en el men Ver, elija Diseador. En el Cuadro de herramientas, arrastre dos controles Button al formulario. Seleccione el primer control Button y en la ventana Propiedades establezca su propiedad Text en At Bat. Seleccione el segundo control Button y en la ventana Propiedades establezca su propiedad Text en On Deck. Haga doble clic en el primer botn (At Bat) para abrir el Editor de cdigo y escriba el siguiente cdigo en el controlador de eventos Button1_Click.
Visual Basic Express Copiar cdigo
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 130
MsgBox(player1.Position & " " & player1.FullName & ", #" & _ CStr(player1.Number) & " is now at bat.")
Observe que est utilizando el mtodo FullName que se hered de la clase base Persons. En el controlador de eventos Button2_Click, agregue el siguiente cdigo.
Visual Basic Express Copiar cdigo
MsgBox(player2.Position & " " & player2.FullName & ", #" & _ CStr(player2.Number) & " is on deck.")
Presione F5 para ejecutar el programa. Haga clic en cada botn para ver los resultados. En el men Archivo, elija Guardar todo.
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 131
Public Overrides Property EngineType As String Public Overrides Sub StartEngine(ByVal EngineType As String)
En la clase Players que se cre en la leccin anterior, puede que se desee reemplazar el mtodo FullName para incluir el nmero del jugador y eliminar el cdigo que devuelve un segundo nombre.
Intntelo
Para reemplazar el mtodo FullName Abra el proyecto Persons que cre en la leccin anterior. Si no lo guard, regrese a la leccin anterior, Generar una clase en una clase existente: utilizacin de la herencia y complete los procedimientos. En el Explorador de soluciones, seleccione el nodo Persons.vb y, en el men Ver, elija Cdigo. En el Editor de cdigo, modifique la declaracin del mtodo FullName de la siguiente manera.
Visual Basic Express Public Overridable Function FullName() As String Copiar cdigo
En el Explorador de soluciones, seleccione el nodo Players.vb y, en el men Ver, elija Cdigo. En el Editor de cdigo, agregue el siguiente cdigo a la clase.
Visual Basic Express Public Overrides Function FullName() As String FullName = FirstName & " " & LastName & ", #" & numberValue End Function Copiar cdigo
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 132
En el Explorador de soluciones, seleccione el nodo Form1.vb en el proyecto PlayerTest y, a continuacin, en el men Ver, elija Cdigo. En el Editor de cdigo, modifique el cdigo de evento Button1_Click de la siguiente manera.
Visual Basic Express Copiar cdigo
MsgBox(player1.Position & " " & player1.FullName & _ " is now at bat.")
Presione F5 para ejecutar el programa y haga clic en cada botn para mostrar los resultados. Observe que los resultados son los mismos que antes, aun cuando ahora se est utilizando el mtodo FullName reemplazado. En el men Archivo, elija Guardar todo.
Cuando se crea el objeto Collection, se puede utilizar el mtodo Add para agregarle elementos y el mtodo Remove para eliminarlos. Cuando agregue elementos, primero especifique el elemento que se va a agregar y luego el valor String que se va a utilizar como clave.
Visual Basic Express baseballTeam.Add(playerObject, "Player's Name") Copiar cdigo
En el siguiente procedimiento, se agregarn dos nuevos objetos Players y, a continuacin, se crear una coleccin team y se le agregarn los objetos Players, mediante la propiedad Position como una clave.
Intntelo
Para crear una coleccin de objetos Abra el proyecto Persons que cre en la leccin anterior. Si no lo guard, regrese a la leccin anterior, Generar una clase en una clase existente: utilizacin de la herencia y finalice los procedimientos. En el Explorador de soluciones, en el proyecto PlayerTest, seleccione el nodo Form1.vb y en el men Ver, seleccione Cdigo.
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 134
En el Editor de cdigo, agregue lo siguiente a la seccin de declaraciones (debajo de la declaracin para player2).
Visual Basic Express Dim player3 As New Persons.Players Dim player4 As New Persons.Players Dim team As New Collection Copiar cdigo
With player4 .FirstName = "Karl" .LastName = "Jablonski" .Number = 22 .Position = "Pitcher" End With
En el Explorador de soluciones, en el proyecto PlayerTest, seleccione el nodo Form1.vb. A continuacin, en el men Ver, elija Diseador. En el Cuadro de herramientas, arrastre un control ComboBox hasta el formulario. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 135
En la ventana Propiedades, seleccione la propiedad Items y haga clic en el botn .... En el Editor de la coleccin de cadenas, escriba lo siguiente y haga clic en Aceptar.
Presione F5 para ejecutar el programa. Seleccione una posicin de la lista desplegable, aparecer en un cuadro de mensaje el jugador para esa posicin.
Aunque este sistema funciona para el ejemplo, no es el procedimiento recomendado, pues cada vez que agregue un nuevo jugador, tambin tendr que actualizar la coleccin Items del control ComboBox. Una manera mucho ms adecuada consiste en agregar los valores Position a la coleccin Items recorriendo la coleccin team con un bucle For Each...Next. En un bucle For...Next, primero debe declarar una variable de contador; con un bucle For Each...Next primero debe declarar una variable de objeto. El cdigo siguiente muestra un bucle For Each...Next.
Visual Basic Express Dim player As Persons.Players For Each player In team ComboBox1.Items.Add(player.Position) Next Copiar cdigo
En este caso, no importa cuntos Players tenga, el mtodo ComboBox1.Items.Add se ejecutar una vez para cada objeto Players de la coleccin equipos y el valor Position se agregar a la lista.
Intntelo
Para recorrer una coleccin Abra el proyecto Persons de la leccin anterior. Si no lo ha acabado, regrese a la leccin anterior, Realizar seguimientos: utilizar colecciones para administrar varios objetos, y complete los procedimientos. En el Explorador de soluciones, seleccione el nodo Form1.vb en el proyecto PlayerTest y, a continuacin, en el men Ver, elija Diseador. Seleccione el control ComboBox. A continuacin, en la ventana Propiedades, seleccione la propiedad Items y haga clic en el botn .... En el Editor de la coleccin de cadenas, elimine las cuatro entradas existentes y, a continuacin, haga clic en Aceptar. Haga doble clic en el formulario para abrir el Editor de cdigo. En el Editor de cdigo, agregue lo siguiente a la seccin de declaraciones (debajo de la declaracin para team).
Visual Basic Express Copiar cdigo
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 137
Presione F5 para ejecutar el programa. Seleccione una posicin de la lista desplegable. El jugador de esa posicin se mostrar en un cuadro de mensaje.
Cuando disea programas, organiza los controles y decide su apariencia en el diseador de formularios. Hay tambin un diseador para los controles de usuario, el diseador de controles de usuario, que le permite a usted, al desarrollador, decidir la apariencia del control.
Intntelo!
Para crear un control de usuario mediante Visual Basic Express En el men Archivo, haga clic en Nuevo proyecto. En el panel Plantillas, del cuadro de dilogo Nuevo proyecto, haga clic en Biblioteca de clases y luego en Aceptar. En el men Proyecto, haga clic en Agregar control de usuario. En el cuadro de dilogo Agregar nuevo elemento, seleccione Control de usuario. En el cuadro Nombre, escriba NamesControl y haga clic en Agregar. Se agregar una nueva plantilla Control de usuario al proyecto y se abrir el Diseador de controles de usuario. En el Explorador de soluciones, haga clic con el botn secundario del mouse en Class1.vb y elija Suprimir, a continuacin, haga clic en Aceptar. En el men Archivo, haga clic en Guardar todo. En el cuadro de dilogo Guardar proyecto, especifique NamesUserControl y haga clic en Guardar. Para crear un control de usuario en Visual Studio 2008 En el men Archivo, haga clic en Nuevo proyecto. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 139
En el panel Plantillas, del cuadro de dilogo Nuevo proyecto, haga clic en Biblioteca de controles de Windows. En el cuadro Nombre, escriba NamesControl y, a continuacin, haga clic en Aceptar. Se agregar una nueva plantilla Control de usuario al proyecto y se abrir el Diseador de controles de usuario. En el men Archivo, haga clic en Guardar todo. En el cuadro de dilogo Guardar proyecto, especifique NamesUserControl y haga clic en Guardar.
Intntelo
Para agregar controles a un Control de usuario Abra el proyecto NamesUserControl que cre en la leccin anterior. Si no lo guard, primero deber regresar a la leccin anterior, Comprender el Diseador de controles de usuario, y realizar hasta el final los procedimientos de esa leccin. En el Explorador de soluciones, seleccione NamesControl.vb y en el men Ver seleccione Diseador. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 140
En la ventana Propiedades, cambie la propiedad Name a FullName. En el Cuadro de herramientas, arrastre tres controles Textbox al diseador. Puede organizarlos como quiera. En la ventana Propiedades, cambie las propiedades Name por FirstName, MiddleName y LastName. En el men Archivo, elija Guardar todo para guardar el trabajo
Intntelo
Para agregar cdigo a un control de usuario Abra el proyecto NamesUserControl que cre en la leccin anterior. Si no lo guard, primero deber regresar a la leccin anterior, Comprender el Diseador de controles de usuario, y realizar hasta el final los procedimientos de esa leccin. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 141
En el Explorador de soluciones, seleccione NamesControl.vb y en el men Ver elija Cdigo. En el Editor de cdigo, agregue el siguiente cdigo para el controlador de eventos FirstName_TextChanged.
Copiar cdigo Private Sub FirstName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FirstName.TextChanged, MiddleName.TextChanged, LastName.TextChanged ' Display the contents of the three text boxes in the label. FullName.Text = FirstName.Text & " " & MiddleName.Text & " " & LastName.Text End Sub
Presione F5 para ejecutar el programa. Se abrir el UserControl TestContainer y se mostrar el control de usuario. Escriba el nombre, segundo nombre y apellido en los tres cuadros de texto; segn escriba, se mostrar el nombre en la etiqueta FullName. Si se fija en el cdigo que ha especificado antes, observar que la clusula Handles de la declaracin controla el evento TextChanged de los tres controles TextBox. No importa qu cuadro de texto escriba primero, siempre se actualizar la etiqueta FullName segn escriba.
modifique fuera de su propio cdigo, desear exponerlo como una propiedad de slo lectura.
Intntelo
Para agregar propiedades En el Editor de cdigo, agregue el cdigo siguiente para exponer los valores FirstName, MiddleName y LastName como propiedades.
Copiar cdigo Property FirstNameText() As String Get Return FirstName.Text End Get Set(ByVal value As String) FirstName.Text = value End Set End Property Property MiddleNameText() As String Get Return MiddleName.Text End Get Set(ByVal value As String) MiddleName.Text = value End Set End Property Property LastNameText() As String Get Return LastName.Text End Get Set(ByVal value As String) LastName.Text = value End Set End Property
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 143
Agregue el cdigo siguiente para exponer el valor de la etiqueta FullName como una propiedad de slo lectura.
Copiar cdigo ReadOnly Property FullNameText() As String Get Return FullName.Text End Get End Property
Presione F5 para ejecutar el programa. En el UserControl TestContainer, desplcese a la parte inferior de la cuadrcula Propiedades y seleccione la propiedad FirstNameText. Escriba su nombre y, a continuacin, seleccione la propiedad FullNameText; el cuadro de texto FirstName debera mostrar el nombre y la propiedad FullNameText debera coincidir. Pruebe a cambiar algunas de las dems propiedades en la cuadrcula Propiedades y el propio control para ver cmo se relacionan. Esto es lo que un usuario del control experimentar en tiempo de diseo. En el men Archivo, elija Guardar todo para guardar el trabajo.
Expressalmacena los nmeros, de forma que puede hacer referencia a los valores por el nombre. Una enumeracin se declara utilizando la palabra clave Enum, como en el ejemplo siguiente.
Copiar cdigo Public Enum Display FirstMiddleLast FirstLast LastFirstMiddle LastFirst End Enum
Cuando ha creado una enumeracin, puede utilizarla como cualquier otro tipo. Para agregar una propiedad que muestre una lista de valores, en primer lugar declara una variable del mismo tipo que Enum y, a continuacin, declara una propiedad del mismo tipo. En tiempo de diseo, una lista de valores incluida en la enumeracin aparecer en la ventana Propiedades.
Intntelo!
Para agregar una propiedad que muestre una lista de valores Abra el proyecto NamesUserControl que cre en la leccin anterior. Si no lo guard, primero deber regresar a la leccin anterior, Agregar cdigo al control de usuario, y realizar hasta el final los procedimientos de esa leccin. En el Explorador de soluciones, seleccione NamesControl.vb y en el men Ver haga clic en Cdigo. En el Editor de cdigo, agregue el siguiente cdigo para crear una enumeracin.
Copiar cdigo Public Enum Display FirstMiddleLast FirstLast LastFirstMiddle LastFirst End Enum
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 145
Elimine el cdigo existente en el controlador de eventos FirstName_TextChanged y reemplcelo con el cdigo siguiente.
Copiar cdigo Select Case DisplayStyleList Case Display.FirstLast FullName.Text = FirstName.Text & " " & LastName.Text Case Display.FirstMiddleLast FullName.Text = FirstName.Text & " " & MiddleName.Text & " " & LastName.Text Case Display.LastFirst FullName.Text = LastName.Text & ", " & FirstName.Text Case Display.LastFirstMiddle FullName.Text = LastName.Text & ", " & FirstName.Text & " " & MiddleName.Text End Select
Presione F5 para ejecutar el programa. Escriba el nombre, el apellido y la inicial en los tres cuadros de texto. En UserControl TestContainer, desplcese a la parte inferior de la cuadrcula Propiedades y seleccione la propiedad DisplayStyle. Seleccione un valor diferente y, a continuacin, cambie el texto de uno de los cuadros de texto para ver cmo afecta a la etiqueta. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 146
Intntelo
Para probar el control de usuario Abra el proyecto NamesUserControl que cre en la leccin anterior. Si no lo guard, primero deber regresar a la leccin anterior, Agregar cdigo al control de usuario, y realizar hasta el final los procedimientos de esa leccin. En el men Archivo, elija Agregar y haga clic en Nuevo proyecto. En el cuadro de dilogo Agregar nuevo proyecto, seleccione Aplicacin para Windows. En el cuadro Nombre, escriba UserControlTest y haga clic en Aceptar. Se agregar un nuevo proyecto en el Explorador de soluciones y se mostrar un nuevo formulario. En el Explorador de soluciones, seleccione el proyecto UserControlTest y en el men Proyecto, seleccione Establecer como proyecto de inicio. En el Cuadro de herramientas, seleccione NamesControl y arrstrelo hasta el formulario. En la ventana Propiedades, establezca las propiedades FirstNameText, MiddleNameText y LastNameText que correspondan a su nombre. Presione F5 para ejecutar el programa. Cambie los nombres de los cuadros de texto para asegurarse de que la etiqueta se actualiza correctamente. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 147
Agregar etiquetas
En la ltima leccin, prob que el control de usuario NamesControl funcionaba debidamente. Quiz tambin haya pensado posibles formas para mejorarlo. Por ejemplo, no resulta obvio qu nombre debe escribirse en qu cuadro de texto y no hay modo de saber con certeza si los usuarios han especificado tres nombres. Para que el control de usuario resulte de mayor utilidad, puede agregar etiquetas que identifiquen todos los cuadros de texto. Podra establecer el texto para que las etiquetas indicaran "Nombre", "Segundo nombre" y "Apellido", pero, qu sucede si despus decide que prefiere una "Inicial de segundo nombre"? Es preferible crear propiedades para el texto de etiqueta de modo que pueda cambiar el texto en tiempo de diseo y dar un valor predeterminado a cada propiedad.
Intntelo
Para personalizar el control de usuario Abra el proyecto NamesUserControl que cre en la leccin anterior. Si no lo guard, primero deber regresar a la leccin anterior, Probar un control de usuario, y realizar hasta el final los procedimientos de esa leccin. En el Explorador de soluciones, seleccione NamesControl.vb y en el men Ver seleccione Diseador. En el Cuadro de herramientas, arrastre tres controles Label al diseador y coloque uno sobre cada TextBox. En el Explorador de soluciones, seleccione NamesControl.vb y en el men Ver elija Cdigo. En el Editor de cdigo, agregue el cdigo siguiente para crear las propiedades para el texto de la etiqueta.
Copiar cdigo Private text1 As String = "First Name" Property Label1Text() As String
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 148
Get Return text1 End Get Set(ByVal value As String) text1 = value Label1.Text = text1 End Set End Property Private text2 As String = "Middle Name" Property Label2Text() As String Get Return text2 End Get Set(ByVal value As String) text2 = value Label2.Text = text2 End Set End Property Private text3 As String = "Last Name" Property Label3Text() As String Get Return text3 End Get Set(ByVal value As String) text3 = value Label3.Text = text3 End Set End Property
Observe que el cdigo declara tres variables Private para el texto de etiqueta y que las declaraciones incluyen el valor predeterminado que se va a mostrar.
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 149
En el Editor de cdigo, seleccione (NamesControl Events) del cuadro de lista desplegable izquierdo y, a continuacin, seleccione el evento Load del cuadro de lista desplegable derecho. Agregue el cdigo siguiente al controlador de eventos NamesControl_Load.
Copiar cdigo ' Initialize the three labels Me.Label1.Text = Label1Text Me.Label2.Text = Label2Text Me.Label3.Text = Label3Text
En el men Generar, elija Generar solucin. En el Explorador de soluciones, seleccione Form1.vb y en el men Ver elija Diseador. Compruebe que las etiquetas tienen el texto predeterminado. Intente cambiar la propiedad Label1Text en la ventana Propiedades y compruebe que tambin cambia en el control. En el men Archivo, elija Cerrar para cerrar el Diseador de Windows Forms.
Agregar validacin
Otra personalizacin de utilidad sera agregar cdigo para validar lo que se escribe con el fin de asegurarse de que es correcto. En lugar de validar cada uno de los controles TextBox, puede escribir cdigo de validacin para el control de usuario completo. La mayora de los controles tiene un evento Validating que se produce cuando se desplaza el foco fuera del control; aqu es donde especificar el cdigo de validacin. En este caso, desear escribir el cdigo para asegurarse de que cada cuadro de texto contiene un nombre. Si estn vacos uno o varios cuadros de texto, desear mostrar un cuadro de mensaje para recordar al usuario que especifique su nombre. Puede exponer una propiedad que contenga un mensaje predeterminado; de ese modo, el usuario del control puede cambiar el mensaje lo que dice el mensaje. Tambin es posible que el usuario del control no requiera un segundo nombre, de modo que tambin desear agregar una propiedad Boolean para desactivar la validacin para el cuadro de texto MiddleName.
Intntelo
Para agregar la validacin Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 150
En el Editor de cdigo, agregue cdigo para dos propiedades relacionadas con la validacin, una para especificar si el segundo nombre es necesario y otra para especificar el mensaje que se mostrar si no se supera la validacin.
Copiar cdigo Private required As Boolean = True Property MiddleNameRequired() As Boolean Get Return required End Get Set(ByVal value As Boolean) required = value End Set End Property Private errormessage As String = "Please enter your name." Property ValidationErrorMessage() As String Get Return errormessage End Get Set(ByVal value As String) errormessage = value End Set End Property
En el Editor de cdigo, seleccione (NamesControl Events) del cuadro de lista desplegable izquierdo y, a continuacin, seleccione el evento Validating del cuadro de lista desplegable derecho. Agregue el cdigo siguiente al controlador de eventos NamesControl_Validating.
Copiar cdigo If MiddleNameRequired = True Then If FirstName.Text = "" Or MiddleName.Text = "" Or _ LastName.Text = "" Then
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 151
MsgBox(ValidationErrorMessage) End If Else ' Middle name isn't required. If FirstName.Text = "" Or LastName.Text = "" Then MsgBox(ValidationErrorMessage) End If End If
En el men Generar, elija Generar solucin. En el Explorador de soluciones, seleccione Form1.vb y en el men Ver elija Diseador. Seleccione el control de usuario en el formulario y compruebe que aparecen las dos nuevas propiedades en la ventana Propiedades. En el Cuadro de herramientas, arrastre un control Button al formulario. Presione F5 para ejecutar el programa. Escriba el nombre y apellido, pero no escriba un segundo nombre. Haga clic en el botn y se mostrar un cuadro de mensaje que contiene elValidationErrorMessage. En el men Archivo, elija Guardar todo para guardar el trabajo.
Ver grficos
En esta leccin, aprender a utilizar los mtodos de grficos en Visual Basic Expresspara dibujar en un formulario. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 152
En una leccin anterior, aprendi a mostrar imgenes en un formulario utilizando un control PictureBox. Eso funciona bien si ya tiene una imagen, pero a veces desear dibujar algo directamente en el formulario. Por ejemplo, puede desear dibujar una lnea para separar dos campos o un crculo para resaltar una etiqueta importante. En Visual Basic, puede utilizar mtodos de grficos para dibujar prcticamente cualquier cosa en un formulario o en un control.
Fundamentos de grficos
Antes de comenzar a dibujar, hay algunas cosas que debe saber. La pantalla de un equipo se compone de miles de puntos diminutos llamados pxeles; al definir el color de cada pxel, el programa controla lo que se muestra en la pantalla. Por supuesto, la mayora de este trabajo ya se realiza automticamente en el cdigo que define formularios y controles. Piense en un formulario como en un lienzo en el que puede dibujar o pintar: al igual que un lienzo real, un formulario tiene dimensiones. Mientras un lienzo real se mide en pulgadas o centmetros, un formulario se mide en pxeles. Un sistema de coordenadas determina donde se ubica cada pxel, con la coordenada X que mide de izquierda a derecha y la coordenada Y que mide de arriba a abajo. Las coordenadas se inician en la esquina superior izquierda del formulario, de manera que si desea dibujar un punto nico 10 pxeles desde la izquierda y 10 pxeles hacia abajo, las coordenadas X e Y se expresarn como 10, 10. Los pxeles tambin se utilizan para expresar el ancho y alto de los grficos. Para definir un cuadrado que tiene 100 pxeles de ancho y 100 pxeles de alto, cuya esquina superior izquierda se encuentra 10 pxeles a la izquierda y 10 pxeles hacia abajo, se expresar en coordenadas como 10, 10, 100, 100. El acto de dibujar en la pantalla se conoce como pintar. Los formularios y controles tienen un evento Paint que aparece siempre que es necesario volver a dibujarlo, por ejemplo cuando se muestra un formulario por primera vez o cuando otra ventana lo ha cubierto. Generalmente, cualquier cdigo que escribe para mostrar los grficos lo tiene el controlador de eventos Paint.
define el aspecto de la lnea; en este caso, el color. En el siguiente procedimiento, dibujar lneas horizontales, verticales y diagonales en un formulario.
Intntelo
Para dibujar lneas En el men Archivo, elija Nuevo proyecto. En el panel Plantilla, en el cuadro de dilogo Nuevo proyecto, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba Lines y haga clic en Aceptar. Se abre un nuevo proyecto de formularios Windows Forms. Haga doble clic en el formulario para abrir el Editor de cdigo y seleccione Pintar de la lista desplegable Eventos. En el controlador de eventos Form1_Paint, agregue el siguiente cdigo.
Visual Basic Express Copiar cdigo
' Draw a 400 pixel black line 25 pixels from the top of the form. e.Graphics.DrawLine(Pens.Black, 0, 25, 400, 25) ' Draw a 500 pixel red line 100 pixels from the left of the form. e.Graphics.DrawLine(Pens.Red, 100, 0, 100, 500) ' Draw a diagonal blue line from the upper left to the lower right. e.Graphics.DrawLine(Pens.Blue, 0, 0, Me.Width, Me.Height)
Dibujar una forma es similar a dibujar una lnea: se deben definir las coordenadas y el color con los que se va a dibujar. Mientras que una lnea adopta las coordenadas que definen un punto inicial y final, una forma como un cuadrado o un rectngulo adopta coordenadas que describen su esquina superior izquierda, su ancho y su alto. Los crculos y valos (tambin conocidos como elipses) no tienen esquina superior izquierda, por lo que en su lugar las coordenadas describen la esquina superior izquierda de su rectngulo delimitador: un rectngulo imaginario del mismo ancho y alto del crculo u valo.
Intntelo
Para dibujar formas En el men Archivo, elija Nuevo proyecto. En el panel Plantillas, en el cuadro de dilogo Nuevo proyecto, seleccione Aplicacin para Windows. En el cuadro Nombre, escriba Shapes y, a continuacin, haga clic en Aceptar. Se abrir un nuevo proyecto de formularios Windows Forms. Haga doble clic en el formulario para abrir el Editor de cdigo y seleccione Pintar en la lista desplegable Eventos. En el controlador del evento Form1_Paint, agregue el siguiente cdigo.
Visual Basic Express ' Draw a 200 by 150 pixel green rectangle. e.Graphics.DrawRectangle(Pens.Green, 10, 10, 200, 150) ' Draw a blue square e.Graphics.DrawRectangle(Pens.Blue, 30, 30, 150, 150) ' Draw a 150 pixel diameter red circle. e.Graphics.DrawEllipse(Pens.Red, 0, 0, 150, 150) ' Draw a 250 by 125 pixel yellow oval. e.Graphics.DrawEllipse(Pens.Yellow, 20, 20, 250, 125) Copiar cdigo
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 155
Presione F5 para ejecutar el programa. Observe que el cuadrado con relleno aparece por encima del crculo con relleno, pero esa parte de su borde ha desaparecido. El orden en el que se llama a los mtodos grficos determina el orden en el que se dibujan; en este caso, el crculo con relleno se dibuj despus del rectngulo con borde azul. Trate de cambiar el orden de los mtodos y vea lo que pasa.
est inclinado, no puede utilizar un control Label, pero s puede utilizar mtodos grficos para dibujar texto en cualquier ngulo.
Dibujar texto
Para dibujar texto en un formulario o control, se utiliza el mtodo grfico DrawString. Al igual que los otros mtodos de dibujo, DrawString toma un objeto Brush que determina el color y las coordenadas que especifican dnde dibujar el texto, en este caso, las coordenadas X e Y de la esquina superior izquierda del rectngulo delimitador para el texto. El mtodo DrawString tambin tiene dos argumentos adicionales: la cadena que desea dibujar y la fuente que determina el aspecto del texto. Para especificar la fuente, primero debe crear un objeto Font y utilizar dicho objeto como un argumento al mtodo DrawString.
Intntelo
Para dibujar texto En el men Archivo, elija Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba DrawText y haga clic en Aceptar. Se abre un nuevo proyecto de formularios Windows Forms. Haga doble clic en el formulario para abrir el Editor de cdigo y seleccione Pintar de la lista desplegable Eventos. En el controlador de eventos Form1_Paint, agregue el siguiente cdigo.
Visual Basic Express ' Create a font object. Dim aFont As New System.Drawing.Font("Arial", 22, FontStyle.Bold) ' Display the text with the DrawString method. e.Graphics.DrawString("Graphics are fun!", aFont, Brushes.Black, _ 20, 10) Copiar cdigo
Presione F5 para ejecutar el programa. Debe poder ver el texto que se muestra en el formulario. Mantenga abierto el proyecto: continuar utilizndolo en el siguiente procedimiento. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 157
Intntelo
Para dibujar texto girado En el controlador de eventos Form1_Paint, agregue el siguiente cdigo debajo del cdigo que escribi antes.
Visual Basic Express ' Rotate the text 45 degrees. e.Graphics.RotateTransform(45) e.Graphics.DrawString("And exciting too!", aFont, Brushes.Red, _ 100, 0) Copiar cdigo
Presione F5 para ejecutar el programa. Debe poder ver el texto girado que se muestra en el formulario.
como argumento, junto con las coordenadas X e Y que definen la esquina superior izquierda de la imagen.
Intntelo
Para mostrar una imagen girada En el men Archivo, elija Nuevo proyecto. En el panel Plantillas, en el cuadro de dilogo Nuevo proyecto, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba DrawImage y haga clic en Aceptar. Se abrir un nuevo proyecto de formularios Windows Forms. En el Explorador de soluciones, haga doble clic en el nodo Mi proyecto para abrir el Diseador de proyectos. En el Diseador de proyectos, haga clic en la ficha Recursos, seleccione Agregar recursos y, a continuacin, Agregar archivo existente. En el cuadro de dilogo Agregar archivo existente a los recursos, vaya a cualquier archivo de imagen, seleccinelo y, a continuacin, haga clic en Abrir. En el Explorador de soluciones, seleccione el nodo Form1 y, en el men Ver, seleccione Cdigo para abrir el Editor de cdigo. En el Editor de cdigo, seleccione la opcin Pintar de la lista desplegable Eventos. En el controlador de eventos Form1_Paint, agregue el siguiente cdigo.
Visual Basic Express e.Graphics.RotateTransform(45) e.Graphics.DrawImage(My.Resources.picture, 50, 0) Nota Reemplace picture con el nombre del recurso que agreg en un paso anterior. Copiar cdigo
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 159
Distribuir un programa
Hay varias maneras de compartir el programa con otros. Mediante el uso de la publicacin de ClickOnce, se puede poner el programa a disposicin en un CDROM o DVD-ROM, o bien puede publicarlo en un sitio Web donde otros usuarios puedan descargarlo y ejecutarlo. Tambin puede enviarlo por correo electrnico o simplemente copiarlo en un disco.
Publicacin de ClickOnce
Visual Basic Expressincluye herramientas para implementar el programa con un mtodo conocido como publicacin de ClickOnce, que facilita la implementacin incluyendo e instalando automticamente todos los componentes necesarios junto con el programa. ClickOnce permite publicar el programa en un CD-ROM o DVD que puede compartir con otros usuarios. Si tiene acceso a un servidor Web, tambin puede utilizar ClickOnce para publicar el programa en un sitio Web; el programa se puede descargar a travs de Internet. Si cambia el programa ms adelante, puede publicar la nueva versin y cualquier persona que lo haya descargado podr descargar automticamente la nueva versin la siguiente vez que lo ejecute. Para publicar un programa utilizando ClickOnce, debe tener acceso a un grabador de CD o DVD o a un servidor Web. Si no tiene acceso a ninguno de estos dispositivos, puede compartir el programa comprimindolo y copindolo en un disquete o envindolo a travs del correo electrnico.
En esta leccin, aprender a publicar el programa en un CD-ROM o DVD para compartirlo con otros usuarios. Para compartir el programa con otros usuarios, primero deber crear un programa de instalacin y copiarlo en un CD-ROM u otro soporte. Adems del programa en s, el programa de instalacin deber incluir otros componentes o archivos necesarios para que el programa se ejecute; stos se conocen como requisitos previos. Como imaginar, determinar exactamente qu requisitos necesita puede ser una tarea difcil; afortunadamente las herramientas de publicacin de ClickOnce en Visual Basic Expressrealizan estas y otras tareas. Tambin puede utilizar la publicacin de ClickOnce para publicar el programa en Internet o en una red local. Sin embargo, en esta leccin, publicar el programa en un CD. Nota Para publicar un programa en un CD-ROM o DVD, debe tener el hardware y software adecuados en el equipo que est utilizando para escribir el programa. Si puede grabar CDs de msica, tambin debera poder publicar en un CD. Si no dispone de esta posibilidad, quiz an pueda compartir el programa utilizando otro mtodo (para obtener ms informacin, vea Enviar un programa por correo electrnico: crear un archivo comprimido).
Cuando se ejecuta el Asistente para publicacin, ste determina automticamente cualquier requisito previo para el programa. De manera predeterminada, los requisitos previos como .NET Framework no se empaquetan realmente con el programa de instalacin; durante la instalacin, el programa de instalacin busca los requisitos previos y, si es necesario, los descarga e instala desde Internet. Para incluir los requisitos previos del programa de instalacin en el CD, establezca una propiedad en el Diseador de proyectos. Sin embargo, debe descargar primero los archivos redistribuibles para los requisitos previos en su equipo local. Para obtener ms informacin, vea Informacin detallada: incluir requisitos previos en el programa.
Intntelo
Para publicar en un CD En el men Archivo, seleccione Abrir proyecto. En el cuadro de dilogo Abrir proyecto, vaya a cualquier proyecto Aplicacin para Windows que haya creado en una leccin anterior y haga clic en Abrir. Presione F5 para ejecutar el proyecto. Si hay algn error, deber corregirlo antes de continuar. En el men Depurar, elija Detener depuracin. En el men Generar, seleccione Publicar nombre de proyecto, donde Nombre de proyecto es el nombre del proyecto. Se iniciar el Asistente para publicacin. En la pgina Dnde desea publicar la aplicacin? del Asistente para publicacin, escriba la ruta de acceso donde desea publicar el programa, por ejemplo , C:\My Programs. Si la carpeta no existe, se le solicitar que la cree. Haga clic en Siguiente para ir a la siguiente pgina del asistente. En la pgina Cmo instalarn los usuarios la aplicacin?, seleccione Desde un CD-ROM o un DVD-ROM y haga clic en Siguiente. En la pgina Dnde buscar la aplicacin las actualizaciones?, seleccione La aplicacin no comprobar si hay actualizaciones. Haga clic en Finalizar. El programa se publicar en la ubicacin que especific en la primera pgina del asistente.
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 162
Ahora puede utilizar la aplicacin de grabacin de CD o DVD para grabar un CD o DVD para el programa. Debe incluir todos los archivos en la carpeta donde public el programa. Lleve el CD o DVD listos a otro equipo y ejecute el archivo Setup.exe. Si se debe instalar cualquier requisito previo como .NET Framework, se le solicitar descargarlo e instalarlo. Una vez finalizada la instalacin, puede ejecutar el programa desde el acceso directo que se encuentra en el men Inicio. Para aprender a empaquetar los requisitos previos con el programa, mantenga abierto el proyecto, lo utilizar en la leccin Informacin detallada: incluir requisitos previos en el programa.
Intntelo
Para incluir requisitos previos Abra el proyecto de la leccin anterior, Distribuir un programa en CD: publicar con ClickOnce. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 163
En el Explorador de soluciones, seleccione el nodo del proyecto y en el men Proyecto, elija Propiedades. Se abrir el Diseador de proyectos. En el Diseador de proyectos, haga clic en la ficha Publicar. Haga clic en el botn Requisitos Previos para abrir el cuadro de dilogo Requisitos Previos. En el cuadro de dilogo Requisitos previos, active la casilla de verificacin Descargar los requisitos previos desde la misma ubicacin que mi aplicacin y haga clic en Aceptar En el men Generar, seleccione Publicar nombre de proyecto, donde Nombre de proyecto es el nombre del proyecto. Se inicia el Asistente para publicacin. Haga clic en Finalizar para publicar el programa.
Nota Es posible que se le solicite descargar los archivos redistribuibles de .NET Framework si an no lo ha hecho.
En el Explorador de Windows, vaya a la ubicacin donde se public el programa y compruebe que los archivos Setup.exe y Dotnetfx.exe estn all.
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 164
Information Server), las Extensiones de FrontPage deben estar instaladas y debe tener privilegios administrativos en IIS.
Intntelo!
Para publicar en un servidor Web En el men Archivo, seleccione Abrir proyecto. En el cuadro de dilogo Abrir proyecto, vaya a cualquier proyecto de Aplicacin para Windows y haga clic en Abrir. Presione F5 para ejecutar el proyecto. Si hay algn error, deber corregirlo antes de continuar. En el men Depurar, elija Detener depuracin. En el men Generar, seleccione Publicar nombre de proyecto, donde Nombre de proyecto es el nombre del proyecto. Se iniciar el Asistente para publicacin. En la pgina Dnde desea publicar la aplicacin? del Asistente para publicacin, escriba la direccin URL del sitio Web donde desea publicar el programa, por ejemplo http://www.microsoft.com/myprogram.
Nota Para publicar en un servidor Web, el servidor Web debe ejecutar IIS (Servicios de Internet Information Server), las Extensiones de FrontPage deben estar instaladas y debe tener privilegios administrativos en IIS.
Haga clic en Siguiente para ir a la siguiente pgina del asistente. En la pgina La aplicacin estar disponible sin conexin?, seleccione el valor predeterminado S, esta aplicacin est disponible con o sin conexin. Haga clic en Finalizar para publicar el programa. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 165
El programa se publicar en el sitio Web especificado y se crear una pgina HTML. En otro equipo, abra Internet Explorer, vaya a la direccin URL que escribi en el paso 6 y haga clic en el vnculo Instalar para instalar el programa.
Fragmentos de cdigo
Un modo de aumentar la productividad es evitar escribir el mismo cdigo una y otra vez. Visual Basic Express incluye una biblioteca de cdigo con 500 miniprogramas aproximadamente, denominados fragmentos de cdigo de IntelliSense, listos para ser insertados en una aplicacin. Cada miniprograma realiza una tarea de programacin completa, como crear un archivo, enviar un mensaje de correo electrnico o dibujar un crculo. Puede insertar un miniprograma en el cdigo fuente con unos pocos clics del mouse (ratn).
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 166
Una vez que se inserta el miniprograma, se resaltan los fragmentos de cdigo que es preciso sustituir; puede especificar sus valores si lo prefiere. Por ejemplo, un fragmento de cdigo que dibuja una lnea en un formulario tendr valores para el color, la ubicacin y la longitud. Puede cambiar estos valores segn sus necesidades personales, o no hacer nada y dibujar una lnea con los valores predeterminados. Tambin puede crear miniprogramas que satisfagan sus necesidades, agregarlos a la biblioteca y utilizarlos cuando necesite. Cuando cree miniprogramas, deber decidir qu partes del cdigo se resaltarn y cules sern los valores predeterminados. Para obtener ms informacin, vea Crear y utilizar fragmentos de cdigo de IntelliSense. Una tarea comn que se puede llevar a cabo con fragmentos de cdigo es leer y escribir texto en un archivo. El procedimiento siguiente muestra cmo los fragmentos de cdigo pueden hacerle ms productivo.
Intntelo
Para utilizar fragmentos de cdigo En el men Archivo, seleccione Nuevo proyecto. En el panel Plantillas, en el cuadro de dilogo Nuevo proyecto, haga clic en Aplicacin para Windows. En el cuadro Nombre, escriba Snippets y, a continuacin, haga clic en Aceptar. Se abre un nuevo proyecto de formularios Windows Forms. Haga doble clic en el formulario para abrir el Editor de cdigo. En el Editor de cdigo, haga clic con el botn secundario del mouse en el controlador de eventos Form1_Load y elija Insertar fragmento de cdigo en el men desplegable. Se mostrar una lista de categoras de miniprograma. Haga doble clic en Procesar unidades, carpetas y archivos Se mostrar una lista de miniprogramas. Haga doble clic en Escribir texto en un archivo. Se insertar el cdigo siguiente y se resaltarn "C\Test.txt" y "Text".
Copiar cdigo
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 167
My.Computer.FileSystem.WriteAllText("C:\Test.txt", "Text", True) Nota El mtodo WriteAllText crear el archivo si no existe. Si ya existe, agregar el texto al final del archivo.
Reemplace "C\Test.txt" con "C\MySnippetTest.txt" y "Text" por "This is really fast!". Agregue un segundo miniprograma, haga clic con el botn secundario del mouse y seleccione Insertar fragmento de cdigo en el men. Haga doble clic en Procesar unidades, carpetas y archivos Haga doble clic en Leer texto desde un archivo. Se insertar el cdigo siguiente y se resaltar "C\Test.txt".
Copiar cdigo Dim fileContents As String fileContents = My.Computer.FileSystem.ReadAllText("C:\Test.txt")
Reemplace "C\Test.txt" por "C\MySnippetTest.txt". Agregue el cdigo siguiente debajo del ltimo miniprograma para mostrar el resultado.
Copiar cdigo MsgBox(fileContents)
Presione F5 para ejecutar el programa. Se crear un archivo con el texto especificado y se mostrar un cuadro de mensaje con el contenido del archivo. Dedique algn tiempo a familiarizarse con los miniprogramas de cdigo incluidos en Visual Basic Express , le ahorrarn mucho tiempo y esfuerzo cuando escriba cdigo. Para obtener ms informacin, vea Cmo: Administrar fragmentos de cdigo.
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 168
Otra caracterstica RAD incluida en Visual Basic Express se llama My. My es un conjunto de objetos que contienen las funciones ms utilizadas relacionadas con el equipo, la aplicacin, el usuario, etc. Puede considerar My una marcacin rpida para llegar a funciones que, de otro modo, requeriran mucho cdigo adicional. Por ejemplo, suponga que desea determinar el nmero de versin de la aplicacin. En la versin anterior de Visual Basic, el cdigo se parecera al siguiente.
Copiar cdigo Dim VersionNumber As String VersionNumber = System.Diagnostics.FileVersionInfo.GetVersionInfo _ (System.Reflection.Assembly.GetExecutingAssembly.Location).FileVersion
Como puede ver, el procedimiento My es mucho ms sencillo (y mucho ms fcil de descubrir), lo que ahorra tiempo y esfuerzo. Aun as, podra utilizar la otra manera de determinar el nmero de versin, pero por qu hacerlo? Aunque quiz no se haya dado cuenta, ya ha utilizado My en varias lecciones anteriores. Cuando escriba cdigo para una prxima aplicacin, explore los objetos My escribiendo My y desplazndose por la lista de elementos que aparece. Para obtener ms informacin, vea Desarrollo con la funcin My.
IntelliSense
A medida que avanzaba por las lecciones y escriba cdigo, quiz haya observado que segn escriba, apareca una lista desplegable de opciones en el Editor de cdigo. ste es un ejemplo de la caracterstica conocida como IntelliSense. IntelliSense ofrece varias caractersticas que facilitan el acceso a referencias del lenguaje. Al escribir el cdigo, no necesita abandonar el Editor de cdigo para obtener informacin sobre los elementos del lenguaje. Puede quedarse donde est, buscar la informacin que necesite, insertar elementos del lenguaje directamente en el cdigo e, incluso, dejar que IntelliSense termine de escribir el texto automticamente. Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 169
IntelliSense tambin es de utilidad en la depuracin. En el Editor de cdigo, puede mover el cursor sobre una variable para mostrar informacin sobre herramientas con el valor actual de la variable. IntelliSense tambin est disponible al escribir el cdigo en la ventana Inmediato. Para obtener ms informacin, vea Utilizar IntelliSense.
Reproducir sonidos
Si crea un juego, probablemente desear que el programa reproduzca sonidos en respuesta a distintos eventos. El objeto My.Computer.Audio permite hacer exactamente eso, reproducir archivos de onda que puede incluir en la Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 170
aplicacin o incluso reproducir archivos directamente desde Internet. Para obtener ms informacin, vea My.Computer.Audio (Objeto).
Agregue personalizacin
Se ha preguntado alguna vez cmo las pginas Web recuerdan el nombre de un usuario y muestran mensajes como "Bienvenido de nuevo (insert your name here)" ? Puede hacer algo similar en su aplicacin utilizando la propiedad My.User.Name (Propiedad) para obtener el nombre del usuario que ha iniciado la sesin en curso en el equipo. Para obtener ms informacin, vea My.User (Objeto).
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 171
Visual Basic Express tambin tiene un componente BackgroundWorker que facilita realizar tareas en segundo plano. Para obtener ms informacin, vea Tutorial: Implementar un formulario que utiliza una operacin en segundo plano.
Everts Garay | Granada, Nicaragua| Paseo por Visual Basic 2008 172