Anda di halaman 1dari 35

Captulo 3 Entorno y Lenguaje de Programacin 13/09/05 _____________________________________________________________________________________________

3.12 Diseo de Aplicaciones en Visual Basic 6.0


Aunque el entorno visual interactivo de Visual Basic, y similares, posee una serie de herramientas integradas en una interfaz grfica de usuario, es preciso tener en cuenta una serie de elementos para efectuar el diseo, y realizar una serie de etapas metodolgicas para disear una aplicacin (o proyecto). Como primer elemento del diseo est el algoritmo, previamente elaborado, en su versin final refinada. Dicho algoritmo gua el diseo en el entorno visual. Cada bloque lgico de construccin del algoritmo ha de tener su correpondencia en el diseo visual que se realice. Un segundo elemento lo conforma el formulario bsico de diseo. Normalmente, un proyecto en Visual Basic tiene por lo menos un formulario; sin embargo, muchas aplicaciones se estructuran utilizando varios formularios. Un tercer elemento est conformado por los diferentes controles (objetos) que se pueden manejar y ubicar convenientemente en los formularios de diseo. En la caja de herramientas se visualizan los controles estndar; muchos otros se pueden insertar en la misma pestaa General o en otras pestaas que se adicionen. Las etapas metodolgicas se categorizan entres tiempos diferentes: el tiempo de diseo, el tiempo de ejecucin, y el tiempo de depuracin. El tiempo de diseo implica disear la interfaz, establecer las propiedades y escribir el cdigo fuente (los programas). Adems, el diseo de un proyecto en Visual Basic implica utilizar una serie de principios. Algunos de ellos son los siguientes: Ante todo, est el estilo y el criterio personal. La distribucin y combinacin de los objetos obedece al criterio del diseador. La combinacin de colores refleja los gustos y particularidades de quien disea. Esto es as, debido a que esta parte del desarrollo de una aplicacin, mediante un ambiente visual interactivo, posee mucho de arte, de inteligencia emprica (o artesanal). No obstante, el manejo del color es crucial. Existe toda una teora del color (la cromatologa) y de sus impactos en las personas. Como regla general, se recomienda no utilizar colores demasiados fuertes ni combinaciones extravagantes. Los principios del diseo grfico son igualmente aplicables. Los tipos de las fuentes, sus colores y tamaos pueden determinar buena parte del impacto de una interfaz. La amigabilidad del software que se est desarrollando es un factor muy importante del diseo. En los ambientes empresariales, siempre ha de tenerse en cuenta al usuario final de la aplicacin, pues es el que estar interactuando con la misma buena parte de su jornada diaria de trabajo.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 369

Ingeniero William Alvarez Montoya walvarem@unalmed.edu.co

http://www.unalmed.edu.co/~walvarem

13/09/05

Diseo de la interfaz
La interfaz es el medio bsico de comunicacin entre el usuario y el algoritmo que se dise. En Visual Basic, la interfaz consta de uno o ms formularios sobre los cuales se ubican y organizan los diferentes objetos que representan las operaciones del algoritmo que se est implementando. La figura siguiente es un ejemplo de una interfaz tpica en Visual Basic.
Figura 3.37 Una interfaz sencilla

Los diferentes controles (labels, cajatexto, botonescomando, frames) se encuentran en la caja de herramientas, desde donde se pueden traer, ubicar y organizar en el formulario de diseo. El conjunto de controles, incluyendo al formulario, es la sociedad de objetos que implementa el algoritmo diseado. Y aunque la interfaz mostrada es muy simple y no est totalmente refinada, es un buen ejemplo de interfaz en Visual Basic. Cuando un objeto, como el frame de la figura, tiene los recuadritos obscuros alrededor de su permetro, significa que dicho objeto (o control) es el objeto activo, el que tiene el enfoque. Sobre dicho objeto se pueden efectuar, entonces, las operaciones de establecer las propiedades y de escribir el cdigo fuente (programas) pertinentes. Es posible alinear los controles que se encuentran agrupados, utilizando la opcin Format de la barra del men principal. Para seleccionar a la vez varios controles que se quieran alinear, se sostiene la tecla Control y se va haciendo click sobre ellos; as quedan seleccionados; luego, se emplea la opcin Align del men Format para escoger el tipo de alineamiento a establecer. Es conveniente que las cajastexto queden sin ningn mensaje en su interior; para ello se debe dejar en blanco la propiedad Text.

Establecer las propiedades


Cada uno de los objetos de una interfaz en Visual Basic tiene una serie de caractersticas, o atributos, llamadas genricamente propiedades. En el enfoque orientado a objetos, los diversos objetos de una aplicacin tienen incrustados, def forma estndar, muchos de los datos que manejan. Dichos datos se visualizan como propiedades en Visual Basic. La ventana de propiedades lista, precisamente, las propiedades para cada uno de los objetos de la interfaz. Como ya se explic en secciones anteriores, hay propiedades cuyos efectos se ven tanto a tiempo de diseo como a tiempo de ejecucin (por ejemplo: Caption, BackColor); tambin hay propiedades cuyos objetos slo se visualizan a tiempo de ejecucin (por ejemplo: WindowState). En la figura siguiente se muestra la correspondencia entre los objetos de la interfaz y la ventana de propiedades.

Captulo 3 Entorno y Lenguaje de Programacin

Pgina 370

Captulo 3 Entorno y Lenguaje de Programacin 13/09/05 _____________________________________________________________________________________________

Figura 3.38 Establecer las propiedades de los objetos

El objeto que tiene el enfoque en la interfaz, el Frame2, es el que aparece activo en la casilla de objetos de la ventana de propiedades. Si de dicha casilla se selecciona otro objeto, ste aparecer con el enfoque en la interfaz.

Escribir el cdigo fuente


El cdigo fuente (o programas) es el mecanismo mediante el cual se le da las funcionalidades del algoritmo a los diferentes objetos de la interfaz. No todos los objetos requieren programacin explcita. De todas formas, por el solo hecho de aparecer en la interfaz, un objeto ya posee una programacin implcita automtica que el mismo entorno de Visual Basic realiza.
Figura 3.39 Un Programa

Para escribir los programas se emplea el editor de programas. Se llega a la ventana del editor de programas haciendo doble-click en un objeto especfico. En la figura siguiente se muestra el programa para el objeto Command1, el primer botn de comando de la interfaz arriba descrita (el botn con el mensaje Leer Datos).

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 371

Ingeniero William Alvarez Montoya walvarem@unalmed.edu.co

http://www.unalmed.edu.co/~walvarem

13/09/05

En la ventana mostrada en la figura 3.39, inmediatamente debajo de la barra de ttulo y control, se encuentran dos cajalista (cajas de texto que despliegan una lista); la flecha hacia el extremo de cada cajalista permite desplegar la lista respectiva. La cajalista de la izquierda permite seleccionar los diferentes objetos de la interfaz. La cajalista derecha sirve para escoger los diversos eventos asociados con un objeto especfico; cada evento se maneja por medio de un procedimiento. Todo proyecto en Visual Basic consta de una serie de procedimientos. Cada procedimiento implementa por lo menos una funcionalidad del algoritmo. El formato bsico de todo procedimiento se inicia con Private Sub y finaliza con End Sub; entre estos dos van las diferentes instrucciones segn la lgica del algoritmo. En este ejemplo se leen los valores numricos de entrada, con verificacin del rango vlido; adems, se emplea una rutina de control de errores atrapables.

Ejecucin y depuracin
Una vez se han elaborado los programas para cada uno de los objetos que as lo requieran, se puede entrar al tiempo de ejecucin con el fn de que efectivamente se ejecuten las secuencias de instrucciones de los procedimientos. Es posible que se presenten errores al ejecutar un programa. La figura siguiente ilustra el mensaje que despliega Visual Basic cuando se presenta un error de desbordamiento en la ejecucin de un proyecto.
Figura 3.40 Ventana de los mensajes de Depuracin

Mediante el botn End se termina la interaccin con el proyecto; con el botn Debug se entra al modo de depuracin que permite ubicar la instruccin donde se ha presentado el error y realizar los correctivos dle caso; mediante el botn Help se visualiza una explicacin del error y de los posibles cursos de accin a tener en cuenta para subsanar tal error.

Captulo 3 Entorno y Lenguaje de Programacin

Pgina 372

Captulo 3 Entorno y Lenguaje de Programacin 13/09/05 _____________________________________________________________________________________________

3.13 Validar datos en Visual Basic 6.0


Los temas que comprende esta seccin son los siguientes: Validacin de datos a nivel de campo, utilizando InputBox(), ciertas propiedadesde algunos controles, y las funciones de verificacin de datos. Uso de los eventos KeyPress, KeyUp, LostFocus y KeyDown para validar datos. Emplear el control Microsoft MaskedEditBox para validar datos con mscaras de entrada de datos. Validacin de datos a nivel de formulario. Creacin y uso de controles en VisualBasic para el diseo de la interfaz de una aplicacin (o proyecto). Para la gran mayora de programas que se escriben con VisualBasic es preciso ingresar datos que requieren verificacin de sus tipos o de sus rangos de valores, para que los otros procesos algortmicos no generen errores. Tal proceso se llama Validacin de los datos. Hay diversas tcnicas que permiten validar los datos, que van desde la interceptacin de pulsaciones de tecla individuales a la validacin de todos los datos de un formulario cuando un usuario hace clic en el botn "Aceptar". Los objetivos bsicos de este captulo incluyen la creacin de proyectos en VisualBasic que: Verifiquen los datos de campo y de formulario introducidos por un usuario. Utilicen el control de edicin con mscara. Habiliten o inhabiliten los controles que se basan en valores introducidos en los campos.

Validacin de datos a nivel de campo


Una aplicacin bien diseada debe evitar tantos errores de entrada de datos como sea posible. Por ejemplo, si necesita un valor numrico, cree un campo que slo acepte nmeros. El usuario no podr escribir ninguna letra. Esta seccin explica diversas tcnicas para validar datos en un campo, que incluyen la utilizacin de la funcin InputBox, la definicin de propiedades, la utilizacin de los eventos del teclado y la utilizacin del control de edicin con mscara.

Usar InputBox
La funcin InputBox muestra un cuadro de dilogo estndar que solicita al usuario que escriba una cadena. Cuando el usuario hace clic en "Aceptar" o presiona ENTRAR, la funcin InputBox devuelve el contenido del cuadro de texto. Si el usuario hace clic en "Cancelar", InputBox devuelve una cadena vaca (""). Este ejemplo utiliza una funcin InputBox dentro de una instruccin Do...Loop para pedir al usuario que escriba una fecha vlida.
__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 373

Ingeniero William Alvarez Montoya walvarem@unalmed.edu.co Private Sub cmdGetDate_Click() Do

http://www.unalmed.edu.co/~walvarem

13/09/05

StartDate = InputBox("Escriba una fecha inicial") If IsDate(StartDate) Or StartDate = "" Then ValidDate = True Else ValidDate = False MsgBox "Escriba una fecha vlida: dd/mm/aa" End If

Loop Until ValidDate End Sub

Este cdigo muestra un cuadro de entrada tal como aparece a continuacin, en la figura 3.41.
Figura 3.41. Validacin de un dato tipo fecha

Ejemplo de evntana generada con la funcin InputBox() en Visual Basic 6.0.

Usar las propiedades para restringir la introduccin de datos


Se puede evitar algunos errores de entrada de datos y mejorar la forma en que se utiliza la aplicacin con slo definir, para un objeto especfico, varias propiedades tal como se muestra en el diagrama de la figura 3.42. Figura 3.42 Definir propiedades para la entrada de datos Los valores de las propiedades para los diferentes objetos (controles) de esta ventana de dilogo son los que se resaltan. Dichos valores se pueden establecer a tiempo de diseo o a tiempo de ejecucin.

Algunas de las propiedades, comunes a muchos controles son: MaxLength, PassWordChar, Default, Cancel, Locked.

Captulo 3 Entorno y Lenguaje de Programacin

Pgina 374

Captulo 3 Entorno y Lenguaje de Programacin 13/09/05 _____________________________________________________________________________________________

Propiedad MaxLength La propiedad MaxLength determina la longitud mxima del texto permitido en un cuadro de texto. El sistema emite un pitido cuando el usuario intenta escribir ms all de la longitud mxima. Si desea que se muestre un mensaje de error, deber interceptar la pulsacin de tecla en el evento KeyPress o bien utilizar el control de edicin con mscara, procedimientos que se tratarn posteriormente en este mismo captulo. Propiedad PasswordChar La propiedad PasswordChar determina el carcter que debe mostrarse a medida que el usuario escribe el texto en un cuadro de texto. Aunque puede utilizarse cualquier carcter, la mayora de las aplicaciones basadas en Windows utilizan el carcter asterisco (*), que es el carcter Chr(42). Esta propiedad no afecta a la propiedad Text; la propiedad Text contiene exactamente lo que el usuario escribe o lo que se ha establecido. Propiedad Default Si la propiedad Default de un botn de comando es True, el evento Click de ese botn se ejecuta cuando el usuario presiona ENTRAR . Slo uno de los botones de comando de un formulario puede tener la propiedad Default establecida a True. Propiedad Cancel Si la propiedad Cancel de un botn de comando es True, el evento Click de ese botn se ejecuta cuando el usuario presiona ESC en el formulario. Slo uno de los botones de comando de un formulario puede tener la propiedad Cancel establecida a True. Propiedad Locked La propiedad Locked determina si los usuarios pueden modificar los datos de un cuadro de texto. Si Locked es True, los usuarios slo podrn ver los datos de un cuadro de texto.

Usar Eventos para el control de datos


Algunos eventos permiten efectuar ciertos controles con respecto a los datos. Particularmente, son muy tiles los eventos Keypress, KeyUp, LostFocus y KeyDown.

Usar KeyPress para modificar las pulsaciones de teclas


Puede utilizar los eventos del teclado para validar datos a medida que el usuario los escribe. Puede evitar que el usuario escriba ciertos caracteres, por ejemplo, limitando la entrada a slo nmeros. Tambin puede modificar los datos a medida que se escriben, por ejemplo, convirtiendo los caracteres en maysculas. El evento KeyPress tiene lugar siempre que el usuario escribe un carcter ASCII estndar. Esto no incluye la mayora de las teclas especiales, como las teclas de funcin, las teclas de direccin o la tecla SUPR. Para responder a esas teclas, utilice los eventos KeyDown y KeyUp.

Uso de KeyPress para validar datos


__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 375

Ingeniero William Alvarez Montoya walvarem@unalmed.edu.co

http://www.unalmed.edu.co/~walvarem

13/09/05

En el ejemplo siguiente, los caracteres se convierten en maysculas a medida que el usuario los escribe: Sub Text1_KeyPress (KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub En este ejemplo de cdigo se evita que el cuadro de texto reciba caracteres que no sean dgitos.
Sub Text1_KeyPress (KeyAscii As Integer) If KeyAscii = 8 Then 'Permitir el uso de RETORNO Exit Sub End If 'Los nicos caracteres vlidos son los dgitos. If Chr(KeyAscii) < "0" Or Chr(KeyAscii) > "9" Then KeyAscii = 0 'Poner a null si est fuera del intervalo. Beep End If End Sub

Para obtener una lista de los valores ASCII, vea "ASCII" en la Ayuda, o en la seccin 3.7, tabla 3.1.

Uso de KeyUp y KeyDown para validar datos


Utilice los eventos KeyUp o KeyDown para interceptar teclas de funciones y teclas que no provoquen un evento KeyPress. Los eventos KeyUp y KeyDown se desencadenan cuando se produce cualquier actividad del teclado. Tanto KeyUp como KeyDown proporcionan un cdigo de tecla que identifica de forma exclusiva a una tecla del teclado y un argumento que indica si se han presionado las teclas MAYSCULAS, ALT o CONTROL. En este ejemplo de cdigo se utiliza el evento KeyDown para verificar la tecla F1.
Sub Text1_KeyDown (KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyF1 Then MsgBox "Ha presionado F1!" End If End Sub

Visual Basic proporciona las constantes de los cdigos de tecla. Para ver las constantes de los cdigos de tecla disponibles, elija F2 para mostrar el Examinador de objetos, despus elija los objetos y procedimientos de VB - Visual Basic del cuadro de lista "Bibliotecas/Proyectos" y por ltimo elija KeyCodeConstants en el cuadro de lista "Clases/Mdulos".

Captulo 3 Entorno y Lenguaje de Programacin

Pgina 376

Captulo 3 Entorno y Lenguaje de Programacin 13/09/05 _____________________________________________________________________________________________

Figura 3.43. Constantes de los cdigos de tecla, predefinidas en Visual Basic 6.0.

Usar control de edicin con mscara para el control de datos


VisualBasic proporciona ciertos controles especiales, construdos por Microsoft o por otros fabricantes, que permiten realizar controles de edicin con formatos especficos a los datos, lo que usualmente se denomina edixin con mscara. El control MaskedEditBox La edicin Profesional de Visual Basic incluye un control de edicin con mscara, que proporciona una introduccin de datos restringida, as como una salida de datos con formato. Utilice el control de edicin con mscara para crear fcilmente formularios que requieran datos en formatos especficos. Para agregar un control de edicin con mscara a la Caja de herramientas (Versin 4.0): 1. En el men Herramientas, elija Controles personalizados. 2. Seleccione "Microsoft Masked Edit Control" y haga clic en el botn "Aceptar". Para agregar un control de edicin con mscara a la Caja de herramientas (Versiones 5.0, 6.0): En el men Proyecto, elija Componentes (o haga click derecho sobre la caja de herramientas, en un espacio que no tenga controles, y del men contextual escoja Componentes). Seleccione "Microsoft Masked Edit Control" y haga clic en el botn "Aceptar".

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 377

Ingeniero William Alvarez Montoya walvarem@unalmed.edu.co

http://www.unalmed.edu.co/~walvarem

13/09/05

En la figura 3.44 se muestra la apariencia fsica del control de edicin de mscaras, tanto para la versin 4.0 de Visual Basic, como para las versiones 5.0, 6.0. Figura 3.44 Control para la edicin de mscaras. Este objeto facilita la validacin de datos en las aplicaciones de Visualbasic (versiones 4.0, 5.0, 6.0).

Propiedades importantes
Hay varias propiedades del control de edicin con mscara que se pueden manipular para restringir la entrada y salida de datos. Este diagrama ayuda a clarificar estos conceptos de forma visual.
Figura 3.45. Ejemplo del uso del Control para edicin con mscaras.

Propiedad Mask
Puede definir una mscara de entrada utilizando la propiedad Mask. La posicin de cada carcter del control de edicin con mscara se asigna a un marcador de posicin de un tipo especificado o un carcter literal. Puede escribir sus propias mscaras utilizando los caracteres especiales para las mscaras o una de las mscaras predefinidas. Algunos caracteres de mscara indican una entrada obligatoria. Por ejemplo la mscara "#" indica una entrada numrica obligatoria. Se produce un evento ValidationError si el usuario cambia de campo sin escribir ningn valor vlido. La mscara "9" es un valor numrico opcional. El usuario puede cambiar de campo sin escribir ningn nmero.

Propiedades ClipText y Text


La propiedad Text de un control de edicin con mscara devuelve los datos que el usuario ha escrito, junto con la mscara. La propiedad ClipText del control devuelve slo los datos que ha escrito el usuario.

Propiedad AutoTab

Captulo 3 Entorno y Lenguaje de Programacin

Pgina 378

Captulo 3 Entorno y Lenguaje de Programacin 13/09/05 _____________________________________________________________________________________________

Si AutoTab es True y el usuario llena un control con el nmero mximo de caracteres, el siguiente carcter que escriba har que el enfoque se desplace al siguiente control, donde aparecer el carcter. Si AutoTab es False, el usuario deber presionar ENTRAR o TAB para desplazarse al control siguiente.

Borrado de un control de edicin con mscara


En el ejemplo siguiente se borra un campo de edicin con mscara: mskEmpID.Text = "___-___" 'Coincidir con campo de mscara exactamente

Evento ValidationError
Si el usuario escribe un carcter no vlido respecto a la mscara de entrada, deber proporcionarle cierta informacin para indicarle el error. Para proporcionar informacin de retorno puede colocar el cdigo en el evento ValidationError. El evento ValidationError se produce si el usuario escribe un carcter no vlido o sale del control de edicin con mscara sin escribir los caracteres necesarios. Si intenta asignar una cadena a un control de edicin con mscara y la cadena representa una infraccin respecto a la mscara, se produce un evento ValidationError y un error en tiempo de ejecucin (por este orden). La cadena no se asigna al control. El control de edicin con mscara conserva el valor que tena antes de que se intentara la asignacin. Esto podra suceder si est leyendo informacin de una base de datos y sta entra en conflicto con la mscara. Argumentos: El evento ValidationError ofrece dos argumentos: InvalidText La cadena que no es vlida. StartPosition La posicin del carcter no vlido.

Ejemplo
En este ejemplo de cdigo, el mensaje de error "Lmite de 6 dgitos" se muestra si el usuario escribe ms de 6 dgitos. Se muestra un mensaje de error si el usuario escribe un valor que no sea un nmero.
Sub mskID_ValidationError (InvalidText As String, _ StartPosition As Integer) If StartPosition = mskID.MaxLength Then lblError.Caption = "Lmite de 6 dgitos" Else lblError.Caption = "Slo dgitos" End If End Sub

Si trata de asignar una cadena que no es vlida a un control de edicin con mscara, recibe un evento ValidationError y un error en tiempo de ejecucin.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 379

Ingeniero William Alvarez Montoya walvarem@unalmed.edu.co

http://www.unalmed.edu.co/~walvarem

13/09/05

En el siguiente cdigo, se supone que mskID tiene la mscara "###-###". Esta instruccin causa un evento ValidationError y un error en tiempo de ejecucin. La propiedad Text de mskID no cambia. El argumento InvalidText ser "222a34444". El argumento StartPosition ser "3". mskID.Text = "222a34444" Esta demostracin repasa las propiedades del evento ValidationError.

El evento LostFocus
Algunas aplicaciones validan los datos cuando el usuario pulsa la tecla del tabulador desde el campo. Si la entrada no es vlida, la aplicacin muestra un mensaje de error y establece el enfoque al campo con datos no vlidos. La ventaja de este tipo de validacin es que se avisa al usuario inmediatamente si un campo no es correcto. Si utiliza este mtodo para validar datos de campo, recuerde lo siguiente: Permita que el usuario disponga de alguna forma de pulsar la tecla de tabulacin desde el campo sin haber completado el mismo. Si el usuario no sabe qu entrada es vlida, no le obligue a permanecer en ese campo. Utilice SetFocus con cuidado. Podra dar lugar a un bucle infinito donde existan dos controles que estn utilizando SetFocus en el evento LostFocus.

Por ejemplo, suponga que tiene un formulario con dos cuadros de texto, txtFirstName y txtLastName y que el evento LostFocus para cada cuadro de texto utiliza SetFocus para obligar al usuario a volver al campo si el valor no es vlido. Dar lugar a un bucle infinito si txtFirstName y txtLastName contienen datos no vlidos. Por ejemplo: 1. El usuario escribe datos no vlidos en txtFirstName pulsa el tabulador para ir a txtLastName. 2. txtFirstName recibe un evento LostFocus. 3. El mtodo SetFocus se coloca en la cola para ejecutarse cuando sea posible. 4. txtLastName recibe un evento GotFocus. 5. SetFocus se ejecuta tras el evento GotFocus de txtLastName. Esto da lugar a que txtLastName reciba un evento LostFocus. 6. Si txtFirstName tambin tiene datos errneos, la aplicacin emite otro SetFocus para establecer el enfoque nuevamente a txtLastName, dando lugar a un bucle infinito.

Definicin de un indicador para evitar un bucle infinito


Si elige validar datos en el evento LostFocus, debe definir un indicador para indicar si hay alguna validacin en proceso para evitar un bucle infinito. En este ejemplo se muestra un mtodo de validacin de datos en el evento LostFocus. El procedimiento establece un indicador global para determinar si la validacin est en proceso. En este ejemplo se utiliza la instruccin DoEvents para que el mtodo SetFocus se ejecute inmediatamente en lugar de hacerlo al finalizar el procedimiento. Sin la instruccin DoEvents, el mtodo SetFocus no se ejecuta hasta que termine el evento LostFocus. En ese caso, la variable ValidationInProgress ya se habra restablecido y podra dar lugar a un bucle infinito. Dim ValidationInProgress As Boolean
Captulo 3 Entorno y Lenguaje de Programacin Pgina 380

Captulo 3 Entorno y Lenguaje de Programacin 13/09/05 _____________________________________________________________________________________________

Private Sub txtFirstName_LostFocus() If Not (ValidationInProgress) Then 'aceptar validacin If txtFirstName.Text = "" Then ValidationInProgress = True txtFirstName.SetFocus lblError.Caption = "Se necesita el nombre." DoEvents ValidationInProgress = False End If End If End Sub Private Sub txtLastName_LostFocus() If Not (ValidationInProgress) Then 'aceptar validacin If txtLastName.Text = "" Then
Nota: En lugar de validar datos en el evento LostFocus, considere la posibilidad de colocar el

cdigo de validacin en un botn "Aceptar". Esto permite al usuario rellenar el formulario y a continuacin hacer clic en "Aceptar" para validar todos los campos. Esta demostracin ilustra la utiliza cin de LostFocus para realizar la validacin.

Validacin a nivel de formulario


En esta seccin se explican tres mtodos de validacin en un formulario: cmo establecer un controlador de teclado a un formulario, cmo habilitar un botn "Aceptar" cuando se completa un formulario y cmo validar los datos de un formulario en un botn "Aceptar".

Un controlador de teclado a nivel de formulario


En algunos casos, es posible que desee ejecutar el cdigo cuando un usuario presiona una tecla determinada desde cualquier lugar del formulario. No importa qu control tiene el enfoque. Por ejemplo, quiz desee que F9 realice una rutina comn. En lugar de agregar el cdigo al evento KeyPress para cada control, puede agregar el cdigo al evento KeyPress del formulario. Los formularios disponen de una propiedad KeyPreview que determina si el formulario recibe los eventos de teclado antes que los controles. Si KeyPreview es True, el formulario recibe el evento de teclado primero y a continuacin, lo recibe el control. Si la propiedad KeyPreview de un formulario est establecida a False, el formulario no recibe los eventos de teclado. En este ejemplo de cdigo se muestra un cuadro de mensaje cuando el usuario presiona F2.
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyF2 Then MsgBox "Ha presionado F2!" End If End Sub Nota: Si el evento de tecla de formulario establece KeyAscii a 0, no se producirn los eventos

de tecla de control.

Habilitar un boton "Aceptar"

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 381

Ingeniero William Alvarez Montoya walvarem@unalmed.edu.co

http://www.unalmed.edu.co/~walvarem

13/09/05

El programa debe proporcionar pistas visuales sobre los comandos que estn disponibles. Por ejemplo, si necesita que el usuario rellene todos los campos antes de hacer clic en el botn "Aceptar", no deber habilitar el botn "Aceptar" hasta que se hayan escrito datos en todos los campos tal como se muestra en esta ilustracin.
Figura 3.46. Botn ACEPTAR desactivado.

Mediante esta tcnica es posible restringir el cceso a ciertos procesos que requieren variables necesariamente obtenidas de procesos previos. En este ejemplo, slo cuando se termine de digitar el cdigo del departamento, y/o se pulse alguna tecla adicional, se habilitara el botn Aceptar. En el siguiente ejemplo de cdigo se muestra una manera de llevar a cabo esta operacin. El ejemplo realiza un bucle por la coleccin Controls para validar cada control. La coleccin Controls es una coleccin predefinida proporcionada por Visual Basic y contiene todos los controles del formulario. Private Sub Form_Load() cmdOK.Enabled = False End Sub Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) 'Habilitar el botn "Aceptar" slo si todos los cuadros de texto tienen entradas Dim curControl As Control For Each curControl In Controls If TypeOf curControl Is TextBox Then If curControl.Text = "" Then 'el cuadro de texto est vaco cmdOK.Enabled = False 'inhabilitar el botn "Aceptar" Exit Sub End If 'Pueden verificarse otros tipos de control si es necesario End If Next 'todos los cuadros de texto contienen informacin cmdOK.Enabled = True End Sub

Validar todos los campos de un formulario


En comparacin con lo que ocurre con la tcnica de validacin en un campo que verifica cada campo despus de que el usuario lo rellene, este mtodo valida todos los campos cuando el usuario hace clic en "Aceptar". En este escenario, la aplicacin permite al usuario completar el formulario y hacer clic en "Aceptar" ; y a continuacin, valida todos los campos. Despus, la aplicacin vuelve a establecer el enfoque al primer campo que tenga datos que no sean vlidos.
Captulo 3 Entorno y Lenguaje de Programacin Pgina 382

Captulo 3 Entorno y Lenguaje de Programacin 13/09/05 _____________________________________________________________________________________________ Figura 3.47. formulario. Validacin de campos en un

La validacin de campos es una tcnica requerida para garantizar que los datos que intervienen en un proceso de clculo o en otras operaciones, dentro de los algoritmos y programas, son exactamente los requridos, en sus contenidos y tipos de datos, paraa validez de operaciones y resultados. Este ejemplo contiene cdigo en el botn de comando "Aceptar", que valida todos los datos del formulario: Private Sub cmdOK_Click() If txtFirstName.TEXT = "" Then lblError.Caption = "Proporcione un nombre." txtFirstName.SetFocus Exit Sub ElseIf txtLastName.TEXT = "" Then lblError.Caption = "Proporcione un apellido." txtLastName.SetFocus Exit Sub ElseIf mskDept.ClipText = "" Then lblError.Caption = "Proporcione un departamento." mskDept.SetFocus mskDept.ForeColor = vbRed Exit Sub ElseIf CInt(mskDept.ClipText)<50 Or CInt(mskDept)>80 Then lblError.Caption = "Nmero de departamento no vlido" & _ "Los valores vlidos estn entre 50 y 80" mskDept.SetFocus mskDept.ForeColor = vbRed Exit Sub Else Unload Me End If End Sub

Eventos de un formulario usados al validar datos


Los formularios tienen varios eventos que puede utilizar para validar datos. Initialize y Terminate

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 383

Ingeniero William Alvarez Montoya walvarem@unalmed.edu.co

http://www.unalmed.edu.co/~walvarem

13/09/05

El evento Initialize se produce cuando una aplicacin crea una instancia de un formulario (antes de que se cargue o se muestre el formulario). Utilice el evento Initialize para inicializar variables en un formulario. El evento Terminate se produce cuando el formulario se establece a Nothing.
Nota: Las variables de formulario se mantienen cuando se descarga (Unload) un formulario. Las

variables de formulario se borran cuando un formulario se establece a Nothing. En el cdigo siguiente se muestran cules son los eventos causados por diversos mtodos e instrucciones:
Form2.iCount = 3 'Da lugar al evento Initialize Form2 Form2.Load 'Da lugar al evento Load Form2 Form2.Show 'Da lugar al evento Activate Form2.Unload 'Da lugar al evento Unload Msgbox Form2.iCount 'Muestra 3 Form2.Show 'Da lugar al evento Load Form2.Unload 'Da lugar al evento Unload set Form2 = Nothing 'Da lugar al evento Terminate

Activate y DeActivate Los eventos Activate y Deactivate se producen cuando el enfoque se desplaza hacia o desde un formulario de una aplicacin. Tenga en cuenta que los eventos Activate y DeActivate no se producen si el usuario cambia el enfoque a otra aplicacin distinta y vuelve. Estos eventos slo se producen cuando el usuario se desplaza dentro de la aplicacin actual.
Nota :El formulario recibe un evento GotFocus o LostFocus nicamente si no existen controles en el formulario capaces de recibir el enfoque.

Load y Unload Los eventos Load y Unload se producen cuando se carga o descarga el formulario. Puede utilizar el evento Load para inicializar los controles. Puede utilizar el evento Unload para cerrar archivos y guardar la informacin. QueryUnload El evento QueryUnload se produce justo antes del evento Unload cuando se descarga el formulario. El evento QueryUnload le permite determinar cmo se ha iniciado el evento Unload y cancelar la descarga si se desea.
El evento QueryUnload dispone de dos argumentos:

El argumento UnloadMode indica cmo se inici Unload. El argumento Cancel cancela el evento Unload. Si establece Cancel a True, la aplicacin seguir tal como se encontraba antes de que se intentara el cierre.

Captulo 3 Entorno y Lenguaje de Programacin

Pgina 384

Captulo 3 Entorno y Lenguaje de Programacin 13/09/05 _____________________________________________________________________________________________

Nota: La instruccin End no produce ningn evento. Si desea asegurarse de que el evento Unload del formulario se produzca cuando finalice la aplicacin, utilice la instruccin UnLoad en lugar de la instruccin End. En este ejemplo de cdigo se cancela una descarga (Unload) si el usuario ha tratado de cerrar la aplicacin eligiendo Cerrar del men de sistema.
Sub Form_QueryUnload (Cancel As Integer, _ UnloadMode As Integer) If UnloadMode = vbFormControlMenu Then MsgBox "No utilice Cerrar desde el men Control." Cancel = True End If End Sub

El argumento UnloadMode puede tener los valores mostrados en la tabla 3.18:


Tabla 3.18. Valores del argumento UnloadMode Valor Constante Significado VbFormControlMenu El usuario ha elegido Cerrar desde el men Control del 0 formulario. VbFormCode La instruccin Unload se utiliz desde el cdigo. 1 VbAppWindows La aplicacin est cerrndose como resultado de finalizar la 2 sesin de Windows. VbAppTaskManager La aplicacin est cerrndose desde el Administrador de tareas. 3 VbFormMDIForm El formulario MDI secundario est cerrndose debido al cierre del 4 formulario MDI.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 385

Ingeniero William Alvarez Montoya walvarem@unalmed.edu.co

http://www.unalmed.edu.co/~walvarem

13/09/05

3.14 Usar Controles en Visual Basic 6.0


Ya se vi que la interfaz, en un proyecto VisualBasic, contiene uno o ms formularios en los cuales se han ubicado controles especficos que realizan diversas funciones segn la lgica de los algoritmos diseados. Tambin se emplean los controles (u objetos) para la entrada y el despliegue de datos. Algunos controles, como el formulario y el frame, pueden contener a otros controles: son los contenedores. Otros controles permiten el acceso a otras aplicaciones y procesos de datos, como si las aplicaciones remotas formaran parte del proyecto que hemos diseado. Cada control posee una apariencia propia (interfaz), una serie de atributos o propiedades, mtodos que le dan operabilidad, y un conjunto de eventos para responder a las acciones del usuario o de otros objetos. Son las anteriores caractersticas las que le dan su potencia y riqueza de expresin, para modelar los procesos organizacionales, a la Programacin Orientada por Objetos. VisualBasic, aunque no es un legtimo lenguaje orientado por objetos, s es un lenguaje de programacin basado en objetos. Todo el entorno integrado de desarrollo (IDE = Integrated Development Environment) es un gran objeto que contiene a otros muchos objetos (mens, barra de herramientas, formularios, controles, otras ventanas, etc.). Un objeto es un tipo abstracto de datos que permite integrar los diversos conjuntos de datos de una aplicacin con los programas que manejan esos datos, de suerte que un proyecto (o aplicacin) puede abstraerse como una sociedad de objetos que realizan diversas funciones y que interactan a travs de mensajes y el paso de parmetros. En esta seccin se estudiarn los siguientes temas relacionados con los controles: Los tipos de controles de la caja de herramientas; Cmo efectan acciones los controles; Entrada y despliegue de texto; Controles que despliegan opciones ante el usuario; Cmo obtener y establecer el enfoque de un objeto; Establecer la secuencia de activacin en un conjunto de objetos; Activacin, desactivacin y control de la visibilidad de objetos, a tiempo de ejecucin; Utilizar un arreglo de controles.

Los controles en la caja de herramientas


Uno de los utilitarios ms importantes, del entorno visual e interactivo de VisualBasic, es la caja de herramientas cuya estructura y apariencia se ilustra en la figura 3.48 (para la versin 4.0 de VisualBasic).

Captulo 3 Entorno y Lenguaje de Programacin

Pgina 386

Captulo 3 Entorno y Lenguaje de Programacin 13/09/05 _____________________________________________________________________________________________ Figura 3.48. Controles disponibles en la caja de herramientas de VisualBasic 4.0. Categora de los controles Hay tres categoras generales de los controles en VisualBasic: 1. Controles estndar, tales como Label (rtulo), TextBox (CajaTexto), CommandButton (BotnComando), o Frame ( Marco), los cuales estn ensamblados dentro del programa ejecutable *.EXE de VisualBasic. Los controles estndar siempre aparecen en la Caja de herramientas. Dependiendo del tipo de versin que se tenga instalada (aprendizaje, profesional, o empresarial) habrn ms o menos controles estndar en la caja de herramientas. 2. Controles personalizados son aquellos que existen como archivos independientes del tipo *.VBX o *.OCX. Estos incluyen controles especializados, tales como el control CommonDialog y controles producidos por empresas de softaware especializadas en esta tecnologa, as como las versiones mejoradas de los controles estndar, tales como el control Data-BoundListBox o el control DataBoundComboBox. 3. Controles insertables, como una hoja de clculo del tipo Microsoft Excel, una presentacin de PowerPoint, o un calendario de proyecto en Microsoft Project Calendar. Estos controles se pueden agregar y remover de la caja de herramientas (lo mismo que los controles personalizados). Algunos de los objetos insertables soportan la tecnologa de automatizacin OLE (denominada ahora ActiveX), la cual permite interactuar con otras aplicaciones -locales o remotas- dentro de un proyecto de VisualBasic.

Para las versiones 5.0 y 6.0 de VisualBasic, la caja de herramientas luce como se muestra en la figura 3.49, que se muestra en la pgina siguiente.
Figura 3.49. Caja herramientas VisualBasic 5.0,6.0(a)

Estos son los controles estndar que aparecen en la lengeta General.

Figura 3.49. Caja herramientas VisualBasic 5.0,6.0 (b)

Controles definidod por el usuario en una lengeta Personal.

En las versiones 5.0 y 6.0 de VisualBasic, la caja de herramientas permite agregar otras lengetas ( o fichas) para incluir controles adicionales, ya sean personalizados o insertables. En (a) se tiene
__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 387

Ingeniero William Alvarez Montoya walvarem@unalmed.edu.co

http://www.unalmed.edu.co/~walvarem

13/09/05

los controles de tipo estndar y otros que se han agregado (como el control MaskEdBox) bajo la lengeta General . En (b) se presenta la lengeta Personal que incluye controles personalizados. Para agregar otra ficha, se hace click derecho sobre la caja de herramientas, en un rea libre de objetos, y del men contextual se selecciona la opcin Agregar ficha; se da el nombre de la ficha en el panel de dilogo resultante; se hace click en ACEPTAR.

Para ver y agregar controles personalizados siga los siguientes pasos, en la versin 4.0:

Haga click izquierdo en el men Herramientas y del submen que se despliega seleccione, haciendo click izq., la opcin Controles personalizados . Otra forma: Haga click derecho en la caja de herramientas, en un rea libre de controles, y del men contextual resultante escoja la opcin Controles personalizados (haciendo click izq. sobre ella). El panel (o ventana) de dilogo que se presenta, muestra la lista de controles personalizados e insertables disponibles en la versin instalada de VisualBasic. Los que estn sealados (con un chuleado) son los activos. Para incluir otros controles en la caja de herramientas, simplemente selelos en la lista presentada, de suerte que la casilla de verificacin a la izquierda del nombre quede chuleada. Luego, haga click izquierdo en el botn ACEPTAR. Para ver y agregar controles personalizados en las versiones 5.0 y 6.0, el procedimiento es similar:

Haga click izquierdo en el men Proyecto y del submen que se despliega seleccione, haciendo click izq., la opcin Componentes. Otra forma: Haga click derecho en la caja de herramientas, en un rea libre de controles, y del men contextual resultante escoja la opcin Componentes (haciendo click izq. sobre ella). El panel (o ventana) de dilogo que se presenta, muestra la lista de controles personalizados e insertables disponibles en el tipo de versin instalada de VisualBasic (de aprendizaje, profesional o empresarial). Los que estn sealados (con un chuleado) son los activos. Para incluir otros controles en la caja de herramientas, simplemente selelos en la lista presentada, de suerte que la casilla de verificacin a la izquierda del nombre quede chuleada. Luego, haga click izquierdo en el botn APLICAR, y luego click izquierdo en el botn CERRAR.

Descripcin bsica de los controles

Captulo 3 Entorno y Lenguaje de Programacin

Pgina 388

Captulo 3 Entorno y Lenguaje de Programacin 13/09/05 _____________________________________________________________________________________________

En la tabla 3.19 se presenta una breve descripcin de cada control, como aparece en las cajas de herramientas de las figuras 350 y 351. El nombre de la clase hace referencia al tipo especfico de objeto y al nombre conque se identifica el control en la propiedad Name de la ventana de propiedades. Los valores de cada control se relacionaron en la tabla 15 (captulo: introduccin). Tabla 3.19. Descripcin bsica de los controles.
Control Nombre de la clase Pointer Descripcin El puntero del mouse suministra el medio principal de ubicar y ajustar el tamao de los formularios y controles. (No es propiamente un control). El control PictureBox (CajaGrfica) despliega varios tipos de grficos de los disponibles dentro del VisualBasic y de Windows: bitmaps (*.bmp), conos (*.ico), metarchivos (*.wmf), y otros tipos como el *.jpg y el *.gif. Este control puede desplegar texto o actuar como contenedor de otros controles. Slo despliega texto. Sirve para visualizar mensajes de cualquier tipo. El usuario no puede editar ni modificar los mensajes desplegados por este control. Proporciona un rea de edicin, permitiendo entrar datos y tambin visualizar datos. Sirve para agrupar a otros controles, generalmente con funciones afines dentro de un proyecto. Es el principal medio para expresar ciertas acciones o comportamientos dentro de una interfaz. El usuario, normalmente, lo activa haciendo click sobre este control. Sirve para desplegar opciones del tipo S/No, o Yes/Not. Se puede tener y chequear, a la vez, cualquier cantidad de este control en un formulario, en un momento dado. Permite suministrar al usuario mltiples opciones, de las cuales slo se puede escoger una. Es una combinacin de una CajaTexto (TextBox) con una CajaLista (ListBox) , permitiendo editar un dato o seleccionar de las opciones ofrecidas. Suministra una lista de items de la cual el usuario puede escoger. Permite seleccionar un valor dentro de un rango especfico, mostrado como una barra deslizante horizontal. Es un control independiente y no se ha de confundir con las barras de desplazamiento que contienen muchos otros objetos, tanto en el entorno de VisualBasic como en el ambiente Windows. Se utiliza para seleccionar un valor, de entre un rango de valores, presentados como una barra deslizante vertical. Es un control independiente y no se ha de confundir con las barras de desplazamiento propias de muchos otros objetos, tanto en el entorno de VisualBasic como en el ambiente del sistema operativo Windows. El temporizador permite ejecutar eventos temporales, expresados como intervalos de tiempo, normalmente basados en el reloj interno de mquina (y expresados en milisegundos). Facilita y permite escoger unidades de disco vlidas, de entre un listado que automticamente presenta este control, y que corresponde a las unidades o dispositivos de almacenamiento presentes en el computador (tales como diskettes, discos duros, unidades de CD-Rom, etc.).

PictureBox

Label TextBox Frame CommandButton

CheckBox OptionButton ComboBox ListBox

HScrollBar

VScrollBar

Timer

DriveListBox

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 389

Ingeniero William Alvarez Montoya walvarem@unalmed.edu.co

http://www.unalmed.edu.co/~walvarem

13/09/05

DirListBox FileListBox

Permite escoger directorios y trayectorias de directorios, de entre la estructura (arbrea) de directorios presentes en una unidad de disco. Sirve para escoger archivos de entre una lista que automticamente este control presenta al usuario, de los archivos (ficheros) grabados en una carpeta (o directorio) especfica. Sirve para agregar una figura a un formulario. Las figuras que se pueden agregar son: rectngulo, cuadrado, elipse, o crculo. Dichas figuras estn automticamente disponibles dentro de este control. Para dibujar un segmento de lnea recta. Despliega archivos grficos tipo *.bmp, *.ico, *.wmf, *.gif, *.jpg. Tambin acta como un botn de comando cuando se hace click sobre l. Se utiliza para conectar una interfaz con un archivo de base de datos, previamente creado, y desplegar informacin de la base de datos. Permite incrustar aplicaciones basadas en Windows dentro de un proyecto VisualBasic. La automatizacin OLE (Object-Linking and Embedding) hace posible correr otras aplicaciones dentro de los proyectos VisualBasic. Combina las propiedades del ComboBox con las funciones de acceso a datos. Combina las propiedades del control ListBox con las funciones de acceso a datos. Un control Grid muestra una serie de filas y columnas. La interseccin de una fila y una columna es una celda. Puede leer y establecer el contenido de cada celda en cdigo (programas). Un control Data-BoundGrid combina las propiedades del control Grid con las facilidades de acceso a datos. Ha de emplearse conjuntamente con un control Data para efectuar el enlace con un archivo de base de datos. Combina las caractersticas del control TextBox con las funciones de la edicin de datos con mscaras de edicin. Es muy til en los procesos de validacin de datos.

Shape Line Image Data OLE DBComboBox DBListBox Grid

Data-BoundGrid

MaskEdBox

Para ubicar un control en el formulario de diseo, siga los siguientes pasos:


En la caja de herramientas, haga click izquierdo sobre el control a ubicar. Lleve el puntero del mouse al formulario; el puntero es ahora una cruceta. Haga click izquierdo, sostenga el click y arrastre horizontal y luego verticalmente hasta obtener el tamao deseado. Suelto el botn del mouse. Sobre el formulario aparecer el control insertado con una serie de recuadritos negros en el permetro; esto significa que dicho control es el que tiene el enfoque de diseo, y con tales ajustadores de tamao se puede redefinir las dimensiones del control. Para ello se coloca el puntero del mouse sobre un ajustador, y al cambiar el puntero a una doble flecha, se hace click izquierdo, se sostiene el click y se arrastra horizontal o verticalmente, dependiendo del ajustador pulsado.

Captulo 3 Entorno y Lenguaje de Programacin

Pgina 390

Captulo 3 Entorno y Lenguaje de Programacin 13/09/05 _____________________________________________________________________________________________

Para reubicar un control sobre un formulario, simplemente se hace click izquierdo sobre l (as tiene el enfoque de diseo), se sostiene el click y se desplaza a la nueva ubicacin en el formulario. Otra forma de incluir controles en un formulario : en la caja de herramientas, haga dobleclick izquierdo sobre el control especfico, con lo cual dicho control se inserta en el formulario ms o menos hacia el centro del mismo. Este tipo de insercin de controles en un formulario da automticamente el enfoque de diseo al control, con lo cual los ajustadores de tamao estn visibles. Luego de insertar el control puede reubicarse y modificarse sus dimensiones de la forma explicada anteriormente.

Acciones de los controles


La forma ms simple de interactuar con una aplicacin es a travs de un botn de comando sobre el cual se puede hacer click o pulsar una tecla. Se puede emplear el control estndar proporcionado por VisualBasic, el CommandButton, o se puede disear a la medida empleando un control Image sobre el cual se inserta un cono determinado. La prctica generalizada de disear aplicaciones con VisualBasic utiliza botones de comando de tipo estndar, el CommandButton, para lograr ciertas acciones o comportamientos en la interfaz. Cuando un BotnComando se pulsa, se invoca automticamente el evento Click asociado con dicho control. Los programas que dan comportamientos al control se escriben en el evento Click. Hay varias maneras de escoger un control tipo BotnComando a tiempo de ejecucin: Por medio del mouse haciendo click sobre el BotnComando: Mover el enfoque al BotnComando, pulsando la tecla TAB (tabulador), y luego escogiendo el control por medio de la tecla SPACEBAR (espaciadora) o la tecla ENTER. Pulsando una tecla rpida (ALT + letra subrayada) diseada para el control. Establecer en True la propiedad Value para el control, por medio del programa. Si el BotnComando es el CommandButton estndar (por defecto) para el formulario, pulsando la tecla ENTER escoge el control, aunque se cambie el enfoque a un control diferente. En tiempo de diseo se especifica el control tipo CommandButton como estndar estableciendo la propiedad Default a True. Si un BotnComando es el botn estndar de cancelacin para un formulario, entonces pulsando la tecla ESC se escoge el BotnComando, aunque se cambie el enfoque a otro control. En tiempo de diseo, se especifica un botn estndar de cancelacin estableciendo la propiedad Cancel a True.

Todas las acciones anteriores hacen que VisualBasic invoque automticamente el procedimiento (o programa) del evento Click.

Edicin y despliegue de datos


Por medio de la propiedad Caption un control despliega un mensaje identificador de lo que el control hace.
__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 391

Ingeniero William Alvarez Montoya walvarem@unalmed.edu.co

http://www.unalmed.edu.co/~walvarem

13/09/05

En la figura 3.50 se muestra una interfaz en la cual se han diseado dos controles del tipo BotnComando (CommandButton), cada uno con un mensaje apropiado (esta aplicacin es tomada de las aplicaciones de ejemplo que trae el VisualBasic; se hallan en la carpeta \SAMPLES\CONTROLS del directorio donde est grabado el VisualBasic; vea el formulario BUTTON.FRM en el proyecto CONTROLS.VBP). Las propiedades de los objetos que conforman la interfaz, se muestran en la tabla 3.20.

Tabla 3.20. Propiedades de la interfaz


Objeto Form Propiedad BackColor Caption Name Caption Font Name Caption Font Name Name Name Name Valor &H00C0C000& Prueba de botones frmButton Cambiar &seal MsSansSerif, Negrita,12 cmdChange &Cerrar MsSansSerif, Negrita,12 cmdClose ImgRed ImgGreen ImgYellow

Command1

Command2 Image1

Figura 3.50. Uso del BotnComando.

Image2 Image3

La imagen, que se asemeja a un semforo, est formada por tres imgenes contiguas (imgRed, imgGreen, imgYellow). Para denotar que una letra especfica est habilitada como letra rpida, se coloca un signo de ampersand (&) antes de ella. Ese es el caso de los botones cmdChange y cmdClose. De suerte, que para el botn cmdChange la letra ese (s) es la letra habilitada como letra rpida para activar el botn (se empleara ALT + S: aqu el signo ms slo indica pulsar a la vez). La programacin de los objetos (o controles), que requieren efectuar algn comportamiento en la interfaz de la figura 3.50, se presenta en la figura 3.51.

Captulo 3 Entorno y Lenguaje de Programacin

Pgina 392

Captulo 3 Entorno y Lenguaje de Programacin 13/09/05 _____________________________________________________________________________________________

El entorno interactivo de VisualBasic dispone de un editor especializado para escribir la programacin de los diferentes objetos que componen una interfaz. Para activar el editor se puede hacer doble click izquierdo en uno de los objetos diseados.

(a)Procedimiento ChangeSignal.

Private Sub ChangeSignal() Verifica de qu color es la luz del semforo, y la cambia al prximo color. El orden es: verde, amarillo y rojo If (ImgGreen.Visible = true)Then ImgGreen.Visible = False ImgYellow = True ElseIf(ImgYellow.Visible = True)Then ImgYellow.Visible = False ImgRed.Visible = True Else ImgRed.Visible = False ImgGreen.Visible = True End if End Sub

La ventana del editor tiene la estructura bsica de una ventana en Windows. La barra de ttulo y control contiene el nombre del formulario y los botones de control. Debajo de la barra de control est la barra de herramientas, que en este caso contiene dos casillas con sendas listas.

La casilla Objeto da la lista de los diferentes objetos definidos en la interfaz; aparecen con los nombres asignados en la propiedad Name. La casilla Procedimiento da la lista de los diversos eventos preesablecidos para el objeto seleccionado en la casailla Objeto.
La esrtructura estndar de todo procedimiento en Visual Basic es as:

Private Sub nombreobjeto_evento ([argumentos])

...................
End Sub (c)Objeto cmdChange

Private Sub cmdChange_Click() Llama al procedimiento ChangeSignal ChangeSignal End Sub


(c)Objeto imgGreen Private Sub imgGreen_Clcik()

Para el objeto cmdChange se programa el evento Click. Este procedimiento llama a otro procedimiento de nombre ChangeSignal . Esa es la sintaxis para invocar un procedimiento: simplemente con su nombre.

Llama al procedimiento ChangeSignal ChangeSignal End Sub

Para el objeto imgGreen (ImageBox, cuadro de imagen) se programa el evento Click. Este procedimiento invoca al procedimiento de nombre ChangeSignal. Lo mismo hacen los otros objetos de la interfaz: imgRed e imgYellow.

Figura 3.51. Programacin de la interfaz mostrada en la figura 3.50.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 393

Ingeniero William Alvarez Montoya walvarem@unalmed.edu.co

http://www.unalmed.edu.co/~walvarem

13/09/05

Algunos aspectos adicionales de la aplicacin botones


En primer lugar, el procedimiento ChangeSignal (figura 3.51) utiliza la estructura de seleccin lgica con el formato If .. ElseIF .. End If para escoger entre varias posibilidades lgicas. Para activar/desactivar la visibilidad de los objetos tipo ImageBox se emplea instrucciones del tipo: objeto.propiedad = valor as, por ejemplo se hace visible el objeto grfico de color amarillo con la instruccin imgYellow.Visible = True En este tipo de instruccin el punto acta como un operador de jerarqua y de pertenencia: la propiedad Visible pertenece al control (objeto) imgYellow. Obsrvese la indentacin en la escritura del programa para el procedimiento ChangeSignal. Tal indentacin no es necesaria, pero es muy conveniente dentro de un estilo estructurado de escribir programas en el ambiente de VisualBasic. La prctica la aconseja, por cuanto es mucho ms fcil identificar errores y descubrir problemas de lgica si el programa tiene una estructuracin como la mostrada en la parte (a) de la figura 3.51. Los controles tipo Label slo permiten el despliegue de mensajes; el usuario no puede editar ni modificar los mensajes (en general, los textos) desplegados por este tipo de control. Los controles tipo Label muestran los mensajes mediante la propiedad Caption, que se puede definir tanto a tiempo de diseo como a tiempo de ejecucin. Con dicha propiedad se pueden desplegar mensajes explicativos para controles que no posean dicha propiedad, o crear -para ese mismo tipo de controles- teclas de acceso rpido (como para los controles tipo TextBox, PictureBox, ComboBox, ListBox, Drive ListBox, DirListBox, Grid, Image, HScroolBar y VScrollBar). Adicionalmente, los controles tipo Label poseen dos propiedades que facilitan el despliegue de los mensajes, incluso si son extensos. La primera propiedad es AutoSize cuyo efecto es que el control se adapta al tamao del mensaje (se ajusta horizontamente). La propiedad WordWap hace que el control despliegue en forma automtica varios renglones para adaptarse al tamao del texto. Para ilustrar dichas propiedades, en un objeto Label, se emplea la interfaz que se muestra en la figura 3.52, cuyos los objetos se describen en la tabla 3.21.

Captulo 3 Entorno y Lenguaje de Programacin

Pgina 394

Captulo 3 Entorno y Lenguaje de Programacin 13/09/05 _____________________________________________________________________________________________ Tabla 3.21. Propiedades de la interfaz/fig. 3.52 Objeto
Form

Propiedad
BackColor Caption Name Caption

Valor
&H8000000F& Propiedades de Label frmWordWrap Una demostracin de AutoSize y WordWrap lblDisplay &H0080FFFF& OPCIONES Stencil, Negrita, 14 &H000080FF& &AutoSize Tahoma, Negrita, 14 chkAutoSize &WordWrap Tahoma, Negrita, 14 chkWordWrap &Visualizar Tahoma, Negrita, 14 cmdDisplay &Cerrar Tahoma, Negrita, 14 cmdClose

Label1 Name Frame1 BackColor Caption Font ForeColor

Caption CheckBox1 Font Name Caption CheckBox2 Font Name

Figura 3.52. Uso del control Label.

Caption Command1 Font Name Caption Command2 Font Name

Algunos aspectos adicionales de la aplicacin AutoSize/WordWrap


El formulario de la figura 3.52 se ha disminudo su tamao para efectos de presentarlo en la pantalla. En la aplicacin dentro del ambiente de VisualBasic debe haber suficiente espacio entre el objeto lblDisplay, que es el Label, y los dems objetos, particularmente el objeto Frame1 y sus objetos contenidos; esto con el fn de que a tiempo de ejecucin se vea claramente el efecto de las propiedades AutoSize y WordWrap. Las propiedades presentadas en la tabla 3.21 corresponden a las que cambian para los objetos diseados en la interfaz. Las propiedades que no es preciso manejar en los algoritmos del proyecto, permanecern con sus valores que automticamente les asigna el entorno de VisualBasic. La programacin de los diferentes objetos listados en la tabla 3.21, correspondientes a la interfaz de la figura 3.52, se presenta a continuacin en la tabla 3.22. Es claro, que en una interfaz no todos los objetos requieren programacin explcita. Para este ejemplo, los botones de comando son los objetos que se programan. Los dems objetos tienen la propia programacin automtica (implcita) del entorno de VisualBasic.

Tabla 3.22. Programas para la interfaz de la figura 3.52. __________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 395

Ingeniero William Alvarez Montoya walvarem@unalmed.edu.co

http://www.unalmed.edu.co/~walvarem

13/09/05

Private Sub cmdDisplay_Click() ' Restablece el ejemplo. lblDisplay.AutoSize = False lblDisplay.WordWrap = False lblDisplay.Width = 1695 lblDisplay.Height = 255 ' verifica WordWrap y Autosize. If (chkWordWrap.Value = 1) Then lblDisplay.WordWrap = True End If If (chkAutoSize.Value = 1) Then lblDisplay.AutoSize = True End If End Sub

A tiempo de ejecucin, el usuario har click en las casillas de verificacin (controles CheckBox). Si sobre la casilla de verificacin del control chkAutoSize se ha hecho click, la propiedad Value es 1; en este caso, la propiedad AutoSize se pone a True. Si sobre la casilla de verificacin del objeto chkWordWrap se ha hecho click, la propiedad Value es 1; en este caso, la propiedad WordWrap se pone a True. Esta es la lgica que se implementa con las instrucciones If .. End If en el evento Click. La propiedad Width da el ancho de un objeto; y la propiedad Height da su altura (en twips, que son unidades de medida grfica en el entorno de VisualBasic: 1 twip = 1/1440 pgda.). El botnComando cmdClose corrobora la salida del tiempo de ejecucin empleando la funcin MsgBox(), que retorna valores enteros. La variable T se define como Byte (entero) para recibir el valor que devuelve la funcin; si dicho valor es 6, el usuario puls el botn S, y en consecuencia se descarga el formulario de memoria (UnLoad Me), terminndose el tiempo de ejecucin y retornndose al tiempo de diseo.

Private Sub cmdClose_Click() Dim T As Byte, Msg$, Tit$ '........................................ Msg$ = ".. REALMENTE QUIERE SALIR ? " Tit$ = "** CONFIRMAR SALIDA **" T = MsgBox(Msg$, 64, Tit$) If (T = 6) Then UnLoad Me End If End Sub

Los controles tipo TextBox (CajaTexto) son bastante verstiles, permitiendo tanto la entrada de datos desde la terminal (pantalla/teclado) como el despliegue de datos en la pantalla. Este tipo de control slo maneja texto, por lo cual hay que efectuar diversas validaciones sobre los datos, cuando son numricos , para poderlos utilizar en los algoritmos. Es decir, que todo dato que se digite en este tipo de control, tiene una representacin interna como String.
Hay dos propiedades que definen la apariencia y el comportamiento de los controles tipo TextBox: la propiedad MutiLine y la propiedad ScrollBars, cuyos valores slo pueden establecerse a tiempo de diseo. La propiedad MutiLine es de contenido lgico (tipo de datos Boolean); slo admite False o True (ver figura 3.53), y hace posible que una CajaTexto muestre un texto extenso en varias lneas. La funcin ScrollBars admite uno de cuatro valores enteros (0, 1, 2, 3), como se ilustra en la figura 3.54 (la opcin 3 - Both incluir ambas barras de desplazamiento). Las barras de desplazamiento, cuando se definen, se ven a tiempo de diseo (como en la figura 3.55); pero el efecto multilinea slo se ver a tiempo de ejecucin cuando se introduzca un texto extenso en el control.

Captulo 3 Entorno y Lenguaje de Programacin

Pgina 396

Captulo 3 Entorno y Lenguaje de Programacin 13/09/05 _____________________________________________________________________________________________

Figura 3.53. Propiedad MultiLine del TextBox

Figura 3.54. Propiedad ScrollBars del TextBox

Muchas propiedades de los controles manifiestan sus efectos a tiempo de diseo y de ejecucin (como ScrollBars del TextBox); pero otras slo muestran sus efectos a tiempo de ejecucin (como Figura 3.55. Barras deslizantes del TextBox MultiLine del TextBox).

Nota: La propiedad ScrollBars no debe confundirse con los controles HScrollBars, y VScrollBars , los cuales no pueden enlazarse con el control TextBox, y tienen sus propios conjuntos de propiedades. Al establecer la propiedad MultiLine a True se habilita al control TextBox para editar o desplegar mltiples lneas de texto a tiempo de ejecucin. Un control TextBox multilnea automticamente maneja el salto de lnea si no est presente una barra deslizante horizontal. Por su parte, la propiedad ScrollBars se establece a 0 - None como valor estndar (por defecto). El avance automtico de lneas libera al usuario de tener que insertar la ruptura de lneas manualmente. Cuando una lnea de texto es ms extensa que la lnea desplegable por el control TextBox, entonces el mismo control avanza el texto a la lnea siguiente. Desafortunadamente, la ruptura de lneas, en textos extensos, no puede establecerse en la Ventana de Propiedades en tiempo de diseo. Pero, por medio de cdigo fuente (programas) puede obtenerse la ruptura de lneas insertando un caracter de nueva lnea, obtenido al combinar un caracter de retorno de carro con un caracter de fn de lnea (cdigos ASCII 13 y 10, respectivamente). Por ejemplo, el siguiente procedimiento, para el evento Load de un formulario, asignar varias lneas de texto a la propiedad Text de un control TextBox inmediatamente el formulario se cargue en memoria: Private Form1_Load() Dim NL as String, Msg$ NL = Chr(13) + Chr(10) '.. define el caracter NuevaLnea Msg$ = "..... una linea ...." & NL & ".... otra linea ..." Msg$ = Msg$ & "... otra linea ms .................." & NL & "...fin" Text1.Tex = Msg$ End Sub El control TextBox puede implearse para disear la edicin de claves o cdigos secretos, de suerte que no se vea lo que el usuario escribe. La propiedad PasswordChar permite especificar un caracter de despliegue cuando se digite una clave en un campo que as lo requiera. La propiedad PasswordChar conjuntamente con la propiedad MaxLength (cantidad de caracteres que se
__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 397

Ingeniero William Alvarez Montoya walvarem@unalmed.edu.co

http://www.unalmed.edu.co/~walvarem

13/09/05

pueden digitar) suministran una tcnica sencilla de control en la edicin de claves. La figura 3.56 ilustra una sencilla interfaz para solicitar una clave de acceso; generalmente, esta es un tipo de pantalla inicial; si la clave digitada no es correcta, no se puede continuar. La descripcin de los objetos se presenta en la tabla 3.23. Obsrvese que a tiempo de ejecucin no se ven los caracteres digitados; se ve, en lugar de ellos el caracter especificado en la propiedad PassWordChar del control Text1. (La fotografa es del eclipse de Agosto11/99, publicada en el peridico El Tiempo de Bogot).
Tabla 3.23. Propiedades de interfaz/fig.3.56. Objeto
Form1

Propiedad
BackColor Caption Alignment BackColor BorderStyle Caption Font ForeColor Height Picture Width Alignment BackColor BorderStyle Caption Font ForeColor BackColor BorderStyle MaxLenght PassWordChar

Valor
&H0080C0FF& Form1: PassWord 2-Center &H00FFFF00& 1-Fixed Single Eclipse Corporation Ltd. PosterBodoni, Negrita, 14 &H000000FF& 1710 (buscar la imagen) 2475 2-Center &H00C0FFFF& 1-Fixed Single Digite su cdigo: Zurich LtCnBt, Negrita, 12 &H00FF0000& &H00C0C000& 1-Fixed Single 6 *

Label1

Image1

Label2

Figura 3.56. Control de claves.


Text1

El control Image1 permite, mediante la propiedad Picture, mostrar una imagen en la interfaz; frente al nombre de la propiedad Picture hay una casilla con un botn (llamado botn generador, que contiene unos puntos suspensivos) el cual activa un panel de dilogo para buscar en el disco o en diskette el archivo de imagen que se quiere ligar con el control. Para este ejemplo, se emplea un arghivo tipo *.jpg obtenido de la pgina web del peridico El Tiempo (http://www.eltiempo.com, foto proporcionada por Reuters del eclipse de Agosto 11 de 1999). El evento KeyPress, del control TextBox, puede utilizarse para restringir o transformar los caracteres que se digitan (como ya se mencion). Este evento exige un argumento KeyAscii, que debe ser un entero (entre 0 y 255, tipo Byte) y que representa el cdigo ASCII del caracter que se digita en la CajaTexto. En el siguiente ejemplo muestra cmo se anulan los caracteres, a medida que se digitan en una CajaTexto; si el caracter digitado no es una cifra entera, el procedimiento cancela el caracter digitado, desplegando un mensaje alusivo. La CajaTexto de este ejemplo se llama txt_NoDatos y el argumento KeyAscii se compara directamente con el cdigo ASCII, mediante la funcin ASC(). Si el caracter digitado est fuera de rango, se activa la alarma sonora (con Beep) y se despliega un mensaje de advertencia, como se muestra en la figura 3.57.

Captulo 3 Entorno y Lenguaje de Programacin

Pgina 398

Captulo 3 Entorno y Lenguaje de Programacin 13/09/05 _____________________________________________________________________________________________ Private Sub txt_NoDatos_KeyPress(KeyAscii As Integer) If(KeyAscii < Asc("0") Or KeyAscii > Asc("9"))Then Beep : MsgBox ".. fuera de rango", 64, "*ERROR*" KeyAscii = 0 End If End Sub Figura 3.57. Ventana de mensaje.

Tambin, es posible bloquear la edicin de los mensajes desplegados en el control TextBox mediante la propiedad Locked, la cual es de contenido Boolean (lgico), admitiendo slo los valores True o False. Si esta propiedad est en True, el usuario puede ver los mensajes pero no los puede editar ni cambiar. Sin embargo, esta propiedad slo afecta la interaccin con el usuario a tiempo de ejecucin, y de todas maneras mediante programacin es posible alterar el estado de la propiedad Locked.

Controles para presentar y manejar opciones


En muchas aplicaciones es necesario presentar opciones al usuario. Contales opciones se ejecutan diferentes alternativas dentro de los algoritmos y los programas. Las opciones, generalmente, dependen de las caractersticas propias del problema en cuestin que se automatiza por medio del computador con el entorno y lenguaje Visual Basic. Esto puede hacerse mediante botones de opcin (OptionButton), casillas de verificacin (CheckBox), listas de items (ListBox), o barras deslizantes (HScrollBars, VScrollBars). En la tabla 3.24 (pgina siguiente) se compendian algunas de las posibilidades de uso de este tipo de control en VisualBasic.
Tabla 3.24. Funcionalidad de los controles que presentan opciones al usuario. Control Nombre de Clase CheckBox Funcionalidad Ofrecer un conjunto de opciones de las cuales el usuario puede escoger una o ms. Generalmente, se agrupan por medio de frames. Ofrecer un conjunto de opciones de las cuales el usuario puede escoger slo una. Generalmente, se agrupan por medio de frames. Ofrecer una lista de opciones, con barra deslizante, de las cuales el usuario puede escoger. Ofrecer un control tipo ListBox combinado con un control para edicin (tipo TextBox). El usuario puede escoger un item de la lista, o puede editar su opcin en la CajaTexto. Ofrece un rango de valores correspondientes a una escala numrica , presentada como una barra deslizante horizontal. Ofrece un rango de valores correspondientes a una escala numrica , presentada como una barra deslizante vertical.

OptionButton ListBox ComboBox HScrollBar VScrollBar

Uso de controles CheckBox


Un control tipo CheckBox indica cuando una condicin o situacin particular est activada o desactivada (ON u OFF). Normalmente, se emplea este tipo de control para proporcional al usuario opciones de la forma S/No, Yes/Not, True/False. Debido a que las casillas de verificacin
__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 399

Ingeniero William Alvarez Montoya walvarem@unalmed.edu.co

http://www.unalmed.edu.co/~walvarem

13/09/05

funcionan independientemente, el usuario puede escoger cualquier nmero de opciones al mismo tiempo. La figura 3.58 es el diseo de una interfaz que emplea controles CheckBox y controles OptionButton . Se pueden escoger hasta dos opciones para el estilo del texto (normal/ cursiva, normal/negrita, negrita/cursiva), pero slo una opcin para el tamao de las letras. Las propiedades de los objetos de la interfaz se relacionan en la tabla 3.25.
Tabla 3.25. Propiedades de interfaz/fig. 3.58. Objeto Form1 Propieda d Caption Valor Ejemplo CheckBox, OptionButton OPCIONES Trebuchet Ms, Negrita, 14 TAMAO Trebuchet Ms, Negrita, 14

BackColor &H00C0C000& Frame1 Caption BackColor &H00C0FFFF& Font

ForeColor &H00FF0000& Frame2 Caption BackColor &H00C0FFFF& Font

ForeColor &H00FF0000& Command Caption 1 &Cerrar

BackColor &H00C0E0FF& Font Style Label1 Figura 3.58. Ejemplo CheckBox y OptionButton. Caption Trebuchet Ms, Negrita, 14 1 Graphical Digite su texto aqu:

BackColor &H00C0FFFF& Alignment 2 Center Font Check1 Caption Font Check2 Caption Font Trebuchet Ms, Negrita, 14 Negrita Trebuchet Ms, Negrita, 14 Cursiva Trebuchet Ms, Negrita, 14

Captulo 3 Entorno y Lenguaje de Programacin

Pgina 400

Captulo 3 Entorno y Lenguaje de Programacin 13/09/05 _____________________________________________________________________________________________ Check3 Caption Font Option1 Caption Font Option2 Caption Font Option3 Caption Font Option4 Caption Font Text1 Font MultiLine Check4 Caption Font Check5 Caption Font Option5 Caption Font Option6 Caption Font Normal Trebuchet Ms, Negrita, 14 10 Trebuchet Ms, Negrita, 14 14 Trebuchet Ms, Negrita, 14 18 Trebuchet Ms, Negrita, 14 22 Trebuchet Ms, Negrita, 14 Trebuchet Ms, Negrita, 14 True Maysculas Trebuchet Ms, Negrita, 14 Minsculas Trebuchet Ms, Negrita, 14 36 Trebuchet Ms, Negrita, 14 48 Trebuchet Ms, Negrita, 14

ScrollBars 3 Both

La programacin de la interfaz de la figura 3.58 se muestra a continuacin en la tabla 3.26.

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 401

Ingeniero William Alvarez Montoya walvarem@unalmed.edu.co

http://www.unalmed.edu.co/~walvarem

13/09/05

Tabla 3.26 Programacin de la interfaz ilustrada en la figura 3.58 Private Sub Command1_Click() Dim Salir As Byte Salir = MsgBox("S A L I R ?", 4 + 32, "* COMPROBAR SALIDA *") If (Salir = 6) Then End End Sub Se emplea la funcin MsgBox() con el tipo de ventana 4, S / No, y el cono interrogativo (32). Private Sub Check1_Click() If Check1.Value = 1 Then ' Si ha sido sealado (Checked = chuleado"). Text1.FontBold = True Else ' Si no ha sido sealado (UnChechked = "no-chuleado"). Text1.FontBold = False End If End Sub Private Sub Check2_Click() If Check2.Value = 1 Then ' Se ha sealado (Checked = "chuleado"). Text1.FontItalic = True Else ' Si no ha sido sealado (UnChechked = "no-chuleado"). Text1.FontItalic = False End If End Sub Private Sub Check3_Click() If Check3.Value = 1 Then ' Si ha sido sealado (Checked = "chuleado"). Text1.FontBold = False Text1.FontItalic = False End If End Sub Private Sub Check4_Click() If Check4.Value = 1 Then ' Si ha sido sealado (Checked = "chuleado"). Text1 = UCase(Text1) La funcin Ucase() convierte a maysculas. End If End Sub Private Sub Check5_Click() If Check5.Value = 1 Then ' Si ha sido sealado (Checked = "chuleado"). Text1 = LCase(Text1) La funcin LCase() convierte a minsculas. End If End Sub Private Sub Option1_Click() If Option1.Value = True Then ' Si est sealado (True = "chuleado"). Text1.FontSize = 10 End If End Sub

Captulo 3 Entorno y Lenguaje de Programacin

Pgina 402

Captulo 3 Entorno y Lenguaje de Programacin 13/09/05 _____________________________________________________________________________________________

Private Sub Option2_Click() If Option2.Value = True Then ' Si est sealado (True = "chuleado"). Text1.FontSize = 14 End If End Sub Private Sub Option3_Click() If Option3.Value = True Then Si est sealado (True = "chuleado"). Text1.FontSize = 18 End If End Sub Private Sub Option4_Click() If Option4.Value = True Then ' Si est sealado (True = "chuleado"). Text1.FontSize = 22 End If End Sub Private Sub Option5_Click() If Option5.Value = True Then ' Si est sealado (True = "chuleado"). Text1.FontSize = 36 End If End Sub Private Sub Option6_Click() If Option6.Value = True Then ' Si est sealado (True = "chuleado"). Text1.FontSize = 48 End If End Sub

__________________________________________________________________________________________ walvarem@unalmed.edu.co Pgina 403

Anda mungkin juga menyukai