Вы находитесь на странице: 1из 42

Elementos del Lenguaje VB

1. Formularios
1.1 Cargar y mostrar formularios

Cuando se escribe un programa que posee un solo formulario, VB por defecto lo presentar en pantalla al ejecutar el proyecto. Pero ocurre que la mayora de los programas tienen varias ventanas, lo cual hace necesario que debamos controlar cuales se muestran y cuales no.

1.1.1

Show (Mtodo)

Para mostrar un objeto formulario, e iste un m!todo llamado Show. "a sinta is del m!todo Show consta de las siguientes partes# objeto.Show estilo, formularioPropietario Parte Descripcin objeto
$pcional. %na e presi&n de objeto que da como resultado un objeto de la lista 'e aplica a. 'i se omite objeto, se supone que objeto es el formulario asociado con el m&dulo de formulario activo. $pcional. %n entero que determina si el formulario es modal o no modal. 'i estilo es (, el formulario es no modal) si estilo es *, el formulario es modal. formulario que se muestra. Para los formularios estndar de Visual Basic, utilice la palabra clave Me.

estilo

formularioPpropietario $pcional. %na e presi&n de cadena que especifica el componente que +posee+ el

Comentarios 'i el formulario especificado no est cargado en memoria cuando se invoca el m!todo 'ho,, Visual Basic lo carga automticamente, y lo muestra en pantalla. Cuando 'ho, presenta un formulario no modal, contin-a con la ejecuci&n del c&digo que haya a continuaci&n. Cuando 'ho, presenta un formulario modal, el c&digo que hay a continuaci&n no se ejecuta hasta que el formulario se oculta o se descarga. .e aqu un ejemplo de c&mo se utili/a el argumento formularioPropietario con el m!todo Show#
Private Sub cmdShowResults_Click() ' Muestra un formulario modal llamado frmResults. frmResults.Show vbModal, Me nd Sub

Cuando 'ho, presenta un formulario modal, no hay entradas 0de teclado o del mouse1 e cepto sobre los objetos del formulario modal. 2l programa debe ocultar o descargar los formularios modales 0normalmente como respuesta a alguna acci&n del usuario1 antes de que pueda producirse la entrada en otro formulario. 2l formulario modal es ideal para usar cuando queremos que los usuarios completen las acciones del formulario antes de ir a otra parte del programa.
1.1.1.1 Ejemplo del mtodo Show

2ste ejemplo utili/a el m!todo Show para mostrar un formulario oculto. Para probar este ejemplo, pegue el c&digo en la secci&n 3eclaraciones de un formulario, y despu!s presione 45 y haga clic en el formulario. Elementos del Lenguaje Visual Basic *de67

Private Sub !orm_Click () "im Ms# ' "eclara variable. $ide ' %culta el formulario. Ms# & '$a#a clic en (ce)tar )ara *ue vuelva a a)arecer el formulario.' Ms#+o, Ms# ' Muestra el mensa-e. Show ' Muestra de nuevo el formulario. nd Sub

1.1.2

Load (Instru

i!n)

8lgunas veces puede ser necesario cargar en memoria un formulario, pero no mostrarlo 0el m!todo Show reali/a las dos acciones1. Para esta acci&n e iste la instrucci&n llamada Load Sintaxis: Load objeto 2l marcador de posici&n objeto es el nombre de un objeto Form o un elemento de una matri/ de controles para cargar. Comentarios 9o es necesario usar la instrucci&n Load con formularios a menos que desee cargar un formulario sin presentarlo. Cualquier referencia a un formulario lo carga automticamente si no est ya cargado. Por ejemplo, el m!todo Show carga los formularios antes de presentarlos. %na ve/ cargado el formulario, la aplicaci&n puede alterar sus propiedades y controles, sea o no visible actualmente el formulario. 2n algunas circunstancia, 0sobre todo en aplicaciones donde los formularios poseen muchos controles, ya que estos tardan en aparecer1 puede que desee cargar todos los formularios en la iniciali/aci&n y presentarlos despu!s cuando sean necesarios. Cuando Visual Basic carga un objeto Form, establece las propiedades del formulario a sus valores iniciales y despu!s ejecuta el procedimiento de evento "oad. Cuando se inicia una aplicaci&n, Visual Basic carga y presenta automticamente el formulario inicial de la aplicaci&n. 9o es necesario cargar, mostrar o descargar los cuadros de dilogo estndar producidos por funciones de Visual Basic como Ms !ox y "nput!ox) se pueden invocar directamente.
1.1.2.1 Ejemplo de la instruccin Load

2ste ejemplo usa la instrucci&n Load para cargar un objeto Form. Para probar este ejemplo, pegue el c&digo en la secci&n 3eclaraciones de un objeto Form y despu!s ejecute el ejemplo y haga clic en el objeto Form.
Private Sub !orm_Click () "im (nswer, Ms# as Strin# ' "eclara variable. .nload !orm/ ' "escar#a el formulario. Ms# & '!orm/ se ha descar#ado. li-a 'S0' )ara ' Ms# & Ms# 1 'car#arlo 2 )resentarlo. li-a '3o' ' Ms# & Ms# 1 ')ara car#arlo 2 de-arlo invisible.' (nswer & Ms#+o,(Ms#, vb4es3o) ' %btiene la res)uesta del usuario. 5f (nswer & vb4es 6hen ' val7a la res)uesta. Show ' Si es S0, muestra el formulario. lse Load !orm/ ' Si es 3o, s8lo lo car#a. Ms# & '!orm/ se ha car#ado. li-a '(ce)tar' )ara )resentarlo.' Ms#+o, Ms# ' Presenta el mensa-e. Show ' Muestra el formulario. nd 5f nd Sub

Elementos del Lenguaje Visual Basic

7de67

8si como hay un m!todo Show y una instrucci&n Load para mostrar y cargar formularios, tambi!n e iste un m!todo #ide y una instrucci&n $nload para reali/ar lo contrario.

1.1."

#ide (Mtodo)
Sintaxis: objeto.#ide

$culta un Form pero no lo descarga. 2l marcador de posici&n objeto representa una e presi&n de objeto que da como resultado un objeto de la lista. 'i se omite objeto, se supone que objeto es el formulario que tenga el enfoque. Comentarios Cuando se oculta un formulario, se quita de la pantalla y su propiedad %isible queda establecida a False. "os controles de un formulario oculto no son accesibles para el usuario, pero estn disponibles para la aplicaci&n de Visual Basic en ejecuci&n y para otros procesos que se est!n comunicando con la aplicaci&n mediante 332, as como para los eventos del control &imer. Cuando se oculta un formulario, el usuario no puede interactuar con la aplicaci&n hasta que el c&digo del procedimiento de evento que ha provocado la ocultaci&n del formulario haya terminado de ejecutarse. 'i el formulario no est cargado cuando se llama al m!todo #ide, el m!todo #ide carga el formulario pero no lo presenta.

1.1.$

%nload (Instru

i!n)

3escarga de memoria un formulario o un control. Sintaxis: $nload objeto 2l marcador de posici&n objeto es el nombre de un objeto Form o de un elemento de una matri/ de controles para descargar. Comentarios "a descarga de un formulario o de un controle puede ser necesaria o conveniente en aquellos casos en los que la memoria utili/ada sea necesaria para alguna otra tarea o cuando sea necesario restablecer las propiedades a sus valores originales. Para comprender mejor todas estas instrucciones ejecutar el programa# VariosForms.

1.2. Modificar la apariencia


2n un proyecto, la primera tarea a reali/ar es dise:ar las ventanas) luego sigue la ubicaci&n de los controles, y finalmente la programaci&n. 3e esto se deduce que por lo general, la apariencia de los formularios se define una sola vez al inicio de un pro ecto, en tiempo de dise!o por medio de propiedades. "os formularios tienen la particularidad de que se necesita escribir poco c&digo para manejarlos, ya que la mayor parte de ese c&digo corresponde a la carga y presentaci&n de los mismos) y mucho mas sencillo resulta a-n cambiar su apariencia.

1.2.2

&justar el tama'o

"os formularios son ventanas) por lo tanto, para ajustar su tama:o solo hacen falta cuatro propiedades que determinan su ubicaci&n, altura y anchura. 2stas propiedades son# Left' &op' #ei ht y (idth. &op )Propiedad* + Left )Propiedad* 3evuelve o establece un tipo de datos 'ingle que especifica la ubicaci&n de la 0 parte superior ; esquina Elementos del Lenguaje Visual Basic <de67

i/quierda 1 de la ventana en la pantalla medido en t,ips. 2sta propiedad es de lectura y escritura. twip %nidad de medida de pantalla que es igual a *;7( de punto. %n t,ip es una unidad de pantalla independiente utili/ada para asegurar que la ubicaci&n y proporci&n de los elementos de la pantalla en la aplicaci&n son los mismos en todos los tipos de pantallas. .ay apro imadamente *66( t,ips en una pulgada l&gica o 5=> t,ips en un centmetro l&gico 0la longitud de un elemento de pantalla que mide una pulgada o un centmetro cuando se imprime1. (idth )Propiedad* + #ei ht )Propiedad* 3evuelve o establece un tipo de datos 'ingle que contiene 0 el ancho ; el alto1 de la ventana medido en t,ips. 2sta propiedad es de lectura y escritura. "as propiedades "eft, ?op, .eight y @idth, aplicadas a otros objetos, pueden trabajar con otras unidades de medida distinta del t,ip. ScaleMode )Propiedad* 3evuelve o establece un valor que indica la unidad de medida de las coordenadas de un objeto al usar m!todos grficos o al situar controles. Sintaxis: objeto.ScaleMode A, valorB valor es un n-mero entero que especifica la unidad de medida.

1.2."

(ersonali)ar la *arra de t+tulo

"a barra de titulo de los formularios contiene un cuadro de control 0men- al que se accede mediante un icono1, una leyenda y los botones para minimi/ar, ma imi/ar y cerrar la ventana. 2l cuadro de control es un men- alternativo que permite modificar el tama:o o la posici&n de un formulario, y cerrarlo. Para desplegar el men- de control los usuarios deben hacer un clic de mouse sobre el icono del formulario activo.
3o todos los formularios )oseen el cuadro de control. Mediante la )ro)iedad ControlBox se )uede indicar si el formulario tendr9 o no dicho elemento. sta )ro)iedad ace)ta dos valores: True (;erdadero) o False (!also).

Para trabajar con formularios que posean el cuadro de control podemos emplear otra propiedad interesante llamada "con' pues nos permite seleccionar un icono que represente a la aplicaci&n o al formulario. Para modificar esa propiedad, VB nos posibilita navegar por el disco en busca de un archivo C."C- . a utili/ar. %no de los aspectos que mas sobresalen de la barra de ttulo es el nombre de la ventana. Cambiar este nombre es tarea sencilla) para esto se utili/a la Elementos del Lenguaje Visual Basic 6de67

propiedad Caption' cuyo valor puede ser cualquier cadena de caracteres. Por ultimo, la barra de titulo cuenta con botones para minimi/ar, ma imi/ar o cerrar la ventana activa. "as propiedades Max!utton y Min!utton permiten definir si el formulario tendr los botones Da imi/ar y Dinimi/ar respectivamente. 8mbas propiedades aceptan como valores &rue o False .

1.2.$

Estilos de *orde

((ro,iedad -BorderSt.le)

3evuelve o establece el estilo del borde de un objeto. Para el objeto Form y el control &ext!ox es de s&lo lectura en tiempo de ejecuci&n. Sintaxis: objeto.!orderSt/le E AvalorB "a sinta is de la propiedad !orderSt/le consta de las siguientes partes# Parte objeto valor Descripcin %na e presi&n de objeto que da como resultado un objeto de la lista. %n valor o una constante que determina el estilo del borde, seg-n se indica en Valores.

%alores: "os valores admitidos para la propiedad Border'tyle para un objeto 4orm son# Constante None Fixed Single %alor Descripcin
9inguno 0ning-n borde ni elemento relacionado con !l1. 'imple fijo. Puede incluir un cuadro del men- Control, una barra de ttulo, un bot&n Da imi/ar y un bot&n Dinimi/ar. '&lo puede cambiar el tama:o con los botones Maximi2ar y Minimi2ar. 0Predeterminado1 ?ama:o ajustable. Puede cambiar el tama:o mediante cualquiera de los elementos opcionales de borde indicados para el valor *. 3ilogo fijo. Puede incluir un cuadro del men- Control y una barra de ttulo, pero no los botones Maximi2ar ni Minimi2ar. 9o se puede cambiar de tama:o. Ventana fija. Duestra una ventana a la que no le puede cambiar el tama:o con un bot&n Cerrar y el te to de la barra de ttulo aparece con un tama:o de fuente reducido. 2l formulario no aparece en la barra de tareas de @indo,s Ventana de tama:o ajustable. Duestra una ventana ajustable con un bot&n Cerrar y el te to de la barra de ttulo aparece con un tama:o de fuente reducido. 2l formulario no aparece en la barra de tareas de @indo,s

0 1

Sizable

3 4

Fixed Dialog

Fixed ToolWindow

Sizable ToolWindow

Elementos del Lenguaje Visual Basic

5de67

Comentarios Para un formulario, la )ro)iedad BorderStyle determina caracter0sticas clave *ue lo identifican visualmente como una ventana de )ro)8sito #eneral o como un cuadro de di9lo#o. l valor < (!i,ed "ialo#, "i9lo#o fi-o) es 7til )ara los cuadros de di9lo#o est9ndar, mientras *ue los valores = (!i,ed 6ool>indow, ;entana fi-a) 2 ? (Si@able 6ool>indow, ;entana de tamaAo a-ustable) son 7tiles )ara crear ventanas de ti)o cuadro de herramientas.

1.2./

Sele

ionar olores

Dediante las propiedades !ac7Color y ForeColor se pueden seleccionar los colores de fondo y de primer plano de un formulario o de cualquier otro control. 8mbas propiedades aceptan como valor un numero que representa al color a utili/ar. 'i establece la propiedad !ac7Color de un objeto Form o de un control Picture!ox, se borra todo el te to y todos los grficos, incluidos los grficos persistentes. 8l establecer la propiedad ForeColor, los grficos o el resultado impreso no se ven afectados. 2n el resto de los controles, el color de la pantalla cambia inmediatamente. 2l intervalo vlido para un color FGB normal va de ( a *=.>>>.7*5 0H.4444441. 2l byte ms alto de los n-meros de este intervalo es (, y los < ms bajos, del menos significativo al ms significativo, determinan la intensidad Elementos del Lenguaje Visual Basic =de67

de rojo, verde y a/ul, respectivamente. Cada uno de los componentes rojo, verde y a/ul se representa con un n-mero entre ( y 755 0H.441. 'i el byte ms alto no es (, Visual Basic utili/a los colores del sistema, definidos por el usuario en el Panel de control o por las constantes que se encuentran en la biblioteca de objetos de Visual Basic 0VB1 en el 2 aminador de objetos. Para mostrar te to en el entorno operativo @indo,s, tanto el color del te to como el de fondo deben ser s&lidos. 'i no aparece el color que ha seleccionado para el te to o para el fondo, puede que uno de ellos sea de medios tonos) es decir, puede que est! formado por p eles de hasta tres colores distintos. 'i elige un color de medios tonos para el te to o el fondo, se usar el color s&lido ms pr& imo. .asta aqu hemos visto como seleccionar un color en tiempo de dise:o. Pero muy a menudo necesitaremos cambiar un color en tiempo de ejecuci&n. Para esto, e isten las siguientes alternativas# *. 7. <. 6. Ingresar un 8alor 9ue represente al color. %tili/ar las constantes de color de VB. %sar la funci&n :;!. %sar la funci&n <bColor.

*. Para Ingresar un 8alor 9ue represente al color, se debe ingresar una linea como la siguiente# 4orm*.BacJColor E H.44(((( 7. "as constantes de color permiten seleccionar colores muy especficos, por lo cual no tienen mucha utilidad. 4. La funcin :;!)red' green' blue* "a sinta is de la funci&n :;! consta de los siguientes argumentos# Parte red green blue Descripcin $bligatorio. tipo %ariant 0"nte er1. 9-mero en el intervalo de (K755, ambos inclusive, que representa el componente rojo del color. $bligatorio) tipo %ariant 0"nte er1. 9-mero en el intervalo de (K755, ambos inclusive, que representa el componente verde del color. $bligatorio) tipo %ariant 0"nte er1. 9-mero en el intervalo de (K755, ambos inclusive, que representa el componente a/ul del color.

"os m!todos de aplicaci&n y las propiedades que aceptan una especificaci&n de color esperan que !sta sea un n-mero que represente un valor de color FGB. %n valor de color FGB especifica la intensidad relativa de rojo, verde y a/ul que hacen que se muestre un color determinado. 2l valor de cualquier argumento para la funci&n :;! que sea superior a 755 se considerar como 755. 6. La funcin <!Color)color* 2l argumento color toma los siguientes valores# =>mero ( * 7 < Color 9egro 8/ul Verde
8guamarina

=>mero 6 5 = >

Color Fojo 4ucsia 8marillo Blanco

=>mero L M *( **

Color Gris 8/ul claro Verde claro


8guamarina claro

=>mero *7 *< *6 *5

Color Fojo claro 4ucsia claro 8mari claro Blanco brillante

Elementos del Lenguaje Visual Basic

>de67

1.2./
1.2. .1

0tros as,e tos a onsiderar


!ormularios acti"os y "isi#les

?anto los formularios como la mayora de los controles poseen dos propiedades muy importantes que regulan su comportamiento# ?nable y %isible. %n objeto oculto puede responder a los eventos generado por el programador pero aparece invisible en la pantalla. 8mbas propiedades aceptan como valores &rue o False.
Bos controles No Habilitados se reconocen )or estar en un color atenuado (#eneralmente #ris claro).

1.2. .2

$r%ficos de !ondo

"os formularios tienen una propiedad llamada Picture que permite desplegar un grfico como fondo de los mismos. 8l querer modificar el valor de este atributo en la ventana de propiedades, VB presenta un cuadro de dialogo que nos permite navegar por el disco en busca de la imagen a utili/ar. Cabe aclarar que VB puede trabajar con los formatos Grficos mas populares, como BDP, GI4, NPG, IC$ y @D4.
1.2. .& !uentes 'ipogr%ficas

?oda la informaci&n te tual a mostrar en un formulario o cualquier otro control puede utili/ar cualquier fuente tipogrfica instalada en el sistema. Para ello contamos con una propiedad llamada Font que nos permite seleccionar la fuente, el estilo, el tama:o y los efectos. "a propiedad Font de un formulario es en realidad un objeto en si mismo, con sus propiedades. Por ejemplo, para cambiar el tama:o de una fuente tipogrfica por codigo deber introducirse una linea similar a la siguiente# Form1.Font.Si2e E *5

1.2. .(

)justes de *osicin

2 iste una propiedad denominada Start$pPosition que controla la Posici&n del formulario cuando se muestra por primera ve/. Constante %alor Descripcin
vbStartUpManual vbStartUpOwner vbStartUpScreen vbStartUpWindowsDe ault 0 1 3 4 9o se ha especificado ning-n valor inicial. Centrado en el elemento al que pertenece $serForm. Centrado en toda la pantalla. 2squina superior i/quierda de la pantalla.

2 iste otra propiedad llamada Mo8eable que devuelve o establece un valor que especifica si el objeto se puede mover durante la ejecuci&n del programa. Elementos del Lenguaje Visual Basic Lde67

objeto.Mo8eable , booleano "os valores de booleano son# &rue 0K*1 2l objeto se puede mover. 2s el valor predeterminado. O False 0(1 2l objeto no se puede mover.
1.2. . +nidades de Medida

"as propiedades ScaleMode 3evuelve o establece un valor que indica la unidad de medida de las coordenadas de un objeto al usar m!todos grficos o al situar controles. objeto.ScaleMode A, valorB 2l valor por defecto es el &wip, pero e isten otras unidades como pi eles, caracteres, cm, etc., que pueden ser muy -tiles en casos especficos. Por ejemplo, si cambiamos el valor de ScaleMode a < 0pi eles1, las propiedades Left' &op' (idth y #i ht de todos los objetos interiores del formulario estarn e presados en pi eles. 8demas e isten cuatro propiedades que junto con ScaleMode permiten crear un sistema personali/ado de coordenadas) ScaleLeft' Scale&op' Scale(idth y Scale#i ht. 8l ingresar un valor para cualquiera de estas, ScaleMode automticamente ser cero 0unidad de medida definida por el usuario1.

1.2.1

Las ,ro,iedades mas im,ortantes de los 2ormularios

Duchas propiedades son comunes a varios objetos. "a tabla siguiente muestra las propiedades mas importantes de los formularios y de otros controles. 3ebido a esta ra/&n, cuando hablamos de ob!eto estamos considerando que puede ser un formulario o cualquier otro control. Propiedad "uto#edraw $ac%&olor $orderSt'le &aption &ontrol$ox (nabled Font Fore&olor )eig*t +con ,e t Max$utton Min$utton Mouse-ointer Moveable Name Descripcin 'i tiene el valor ?rue, se guarda una imagen en memoria de la apariencia del objeto o formulario 0logrando as un redibujado mas velo/1. 2stable el color de fondo del objeto. 3etermina el estilo de borde del control. 2n el caso de los formularios, es el te to de la barra de ttulo. 2n otros objetos 0por ejemplo las etiquetas1, es el te to que despliegan. 2stablece si est disponible el cuadro de control de la ventana. 3etermina si el objeto esta habilitado y puede responder a los eventos. 'elecciona una fuente tipogrfica para utili/ar en el te to del objeto. 2stablece el color de primer plano del objeto. 3etermina la altura del control. 3espliega un icono en la barra de ttulo del formulario. 2stablece la distancia I/quierda entre un objeto y su contenedor 0que puede ser un formulario, u otro objeto1. 3etermina si el formulario posee bot&n de ma imi/ar. 3etermina si el formulario posee bot&n de minimi/ar. 2specifica un tipo de puntero de mouse 04lecha, Feloj de 8rena, etc.1. 3etermina si el formulario puede ser movido por el usuario. 3evuelve el nombre usado en el c&digo para identificar al control.

S*ow+nTas%bar Indica si el formulario se puede mostrar en la barra de tareas. Elementos del Lenguaje Visual Basic Mde67

StartUp-osition 2stablece la Posici&n al mostrarse el formulario por primera ve/. Top Visible Widt* WindowState 2stablece la distancia superior entre un objeto y su contenedor. 3etermina si el control se encuentra visible. 3etermina el ancho del control. 2stablece o devuelve el estado del formulario en tiempo de ejecuci&n.

2 Manejo de E3entos
"os eventos son sucesos a los que debe responder el programa. 2n una aplicaci&n se pueden producir muchos eventos generados por el usuario, o incluso el mismo programa puede generar eventos. 2n VB la mayor parte del c&digo a escribir corresponde a los procedimientos de sucesos y funciones que se activan luego de producidos ciertos eventos. 2n la siguiente tabla se presentan los eventos mas importantes que son comunes a varios controles# ?8ento &*ange &lic% Dbl&lic% DragDrop DragOver .otFocus /e'Down /e'-ress /e'Up ,oad ,ostFocus MouseDown MouseMove MouseUp Unload Se produce cuando: 2l usuario modifica el estado de un control 2l usuario pulsa un objeto con el bot&n primario del mouse 'e pulsa dos veces un objeto con el bot&n primario del mouse 2l usuario arrastra un control hacia una nueva ubicaci&n %n objeto se arrastra sobre un control %n objeto recibe el foco 'e pulsa una tecla mientras un objeto tiene el foco 'e pulsa y se suelta una tecla mientras un objeto tiene el foco 'e suelta una tecla mientras un objeto tiene el foco 'e carga un objeto en memoria %n objeto perdi& el foco 'e pulso un bot&n del mouse sobre un objeto 'e movi& el cursor del mouse sobre un objeto 'e solt& un bot&n del mouse sobre un objeto 'e descarga un objeto en memoria

l botn primario del mouse es el *ue se utili@a )ara e-ecutar las acciones en forma directa. (Por defecto este botn es siempre el izquierdo). 3o todos los ob-etos so)ortan los mismos eventos. (l#unos controles )oseen eventos *ue no se encuentran dis)onibles en los dem9s.

Cada evento tiene un procedimiento en donde escribir el c&digo necesario. 2l nombre del procedimiento se forma con el nombre del objeto, un uion bajo y el nombre del e8ento.
Private Sub !orm_MouseMove (+utton (s 5nte#er, Shift (s 5nte#er, C (s Sin#le, 4 (s Sin#le) ' c8di#o del )ro#rama .......................... nd Sub

Elementos del Lenguaje Visual Basic

*(de67

3entro de los par!ntesis se indican los parmetros, 0si es que el evento tiene algunos1) asi en el ejemplo es posible conocer que bot&n genero el evento 0variable Button1, si estaba 'hift pulsado 0variable 'hift1 y en que coordenadas P e O se encontraba el mouse cuando se presion& el bot&n. 8 continuaci&n crearemos un programa de ejemplo Paso a Paso# *. 8brimos VB proyecto. y creamos un nuevo

7. 8gregamos una etiqueta 0control Label1 al formulario. <. Cambiamos la propiedad =ame de la etiqueta 0label01 por lbl(vento. 6. Vamos a la ventana de c&digo 0podemos pulsar F@1, e ingresamos el siguiente c&digo#
%)tion ,)licit Private Sub cmdSalir_Click() nd nd Sub Private Sub !orm_Click() lbl vento & ' vento Click: el usuario hi@o un clic sobre el formulario' 2nd 'ub Private Sub !orm_"blClick() lbl vento & ' vento "blClick: el usuario hi@o un doble clic sobre el form.' 2nd 'ub Private Sub !orm_Resi@e() lbl vento & ' vento Resi@e: el formulario cambi8 de tamaAo' nd Sub

5. 2jecutamos el programa con 45 . 0Ver versi&n compilada# 2ventos.e e1

2.1

Llamar a un procedimiento de suceso desde el cdigo

Como ya hemos mencionado, la mayor parte del c&digo que se escribe esta destinado a los procedimientos de suceso, donde VB ejecuta un c&digo escrito en respuesta a un evento. Pero el lenguaje brinda la posibilidad de permitirle al usuario llamar a cualquier procedimiento de suceso simulando la ocurrencia de un evento, como en el siguiente ejemplo#
Private Sub !orm_Click () cmdBoton_Click nd Sub Private Sub cmdBoton_Click () Ms#+o, D+ienvenido al )ro#ramaE 2nd 'ub

Dediante la sentencia cmdBoton_Click se ejecuta el c&digo escrito para cuando el usuario hiciera clic sobre el bot&n de comando.

2.2

Secuencia de E"entos

.asta ahora hemos tratado los eventos en forma individual, pero en la mayora de los casos, una acci&n Elementos del Lenguaje Visual Basic **de67

del usuario desencadena m-ltiples eventos. Por ejemplo, al ingresar una frase en una caja de te to, por cada carcter tipeado se disparan tres eventos principales# Ae/Down' Ae/Press y Ae/$p 0y en ese orden1. Cuando hacemos clic con el rat&n sobre un bot&n, se activan los siguientes eventos# MouseDown' Mouse$p y Clic7 0en ese orden1. Fesulta importante conocer el orden de ejecuci&n de los eventos, para poder controlar con ! ito el comportamiento de los controles y formularios, y decidir donde colocar el c&digo en respuesta a un evento.

2.2.1

E3entos de ini io de 2ormulario

Cuando se inicia un formulario se disparan los siguientes eventos siguiendo el orden que se indica# 1. "nitiali2e. Iniciali/a datos cuando se carga el formulario. 3. Load. Carga el formulario en memoria y el c&digo de iniciali/aci&n adicional. <. :esi2e. 'e dispara cuando se modifica el tama:o de un formulario y cuando se carga por primera ve/. 6. Paint. 2ste evento se ejecuta cada ve/ que alg-n objeto o sector del formulario necesita ser repintado. 'i la propiedad Buto:edraw del formulario tiene el valor &rue, este evento no se dispara nunca, por lo tanto no es necesario agregar c&digo al evento Paint.

2.2.2

E3entos de ierre de 2ormulario

Cuando un formulario se cierra se producen los siguientes eventos y con el orden indicado# 1. <uer/$nload. 'e dispara por un evento %nload del formulario, justo antes de ejecutar c&digo para el evento %nload. Query%nload ofrece la posibilidad de detener el cierre de un formulario. 2s ideal para cuando el usuario cierra un formulario y e isten datos que se cambiaron sin ser guardados. 7. $nload. 'e dispara cuando el usuario cierra el formulario. "o primero que hace este evento es disparar el evento Query%nload. <. &erminate. 'e produce cuando se elimina de memoria un formulario. 2l evento 1uer'Unload recibe una variable como parmetro llamada &ancel, y otra denominada UnloadMode. Para detener el cierre del formulario, debemos establecer el valor &rue en la variable Cancel antes de terminar el procedimiento. Vamos a construir un ejemplo que muestre el uso del evento 1uer'Unload. "a idea es simple# hacer un programa que, cuando se lo intente cerrar, nos pregunte si estamos seguros. 2n caso afirmativo, cerramos el programa) de lo contrario, aqu no ha pasado nada. 2n la 4igura siguiente se ve la apariencia de la aplicaci&n en el momento del cierre. 0Ver versi&n compilada# Query%nload.e e1. *. Crear un nuevo proyecto en Visual Basic. 7. .acer doble clic sobre el formulario que aparece, o pulsar 4> para ir al c&digo. <. 2n el evento 1uer'Unload del formulario, ingresar el siguiente c&digo#
Private Sub !orm_Fuer2.nload(Cancel (s 5nte#er, .nloadMode (s 5nte#er) 5f Ms#+o, ('G st9 se#uro de salir de la a)licaci8nH', vb4es3o, '(tenci8n') & vb3o 6hen Cancel & 6rue nd 5f nd Sub

6. 2jecutamos el programa con 45 . Elementos del Lenguaje Visual Basic *7de67

" 4ontroles Est5ndar


"os controles estndar son los que se encuentran en la Caja de .erramientas. Para repasar conceptos, repetimos la imagen del entorno I32 de Visual Basic . ?rataremos de anali/ar las caractersticas de estos controles estndar, ya que son los que con mayor asiduidad utili/aremos en nuestros desarrollos.

&.1

Cajas de ,magen - *icture.o/ 0

2ste control se usa para mostrar grfico o como contenedor de otros objetos. "os grficos a mostrar se establecen mediante la propiedad Picture, en tiempo de dise:o o en tiempo de ejecuci&n. 2n tiempo de dise:o, al querer modificar el valor de Picture en la ventana de propiedades, Visual Basic presenta un cuadro de dilogo que nos permite navegar por el disco en busca una imagen. 2n tiempo de ejecuci&n podemos cargar una imagen desde otra caja de imagen, o desde un archivo ubicado en el disco mediante la funci&n LoadPicture.

".1.1

&da,tar el tama'o del ontrol a la imagen

%na de las propiedades ms importantes de las cajas de imagen es ButoSi2e. 2sta propiedad soporta los valores True o False y se utili/a para determinar si el control debe ajustar automticamente su tama:o para adaptarse al de la imagen. 2n la 4igura se presenta un ejemplo de la propiedad en ambos estados. "a propiedad ButoSi2e permite adaptar el tama:o del control al de la imagen. 2l tama:o de las imagenes no vara en ning-n caso.

".1.2

4argar una imagen desde un ar hi3o

2n tiempo de ejecuci&n, se puede cargar una caja de imagen con un grfico disponible en otro control o mediante un archivo ubicado en el disco rgido. Por ejemplo#
Picture/.Picture & PictureI.Picture

Dediante esta lnea de c&digo ubicamos en la caja de imagen Picture* el mismo grfico que posee el Elementos del Lenguaje Visual Basic *<de67

control Picture7. Para cargar una caja de imagen con un grfico disponible en un archivo, se debe usar la funci&n LoadPicture. 'u sinta is es la siguiente#
BoadPicture (archivo)

Veamos la funci&n LoadPicture a trav!s de un ejemplo#


Picture/.Picture & BoadPicture ('+(BM(R.+MP') Picture/.cls

"a primera lnea carga en el control Picturel la imagen B8"D8F.BDP. "a segunda lnea limpia la caja de imagen.
Ba funci8n Load icture )osee otros )ar9metros adem9s del archivo *ue contiene la ima#en. Sin embar#o, en la )r9ctica se suele invocar esta funci8n )asando como 7nico ar#umento un archivo #r9fico.

%na caracterstica muy importante de las cajas de imagen es que pueden actuar como contenedores de otros controles. Para poner un control dentro de la caja, simplemente hay que dibujarlo all. "uego, las propiedades ,e t y Top sern relativas a la caja de imagen y no al formulario. "as propiedades Widt* y )eig*t tambi!n estarn e presadas en la escala de la caja de imagen. 2n la 4igura vimos un ejemplo de una aplicaci&n que utili/a dos cajas de imagen. "a primera se carga en tiempo de dise:o, mientras que la segunda se carga en tiempo de ejecuci&n, mediante la sentencia LoadPicture. Para construir el ejemplo, los pasos necesarios son# *. Crear un nuevo proyecto. 7. 8gregar dos cajas de imagen. <. Incluir dos botones de comandos que permitan cargar la imagen de la segunda caja 0cmdCar ar1 y salir del programa 0cmdSalir1. 6. Ingresar el c&digo necesario en los procedimientos de suceso de ambos botones#
Private Sub cmdCar#ar_Click() 'Car#amos el #r9fico en la se#unda ca-a de ima#en '()).Path contiene la ruta de nuestra a)licaci8n PictureI.Picture & BoadPicture (()).Path J 'Kima#enI.bm)') nd Sub Private Sub cmdSalir_Click() 'Salir del )ro#rama nd nd Sub

%na ve/ que ejecutamos el programa, s&lo debemos pulsar el bot&n Cargar para mostrar la imagen en la segunda caja. 2l archivo +imagen7.bmp+ debe encontrarse en el directorio del programa.

&.2

Eti1uetas - La#el 0

2n Visual Basic, las etiquetas se utili/an para agregar un te to esttico) esto significa que son -tiles para mostrar leyendas, ttulos o presentar resultados. 8unque las etiquetas no permiten que los usuarios ingresen te to directamente, contienen eventos y propiedades que posibilitan al programador manipular el te to mediante c&digo. 2l te to que muestra una etiqueta se establece mediante la propiedad Caption de la misma. Elementos del Lenguaje Visual Basic *6de67

".2.1

&da,tar el tama'o del ontrol al te6to

"a propiedad ButoSi2e de una etiqueta determina si el tama:o del control debe ajustarse automticamente al del te to. 'i ButoSi2e posee el valor False, el tama:o de la etiqueta permanecer sin cambios, independientemente de la longitud de su te to. 'i un te to es demasiado largo para la etiqueta, parte del mismo no estar visible 0ya que sobrepasa el ancho del control1.

".2.2

Enla)ar te6tos

Cuando en una etiqueta ingresamos un te to que supera el ancho del control, ese te to aparece cortado o bien la etiqueta crece hori/ontalmente, dependiendo del valor de la propiedad ButoSi2e. Pero en algunos casos ser necesario crear una etiqueta que tenga un tama:o fijo, y que el te to ingresado cre/ca verticalmente en caso de ser ms ancho que el control. Para eso e iste la propiedad (ord(rap. Cuando las propiedades ButoSi2e y (ord(rap son verdaderas 0True1, la etiqueta se ampliar verticalmente para permitir que un n-mero suficiente de lneas se acomoden al te to.
!" #$T%NT&' Ba )ro)iedad (ord(rap s8lo funciona cuando la )ro)iedad %utoSi)e se encuentra en True.

2n la 4igura siguiente se muestran los posibles estados de (ord(rap cuando ButoSi2e es True.

".2."

4ontrolar la a,arien ia del te6to

'i bien la propiedad Caption contiene el te to que va a aparecer en la etiqueta, e isten otras propiedades que regulan su apariencia# son Bli nment' !orderSt/le' Bppearance y !ac7St/le. "a propiedad Bli nment controla la alineaci&n del te to. 'us valores posibles son# $ 0alineado a la i/quierda1, * 0alineado a la derecha1 y 7 0centrado1. "a propiedad !orderSt/le permite definir si el control posee o no un borde, y la propiedad Bppearance especifica si el borde es plano o tridimensional. 2n la 4igura se observan estas propiedades en acci&n.

!" #$T%NT&' Si %utoSi)e se encuentra en True, la )ro)iedad %li*nment no tendr9 efecto.

"a propiedad !ac7St/le de una etiqueta permite definir si su color de fondo 0propiedad !ac7Color1 es s&lido o transparente. 2sta propiedad acepta dos valores#

Elementos del Lenguaje Visual Basic

*5de67

%alor 2 3 Transparent 0 3 Opa4ue

Descripcin 2l fondo de la etiqueta es transparente. 2l fondo de la etiqueta es del color indicado en la propiedad !ac7Color.

'alvo para casos especficos, es conveniente usar esta propiedad en el modo transparente.

".2.$

Eti7uetas de m8lti,les l+neas

"as etiquetas pueden contener m-ltiples lneas. Para eso, se deben insertar en el te to los caracteres de retorno de carro + lCnea nue8a 0caracteres 8'CII *( y *<1. Visual Basic proporciona una constante predefinida que ayuda a cumplir esa tarea# vb&r, . 'u uso es el siguiente#
Babel/.Ca)tion & 'Primera l0nea' 1 vbCrBf 1 'Se#unda linea'

&.&

Cajas de 'e/to - 'e/t.o/ 0

Bas ca-as de te,to se usan )rinci)almente )ara in#resar datos en los )ro#ramas. 6ambiLn se )ueden em)lear )ara mostrar resultados, aun*ue )ara eso es m9s com7n utili@ar las eti*uetas, 2a *ue consumen menos recursos.

"a propiedad ms importante de las cajas de te tos es &ext. 'u funci&n es controlar el te to que el usuario ve o escribe por medio de este control. 8l crear una caja de te to en tiempo de dise:o, se puede poner en &ext el te to que mostrar la caja 0o borrar el valor original para no mostrar nada1. 2n tiempo de ejecuci&n, se suele llamar a esta propiedad para conocer el te to que el usuario ingres& o modific& en la caja de te to, por ejemplo#
t,t3ombre.6e,t

8ll estara contenido el te to ingresado en la caja txtNombre. "as cajas de te to, como muchos otros controles, tienen una propiedad predeterminada, a la cual no hace falta hacer referencia para trabajar. 2n las cajas de te to esa propiedad es &ext, mientras que en las etiquetas, dicha propiedad es Caption. Por ejemplo#
t,t3ombre.6e,t

es lo mismo que#
t,t3ombre

".".1

Manejar m8lti,les l+neas de te6to

Por defecto, las cajas de te to almacenan una sola lnea de informaci&n. 'in embargo, e iste una propiedad llamada MultiLine que determina si la informaci&n se mostrar en una sola lnea o en m-ltiples lneas. "os posibles valores de MultiLine son True y False. $tra propiedad relacionada con las cajas de te to con m-ltiples lneas es Scroll!ars. Dediante esta propiedad podemos agregarle barras de despla/amiento verticales y hori/ontales al control. 'us posibles valores son# 0 0sin barras de desplazamiento1, 1 0barra de desplazamiento horizontal1, 3 0barra de desplazamiento vertical1 y 4 0ambas barras de desplazamiento1.

Elementos del Lenguaje Visual Basic

*=de67

2n la 4igura pr& ima se puede apreciar una caja de te to con m-ltiples lneas y barras de despla/amiento.

".".2

Blo7uear una aja de te6to

"as cajas de te to poseen una propiedad denominada Loc7ed que impide que los usuarios ingresen informaci&n. Cuando Loc7ed est en True, los usuarios no pueden modificar el te to del control 0ver 4igura1.
3o ha2 *ue confundir las )ro)iedades Locked 2 &nabled. Ba )rimera no crea el efecto 'atenuado' 2 )ermite seleccionar 2 co)iar el te,to al Porta)a)eles, mientras *ue la )ro)iedad nabled no )ermite traba-ar de nin#una manera con el control.

"."."

Limitar el n8mero de ara teres

2n muchos casos puede resultar necesario que en una caja de te to el usuario ingrese un te to que no supere cierta cantidad de caracteres. "a propiedad MaxLen th se encarga de limitar el n-mero de caracteres que admite el control, y acepta valores num!ricos. 'i el valor de MaxLen th es 0, la caja de te to no tiene limitaci&n de caracteres. Cualquier otro valor establece el n-mero m imo de caracteres que soporta el control.

".".$

4ara teres es,e iales

"a propiedad PasswordChar permite usar caracteres especiales para mostrar la informaci&n que se ingresa en una caja de te to.
s mu2 7til combinar la )ro)iedad PasswordChar con Ma,Ben#th )ara in#resar contraseAas 2 visuali@ar asteriscos (M).

Por ejemplo#
6e,t/.Ma,Ben#th & N 6e,t/.PasswordChar & 'M'

2n este ejemplo se establece que la caja de te to soporta hasta L caracteres. 8simismo, por cada letra tipeada el usuario observar un asterisco 0aunque la propiedad &ext siempre guarda los caracteres +verdaderos+1.

"."./

Sele

i!n de te6to

Visual Basic incorpora tres propiedades que permiten seleccionar parte o todo el te to de una caja de te to. 2llas son# SelStart' SelLen th y Sel&ext. SelStart establece la posici&n donde comen/ar la selecci&n del te to, SelLen th determina la longitud de la cadena a seleccionar, y Sel&ext devuelve la cadena seleccionada. Veamos un sencillo ejemplo#
t,tCadena.SelStart & O t,tCadena.SelBen#th & Ben(t,tCadena.6e,t) lblSeleccion.Ca)tion & t,tCadena.Sel6e,t

2n el ejemplo seleccionamos todo el te to del control txt&adena y copiamos la selecci&n a una etiqueta 0lblSeleccion1.
Bas )ro)iedades de selecci8n de te,to son ideales )ara usar cuando un control recibe el foco )or )arte del usuario.

Elementos del Lenguaje Visual Basic

*>de67

Cabe aclarar que tambi!n es posible consultar el valor de estas propiedades, para ver si el usuario est seleccionando un te to.

".".1

E3entos de una aja de te6to

"as cajas de te to poseen cuatro eventos principales que debemos conocer# ?8ento &*gnge /e'Down /e'-ress /e'Up Descripcin 'e produce cuando cambia el contenido de una caja de te to. 'e produce cuando el usuario presiona una tecla. 'e produce cuando el usuario pulsa una tecla 0la presiona y la suelta1. 'e produce cuando el usuario suelta una tecla que estaba presionada.

2l evento Chan e no tiene ning-n parmetro y su uso es bastante sencillo. "os eventos Ae/Down y Ae/$p tienen la misma sinta is#
Private Sub 6e,t/_Pe2"own (Pe2Code (s 5nte#er, Shift (s 5nte#er) nd Sub

l )ar9metro KeyCode indica el c8di#o de tecla )ulsado (un valor numLrico). Para ver *uL c8di#o corres)onde a cada tecla, lo me-or es )ulsar F+ sobre KeyCode, o buscar 'KeyCode Constants' en la a2uda de ;isual +asic. Por e-em)lo, el c8di#o <Q corres)onde a la flecha derecha del teclado.

4inalmente, el evento Ae/Press tiene la siguiente sinta is#


Private Sub 6e,tl_Pe2Press(Pe2(scii (s 5nte#er) nd Sub

2l -nico parmetro que recibe, Ae/Bscii, indica el c&digo 8'CII de la tecla pulsada. "os c&digos 8'CII son ms fciles de recordar que los valores utili/ados por Ae/Code, pues son ms habituales en el mundo de la computaci&n. Por ejemplo, el c&digo BSC"" 14 es el de la tecla ?=&?:. %n uso muy com-n para el evento Ae/Press es el de simular la pulsaci&n de un &B!, cuando se presiona la tecla ?=&?:. 2sto hace que podamos despla/arnos c&modamente por varias cajas de te to cuando llenamos un formulario. 2l c&digo del evento Ae/Press sera#
Private Sub 6e,t/_Pe2Press (Pe2(scii (s 5nte#er) 5f Pe2(scii & /< 6hen SendPe2s ('R6abS') Pe2(scii & O nd 5f nd Sub.

"a primera lnea pregunta si la tecla pulsada es ?=&?: 0Ae/Bscii E *<1. "uego, simulamos la pulsaci&n de un &B! mediante la funci&n SendAe/s, y finalmente con Ae/Bscii E ( evitamos el molesto $eep que suena al pulsar el ?=&?: sobre una caja de te to.

".".9

%n ejem,lo om,leto

Vamos a ver un ejemplo que abarque todos los conceptos aprendidos sobre las cajas de te to. "a idea es Elementos del Lenguaje Visual Basic *Lde67

construir el programa que aparece en la 4igura, el cual presenta una caja de te to de cada estilo# *. Creamos un nuevo proyecto en Visual Basic. 7. 8l formulario principal le agregamos las siguientes cajas de te to, modificando las propiedades como se indica# Cajas de &exto Propiedades
txtSimple txtMultiline txtMultiline Scroll$ars txt,imitado txtDes*abilitado txt$lo4ueado txt&lave ?e t E ++ Dultiline E ?rue ?e t E ++ con Dultiline E ?rue 'crollBars E < ?e t E ++ Da "engthE*( ?e t E ++ 2nabledE4alse ?e t E +2stoy deshabilitado+ "ocJedE?rue ?e t E +2stoy bloqueado+ Pass,ordCharE+R+ 0sin las comillas1. ?e t E ++

<. Conviene agregar algunas etiquetas que permitan reconocer de qu! tipo es cada caja de te to. Para eso, simplemente las agregamos. 6. "isto, no hay que escribir ning-n c&digo. '&lo resta probar c&mo responde cada caja de te to.

&.(

Marcos - !rame 0

"os marcos se usan para agrupar otros controles y hacer ms entendible una interfase. 2ste control es especial porque act-a como contenedor de otros controles. 8l ocultar o desactivar un control contenedor, se ocultan o desactivan todos los objetos contenidos. "a apariencia de los marcos se define mediante las ya conocidas propiedades Caption, Bppearance y !orderSt/le. "a 4igura muestra los distintos aspectos que pueden adoptar los marcos.

".$.1

:ra*ajar on ontroles en el mar o

Para ubicar controles en un marco, simplemente hay que dibujarlos sobre ellos, o seleccionar el marco y hacer doble clic sobre el control a crear 0para que apare/ca dentro del marco seleccionado y no en el formulario1. 8lgunas consideraciones a tener en cuenta son# Elementos del Lenguaje Visual Basic *Mde67

'i e isten controles en un formulario, no estarn dentro de un marco, por ms que se dibuje este control sobre los e istentes. Cuando se arrastra un control hacia un marco, no se ubica dentro del contenedor# sigue estando en el formulario 0aunque en otra posici&n1. "a forma ms com-n de mover un control hacia un marco 0en tiempo de dise:o1 es cortando y pegando los controles. Para eso, en el momento de pegar un control debemos asegurarnos de que el marco se encuentre seleccionado.

S,-&$&NC!%' Para cerciorarnos de *ue un control est9 en el marco, intentaremos mover el marco: si el control se mueve con Ll, forma )arte del contenedor.

Vamos a crear un peque:o ejemplo que trabaje con un marco, el cual podr ser mostrado u ocultado con dos botones de comando mediante la propiedad visible# *. Crear un nuevo proyecto. 7. Poner un marco en el formulario y llamarlo fraMarco 0propiedad Name1. <. 8gregar algunos controles dentro del marco 0recuerden +dibujarlos+ en su interior1. 2n nuestro ejemplo, hay una etiqueta y tres controles de imagen. 6. 8gregar dos botones de comando# Dostrar 0cmdMostrar1 y $cultar 0cmd-cultar1. 5. Ingresar el c&digo necesario en ambos botones#
Private Sub cmdMostrar_Click() 'Mostramos el marco fraMarco.;isible & 6rue nd Sub Private Sub cmd%cultar_Click() '%cultamos el marco fraMarco.;isible & !alse nd Sub

2n la 4igura se ve el ejemplo terminado. 8l mostrar u ocultar el marco, tambi!n ocultamos todos los controles que tiene en su interior.

&.

.otones de Comando - Command.utton 0

"os botones de comando se usan para iniciar, interrumpir o detener procesos. 2s el control mediante el cual los usuarios pueden reali/ar las funciones de una aplicaci&n por medio de botones 0sin tener que acceder a ning-n men-1. Para definir la acci&n a reali/ar por un bot&n, se suele ingresar c&digo en el evento Clic7 del mismo.

"./.1

Botones on gr52i os

%na de las cualidades ms interesantes de este control es que los botones pueden contener grficos, no s&lo te tos. Para eso, hay que conocer las propiedades: St/le' Picture' DisabledPicture y DownPicture. "a propiedad St/le determina si el bot&n es estndar o grfico. 'us posible valores son 0 0bot&n estndar1 y 1 0bot&n grfico1. Picture contiene la imagen a mostrar en el caso de que un bot&n sea de estilo grfico. "a propiedad DisabledPicture establece la imagen a mostrar cuando un bot&n se encuentra desactivado Elementos del Lenguaje Visual Basic 7(de67

0?nabled , False1. Por -ltimo, DownPicture fija la imagen a mostrar cuando el bot&n se mantiene presionado.
!" #$T%NT&' Bas )ro)iedades icture. /isabled icture 2 /own icture efecto cuando los botones son #r9ficos (la )ro)iedad Style es +). s8lo tienen

"./.2

El 2o o en los ontroles

"leg& el momento de hablar de un tema importante# el foco en los controles. "a mayora de los objetos poseen un foco cuyo objetivo es poder trabajar con el control mediante el teclado. 2l foco se distingue por ser un recuadro punteado que rodea al control. Dediante la tecla &ab se puede ubicar el foco en el siguiente control y con la !arra espaciadora se ejecuta una acci&n 0por ejemplo, pulsar un bot&n1. ?odas estas acciones se reali/an frecuentemente con el mouse, pero en ciertas ocasiones es necesario moverse mediante el teclado 0y el foco resulta un buen indicador del objeto actual1. 2l foco s&lo puede encontrarse en un control a la ve/. "os botones de comando y la mayora de los controles 0cajas de te to, etc.1 poseen dos propiedades que permiten controlar el foco sobre ellos. 2llas son# &abStop y &ab"ndex. &abStop acepta los valores True o False, e indica si los usuarios pueden ubicar el foco sobre el objeto mediante la tecla &ab. "a propiedad &ab"ndex establece un n-mero que representa el ndice para acceder al control. Por ejemplo, al presionar sucesivamente la tecla &ab, el foco se ubicar en los controles con n-mero de ndice (, *. 7. etc. 8dems, e isten dos eventos muy -tiles llamados ;otFocus y LostFocus. 2l primero se dispara cuando el control acaba de obtener el foco, y el segundo cuando ocurre lo contrario# el usuario se va del objeto. %tili/ando el evento LostFocus podemos, por ejemplo, chequear un ingreso de datos en una caja de te to y retener al usuario all si hubiese un error. Para esto, podemos utili/ar un m!todo muy efectivo llamado SetFocus#
%b-eto.SetFocus

2ste m!todo permite ubicar el foco en un objeto, que necesariamente debe estar visible y habilitado. Volviendo a los botones de comando, en la 4igura se ve un ejemplo muy sencillo. 2ste programa muestra algunos botones, y al presionar uno, nos informa cul fue 0mediante una etiqueta llamada lbl"nfo1. "as propiedades &ab"ndex de cada bot&n estn correctamente ordenadas, por lo que el usuario puede navegar perfectamente con la tecla &ab. Cuando el usuario se sit-a sobre un bot&n 0pero no lo pulsa1, el uso del evento ;otFocus informa cul es el bot&n activo. 2n el ejemplo, los cuatro botones son un vector de controles 0llamados + cmd+1) aunque esto todava no lo hemos visto, el c&digo es el siguiente#
Private Sub cmd_Click(5nde, (s 5nte#er) 'Se )ulso el bot8n 5nde, lbl5nfo & 'Se )uls8 el bot8n ' 1 5nde, nd Sub

Elementos del Lenguaje Visual Basic

7*de67

Private Sub cmd_Tot!ocus(5nde, (s 5nte#er) ' l bot8n 5nde, tiene el foco lbl5nfo & ' l bot8n ' 1 5nde, 1 ' tiene el foco' nd Sub

&.2

Cajas de 3erificacin - Chec4.o/ 0

2stos controles se utili/an para establecer las opciones de un programa que pueden aceptar un valor Si + =o 0o acti8ado + desacti8ado1. 'on ideales para desplegar muchas opciones, siempre y cuando el usuario pueda elegir una o ms de ellas.

".1.1

Estados de las ajas de 3eri2i a i!n

Cuando las cajas de verificaci&n se encuentran activadas, en el control se puede apreciar un tilde. 3e lo contrario, la caja de verificaci&n est vaca. 'in embargo, estos controles tienen un tercer estado posible, que se representa mediante un tilde sobre un fondo grisceo. "a propiedad %alue es la encargada de determinar el estado de la caja de verificaci&n. 'us posibles valores son 0 0sin chequear1, 1 0chequeada1 y 3 0atenuada1. Veamos un ejemplo sencillo# *. 7. <. 6. 2n un proyecto nuevo, agregamos una caja de verificaci&n y la llamamos ch7Loop. 8l solo efecto demostrativo agregamos otra caja 0ch7Btenuado1 con %alue , 3. 8gregamos una etiqueta y la denominamos lbl"nfo. 2n el evento Clic7 de la caja de verificaci&n, escribimos el siguiente c&digo#
Private Sub chkBoo)_Click() 'Se#7n el estado de la )ro)iedad ;alue 'decidimos *uL informaci8n mostrar 5f chkBoo).;alue & / 6hen lbl5nfo & 'Re)roducci8n continua activada' lse lbl5nfo & 'Re)roducci8n continua desactivada' nd 5f nd Sub

8l hacer cambiar el estado de la caja de verificaci&n, la etiqueta Loop nos informa el estado de la misma. 2n la 4igura se ve el programa terminado. %n ejemplo bastante simple del uso de las casillas de verificaci&n.

&.5

.otones de 6pcin - 6ption.utton 0

2ste control se utili/a para agrupar un conjunto de opciones de las cuales se puede elegir s&lo una de ellas 0a diferencia de las cajas de verificaci&n, que permite elegir varias1.

&.5.1

Estados de los #otones de opcin

"os botones de opci&n s&lo tienen dos estados# seleccionados o no seleccionados. 2sta propiedad se Elementos del Lenguaje Visual Basic 77de67

establece mediante la propiedad %alue, que acepta los valores True y False. Cuando hay un grupo de botones de opci&n, s&lo uno de ellos puede estar activo. 'in embargo, se pueden tener varios grupos de botones de opci&n en un formulario mediante marcos 0que act-an como contenedores1. 2n la 4igura se puede observar un ejemplo. Para crear varios grupos de botones de opci&n, se debe utili/ar contenedores.
N# H%0 1,& C#NF,N/!$ ' ... las ca2as de 3eri4icacin con los botones de opcin. Bas )rimeras se usan )ara a#ru)ar o)ciones 2 )ermitirle al usuario seleccionar una o m9s de ellas. Bos botones de o)ci8n a#ru)an o)ciones de las cuales el usuario s8lo )uede ele#ir una.

%na forma adecuada de averiguar si una opci&n est chequeada es la siguiente#


';er *uL club seleccion8 el usuario 5f o)t+oca.;alue 6hen Club & '+oca' lse Club & 'River' nd 5f

2sto se complica un poco cuando aumenta el n-mero de opciones. 2n ese caso, ser ms conveniente crear un vector de controles, y hacer un ciclo For ... =ext para ver qu! opci&n est seleccionada 0pero esto es un tema para ms adelante, que aqu se desarrolla en las cajas de verificaci&n1. Veamos un ejemplo. Vamos a construir un programa como el de la 4igura que le permita al usuario enmarcar su club y su se o e informar sobre otros deportes que practica# Creamos tres marcos,0fraSexo, fraClub y fra-tros: SQu! deportes practicaT1 y en cada uno agrupamos las opciones necesarias# Dasculino y 4emenino 0optMasculino y optFemenimo1, y Boca y Fiver 0opt!oca y opt:i8er1 y un vector de controles ch7-tros)0 .. 6*' con las opciones 4ootball .. a .. Fugby. "uego, mediante el bot&n 8ceptar 0cmdBceptar1, averiguamos qu! opciones y verificaci&nes fueron seleccionadas y mostramos el mensaje correspondiente. 2l c&digo de este bot&n es el siguiente#
Private Sub cmd(ce)tar_Click() "im Se,o (s Strin# ';ariable *ue contendr9 el "im Club (s Strin# ';ariable *ue contendr9 el "im Mensa-e (s Strin# ';ariable *ue contendr9 "im 6itulo (s Strin# ';ariable *ue contendr9 "im stilo (s ;ariant ';ariable *ue contendr9 ';er *ue se,o seleccion8 el usuario 5f o)tMasculino.;alue 6hen Se,o & 'Masculino' se,o Club el Mensa-e del Ms#+o, el 60tulo del Ms#+o, el stilo del Ms#+o,

Elementos del Lenguaje Visual Basic

7<de67

lse Se,o & '!emenino' nd 5f ';er *ue club seleccion8 el usuario 5f o)t+oca.;alue 6hen Club & '+oca' lse Club & 'River' nd 5f ';er *ue de)ortes )ractica el usuario 6e,to & '' !or i & O 6o ? 5f chk%tros(i).;alue & / 6hen 6e,to & 6e,to J chk%tros(i).Ca)tion 1 ', ' nd 5f 3e,t '(rmando el 6e,to de la ;entana de Mensa-e Mensa-e & 'Se,o: ' 1 Se,o 1 ', Club: ' 1 Club 1 ', Practico: ' 1 6e,to stilo & vb%P%nl2 6itulo & 'Resultado ' Ms#+o, Mensa-e, stilo, 6itulo nd Sub

&.7

Cajas de Listado - List.o/ 0

2ste control se usa para mostrar una lista de opciones de las cuales el usuario puede seleccionar una o ms, pero no ingresar su propio valor.

".;.1

&,arien ia de las ajas de listado

"a 4igura muestra una lista sencilla donde se pueden observar todos los elementos del control. "os principales componentes de las cajas de listado son#

Lista de elementos: contienen los elementos que el usuario puede seleccionar. "os elementos se pueden agregar en tiempo de dise:o o en tiempo de ejecuci&n 0mediante un m!todo que veremos a continuaci&n1. ?lemento seleccionado: los usuarios pueden seleccionar uno o ms elementos de la lista. Ustos se distinguen por una barra destacada o mediante un tilde en una casilla 0como veremos a continuaci&n1. !arra de despla2amiento: cuando la cantidad de elementos supera el tama:o del control, se presenta una barra de despla/amiento para poder acceder a los elementos no visibles.

"a caja de listado mostrada a la I/quierda de la 4igura presenta un estilo estndar. Pero e iste otro estilo que permite agregarle cajas de verificaci&n a los elementos de la lista 0a la derecha de la 4igura1. Dediante la propiedad St/le podemos establecer el estilo del control. 'us posibles valores son# 2 5Standard6 ' 0 5&*ec%$ox67 2n la 4igura se muestran los estilos disponibles mediante la propiedad St/le. "as cajas de listado con casillas de verificaci&n son ideales para seleccionar m-ltiples elementos. $tra propiedad que permite cambiar la apariencia de las cajas de listado es Columns. Como su nombre lo indica, esta propiedad establece si los controles se mostrarn en columnas por medio de barras de Elementos del Lenguaje Visual Basic 76de67

despla/amiento hori/ontales. 'i el valor de Columns es (, la caja de listado no posee columnas. Cualquier otro valor muestra la caja de listado con la cantidad de columnas especificadas. 2sta propiedad se aplica para cualquier estilo de caja de listado. 2n la 4igura muestra un ejemplo a la derecha.

".;.2

(ro,iedades ,ara organi)ar elementos

8ntes de meternos de lleno en el manejo de este control, es muy importante conocer dos propiedades# ListCount y List"ndex. 8mbas se encuentran disponibles s8lo en tiempo de e!ecuci8n. "a cantidad total de elementos de un listado es igual a ListCount, pero el -ltimo elemento posee el n-mero de ndice ListCount D 1 0ya que los ndices empie/an desde (1. Por ejemplo, para e aminar todo el contenido de una caja de listado, habra que escribir lo siguiente#
!or i & O 6o Bist/.BistCount U / .... 3e,t

List"ndex representa el elemento seleccionado. 'i no hay ning-n elemento seleccionado, esta propiedad posee el valor D1.
!" #$T%NT&' List!ndex es 5+ si no ha2 elementos seleccionados.

Cuando est9 seleccionado el )rimer elemento de la lista, List!ndex es 67 Cuando est9 seleccionado el 8uinto elemento de la lista, List!ndex es 97

".;."

E3entos de una aja de listado

Como cualquier otro control, las cajas de listado responden a ciertos eventos. 2l evento ms importante es un clic o doble clic del mouse, ya que as es como el usuario selecciona un elemento. 8veriguar sobre qu! elemento hi/o clic el usuario es tarea sencilla#
Private Sub lstBista_Click() '(*u0 lstBista.lst5nde, ........ nd Sub contiene el elemento ele#ido

2n la siguiente tabla se muestran los eventos ms importantes que reconoce una caja de listado# ?8ento
&lic% Dbl&lic% +tem&*ec% Scroll

Descripcin
2l usuario hi/o clic sobre alg-n elemento. 2l usuario hi/o doble clic sobre un elemento. $curre cuando se marca o desmarca un elemento de una lista, que es del tipo Chec7!ox 0la propiedad St/le es 11. 'e dispara cuando el usuario mueve la barra de despla/amiento vertical que puede contener un listado.

Cabe aclarar que al movernos por el listado utili/ando las flechas del teclado, tambi!n estamos generando eventos Clic7.

Elementos del Lenguaje Visual Basic

75de67

".;.$

&gregar elementos

2n tiempo de dise:o, para agregar elementos a una caja de listado se puede utili/ar la propiedad List. 8l hacer clic sobre la misma en la ventana de propiedades, Visual Basic nos permitir escribir varios renglones, cada uno de los cuales representa un elemento del control.
Cuando se in#resan elementos a una ca-a de listado mediante la )ro)iedad List, se debe )resionar Ctrl:&nter )ara des)la@arse a la l0nea si#uiente de la lista, 2a *ue si se )resiona s8lo &nter, la ventana de )ro)iedades asumir9 *ue 2a se in#resaron todos los elementos.

'in embargo, lo ms com-n es agregar elementos a la lista en tiempo de ejecuci&n por medio de c&digo. Para eso, las cajas de listado poseen un m!todo llamado Bdd"tem que reali/a dicha funci&n. 'u uso es muy sencillo#
ob-eto.(dd5tem 0tem, 0ndice

ParEmetro
9tem 9ndice

Descripcin
Cadena de caracteres que representa el elemento a agregar. 2ste parmetro es obligatorio. 9-mero entero que representa la posici&n del objeto donde se ubicar el nuevo tem.

Veamos un ejemplo#
Bist/.(dd5tem '.ltimo elemento' Bist/.(dd5tem 'Primer elemento', O Bist/.(dd5tem '?to elemento', =

'i no se utili/a el parmetro opcional 9ndice, Bdd"tem agrega los elementos al final de la caja de listado. "a segunda lnea de c&digo agrega un elemento al principio de la lista 0posici&n (1. "a -ltima lnea incorpora un tem en la quinta posici&n 0para lo cual debemos ingresar un n-mero de ndice inferior en una unidad, ya que el primer elemento es el n-mero (1. 'i agregamos un tem y lo ubicamos en una posici&n mayor a la cantidad de elementos del listado, se produce un error.

".;./

Eliminar elementos

"as cajas de listado poseen un m!todo llamado Clear que permite borrar todos los elementos del control. 2l m!todo se usa de la siguiente forma#
Bist/.Clear

8fortunadamente, tambi!n e iste una forma de eliminar un elemento especfico de la cajas de listado. 2l m!todo :emo8e"tem es el encargado de dicha funci&n. 'u sinta is es#
ob-eto.Remove5tem 0ndice

Veamos un ejemplo donde se elimine el -ltimo y el primer elemento de una caja de listado llamada List1. Elementos del Lenguaje Visual Basic 7=de67

Bist/.Remove5tem Bist/.BistCountU/ Bist/.Remove5tem O

'i necesitamos eliminar el elemento actual, podemos aprovechar el valor de la propiedad List"ndex#
Bist/.Remove5tem Bist/.Bist5nde,

%n detalle muy importante# si utili/amos el m!todo :emo8e"tem con un ndice que no e iste, se producir un error. Por lo tanto, antes de utili/ar este m!todo con la propiedad List"ndex, debemos asegurarnos de que !sta no contenga el valor D1 0indicando que no hay ning-n tem seleccionado1#
5f Bist/.Bist5nde, VW U/ 6hen Bist/.Remove5tem Bist/.Bist5nde, nd 5f %T&NC!;N' $a2 *ue tener mucho cuidado al escribir varias l0neas se#uidas de c8di#o con $emo3e!temX recordemos *ue cuando se borra un elemento se actuali@a el total de tems de la lista, 2 esto )uede afectar a una )osterior l0nea de c8di#o *ue inclu2a $emo3e!tem.

".;.1

4onsultar el ontenido de un elemento

Dediante la propiedad List"ndex podemos conocer el 9ndice del elemento actual sobre el que se encuentra el usuario, pero... Sc&mo sabemos cul es el contenido de ese elementoT ?odos los listados tienen un vector llamado List)i*' que nos permite conocer el contenido de cualquier elemento, por ejemplo#
lstBista.Bist(O)

2sto contiene el valor del primer elemento del listado lstLista.


lstBista.Bist(lstBista.Bist5nde,)

2sto contiene el valor del elemento actual de la lista.

".;.9

0rdenar elementos

"a propiedad Sorted permite ordenar automticamente los elementos de la lista. 'i posee el valor True, independientemente del orden en que se ingresen los elementos, !stos aparecern ordenados alfab!ticamente.
#<#: n orden alfabLtico, el ? viene detr9s del =Q.

".;.;

:ra*ajar on sele

iones m8lti,les

2n muchos casos es necesario que los usuarios seleccionen varios elementos de la lista. 2n las listas con estilo Chec7!ox 0cajas de verificaci&n1 eso no es problema, ya que se pueden marcar con un tilde todos los elementos deseados. 2n las listas con estilo Standard esto tambi!n se puede reali/ar mediante la propiedad MultiSelect. "os valores posibles de MultiSelect son# 0 0no se permite multiselecci&n1, 1 0se permite multiselecci&n simple1 y 3 0se permite multiselecci&n e tendida1.

Elementos del Lenguaje Visual Basic

7>de67

Cuando la )ro)iedad Style de las ca-as de listado es + (CheckBox) la )ro)iedad "ultiSelect debe ser 6. Ba )ro)iedad List!ndex siem)re indica el tem actual dentro del listado, )ero no refle-a todos los elementos seleccionados en una selecci8n m7lti)le.

Para conocer qu! elementos estn seleccionados y cules no, se deben recorrer todos los elementos y utili/ar la propiedad Selected. 2sta propiedad se usa de la siguiente forma#
ob-eto.Selected(0ndice) Y&valorZ

ParEmetro ob!eto 9ndice valor

Descripcin Fepresenta el objeto a evaluar 0en este caso, una caja de listado1. 2l ndice de elemento. Valor True o False, que se usa para seleccionar o no un elemento.

Con los siguientes ejemplos se aclarar un poco el panorama#


5f Bist/.Selected(O) & 6rue 6hen ' Si el )rimer elemento de la lista est9 seleccionado, ' se e-ecutar9n las sentencias *ue a*u0 ubi*uemos. nd 5f Bist/.Selected(O) & 6rue ' sta sentencia selecciona autom9ticamente el )rimer elemento de la lista.

".;.<

%n ejem,lo om,leto

3ado que los listados son un tema importante, vamos a ver un ejemplo que utilice las t!cnicas e plicadas. 2l programa terminado se puede observar en la 4igura, y le permite al usuario ingresar 9tems al listado 0lst=ombres1 mediante una caja de te to 0txt=ombre1. "uego de ingresar un nombre, se debe pulsar el bot&n 8gregar 0cmdB re ar1 para incorporarlo a la lista. ?ambi!n hay dos etiquetas 0lblBctual y lbl&otal1 que muestran el ndice actual y la cantidad de elementos de la lista. 8dicionalmente, el usuario tambi!n dispone de dos botones# Dodificar 0cmdModificar1 y 2liminar 0cmd?liminar1. 2l primero modifica el valor del elemento actual, contenido en el vector List, y el segundo lo elimina. Como el listado debe estar ordenado, establecemos su propiedad Sorted en True. %na ve/ que construimos el formulario y todos los controles tienen su respectivo nombre 0que fue indicado entre par!ntesis1 , podemos ingresar el c&digo necesario en cada evento#
Private Sub cmd(#re#ar_Click() 'Si el contenido de la ca-a t,t3ombre 'no es vac0o, entonces a#re#arlo al listado

Elementos del Lenguaje Visual Basic

7Lde67

5f

t,t3ombre VW '' 6hen '(#re#amos el elemento a la lista lst3ombres.(dd5tem t,t3ombre ';aciamos el contenido de la ca-a de te,to t,t3ombre & '' nd 5f

'(ctuali@amos el valor de las eti*uetas lbl6otal & lst3ombres.BistCount lbl(ctual & lst3ombres.Bist5nde, nd Sub Private Sub cmd liminar_Click() 'Si ha2 un elemento seleccionado 5f lst3ombres.Bist5nde, VW U/ 6hen ' liminamos el [tem actual lst3ombres.Remove5tem lst3ombres.Bist5nde, nd 5f '(ctuali@amos el valor de las eti*uetas lbl6otal & lst3ombres.BistCount lbl(ctual & lst3ombres.Bistlnde, nd Sub Private Sub cmdModificar_Click() 'Si el contenido de t,t3ombre no es vacio 5f t,t3ombre VW '' 6hen 'Modificamos el elemento actual de la lista lst3ombres.Bist(lst3ombres.Bist5nde,) & t,t3ombre nd 5f nd Sub Private Sub lst3ombres_Click() lbl(ctual & lst3ombres.Bist5nde, nd Sub Private Sub cmdSalir_Click() nd nd Sub

'on s&lo 6 procedimientos sencillos. Para aprender bien el tema, primero es recomendable darle una breve leda a cada uno, y luego probar el ejemplo.

&.8

Cajas Com#inadas - Com#o.o/ 0

"as cajas combinadas 0combo1 me/clan las cajas de listado con las cajas de te to. "a idea de este control es darle al usuario una lista con opciones, pudiendo introducirse nuevos valores. "a diferencia entre las cajas de listado y los combos radica en que estas -ltimas, adems de permitir seleccionar una opci&n de un listado, brindan la posibilidad de escribir una opci&n personali/ada 0aunque no se puede hacer multiselecci&n como en las cajas de listado1.
C%M+%: n la -er#a se suele utili@ar el tLrmino combo en lu#ar de ca-a combinada. (*u0 utili@aremos cual*uiera de estos dos tLrminos )ara nombrar el control.

".<.1

Estilos de om*os

"os combos se pueden usar de tres maneras totalmente distintas, gracias a la propiedad St/le. 'us posibles valores son# 0 0caja combinada desplegable1, 1 0combo simple1 y 3 0lista desplegable1.

Elementos del Lenguaje Visual Basic

7Mde67

"os combos desple ables me/clan las cajas de te to con los cuadros de listado. 2l usuario puede ingresar un valor en la caja de te to o seleccionar un elemento de lista. "a 4igura muestra un ejemplo de este estilo de caja combinada. Cuando la propiedad St/le de las cajas combinadas es igual a 1, los usuarios pueden ingresar valores o seleccionar elementos de la lista. "os combos sencillos presentan una caja de te to y una lista no desplegable 0est siempre visible1. "os usuarios pueden escribir valores nuevos o seleccionar elementos de la lista. "a diferencia del combo sencillo con el desplegable consiste en que, en este -ltimo combo, la lista con elementos aparece siempre 0en lugar de desplegarse al hacer clic sobre la flecha1. "as listas desple ables son similares a las cajas de listado, ya que el usuario s&lo puede seleccionar un elemento de la lista pero no ingresar uno nuevo. 2stos controles poseen una caja de te to pero no permiten ingresar valores, sino que al hacer clic se despliega el listado completo.
Bas listas des)le#ables no )ermiten in#resar elementos.

Por -ltimo, vale mencionar que e iste una propiedad llamada &ext que permite mostrar un te to en el control, o devolver el te to correspondiente al elemento seleccionado.

".<.2

:ra*ajar on om*os

?rabajar con combos es similar a hacerlo con cajas de listado, ya que ambos controles comparten muchas propiedades y m!todos. Dediante las propiedades ListCount y List"ndex se puede conocer el total de elementos y el ndice del tem seleccionado. Para agregar elementos al control, los combos poseen el m!todo Bdd"tem. Para eliminar elementos, e isten los m!todos Clear y :emo8e"tem. Por -ltimo, la propiedad Sorted posibilita ordenar los elementos de la lista. 'i en alg-n momento necesitamos conocer el valor de un elemento, podemos utili/ar el vector List de la misma forma que en las cajas de listado.
Conviene recordar *ue si tenemos tres elementos en un combo, ListCount ser9 i#ual a =, )ero el 0ndice del 7ltimo elemento ser9 > (ListCount5+) 2a *ue el )rimer elemento tiene el n7mero de 0ndice 6.

3ado que el trabajo con los combos es similar al de los listados, aconsejamos desarrollar el ejemplo de la 4igura que demuestra el uso de las cajas combinadas.

&.19

.arras de :espla;amiento <ori;ontal=3ertical -<Scroll.ar=3Scroll.ar0

3esde el punto de vista del programador, las barras de despla/amiento devuelven un valor num!rico. 2s tarea nuestra usar ese valor de la manera que corresponda para la aplicaci&n.

Elementos del Lenguaje Visual Basic

<(de67

Visual Basic proporciona dos tipos de barras de despla/amiento# hori/ontales y verticales. 8mbas trabajan de la misma forma) su -nica diferencia es la orientaci&n.

".1=.1

Elementos de las *arras de des,la)amiento

"a 4igura muestra una barra de despla/amiento hori/ontal. 8ll se pueden apreciar los elementos que forman al control. "as barras de despla/amiento son ideales para ingresar valores num!ricos grficamente. "as flechas se utili/an para despla/arse distancias reducidas. "a barra permite moverse a grandes saltos. 2l bot&n 0tambi!n llamado +dedo gordo+1 puede ser arrastrado para despla/arse a una posici&n especfica de la barra.
/&/# -#$/#' Se llama dedo #ordo al )e*ueAo bot8n *ue se encuentra dentro de las barras de des)la@amiento, 2 )ermite mani)ularlas.

".1=.2

4on2igurar una *arra de des,la)amiento

Como dijimos anteriormente, las barras de despla/amiento devuelven un valor num!rico. 3e esto se deduce que hay tres n-meros en juego# el valor mnimo y m imo que soporta la barra, y el valor num!rico actual 0que seleccion& el usuario1. 8qu es donde entran en escena las propiedades Min' Max y %alue. "a propiedad Min establece el valor mnimo de la barra de despla/amiento. Max fija el valor m imo del control. %alue permite controlar o establecer el valor num!rico actual.
"in. "ax 2 ?alue ace)tan n7meros enteros cu2o ran#o va desde el 5=>7@AB hasta el =>7@A@. Sin embar#o, la )ro)iedad ?alue debe encontrarse dentro del intervalo com)rendido )or "in 2 "ax.

".1=."

4ontrolar el tama'o de los am*ios

"a propiedad SmallChan e controla la cantidad en que aumenta o disminuye %alue cuando se pulsa una flecha de las barras de despla/amiento, a menos que el cambio e ceda los lmites de las propiedades Min y Max. 2l valor predeterminado de esta propiedad es 1, pero podemos elegir cualquier n-mero entero 0siempre que no supere los lmites del control1. Cuando se pulsa sobre la barra que se encuentra entre el dedo gordo y una flecha, la barra de despla/amiento debe cambiar ms bruscamente que cuando se pulsan las flechas. Dediante la propiedad Lar eChan e se puede definir la magnitud de dicho movimiento. 2l valor predeterminado de Lar eChan e es *, pero es posible asignarle cualquier otro n-mero entero.
S,-&$&NC!%' 3ormalmente se suele a-ustar la )ro)iedad Lar*eChan*e en un valor *ue re)resente el /O\ del intervalo total. Por e-em)lo, en una barra de des)la@amiento *ue va desde el / hasta el /OO, la )ro)iedad Lar*eChan*e )odr0a ser /O, mientras *ue SmallChan*e )odr0a ser I.

8 continuaci&n veremos un ejemplo que muestra el uso de las barras de despla/amiento. Podemos probarlo en nuestra PC) para eso, creamos un proyecto, agregamos una barra de despla/amiento y una etiqueta, y escribimos el siguiente c&digo# Elementos del Lenguaje Visual Basic <*de67

Private Sub !orm_Boad() $Scroll/.Min & / $Scroll/.Ma, & /OO $Scroll/.SmallChan#e & I $Scroll/.Bar#eChan#e & /O nd Sub Private Sub $Scroll/_Chan#e() Babel/.Ca)tion & $Scroll/.;alue nd Sub Private Sub $Scroll/_Scroll() Babel/.Ca)tion & $Scroll/.;alue nd Sub

2l evento Load del formulario es ideal para establecer los valores iniciales de la barra de despla/amiento. 2l evento Chan e se activa cada ve/ que el usuario modifica el valor de la barra de despla/amiento 0ya sea mediante la flecha o la barra1. 2l evento Scroll se activa mientras se arrastra el dedo gordo, y permite mostrar un valor antes de que se active el evento Chan e. 2n la 4igura se puede ver la apariencia del ejemplo que acabamos de construir. "as barras de despla/amiento son muy c&modas de usar.

&.11

'empori;adores - 'imer 0

Ds conocido como &imer, este control se usa cuando se desea que el programa repita una acci&n cada cierto intervalo de tiempo. "os tempori/adores generalmente se emplean para# *. 7. <. 6. 5. Crear carteles que se despla/an. Controlar la velocidad de animaciones sencillas. Presentar una pantalla de inicio que desaparece luego de * o 7 segundos. Crear protectores de pantalla. Dostrar una cantidad de tiempo transcurrido.

Bos timers son invisibles a los usuarios. S8lo los )ueden ver los )ro#ramadores en tiem)o de diseAo. n la -er#a se suele utili@ar el tLrmino timer en lu#ar de tem)ori@ador. 3% abusar de los tem)ori@adores en los )ro#ramas, 2a *ue consumen muchos recursos del sistema. >indows s8lo )ermite em)lear /] timers simult9neos.

".11.1

&justar un tem,ori)ador

Para agregar un tempori/ador al proyecto, se debe hacer doble clic sobre su icono en la caja de herramientas, o simplemente dibujarlo en el formulario. 2se control se muestra como un icono en tiempo de dise:o, pero es invisible mientras se ejecuta el proyecto. 2l control ?imer aparece como un icono, independientemente del tama:o con el que se lo dibuje. "as dos propiedades ms importantes de los tempori/adores son "nter8al y ?nabled. "a primera determina el tiempo que debe esperar Visual Basic para generar el evento &imer. 'e mide en milisegundos, y sus posibles valores van desde 0 0desactivado1 hasta F6.646 0apro imadamente, * minuto1. "a propiedad ?nabled determina si el tempori/ador debe comen/ar a avan/ar o no.
M5B5S T.3"%: *uivale a un se#undo dividido /OOO. so *uiere decir *ue si necesitamos

Elementos del Lenguaje Visual Basic

<7de67

un retardo de un se#undo, debemos )oner la )ro)iedad !nter3al a /OOO.

Como habrn notado, los tempori/adores funcionan con cantidades muy peque:as de tiempo. SQu! pasa si deseamos establecer intervalos muchos mayores a los soportados por la propiedad "nter8alT Para solucionar ese inconveniente, podemos utili/ar las funciones de fecha y hora de Visual Basic. Por ejemplo, se pueden utili/ar los tempori/adores no para ejecutar un evento, sino para comprobar variaciones en la fecha y hora del sistema. Por -ltimo, e iste un evento llamado &imer, y es all donde se introduce todo el c&digo relacionado con los tempori/adores#
Private Sub !orm_Boad() 6imer/.5nterval & /OOO 6imer/. nabled & 6rue nd Sub Private Sub 6imer/_6imer() '6odo el c8di#o *ue in#resemos ac9, 'se e-ecutar9 cada un se#undo. .......... nd Sub

"os tempori/adores pueden ser muy -tiles para hacer titilar un te to cada cierto intervalo de tiempo. Veamos un ejemplo de c&mo hacerlo# *. Crear un nuevo proyecto. 7. 8gregar una etiqueta y un tempori/ador. <. 2n el evento Load del formulario, ingresar#
Private Sub !orm_Boad() 6imer/.5nterval & I?O 6imer/. nabled & 6rue nd Sub

6. Cambiar el color de la etiqueta en el evento &imer#


Private Sub 6imer/_6imer() 5f Babel/.!oreColor & vb+lack 6hen Babel/.!oreColor & vbRed lse Babel/.!oreColor & vb+lack nd 5f nd Sub

5. 8gregar un bot&n para salir del programa. 2n la 4igura se ve el programa funcionando, aunque obviamente no se puede apreciar el efecto de parpadeo del te to que titila cada 75( milisegundos. 0 2jecutar el programa# ?empori/ador.e e 1

&.12

Cajas de Listado de +nidades> :irectorios y )rchi"os

2n este grupo hemos incluido tres controles distintos, pero que generalmente se suelen usar en conjunto para permitirle al usuario seleccionar alg-n archivo, buscndolo en la unidad de disco y directorio o carpeta que corresponda. Elementos del Lenguaje Visual Basic <<de67

&.12.1

Cajas de Listado de +nidades - :ri"eList.o/ 0

2stos controles son cajas de listado desplegables que informan todas las unidades de disco disponibles en la PC. Comien/an mostrando la unidad actual, y permiten ver el resto de las unidades vlidas con s&lo hacer un clic sobre una flecha 0ver I/quierda arriba en la 4igura1."as cajas de listado de unidades son ideales para seleccionar una unidad de disco. %na de sus propiedades ms importantes es Dri8e, que permite establecer o devolver la unidad de disco actual. 'u sinta is es#
ob-eto."rive Y & unidadZ

$tras propiedades importantes son List, ListCount y List"ndex, que permiten manipular la lista de unidades de forma similar a cualquier caja de listado.

&.12.2

Cajas de Listado de :irectorios - :irList.o/ 0

2ste control muestra una caja de listado con los directorios 0o carpetas1 del disco. Por omisi&n empie/a mostrando el directorio actual sobre el cual se est ejecutando la aplicaci&n. 2n la 4igura se puede ver la apariencia de este control. %na de sus propiedades ms importantes es Path, que permite establecer o devolver la ruta de acceso actual. 'u sinta is es#
ob-eto.Path Y & rutaZ

$tras propiedades importantes son List' ListCount y List"ndex' que posibilitan manipular la lista de directorios en forma similar a cualquier caja de listado.

&.12.&

Cajas de Listado de )rchi"os - !ileList.o/ 0

2stas cajas de listado locali/an y muestran todos los archivos de un directorio 0especificado por la propiedad Path1. 2n tiempo de dise:o o ejecuci&n se pueden modificar ciertas propiedades para configurar el directorio por defecto donde se mostrarn los archivos. 'e puede ver un ejemplo de este control en la 4igura. "as cajas de listado de archivos permiten mostrar los archivos deseados de un directorio. "a propiedad Path especifica la ruta de acceso para obtener el listado de archivos. Dediante List' ListCount y List"ndex podemos manejar la lista de archivos de manera similar a cualquier otra caja de listado. $tras propiedades importantes son Brchi8e' #idden' =ormal' :ead-nl/ y S/stem' las cuales permiten restringir los archivos a mostrar seg-n sus atributos. ?odas las propiedades aceptan los valores &rue o False. 8dems, con la propiedad Pattern tambi!n se pueden filtrar los archivos a mostrar. 8lgunos ejemplos de posibles valores de Pattern son# GH.HG' GH.D-CG' GH.F:MG, etc.

Elementos del Lenguaje Visual Basic

<6de67

"a caja de listado de archivos, tal como el listado de directorios, reconoce los eventos Clic7 y DblClic7 del mouse, as como los del teclado# Ae/Down' Ae/$p y Ae/Press.
Se )ueden combinar las ca2as de listado de unidades, directorios 2 archivos )ara crear cuadros de diClo*o personali)ados 2 facilitar la tarea de abrir o seleccionar archivos.

2ste control se suele utili/ar en forma conjunta con los listados de directorios y unidades de disco, haciendo que se actualicen simultneamente. Para esto, basta con hacer las siguientes asignaciones#
Private Sub "rive/_Chan#e() "ir/.Path & "rive/."rive nd Sub Private Sub "ir/_Chan#e() !ile/.Path & "ir/.Path nd Sub

"a 4igura muestra un ejemplo que combina las cajas de listado de unidades, directorios y archivos, y adems nos permite ver qu! archivo seleccionamos, mediante una etiqueta.

&.1&

!iguras - Shape 0

"as figuras son controles grficos que despliegan rectngulos, cuadrados, &valos, crculos, rectngulos redondeados y cuadrados redondeados.

".1".1

&,arien ia de las 2iguras

"a apariencia de las figuras se puede establecer mediante las propiedades Shape y FillSt/le.

"a propiedad Shape permite seleccionar la figura a mostrar. 'us posibles valores van desde el 0 hasta el 6 "a propiedad FillSt/le se utili/a para seleccionar un estilo de relleno. 'us posibles valores van desde el 0 hasta el @ Elementos del Lenguaje Visual Basic <5de67

&.1(

L?neas - Line 0

2ste control simplemente despliega lneas hori/ontales, verticales o diagonales.

".1$.1

&,arien ia de las l+neas

Para controlar el borde de las lneas, e isten dos propiedades# !orderSt/le y !order(idth.

"a propiedad !orderSt/le acepta como valor un n-mero del 0 al F, que representa el estilo del borde de la lnea. 2n la 4igura se pueden observar todos los estilos de borde disponibles. "a propiedad !order(idth establece el ancho del borde 0que puede ser un n-mero entero entre * y L*M71. "a 4igura muestra varias lneas con distintos bordes.
!" #$T%NT&' Cuando la )ro)iedad Border(idth es ma2or *ue +, la )ro)iedad BorderStyle no tiene efecto.

3ebemos saber que para controlar la ubicaci&n de una lnea en el formulario e isten las propiedades# I1' I3' J1' J3. Ustas controlan el punto de inicio y fin de una lnea en las coordenadas P e O

&.1

Controles de ,magen - ,mage 0

"os controles de imagen se utili/an para mostrar grficos.


$(4 F. S(+ RB%: Bos controles de ima#en usan menos recursos del sistema 2 se redibu-an m9s r9)ido *ue las ca-as de ima#en, )ero s8lo so)ortan una )arte de las )ro)iedades, mLtodos 2 eventos de este 7ltimo control.

Elementos del Lenguaje Visual Basic

<=de67

&.1 .1

)pariencia de los controles de imagen

Para controlar la apariencia de un grfico usando el control de imagen, e isten las propiedades Picture' !orderSt/le' Bppearance y Stretch. Como ya hemos visto las tres primeras cuando hablamos de las cajas de imagen u otros controles que las utili/aban, haremos hincapi! en la -ltima propiedad. "a propiedad Stretch controla el estiramiento de un grfico, es decir, si el grfico se debe estirar para ajustarse al tama:o del control o viceversa. Gracias a esta propiedad las imgenes pueden cambiar su tama:o, cosa que no ocurre en las cajas de imagen. "os valores que soporta Stretch son True 0la imagen cambia su tama:o para adaptarse al control1 y False 0el control cambia su tama:o para adaptarse a la imagen1. "a 4igura nos muestra un ejemplo grfico de la propiedad Stretch.

$ & ti3idades
.a llegado el momento de poner en practica los conceptos adquiridos.

(.1

Copiador de Cajas de 'e/to

2ste ejercicio propone crear un programa con dos cajas de te to y dos botones de comando que permitan copiar el contenido del primer control en el segundo, y limpiar ambos objetos. "a figura muestra el aspecto del programa terminado. 0Version compilada# CopiadorCaja ?e to.e e1 Para aquellos que todava no se animan, a continuaci&n vemos una forma de resolverlo. *. Crear un nuevo proyecto en VB 7. Poner en la propiedad Caption del formulario# +Copiador de cajas de te to+. <. %bicar dos cajas de te to. 8 la primera llamarla txt&uadro0 y a la segunda txt&uadro:. 8mbas cajas deben estar limpias de te to 0mediante la propiedad &ext1. 6. %bicar dos botones de comando. 8l primero llamarlo cmd&opiar y poner en el atributo Caption +Copiar+. 8l segundo llamarlo cmd,impiar y poner en el atributo Caption +"impiar+. 5. 2scribir el siguiente c&digo#
Pr0vate Sub cmdCo)iar_Click() t,tCuadroI.6e,t & t,tCuadrol.6e,t nd Sub

Elementos del Lenguaje Visual Basic

<>de67

Pr0vate Sub cmdBim)iar_Click() t,tCuadrol.6e,t & '' t,tCuadroI.6e,t & '' t,tCuadrol.Set!ocus nd Sub

(.2

*unteros del Mouse

2n esta ocasi&n, la misi&n ser crear un programa con cuatro botones de comando, que luego de ser pulsados muestren un puntero del mouse distinto en un marco 0que usaremos como rea de prueba1. .ay muchas formas de reali/ar este ejercicio) a continuaci&n mostramos una. *. Crear un nuevo proyecto en Visual Basic. 7. 2n la propiedad Caption del formulario ingresar# +Puntero del mouse+. <. 8gregar un marco. 2stablecer su propiedad 9ame en +Darco+ y en Caption escribir# V8rea de pruebaV 6. %bicar cuatro botones de comando. "lamarlos cmdFeloj, cmdCru/, cmd4lechas, y cmdPretunta. 2n la propiedad Caption ingresar# +Feloj de arena+, +Cru/+, +Cuatro flechas+ y +Pregunta+ sucesivamente. 5. 2scribir el siguiente c&digo#
Private Sub cmdRelo-_Click() Marco.MousePointer & // nd Sub Private Sub cmdCru@_Click() Marco.MousePointer & I nd Sub Private Sub cmd!lechas_Click() Marco.MousePointer & /? nd Sub Private Sub cmdPre#unta_Click() Marco.MousePointer & /= nd Sub

=. 2jecutamos el programa con 45 . 0Versi&n compilada# PunteroFaton.e e1

(.&

)nimacin sencilla

2l siguiente ejercicio consiste en la creaci&n de un programa que despla/a una imagen en forma hori/ontal a lo largo de la pantalla, logrando que al chocar con el borde i/quierdo o derecho del formulario cambie su direcci&n de despla/amiento por la opuesta. 0Versi&n compilada# 8nimacion.e e1 Para lograr resolver este ejercicio, hay que utili/ar ciertos elementos no vistos hasta el momento. "a 4igura contiene una pantalla de muestra del programa finali/ado 0aunque por ra/ones obvias no se puede apreciar el despla/amiento1 . Elementos del Lenguaje Visual Basic <Lde67

*. 7. <. 6. 5. =. >.

Crear un nuevo proyecto en Visual Basic. 2n la propiedad Caption del formulario ingresar# +8nimaci&n sencilla+. 8gregar un control de imagen y llamarlo imgNube. 'eleccionar una imagen mediante la propiedad Picture del control de imagen. 8gregar un tempori/ador y nombrarlo tmr#elo!. 2n la propiedad "nter8al del tempori/ador, ingresar *((. 2scribir el siguiente c&digo#
%)tion ,)licit "im Cambio (s 5nte#er Private Sub !orm_Boad() Cambio & I?O nd Sub Private Sub tmrRelo-_6imer() im#3ube.Beft & im#3ube.Beft J Cambio 5f im#3ube.Beft W(Me.Scale>idth U im#3ube.>idth) 6hen Cambio &Cambio M U/ 5f im#3ube.Beft V % 6hen Cambio & Cambio M U/ nd Sub

(.(

Seleccin en un Com#o

8hora proponemos un ejercicio sencillo# crear un programa que permita seleccionar un elemento de una caja combinada 0combo1 y que luego de pulsar un bot&n lo muestre mediante una etiqueta. "a pantalla con el ejercicio resuelto se observa en la 4igura. 0Versi&n compilada# 'elecCombo.e e1 *. 7. <. 6. Crear un nuevo proyecto en Visual Basic. 2n la propiedad Caption del formulario ingresar# +'elecci&n en un combo+. 8gregar un combo y llamarlo cbo&lubes. Dediante la propiedad List, ingresar la lista de elementos del combo. %na buena idea sera ingresar nombres de clubes de f-tbol. 5. 2stablecer la propiedad St/le del combo en 7. =. 8gregar un bot&n de comando, llamarlo cmd,isto e ingresar en su propiedad Caption +"isto+. >. Ingresar una etiqueta y llamarla +blMostrar. L. Vaciar la propiedad Caption de la etiqueta 0para que no muestre te to1. M. Cambiar la propiedad Font de la etiqueta a gusto. *(. Ingresar el siguiente c&digo#
%)tion ,)licit

Private Sub cmdBisto_Click() lblMostrar.Ca)tion & cboClubes.6e,t nd Sub

Elementos del Lenguaje Visual Basic

<Mde67

(.

*aleta de colores

Para repasar el uso de las barras de despla/amiento junto con sus propiedades, proponemos el siguiente ejercicio# crear un programa que utilice tres de estos controles para seleccionar valores de rojo, verde y a/ul, y de esta forma mostrar un color mediante una etiqueta. ?ambi!n se pueden usar tres etiquetas que muestren el valor de cada barra de despla/amiento y se actualicen al ser pulsadas. *. 7. <. 6. 5. =. Crear un nuevo proyecto en Visual Basic. 2n la propiedad Caption del formulario ingresar# +Paleta de colores+. 8gregar tres etiquetas. 'us nombres deben ser lbl#o!o; lblVerde y lbl"zul7 2n la propiedad Caption de cada etiqueta, ingresar +Fojo+, +Verde+ y +8/ul+ respectivamente. 8gregar tres barras de despla/amiento hori/ontal, y llamarlas *sb#o!o; *sbVerde y *sb"zul. Dodificar las siguientes propiedades de las tres barras de despla/amiento# Min )0*' Max )366*' Lar eChan e )36* y SmallChan e )1*. >. 8gregar otras tres etiquetas para mostrar los valores de las barras. 'us nombres deben ser +blNro#o!o; +blNroVerde y +blNro"zul, mientras que en la propiedad Caption de todas se debe ingresar +0+. L. Por -ltimo, s&lo resta ubicar una etiqueta que muestre el color seleccionado. 2l nombre del control ser +bl&olor. 8dems, su propiedad Caption debe ser vaciada y se le debe asignar el valor 1 a !orderSt/le. M. '&lo resta escribir el c&digo. 0Ver versi&n compilada# PaletaColores.e e1

/ 4uestionario
*. 7. <. 6. 5. =. SQu! diferencia hay entre un formulario modal y otro que no lo esT SQu! son los t,ipsT SPara qu! sirve el evento "oadT SQu! significa la secuencia de eventosT SQu! diferencias hay entre las cajas de imagen y los controles de imagenT SQu! propiedad permite visuali/ar caracteres especiales al ingresar informaci&n en una caja de te toT >. SCul es el control que se utili/a para agrupar opciones de las cuales el usuario s&lo puede elegir unaT L. SCules son los m!todos que permiten agregar y quitar elementos de las cajas de listado y los combosT M. SQu! son y para qu! se utili/an los tempori/adoresT *(. SPara qu! sirve la propiedad 'tretch de los controles de imagenT .?l 8erdadero maestro no es un pro8eedor de conocimientos sino un despertador de espCritus 9ue' en el acto mismo de ejercer su funcin iluminadora admite ademEs ' la reciprocidad de esta accin.K .?sta exi encia de acti8idad / libertad es el lema fundamental de la peda o Ca SocrEtica.K Cf. <Socrates=; Dondolfo, Fodolfo, Cuadernos 2udeba, 6W edici&n, Dar/o *M=<, pgina 5> y 5L. Elementos del Lenguaje Visual Basic 6(de67

>ndi e de ontenido
*. 4ormularios................................................................................................................................................ * *.*. Cargar y mostrar formularios............................................................................................................ * *.*.* 'ho, 0D!todo1........................................................................................................................... * *.*.*.* 2jemplo del m!todo 'ho,.................................................................................................. * *.*.7 "oad 0Instrucci&n1...................................................................................................................... 7 *.*.7.* 2jemplo de la instrucci&n "oad.......................................................................................... 7 *.*.< .ide 0D!todo1............................................................................................................................ < *.*.6 %nload 0Instrucci&n1...................................................................................................................< *.7. Dodificar la apariencia.......................................................................................................................< *.7.* 8justar el tama:o........................................................................................................................< *.7.7 Personali/ar la barra de ttulo..................................................................................................... 6 *.7.< 2stilos de borde 0Propiedad #Border'tyle1................................................................................. 5 *.7.6 'eleccionar colores..................................................................................................................... = *.7.5 $tros aspectos a considerar........................................................................................................ L *.7.5.* 4ormularios activos y visibles............................................................................................ L *.7.5.7 Grficos de 4ondo...............................................................................................................L *.7.5.< 4uentes ?ipogrficas...........................................................................................................L *.7.5.6 8justes de Posici&n............................................................................................................. L *.7.5.5 %nidades de Dedida........................................................................................................... M *.7.= "as propiedades mas importantes de los formularios.................................................................M 7. Danejo de 2ventos..................................................................................................................................*( 7.* "lamar a un procedimiento de suceso desde el c&digo.................................................................... ** 7.7 'ecuencia de 2ventos....................................................................................................................... ** 7.7.* 2ventos de inicio de formulario................................................................................................*7 7.7.7 2ventos de cierre de formulario................................................................................................*7 <. Controles 2stndar................................................................................................................................... *< <.*. Cajas de Imagen 0 PictureBo 1.......................................................................................................*< <.*.* 8daptar el tama:o del control a la imagen............................................................................... *< <.*.7 Cargar una imagen desde un archivo........................................................................................*< <.7. 2tiquetas 0 "abel 1 .......................................................................................................................... *6 <.7.* 8daptar el tama:o del control al te to......................................................................................*5 <.7.7 2nla/ar te tos........................................................................................................................... *5 <.7.< Controlar la apariencia del te to...............................................................................................*5 <.7.6 2tiquetas de m-ltiples lneas.................................................................................................... *= <.<. Cajas de ?e to 0 ?e tBo 1............................................................................................................. *= <.<.* Danejar m-ltiples lneas de te to.............................................................................................*= <.<.7 Bloquear una caja de te to........................................................................................................*> <.<.< "imitar el n-mero de caracteres............................................................................................... *> <.<.6 Caracteres especiales................................................................................................................ *> <.<.5 'elecci&n de te to.....................................................................................................................*> <.<.= 2ventos de una caja de te to.....................................................................................................*L <.<.> %n ejemplo completo................................................................................................................*L <.6. Darcos 0 4rame 1............................................................................................................................. *M <.6.* ?rabajar con controles en el marco...........................................................................................*M <.5. Botones de Comando 0 CommandButton 1..................................................................................... 7( <.5.* Botones con grficos................................................................................................................ 7( <.5.7 2l foco en los controles............................................................................................................ 7* <.=. Cajas de Verificaci&n 0 ChecJBo 1................................................................................................77 <.=.* 2stados de las cajas de verificaci&n..........................................................................................77 <.>. Botones de $pci&n 0 $ptionButton 1...............................................................................................77 <.>.* 2stados de los botones de opci&n.................................................................................................. 77 <.L. Cajas de "istado 0 "istBo 1............................................................................................................76 Elementos del Lenguaje Visual Basic 6*de67

<.L.* 8pariencia de las cajas de listado............................................................................................. 76 <.L.7 Propiedades para organi/ar elementos..................................................................................... 75 <.L.< 2ventos de una caja de listado..................................................................................................75 <.L.6 8gregar elementos....................................................................................................................7= <.L.5 2liminar elementos................................................................................................................... 7= <.L.= Consultar el contenido de un elemento.....................................................................................7> <.L.> $rdenar elementos....................................................................................................................7> <.L.L ?rabajar con selecciones m-ltiples...........................................................................................7> <.L.M %n ejemplo completo................................................................................................................7L <.M. Cajas Combinadas 0 ComboBo 1...................................................................................................7M <.M.* 2stilos de combos..................................................................................................................... 7M <.M.7 ?rabajar con combos................................................................................................................ <( <.*(. Barras de 3espla/amiento .ori/ontal;Vertical 0.'crollBar;V'crollBar1....................................<( <.*(.* 2lementos de las barras de despla/amiento............................................................................<* <.*(.7 Configurar una barra de despla/amiento................................................................................ <* <.*(.< Controlar el tama:o de los cambios....................................................................................... <* <.**. ?empori/adores 0 ?imer 1............................................................................................................. <7 <.**.* 8justar un tempori/ador......................................................................................................... <7 <.*7. Cajas de "istado de %nidades, 3irectorios y 8rchivos.................................................................<< <.*7.* Cajas de "istado de %nidades 0 3rive"istBo 1.........................................................................<6 <.*7.7 Cajas de "istado de 3irectorios 0 3ir"istBo 1.........................................................................<6 <.*7.< Cajas de "istado de 8rchivos 0 4ile"istBo 1............................................................................ <6 <.*<. 4iguras 0 'hape 1........................................................................................................................... <5 <.*<.* 8pariencia de las figuras........................................................................................................ <5 <.*6. "neas 0 "ine 1............................................................................................................................... <= <.*6.* 8pariencia de las lneas.......................................................................................................... <= <.*5. Controles de Imagen 0 Image 1......................................................................................................<= <.*5.* 8pariencia de los controles de imagen........................................................................................<> 6. 8ctividades.............................................................................................................................................. <> 6.*. Copiador de Cajas de ?e to............................................................................................................ <> 6.7. Punteros del Douse......................................................................................................................... <L 6.<. 8nimaci&n sencilla..........................................................................................................................<L 6.6. 'elecci&n en un Combo...................................................................................................................<M 6.5. Paleta de colores..............................................................................................................................6( 5. Cuestionario............................................................................................................................................. 6(

Elementos del Lenguaje Visual Basic

67de67

Вам также может понравиться