Está en la página 1de 93

Programacin con VB 6.

Tsu . Enzo Costantini

Este trabajo no pretende ser un Manual, pero si una gua de estudio de VISUALBASIC 6.0 producto de una investigacin personal.

Por:Enzo Costantini mailto:enzodejesuscostantini@hotmail.com Caracas, Venezuela

Programacin con VB 6.0

Tsu . Enzo Costantini

VISUAL BASIC:
Para entender lo que este lenguaje de programacin quiere decir es necesario descomponerla en dos partes: VISUAL: Anteriormente era necesario escribir una gran cantidad de cdigo en el lenguaje para formar la interfaz de usuario y adems eran mucho menos eficientes y ms difciles de entender. Mediante la creacin de una interfaz de usuario mediante objetos (controles) prediseados puede cambiar de forma sencilla la interfaz de usuario reduciendo el tiempo de trabajo y la eficiencia del mismo, esto es lo que propone la palabra Visual, crear de forma sencilla la interfaz de usuario de modo que no sea necesario dedicar tanto tiempo a la creacin de la misma. BASIC: Esta palabra es la abreviacin de las siglas (en ingls) Beginners All-Purpose Symbolic Instriction Code, se refiere al lenguaje de programacin ms utilizado en la historia de la informtica y la programacin, aunque en principio era un poco ms sencillo, ahora muchas ms instrucciones y mtodos que se han adaptado para crear aplicaciones bajo ambiente Windows. Entonces Visual Basic se refiere al lenguaje de programacin de computadoras que combina las facilidades de trabajo que ha desarrollado Microsoft en un entorno de interfaz visual, con el lenguaje de programacin BASIC, por ello ahora la forma de crear una interfaz de usuario se torna mucho mas econmica, en los que a lneas de cdigo se refiere y por lo tanto a ganar tiempo para realizar programas con mucho y hasta nada de cdigo.

1. EL ENTORNO DE DESARROLLO DE VB 6.0


Primero, se presenta la primera pantalla que aparece al ejecutar el comando de entrada de VB 6.0. Fig. 1.

FIGURA 1. Primera Pantalla que aparece al ejecutar VB 6.0.

Programacin con VB 6.0

Tsu . Enzo Costantini

En ella, aparece el cuadro de dilogo Nuevo proyecto que ofrece tres fichas de opciones al comenzar en la sesin con Visual Basic, estas son: Nuevo: Propone crear un nuevo proyecto. En ella aparece seleccionado por defecto EXE estndar. EXE es la abreviacin de EXECUTE o en espaol -proyecto ejecutable-. Esta opcin nos crea un nuevo proyecto que despus de compilado nos crea una aplicacin. Este es el elemento que ms comnmente utilizaremos, ya que la presente investigacin hace referencias a creaciones ejecutables. No hay ejemplos de libreras dinmicas (*.dll o DLL ActiveX) ni a controles ActivesX (*.ocx) ni otro tipo de aplicacin; as que si desea buscar informacin sobre estos tipos de proyectos, puede abandonar esta lectura. Existente: Propone abrir un proyecto que fue creado anteriormente, desplega el cuadro de dilogo Abrir para buscar el proyecto en el directorio.

Reciente: Propone tambin abrir un proyecto ya creado, pero a diferencia de Existentes, ste nos desplega una lista de los proyectos que han sido creados o modificados en las ltimas sesiones de trabajo con VB 6.0.

Programacin con VB 6.0

Tsu . Enzo Costantini

Para comenzar, se crear un nuevo proyecto haciendo doble-clic en EXE estndar. VB desplegar la siguiente pantalla.

Figura 2. Entorno integrado de desarrollo de VB 6.0 El Sector 1 en la Fig. 2 se llama Formulario del proyecto. El formulario ser la ventana de aplicacin o interfaz del usuario cuando el programa se compile o se ejecute. Un programa puede tener uno o varios formularios, y se puedes abrir y cerrar cada uno de ellos segn se necesite. En ellos se agregarn los controles que sirven para crear una aplicacin e interactuar con el usuario. La pantalla blanca que se ve detrs del formulario es la pantalla donde se agrega el cdigo del programa. La Fig. 3 (Sector 2 de la Fig. 2) es el Cuadro de herramientas, ella proporciona algunas de las herramientas que puede agregar al formulario en tiempo de diseo. Estas herramientas son llamadas controles y alguno de ellos son las Etiquetas (Labels), Cuadro de texto (TextBox), botones de comandos (CommandButton. Ver Controles en la Seccin Nro. 4. Para realizar la primera aplicacin (Programa #1) se deben agregar dos controles al formulario nmero uno. Haga clic sobre CommandButton en Cuadro de Herramientas; el puntero del mouse tomar una forma de cruz cuando est por encima del formulario, dibuje el tamao del control en el mismo, para ello mantenga el clic presionado mientras dibuja el tamao y luego suelte el botn del mouse. Se dibujar en el formulario un botn de comando con Caption (texto que se muestra) igual a Command1 e igual nombre. Agreguemos tambin un Cuadro de texto (Textbox), para ello haga clic sobre Textbox y luego dibjelo en el formulario mediante el mismo procedimiento, aparecer un cuadro de texto con Text (texto que se ve igual a Text1) e igual nombre. El Sector 3 de la Fig. 2 muestra la Barra de herramientas (parte superior de la Fig. 2). Las Barras de herramientas tambin se encuentran en programas como Word, PowerPoint y Excel, entre otros y por ello ya es muy probable que ya sean conocidas. Ella proporciona un acceso a los comandos utilizados cuando est creando una aplicacin. Puede agregar o quitar barras si hace clic Figura 3. Cuadro en el botn secundario del mouse sobre la barra de herramientas y luego clic sobre la que desea de Herramientas agregar o quitar. Para usar la Barra de herramientas dirjase al Menu Ejecutar y luego haga clic sobre Iniciar. Se iniciar una prueba del programa, por ahora slo mostrar el formulario con los controles Command1 y Text1. Tambin puede agregar un formulario al proyecto, para ello dirjase al men Proyecto y luego haga clic sobre Agregar formulario, despus clic sobre Formulario.

Programacin con VB 6.0

Tsu . Enzo Costantini

La Fig. 4 modela lo que es el Explorador de Proyectos (Sector 4 de la Fig. 2). Una aplicacin puede contener uno o mas elementos (nuestro ejemplo tiene dos formularios) y si quiere tener acceso a uno de ellos tendr que ir al Explorador de proyectos hacer un clic sobre el elemento y luego clic en Ver Objeto o Ver Cdigo, segn lo que desea. En este ejemplo existe un proyecto con dos formularios Form1(no seleccionado) y Form2 (seleccionado). Si hace clic en Ver Objeto mostrar el formulario 2 si lo hace en Ver Cdigo mostrar el cdigo de este formulario. En principio slo es una pantalla en blanco, ya que no hay cdigo hasta el momento. Si no puede ver esta ventana directamente, tendr que ir al men Ver de la Barra de herramientas y luego hacer clic sobre Explorador de Proyectos. Figura 4. Explorador de En la Fig. 5 se hace referencia a la Ventana Propiedades (Sector 5 de la Fig. 2). Las Proyectos propiedades son un conjunto de caractersticas que determinarn la forma de los controles o formularios. Algunas propiedades comunes son el nombre (para identificarlo en el cdigo), el alto, ancho, color del fondo y muchas mas segn el tipo de control con el que trabaja, por ello cambia cada vez que cambia el enfoque del tipo de control. Es decir, las caractersticas de un formulario no son iguales a las caractersticas de una etiqueta, botn de comando o de un cuadro de texto. Por ejemplo, haga clic sobre el botn de comando Command1 y eche un vistazo sobre las diferentes propiedades, observar un cuadro igual a la Fig. 5. Ahora, haga clic sobre cualquier parte del formulario (que no sea Command1) o sobre el control Text1, ver que algunas propiedades no se encuentran, y en cambio aparecen otras. Para utilizar esta Ventana, presione un solo clic sobre el Control Command1 y en la Ventana Propiedades, cambie Caption de Command1 a Saludar, vaya ahora al Cuadro de texto, ubique la propiedad Text, borre el contenido (Text1) y djelo en blanco. La Fig. 6 que proporciona la parte 6 de la Fig. 2 es la imagen de la ventana Posicin del Formulario. sta ventana permite cambiar la posicin del formulario antes de que la aplicacin vaya a ser ejecutada. Puede utilizar esta pantalla cambiando la posicin del formulario arrastrndola con el ratn (mouse) y luego verificarla ejecutando el proyecto. Figura 5. Propiedades

Figura 6. Ventana Posicin del Formulario

Programacin con VB 6.0 Programa #1. Saludar:

Tsu . Enzo Costantini

Ahora se debe escribir un poco de cdigo para crear la primera aplicacin. Para comenzar se puede hacer de tres maneras. Verifique que el formulario 1 con los dos controles (TextBox y CommandButton) este activo en el Explorador de Proyectos, haga clic sobre Ver Cdigo y aparecer una pantalla en blanco para empezar a escribir cdigo, tambin ver que inmediatamente arriba de esta pantalla aparece la palabra (General) que contiene una lista, busque en ella la palabra Command1, este llamar directamente al evento clic, es decir, las secuencias de comandos que se efectuarn al hacer clic en este botn. La otra manera es verificar que el formulario activo (en el Explorador de Proyectos) sea el que tiene los dos controles (Command1 y Text1), haga clic en Ver Objeto, y luego haga doble clic sobre el botn que dice Saludar, se desplegar el siguiente cdigo: Private Sub Command1_Click() End Sub La tercera manera es escribir directamente el cdigo que se mostr. Aqu se escribirn las sentencias que se efectuarn cuando haga clic en el botn Saludar (ya que Command1 es el nombre del botn). Ahora copie y pegue este cdigo o escriba, de tal manera que quede de la siguiente manera: Private Sub Command1_Click() If Command1.Caption = "Saludar" Then Text1.Text = "Hola!, Cmo estas?" Command1.Caption = "Borrar" Else Text1.Text = "" Command1.Caption = "Saludar" End If End Sub Ejecute la aplicacin con F5 o Iniciar en la Barra de Herramientas e interacte con el programa. Si desea una explicacin detallada de este programa vaya a la Seccin Explicacin Detallada de Programas en los captulos finales. (Ver ndice) De aqu podemos concluir que las propiedades de los controles pueden cambiar, tanto en tiempo de diseo como en tiempo de ejecucin. Nota: Para cerrar una sesin de trabajo con VB y abrir un Nuevo proyecto, puede guardar el formulario, el proyecto y luego buscar en el Men Archivo de la barra de herramienta, haga clic en Quitar Proyecto, esto cierra el proyecto y puede crear uno nuevo en Archivo Nuevo Proyecto. Si no quita el proyecto y crea uno nuevo, se crear un Grupo de Proyectos.

Programacin con VB 6.0

Tsu . Enzo Costantini

2. PROPIEDADES, MTODOS, EVENTOS Y CONSTANTES.


Como ya se ha mencionado en varias ocasiones, los controles y los formularios contienen propiedades, stas son, sus caractersticas particulares que los diferencian de otros. Por ejemplo si hablamos de una silla, sta tendr propiedades como el material, nmero de patas, tamao, forma del asiento, y otras. En Visual Basic las propiedades se identifican en el cdigo por tener la forma: Objeto.Propiedad = Valor Donde Objeto es el elemento al cual se hace referencia y valor es una constante o variable que llama a una constante. El valor que identifica la propiedad. Si hablamos de la Silla, podramos decir:. Silla.Material = Madera Silla.Patas = 4 Silla.Tamao = 1,5 Se dice una variable que llama a una constante ya que, puede asignar a una variable un valor y luego llamar a esta variable de la siguiente manera: Material = Madera Silla.Material = Material En el Examinador de Objetos, o en el transcurso de una programacin se pueden identificar las propiedades por tener a su lado una figura como esta: Lleve a cabo una pequea demostracin. En el programa #1, dirjase a la pantalla Ver Cdigo y escriba Command1. (la palabra Command1 ms el punto), se desplegar una lista de propiedades y mtodos de los botones de comandos, en este caso de Command1. Observe la figura que se encuentra a su lado.

Propiedades:

Los mtodos son las diferentes acciones que puede realizar un elemento. Por ejemplo la silla puede inclinarse, volver a su posicin inicial, subir o bajar su cabecera, moverse de un lado a otro, entre otros. Los Mtodos se diferencian en el cdigo de las propiedades ya que no les sigue el signo igual, pero podra tener un valor, es decir, tienen la siguiente forma: Objeto.Mtodo [Valor] As podemos llamar los siguientes mtodos de la silla: Silla.Inclinar 20 Silla.Volver El valor slo aparece en algunos casos, es decir es opcional y depende del mtodo que se est utilizando. Puede tener ms de un valor. Ejemplo: Silla.Mover (3mts adelante, 2mts hacia la derecha)

Los Mtodos:

Programacin con VB 6.0

Tsu . Enzo Costantini

Los mtodos se identifican en el Examinador de Objetos o en el transcurso de la codificacin por tener a su lado la siguiente figura: Realice la misma prueba que en las propiedades (Command1.) y ubique los mtodos mediante la figura.

Los Eventos son los acontecimientos que pueden suceder mientras ejecuta una aplicacin, es decir, el clic a un botn de comando o a una etiqueta, esto llama a un procedimiento, a una secuencia de comandos. Estos se pueden Observar en el Cdigo por la secuencia Sub, de la siguiente manera. Sub Objeto_Evento([argumentos]) - Comando1 - Comando2 - ...Otros Comandos End Sub Por ejemplo, haciendo referencia a la silla observe lo que sucede al evento sentarse. Sub Silla_Sentarse() Peso es Variable Si Peso es mayor a 100kg, entonces: Silla.Romper Sillas.Patas=0 Sino Silla.Soportar Fin de Secuencia Si End Sub El cdigo describe los sucesos que se ejecutarn cuando suceda el evento sentarse. Los eventos pueden encontrarse en el Examinador de Objetos, por medio de la figura de un rayo .

Los Eventos:

Son valores numricos o cadenas de texto que hacen referencia a un estado. Por ejemplo: En las casillas de verificacin la propiedad Value del control puede tomar tres constantes: - vbUnchecked, que corresponde al valor 0. - VbChecked, que corresponde al valor 1. - VbGrayed, que corresponde al valor 2 Se puede colocar su cadena de texto que corresponde a dicho estado o su valor numrico si se quiere colocar en su forma abreviada. En VB 6.0 se utilizan mucho este tipo de constantes. Las constantes se identifican en el Examinador de Objetos por tener a su lado una figura como la siguiente:

Las Constantes:

Programacin con VB 6.0

Tsu . Enzo Costantini

3. EL EXAMINADOR DE OBJETOS
El Examinador de Objetos es un tipo de ayuda de VB, que se utiliza generalmente para encontrar los detalles de las distintas propiedades, los mtodos, funciones, eventos o constantes. Por ello es muy funcional a la hora de programar. Para acceder a l, mientras est en una sesin de programacin, presione la tecla F2 o vaya a la Barra de Herramientas en el men Ver, busque Examinador de Objetos, se desplegar la siguiente pantalla:

Por ejemplo, supongamos que deseamos verificar cuales son las diferentes constantes de los estilos que se pueden emplear al crear un Cuadro de Mensaje (MsgBox), podemos escribir la palabra MsgBox y el Examinador de objetos mostrar una serie de Clases que coinciden con la palabra buscada, entre ellas VbMsgBoxStyle, puede hacer clic en ella y ver en la lista inferior las constantes, tanto su modo abreviado como su equivalente numrico. Tambin puede acceder a las explicaciones de los distintos eventos de los controles o formularios, para ello busque en la lista inferior izquierda el control al que desea encontrarle un evento, por ejemplo CommandButton, la lista inferior derecha mostrar sus distintas propiedades, mtodos y eventos. Si ahora hace clic sobre uno de ellos, en la parte inferior se muestra la explicacin de dicho elemento.

Programacin con VB 6.0

Tsu . Enzo Costantini

4. LOS CONTROLES:
Los controles son una variedad de herramientas prediseadas que pueden ser utilizados en una aplicacin segn la finalidad de la misma. Por la particularidad de cada una puede emplearse en ciertas circunstancias para mostrar informacin, pedir informacin, enlistar miembros, desplegar imgenes o crear la ocasin para realizar clculos, entre otras. Como ya dijimos, los controles estn ubicados en el Cuadro de Herramientas (generalmente en la parte izquierda de la pantalla). Ya hemos interactuado un poco con los controles, pero en esta seccin se explicarn cada uno de ellos por separado, utilizando en los programas algunas de sus propiedades, mtodos y eventos. Los controles que aparecen siempre por defecto son: Control Label: Etiqueta Control TextBox: Cuadro de Texto Control PictureBox: Cuadro de Imagen Control Frame: Marco Control CommandButton: Botn de Comando Control CheckBox: Casilla de Chequeo Control OptionButton; Botn de Opcin Control ListBox: Cuadro de Lista Control ComboBox: Cuadro Combinado Controles HScrollBar y VScrollBar: Barras de desplazamiento. Control Timer: Control de tiempo (Reloj) Control DriveListBox: Lista de Unidades de Discos Control DirListBox: Lista de Directorios Control FileListBox:: Lista de Archivos Control Shape: Formas Control Line: Lnea Control Image: Imagen Control Data: Datos Control OLE: Contenedor OLE

Estos controles son llamados controles intrnsecos, ya que aparecen en todas las sesiones y no se pueden quitar del Cuadro de Herramientas. Pero adems de stos, existen otros controles que se pueden quitar o agregar y no aparecen por defecto, aparecen en una lista adicional. Para acceder a esta lista presione el botn secundario del mouse sobre el Cuadro de Herramientas, en la lista que se desplega presione clic sobre Componentes; tambin lo pude hacer Buscando en el Men Proyecto Componentes o simplemente CONTROL+T. De esta lista se dar una explicacin del control CommonDialog. Ahora, mediante el Examinador de Objetos, se recomienda dedicar un tiempo a estudiar las diferentes propiedades, los mtodos y eventos de stos distintos controles, aunque ya tenga algo de experiencia siempre nos podemos encontrar con algn elemento nuevo. Para ello, introduzca su nombre (Ejemplo: TextBox) y presione Buscar. ETIQUETAS: (LABEL) Las etiquetas se utilizan generalmente para dos fines: Escribir texto en el formulario, de modo que no est disponible la opcin de copiar y pegar.

Programacin con VB 6.0

Tsu . Enzo Costantini

Con esto, por ejemplo, se pueden identificar nombres de variables para el usuario. (Ver Programa # 2). Mostrar resultados de modo que no se tenga la opcin de copiar y pegar. (Ver Programa # 2).

Programa #2. Sumar: El siguiente programa agrega un valor a una suma. Disee el formulario con tres etiquetas (Label), un Cuadro de texto (TextBox) y un botn de comando (CommandButton). Establezca en las etiquetas las siguientes propiedades: La primera (Label1) con Caption: &Valor = (Indica al usuario que en el Text1, agregar el valor a sumar). La segunda con (Label2) con Caption: Resultado =, (Indica al usuario que el resultado se presenta a su lado) y, En la tercera cambie el nombre (Name) a lblResultado y cambie la propiedad BorderStyle = (1 Fixed Single), que parece un cuadro de texto con fondo gris. Luego, cambie el Caption del formulario a SUMA. En el cuadro de texto genere su propiedad Text a cadena vaca (borre Text1). En el botn de comando su Caption: &Sumar. Verifique que la propiedad TabIndex de la etiqueta que dice &Valor = sea un nmero menor que la propiedad TabIndex del Cuadro de Texto txtValor. El smbolo (&) no aparecer en el Caption y el efecto que produce es que subraya la letra que le sigue (en este caso la letra S) y crea un acceso directo (al presionar la combinacin ALT+S se llamar al evento clic del comando o al presionar ALT+V tomar el enfoque el control Text1). Ahora reubique las posiciones de los controles en tiempo de diseo de modo que se visualicen de la siguiente manera:

A continuacin empecemos a codificar, para ello, haga clic en Ver Cdigo en el Explorador de Proyectos. Escriba en la pantalla en blanco: Public Suma As Double Busque en la lista que dice (General) la palabra cmdSumar y cuando aparezcan las dos lneas para agregar cdigo agregue las siguientes sentencias, de tal manera que aparezca: Private Sub Command1_Click() Dim Valor As Double If Text1.Text = "" Then Valor = 0 Else Valor = CDbl(Text1.Text) End If Suma = Suma + Valor lblResultado.Caption = Suma Text1.Text = "" End Sub Ejecute la aplicacin con F5, o en el men Ejecutar.

Programacin con VB 6.0

Tsu . Enzo Costantini

Verifique que el contenido de la suma no se puede copiar y pegar. Tambin despus de introducir un valor en el cuadro de texto, en vez de presionar clic sobre sumar, presione la combinacin de teclas ALT+S, compruebe que se genera el mismo evento. Para que vuelva a tomar el enfoque Text1, presione la combinacin Alt+V. Esto sucede ya que, como la etiqueta no puede tomar el enfoque pasa el enfoque a su TabIndex superior en uno, en este caso el cuadro de texto. La explicacin de la codificacin se encuentra en la Seccin Explicacin Detallada de Programas en los ltimos captulos. En este ejemplo se trabajaron con las propiedades de las etiquetas, Name (nombre), Caption (ttulo), BorderStyle (Estilo del Borde) y TabIndex (ndice de Tabulacin). Existen otras propiedades que tambin son muy utilizadas que son AutoSize (Ajustar horizontalmente al tamao del Caption) y WordWrap (Ajustar verticalmente al tamao del Caption). Para ver la explicacin de otras propiedades, mtodos o eventos puede dirigirse al Examinador de Objetos con la tecla F2. CUADROS DE TEXTOS: (TEXTBOX) Los Cuadros de texto son muy utilizados en las aplicaciones con VB, tiene mucha funcionalidad, pero generalmente son usados para: Leer valores o cadenas de texto para trabajar con ellos. Mostrar resultados tal como las etiquetas, pero en este caso facilita la posibilidad de copiar y pegar. Los Cuadros de texto son generalmente modificables en tiempo de ejecucin, pero puede convertirlo a slo lectura si establece su propiedad Locked a True (verdadero). En este caso slo tendr la posibilidad de copiar, pero no la de pegar Como ya se ha trabajado la propiedad Text de los cuadros de Texto, se presenta ahora la explicacin del mtodo SetFocus y dos de los eventos que se pueden generar al trabajar con estos controles, los mismos son Change (que ocurre cuando cambia el control) y KeyPress (que ocurre que presiona una tecla cuando este control tiene el enfoque). Si quiere la explicacin de otras propiedades, mtodos o eventos dirjase al Examinador de Objetos. Programa #3. rea de un tringulo: Con este programa se calcula el rea de un tringulo, los datos pedidos son la Base y la Altura. Coloque tres etiquetas en un formulario: La primera con propiedad Caption: &Base= La segunda con propiedad Caption: &Altura= La tercera con propiedad Caption: Resultado= Agregue tambin tres cuadros de textos: El primero con propiedad Name: txtBase El segundo con propiedad Name: txtAltura El tercero con propiedad Name: txtResultado Coloque dos botones de comando: El primero con propiedad Name: cmdCalcular, Caption: &Calcular y Enabled: False El segundo con propiedad Name: cmdBorrar y Caption: B&orrar Cambie la propiedad Caption del formulario a AREA. Reubique los controles de tal manera que quede de la siguiente manera:

Programacin con VB 6.0

Tsu . Enzo Costantini

TxtBase est ubicado al lado de la etiqueta Base =. TxtAltura al lado de la Etiqueta Altura = , y TxtResultado al lado de la Etiqueta Resultado =. Ahora, se puede empezar a codificar para realizar el programa, copie y pegue el siguiente cdigo o escriba: Option Explicit Private Sub cmdBorrar_Click() txtBase = "" txtAltura = "" txtResultado = "" cmdCalcular.Enabled = False txtBase.SetFocus End Sub Private Sub cmdCalcular_Click() Dim Base As Double, Altura As Double, Area As Double Base = Val(txtBase) Altura = Val(txtAltura) If IsNumeric(txtBase) And IsNumeric(txtAltura) Then Area = Base * Altura / 2 txtResultado = Area Else MsgBox "No se acepta texto. Verifique para continuar", vbOKOnly + vbExclamation, "Error" End If End Sub Private Sub txtBase_Change() If Len(txtBase) > 0 And Len(txtAltura) > 0 Then cmdCalcular.Enabled = True End If End Sub Private Sub txtBase_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then txtAltura.SetFocus End If End Sub Private Sub txtAltura_Change() If Len(txtBase) > 0 And Len(txtAltura) > 0 Then cmdCalcular.Enabled = True End If

Programacin con VB 6.0


End Sub

Tsu . Enzo Costantini

Private Sub txtAltura_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If cmdCalcular.Enabled = True Then cmdCalcular.SetFocus Else TxtBase.SetFocus End If End If End Sub Ejecute la aplicacin con la tecla F5, y compruebe las nuevas opciones que se han generado en este programa, por ejemplo el reconocimiento de la tecla Enter (KeyAscii = 13) o activar el botn de comando cuando ya se han rellenado los cuadros de texto con valores. Para obtener una explicacin detallada del programa puede ir a la Seccin Detallada de Programas y buscar el programa #3.

PICTUREBOX (CUADRO DE IMAGEN) Los controles PictureBox se pueden utilizar para mostrar imgenes y mediante sus mtodos crear grficos como lneas, cuadrados, rectngulos, crculos o elipses; aunque con un poco de creatividad puede combinar varios de estos para realizar dibujos. Puede utilizarse tambin como contenedores de otros controles, esto es muy til por ejemplo para realizar barras de herramientas o de estado. Otra opcin que ofrece es la posibilidad de escribir sobre l mediante el mtodo Print. Los formatos compatibles con este control son los archivos imgenes JPEG, formato de intercambio grfico (GIF), mapa de bits (BMP), conos (ICO), cursores (CUR), metarchivo estndar de Windows (WMF) o mejorados (EMF). Puede mostrar una imagen en este control en tiempo de diseo mediante la propiedad Picture, para cambiarla en tiempo de ejecucin puede utilizar la siguiente: Set Objeto.Picture = LoadPicture(Ruta) Donde Ruta es la ruta y el nombre de la imagen (Ejemplo: C:\Windows\Aros.bmp) Si desea quitar la imagen mostrada en el control se debe dejar en blanco los comandos de Ruta, quedando de la siguiente manera: Set Objeto.Picture = LoadPicture Una desventaja que tiene este control con respecto al control imagen, es que el tamao de la imagen no se puede adaptar al tamao del control, pero si el tamao del control al tamao de la imagen mediante la propiedad AutoSize, si esta propiedad esta establecida como True (verdadera) el tamao del control se adapta al tamao de la imagen, si el tamao de la imagen es muy grande debe tener cuidado de no opacar otros controles, si toma el valor False (Falso) no se cambia el tamao del control ni de la imagen, si la imagen es ms grande que el control sta se recortar. Los Mtodos Grficos: Como se mencion anteriormente, en el control PictureBox puede dibujar formas como puntos, lneas, crculos, elipses, arcos, cuadrados o rectngulos, adems que permite escribir sobre l. Estos mtodos grficos tambin son aplicables a los formularios.

Puntos: Se realizan mediante el mtodo Pset: Objeto.Pset (X,Y), [color]

Programacin con VB 6.0

Tsu . Enzo Costantini

Donde Objeto es el nombre del Cuadro de Imagen, de un formulario, o si se omite se har referencia al formulario actual (activo). X, Y son las coordenadas donde se colocar el punto. Estos puntos tienen un tamao de un pxel, siendo pequeos para la vista humana.

Lneas: Se utiliza el mtodo Line: Objeto.Line (X1,Y1)-(X2,Y2), [color]

Donde X1 y Y1 son las coordenadas del punto inicial y X2 y Y2 las del punto final, el color es opcional.

Crculos: Se realizan mediante el mtodo Circle: Objeto.Circle (X,Y), radio, [color]

X, Y son las coordenadas del centro del crculo, radio el tamao del radio y el color es opcional.

Elipses: Se realizan mediante el mtodo Circle:

Objeto.Circle (X,Y), radio, [color], [inicio], [fin], aspecto Donde radio es la distancia ms grande de la elipse, inicio y fin se colocan si se desea realizar slo un arco, y aspecto es la relacin o proporcin de la distancia vertical con respecto a la horizontal, los valores mayores a uno dibujan elipses alargadas verticalmente, mientras que los valores entre cero y uno dibujan elipses alargadas horizontalmente. No se aceptan valores negativos.

Arcos: Tambin se utiliza, por supuesto, el mtodo grfico Circle: Objeto.Circle (X.Y), radio, [color], inicio, fin, [aspecto]

Donde inicio y fin son los ngulos de inicio y fin del arco en radianes y aspecto es opcional y se coloca si desea dibujar el arco de una elipse. Cuadrados o Rectngulos: Se realizan mediante el mtodo Line: Objeto.Line (X,Y)-Step(Ancho,Alto), [color], B Donde las coordenadas X, Y son las coordenadas de la esquina superior izquierda. Si desea rellenar el cuadrado, debe cambiar la sentencia B por BF. Escribir Texto: Se escribe texto mediante el mtodo Print. Para establecer el lugar donde se colocar el texto se utilizan las instrucciones Objeto.CurrentX y Objeto.CurrentY. Objeto.CurrentX = CoordenadaX Objeto.CurrentY = CoordenadaY Objeto.Print "Escriba texto" Notas Importantes: Es importante resaltar que la coordenada Y se mide de arriba hacia abajo, tal como los formularios. Si en algn mtodo grfico desea omitir el color, inicio o fin deber dejar el espacio en blanco entre las dos comas: Ejemplo: un cuadrado donde se omite el color:

Programacin con VB 6.0

Tsu . Enzo Costantini

Objeto.Line (X,Y)-Step(Ancho,Alto), , B O una elipse completa: Objeto.Circle (X,Y), radio, color, , , aspecto Como se puede ver el color es opcional en todos los mtodos grficos y si se omite este presentar el color de la propiedad ForeColor cuyo valor predeterminado es negro.

Programa #4. Dibujar en un PictureBox: El siguiente programa dibuja en un control PictureBox mediante los diferentes mtodos grficos explicados anteriormente: Para ello, agreguemos 7 botones de comando, y un control PictureBox. Cambie las propiedades de la siguiente manera: Todos los botones de comando tienen las propiedades: Left: 240 Width: 1935. Height: 375 Control 1er Botn de Comando 2do Botn de Comando 3er Botn de Comando 4to Botn de Comando 5to Botn de Comando 6to Botn de Comando 7mo Botn de Comando 8vo Botn de Comnado PictureBox Propiedades Name: cmdMostrar Caption: Mostrar &imagen Top: 120 Name: cmdCuadrado Caption: Dibujar c&uadrados Top: 600 Name: cmdLinea Caption: Dibujar &lneas Top: 1080 Name: cmdPunto Caption: Dibujar varios &Puntos Top: 1560 Name: cmdElipse Caption: Dibujar &Elipse Top: 2040 Name: cmdCirculo Caption: Dibujar &crculos y arcos Top: 2520 Name: cmdTexto Caption: Escribir &texto Top: 3000 Name: cmdBorrar Caption: &Borrar Top: 3480 Name: Monitor Height: 3735 Width: 4095 Left: 2280 Top: 120 BackColor: Blanco

Cambie la propiedad Caption del formulario para colocar un nombre al programa. Ahora, copie y pegue el siguiente cdigo, o escriba: Option Explicit Private Sub cmdMostrar_Click()

Programacin con VB 6.0

Tsu . Enzo Costantini

Set Monitor.Picture = LoadPicture("C:\Windows\Aros.bmp") End Sub Private Sub cmdCuadrado_Click() Monitor.FillStyle=1 Monitor.Line (200, 400)-Step(700, 300), , B Monitor.Line (1000, 2000)-Step(1000, 1000), vbYellow, BF Monitor.Line (1000, 2000)-Step(1000, 1000), vbBlack, B End Sub Private Sub cmdLinea_Click() Monitor.Line (200, 400)-(900, 700), vbBlack Monitor.Line (2500, 500)-(1000, 2500), vbGreen End Sub Private Sub cmdPunto_Click() Dim X As Integer, Y As Double Monitor.PSet (200, 400), vbRed Monitor.PSet (600, 500), vbBlue Monitor.PSet (700, 800), vbGreen For X = 1 To Monitor.Width Y = 3 * X ^ (0.75) + 500 Monitor.PSet (X, Monitor.Height - Y), RGB(50, 200, 211) Next X End Sub Private Sub cmdElipse_Click() Monitor.FillStyle = 0 Monitor.FillColor = vbRed Monitor.Circle (1200, 1200), 500, vbBlue, , , 2 / 3 End Sub Private Sub cmdCirculo_Click() Const Pi = 3.1415927 Monitor.FillStyle=1 Monitor.Circle (3000, 800), 300, vbRed Monitor.Circle (2500, 2500), 700, vbBlack, Pi / 2, Pi End Sub Private Sub cmdTexto_Click() Monitor.CurrentX = 2500 Monitor.CurrentY = 3000 Monitor.ForeColor = vbBlue Monitor.Print "Muestra de texto" End Sub Private Sub cmdBorrar_Click() Set Monitor.Picture = LoadPicture End Sub Ejecute e interacte con el programa. La explicacin del programa se encuentra en la Seccin Detallada de Programas. MARCOS (FRAME): Los Marcos actan como agrupadores y contenedores de otros controles. Por ejemplo se puede utilizar para agrupar botones de opcin para que el usuario elija una de las opciones presentadas o casillas de verificacin para elegir varias opciones.

Programacin con VB 6.0

Tsu . Enzo Costantini

Puede colocar cualquier control sobre l y al colocarlo el control har referencia con sus propiedades top y left al marco y no al formulario. (La explicacin de los botones de opcin puede encontrarla ms adelante durante la descripcin de los controles) Programa #5. Dnde estudiar? En este programa se utilizarn dos controles marcos (Frame) para agrupar botones de opcin. Para ello se deben seguir los siguientes pasos: Dibujar una etiqueta en la parte superior del formulario, con las siguientes propiedades Caption: (Borre su contenido) Height: 375 Width: 4575 Left: 120 Top: 120 BorderStyle: 1 Fixed Single Dibujar ahora un control Frame (marco) con las siguientes propiedades: Caption: Carrera Height: 1575 Width: 2055 Left: 120 Top: 600 Colocar un botn de opcin dentro del marco. Colocando el nombre optCarrera y Caption igual a Ingeniera. Se va a crear una matriz de controles, para ello, se debe copiar el botn de opcin y al pegar se desplegar un mensaje de dilogo que preguntar. Desea crear una matriz de controles? Responda Si. Se pegar un control cuyo Caption se debe cambiar a Arquitectura. Despus corte este control, seleccione el marco (haga clic sobre l) y pegue el control. Esto se hace para asegurar que el control quede dentro del marco seleccionado. Luego, colquelo debajo del anterior botn de opcin. Despus, se debe pegar otro control (botn de opcin) como matriz de control cuyo Caption va a cambiar a Letras. Ahora se colocar otro control Frame (marco), se dibujar este control sobre el formulario asignando las siguientes propiedades: Caption: Institucin Height: 1575 Width: 2415 Left: 2280 Top: 600 Se van a colocar tambin tres botones de opcin, el nombre para el primero es (no su Caption, sino su propiedad Name) es optInstitucion, cree la matriz de controles y colquelos dentro de este marco, sus caption respectivos son: Universidad Nacional, Universidad Estatal y universidad Municipal. Se asigna a la propiedad TabIndex del botn de opcin que dice Universidad Nacional el valor cero (0). Coloque debajo de los marcos un botn de comando con Caption igual a &Salir. Ahora le toca el paso a la codificacin:

Copie y pegue el siguiente cdigo o escriba: Public strCarrera As String, strInstitucion As String Private Sub optCarrera_Click(Index As Integer)

Programacin con VB 6.0


strCarrera = optCarrera(Index).Caption Call Display End Sub

Tsu . Enzo Costantini

Private Sub optInstitucion_Click(Index As Integer) strInstitucion = optInstitucion(Index).Caption Call Display End Sub Private Sub Display() Label1.Caption = "Ha decidido estudiar " & strCarrera & _ " en la " & strInstitucion End Sub Private Sub Command1_Click() Unload Me End Sub BOTONES DE COMANDO (COMMANDBUTTON): Ya se ha trabajado un poco con ellos, su finalidad es de generar acciones cuando se hace clic sobre ellos, pueden tomar el enfoque con el mtodo SetFocus y el evento principal es el evento clic. Otra propiedad que se puede mencionar es Default. sta slo puede tomar el valor verdadero o falso y determina qu control CommandButton es el botn de comando predeterminado en un formulario. Slo un botn de comando de un formulario puede tener esta propiedad como verdadera. As, si cualquier control del formulario tiene el enfoque al presionar la tecla Enter llama al evento clic del nombre del control. Por ahora, no realizaremos programas para aplicar esta propiedad. CASILLAS DE VERIFICACIN (CHECKBOX): Las Casillas de Verificacin funcionan tambin como botones de opcin, pero en este caso se puede seleccionar cualquier nmero de casillas, se puede seleccionar ninguna, una o ms de una opcin. La propiedad ms importante de este control es Value, que puede tomar tres valores: Desactivada: En este caso la propiedad Value toma el Valor 0 o tambin vbUnchecked.

Activada: La propiedad Value toma el valor 1 o vbChecked. No Disponible: La propiedad Value toma el valor 2 o vbGrayed. Este caso se utiliza si desea deshabilitar el control.

Si el control est habilitado, ste responde al evento clic cambiando su propiedad value a activado o desactivado, segn sea el caso, si se presiona doble clic el control reconoce cada clic por separado quedando en el mismo estado. Puede crear un acceso directo si antepone el signo & a la letra en la propiedad Caption, as al presionar la combinacin Alt+Letra se llevar a cabo el evento clic. Si no desea que la casilla muestre un texto en su propiedad Caption sino que muestre una figura, puede utilizar la propiedad Picture y Style para asignar la imagen a el control. Programa #6. Contrato: Este programa tiene la finalidad de utilizar el control CheckBox, se debe crear un proyecto nuevo y en el formulario colocar tres controles CheckBox, con los siguientes Captions: 1. &Entre 20 y 30 aos 2. &Tiene experiencia en el rea

Programacin con VB 6.0

Tsu . Enzo Costantini

3. &Bilinge Ahora, para continuar se colocar un botn de comando debajo de las casillas de verificacin, con Caption: &Contratar?. Para finalizar se agrega debajo del botn de comando una etiqueta con las siguientes propiedades: Caption: (Sin contenido) Font: Tamao:12 Negrita Autosize=True (verdadero) Alignment: 2 center Si se quiere puede cambiar el caption del formulario a Requisitos A continuacin se debe agregar el siguiente cdigo en la pantalla del formulario: Private Sub Command1_Click() If Check1 = vbChecked And Check2 = 1 And Check3 = 1 Then Label1.Caption = "Si contratar" Else Label1.Caption = "No contratar" End If End Sub Al ejecutar el programa se verifica que si el aspirante cumple con los tres requisitos debe ser contratado y no aquellos que slo cumplen menos. BOTONES DE OPCIN (OPTIONBUTTON): Tienen la finalidad de presentar un conjunto de opciones al usuario con el propsito que slo pueda elegir una. Los grupos de botones deben estar agrupados, para ello, deben estar colocado en el mismo control o formulario, es decir, los botones de opcin que se encuentran directamente encima del formulario se agruparn y slo se podra elegir una de ellas, aquellas que se encuentran dentro de un marco (Frame) se separarn de las primeras y de stas se podra escoger otra opcin, asimismo aquellas que estn dentro de un PictureBox. Si durante una prueba se observa que se pudo escoger ms de una opcin es porque el botn de opcin no qued agrupado sino que qued fuera del rea del grupo y por lo tanto debe, mediante el diseo, reubicarlo. Para asegurar que el control quede dentro del rea del grupo se debe: Dibujar el botn de opcin en cualquier lugar. Corte el botn de opcin. Seleccionar (mediante un clic) el control o el formulario donde se desea colocar. Pegar el botn de opcin. Ubicarlo en la posicin que se desea. Se puede crear un acceso directo si antepone el signo & a la letra en la propiedad Caption, as al presionar la combinacin Alt+Letra se llevar a cabo el evento clic, es decir, la seleccin. El programa que ejemplifica este control es el Programa #5.

CONTROL LISTBOX (CUADRO DE LISTA): Los cuadros de lista es un control que tiene la finalidad de presentar una lista de elementos al usuario de tal manera que ste escoja una o varias opciones, o puede tambin utilizarse para enlistar elementos en tiempo de ejecucin. Los elementos pueden colocarse en la lista en tiempo de diseo o en tiempo de ejecucin.

Programacin con VB 6.0

Tsu . Enzo Costantini

Para agregarlos en tiempo de diseo, se debe rellenar la propiedad List (en la ventana Propiedades) con los elementos que se deseen, en este caso, cada vez que se coloque un elemento se presiona la combinacin de teclas Control+Enter para pasar a la siguiente lnea, al siguiente elemento. Para agregarlos en tiempo de ejecucin se utiliza la instruccin Additem, de la siguiente manera: Lista.Additem "Elemento" [, ndice] Donde Lista es el nombre de la lista, Elemento es una cadena de caracteres de texto o nmero que se va a agregar a la lista y el ndice es opcional y ofrece la opcin de ubicar el elemento en algn lugar especificado de la lista. La lista enumera los elementos desde el nmero 0 (primer elemento) hasta el ltimo que tendra como valor de ndice el nmero de elementos menos uno. Si en la instruccin Additem no se incluye el ndice, la lista colocar el elemento al final de la lista, de manera que si se desea colocar primero se escribir el siguiente cdigo: Lista.Additem Elemento, 0 Al colocar el elemento en esta posicin, los otros elementos se reindexarn y pasarn a ocupar una nueva posicin, el primero pasa a ser el segundo (1), el segundo pasa a tercero (2) y as sucesivamente. Si se agregan en una posicin invlida que sobrepase la numeracin de los elementos se producir un error. Si desea agregar una lista de elementos a la lista de un formulario en tiempo de ejecucin, de tal manera que el usuario escoga una o varias, puede agregarlo mediante el mtodo Additem en el evento Load del formulario, es decir Private Sub Form_Load(), de manera que los elementos aparecern cargados en la lista a la hora de cargar el formulario. Para eliminar un elemento de la lista en tiempo de ejecucin se utiliza la instruccin RemoveItem, de la siguiente manera: Lista.RemoveItem ndice Slo se pueden eliminar elementos mediante su nmero de ndice, para obtener el nmero de ndice de un elemento seleccionado se utiliza la propiedad Lista.ListIndex, de tal manera que para eliminar un elemento seleccionado se debe escribir: If Lista.ListIndex>=0 Then Lista.RemoveItem Lista.ListIndex End if Si no existe un elemento seleccionado la propiedad ListIndex toma el valor 1, por lo tanto se le antecede la sentencia IF asegurando que haya seleccionado un elemento. Si no se coloca esta sentencia y no hay elementos seleccionados en la lista el programa genera un error. La instruccin para obtener el nmero de elementos de una lista es ListCount, de forma que el ndice del ltimo elemento es ListCount 1. Otra propiedad que se utiliza con este control es List. Esta propiedad, guarda cada elemento de la lista en una matriz, de modo que para obtener un elemento en particular utilice la codificacin: Lista.List(ndice) Por ejemplo, la secuencia Lista.List(1) devuelve el segundo elemento mostrado en la lista. La manera para quitar todos los elementos de una lista es el mtodo Clear: Lista.Clear Programa #7. Coordenadas: Este programa utiliza una lista para ordenar puntos de coordenadas X, Y. Grafica estos puntos en un PictureBox. Para este fin, se deben colocar una lista, dos etiquetas, dos cuadros de texto, un cuadro de imagen y tres botones de comando. A continuacin, se muestran las propiedades Name que deben tener estos controles:

Programacin con VB 6.0

Tsu . Enzo Costantini

Control Cuadro de texto 1 Cuadro de texto 2 Lista 1 Botn de Comando 1 Botn de Comando 2 Botn de Comando 3 Cuadro de Imagen 1

Name txtX txtY lstPuntos cmdIngresar cmdEliminar cmdBorrar Monitor

Las propiedades Height y Width del Monitor son 2175 cada una. Se deben ubicar los controles de tal manera que se observen de la siguiente manera:

Copie y pegue el siguiente cdigo o escriba: Option Explicit Private Sub txtX_Change() cmdIngresar.Enabled = (Len(txtX) > 0 And Len(txtY) > 0) End Sub Private Sub txtX_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then txtY.SetFocus End If End Sub Private Sub txtY_Change() cmdIngresar.Enabled = (Len(txtX) > 0 And Len(txtY) > 0) End Sub Private Sub txtY_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If cmdIngresar.Enabled = True Then cmdIngresar.SetFocus Else txtX.SetFocus End If End If End Sub

Programacin con VB 6.0


Private Sub cmdIngresar_Click() Dim X As Integer, Y As Integer X = CInt(txtX) Y = CInt(txtY) Monitor.Circle (X, Y), 30, vbRed lstPuntos.AddItem "(" & X & "," & Y & ")" txtX = "" txtY = "" txtX.SetFocus End Sub Private Sub cmdEliminar_Click() If lstPuntos.ListIndex >= 0 Then lstPuntos.RemoveItem lstPuntos.ListIndex End If End Sub Private Sub cmdBorrar_Click() lstPuntos.Clear Monitor.Refresh End Sub

Tsu . Enzo Costantini

Se puede interactuar un poco con el programa para relacionarse con los comandos y funciones de cada botn de comando, lista y control PictureBox. Es importante resaltar que, en este caso, aunque se elimine de la lista las coordenadas de un punto, no se borra ste del cuadro de imagen. Esto se hace debido a que todava no se tienen las herramientas necesarias para generar dichos procedimientos, esto es slo un ejemplo de cmo se utiliza el control ListBox y por lo tanto se dejaron a un lado estas posibilidades. Para obtener ms detalles sobre este programa dirigirse a la Seccin Detallada de Programas al final de este tomo. Puede ver tambin el ejemplo del control ComboBox para ver otra utilidad de los cuadros de lista. Guarde este programa ya que lo utilizar mas adelante cuando se introduzca en el tema del trabajo con ficheros. CONTROL COMBOBOX (CUADRO COMBINADO): Este control combina las posibilidades de una lista con un cuadro de texto, de manera que presenta la posibilidad de elegir de una lista un elemento de inters, pero adems, puede obviar cualquier opcin y escribir sobre el control mediante la propiedad text. Por lo tanto, posee adems de las propiedades, mtodos y eventos de la lista, tambin los de los cuadros de texto. Programa #8. Nmero de Mes: A continuacin la elaboracin de un programa para observar una de las utilidades del control ComboBox: Para ello se debe agregar al formulario: Una etiqueta de Caption: Mes Nro: A su lado un cuadro de texto de nombre Text1 (no cambiar) Un botn de comando de nombre Command1 (no cambiar) y Caption: Escribir Mes Un control ComboBox (Cuadro combinado) de nombre Combo1 (no cambiar). Se debe agregar al formulario el siguiente cdigo: Private Sub Form_Load() Combo1.AddItem "Enero"

Programacin con VB 6.0


Combo1.AddItem Combo1.AddItem Combo1.AddItem Combo1.AddItem Combo1.AddItem Combo1.AddItem Combo1.AddItem Combo1.AddItem Combo1.AddItem Combo1.AddItem Combo1.AddItem End Sub "Febrero" "Marzo" "Abril" "Mayo" "Junio" "Julio" "Agosto" "Septiembre" "Octubre" "Noviembre" "Diciembre"

Tsu . Enzo Costantini

Private Sub Command1_Click() Dim Mes As Byte Select Case Combo1.Text Case "Enero": Mes = 1 Case "Febrero": Mes = 2 Case "Marzo": Mes = 3 Case "Abril": Mes = 4 Case "Mayo": Mes = 5 Case "Junio": Mes = 6 Case "Julio": Mes = 7 Case "Agosto": Mes = 8 Case "Septiembre": Mes = 9 Case "Octubre": Mes = 10 Case "Noviembre": Mes = 11 Case "Diciembre": Mes = 12 Case Else MsgBox "Error en el mes. Corrija para continuar" End Select Text1 = Mes End Sub Al ejecutar la aplicacin, se debe seleccionar un mes y presionar el botn de comando, se desplegar en el cuadro de texto en nmero de mes correspondiente. Para obtener los detalles de la programacin se puede dirigir a la Seccin Detallada de Programas. Es muy importante resaltar que los cuadros de lista y el cuadro combinado tienen funciones similares, sin embargo pueden tener distintas funciones segn el programa. En el caso del ejemplo del cuadro de lista se utiliz para enlistar un conjunto de puntos que se iban dibujando en el cuadro de imagen, adems los elementos (puntos) se encerraban en parntesis y se separaban las variables por comas. En el caso del ejemplo del cuadro combinado se utiliz para desplegar una lista en el cual el usuario poda elegir una opcin; en este ejemplo tambin se pudo utilizar un cuadro de lista sin embargo se quiso que ambos ejemplos sirvieran para ambos casos de manera que el lector pueda asociar las distintas funciones que pueden tener estos controles a la hora de programar. CONTROLES HSCROLLBAR Y VSCROLLBAR: BARRAS DE DESPLAZAMIENTO. Las barras de desplazamiento se utilizan en las aplicaciones para desplazarse horizontal o verticalmente cuando halla una cantidad grande de informacin o cuando los controles toman gran tamao. Estas tienen la misma finalidad de aquellas que aparecen en los cuadros de texto cuando el contenido de su propiedad text sobrepasa el ancho y/o el alto del mismo o tambin las que aparecen en un cuadro de lista o combinado cuando el nmero de elementos es mayor al tamao designado

Programacin con VB 6.0

Tsu . Enzo Costantini

para la muestra de ellos. Esta tiene la finalidad de mostrar elementos tambin contenidos en el control que no se pueden ver inmediatamente por el reducido tamao del mismo. Aunque tienen la misma finalidad este control no son iguales ya que las primeras aparecen por defecto y en este caso se promueve mediante los mtodos del control. Programa #9. Mirar el contenido de una etiqueta: El siguiente programa sugiere mediante la utilizacin de la barra de desplazamiento ver el contenido de una etiqueta cuyo interior no se poda observar completamente por el reducido tamao de la etiqueta. Para ello se deben colocar los controles de la izquierda con las propiedades de la derecha:

Control
Cuadro de texto (TextBox)

Propiedades
Nombre: Text1 (no cambiar) Height: 285 Width: 1575 Left: 0 Top: 0 Nombre: Picture1 (no cambiar) BorderStyle: 1 Fixed Single Height: 495 Width: 1575 Left: 0 Top: 360 Nombre: Command1 (no cambiar) Caption: Asignar Height: 285 Width: 975 Left: 1680 Top: 0 Nombre: HScroll1 (no cambiar) Height: 255 Width: 1575 Left: 0 Top: 960 Visible: False Nombre: Label1 (no cambiar) AutoSize: True (verdadero) BorderStyle: 0 None Caption: (Borrar contenido) Height: 195

Cuadro de Imagen (PictureBox)

Botn de Comando (CommandButton)

Barra de desplazamiento (HScrollBar)

Horizontal

Etiqueta (Label) Nota: la etiqueta estar insertada dentro del control cuadro de imagen. Para ello crtela de donde est, seleccione el cuadro de imagen con un clic y pegue la etiqueta.

Ahora, se proceder a colocar el siguiente cdigo dentro la ventana de cdigo del formulario: Option Explicit Private Sub Command1_Click() Form1.ScaleMode = vbCharacters Picture1.ScaleMode = vbCharacters Label1.Move 0, 0 Label1.Caption = Text1 HScroll1.Max = Label1.Width - Picture1.Width + 1 HScroll1.Visible = (Picture1.Width < Label1.Width) End Sub Private Sub HScroll1_Change() Label1.Left = -HScroll1.Value End Sub

Programacin con VB 6.0

Tsu . Enzo Costantini

Ejecute el programa y coloque en el cuadro de texto una cadena de nmeros o textos ms grande que el tamao del cuadro de imagen, luego haga clic en el botn de comando, aparecer la barra de desplazamiento horizontal permitiendo desplazarse para ver el contenido completo de la etiqueta. Si coloca un nmero de menos caracteres no aparecer la barra. Para obtener la explicacin del programa detalladamente, se puede dirigir a la Seccin Detallada de Programas. Puede utilizar la barra de desplazamiento tambin para observar completamente una imagen contenida dentro de un control cuadro de imagen. Esto es muy til ya que el cuadro de imagen no muestra la imagen completa si su tamao es menor. Se puede entonces colocar un Picture2 dentro de un Picture1 y seguir la secuencia semejante a como se hizo con la etiqueta, colocando adems una barra de desplazamiento vertical. CONTROL TIMER (CONTROL DE TIEMPO RELOJ) Este control es muy til para crear aplicaciones donde necesite llevar un control de tiempo, ya sea que utilice el reloj del computador como contador o rector de las actividades del computador, o cree un nuevo contador de segundos, horas y minutos que comience desde cero, como es el caso del ejemplo que se muestra ms delante de esta seccin. El control Timer tiene dos propiedades principales, ellas son Enabled e Interval. La propiedad Enabled comienza el funcionamiento del control de tiempo y la propiedad Interval que genera un evento Timer cada vez que se cumple el valor que contiene (en milisegundos), es decir, si la propiedad Interval tiene el valor 1000 (1000 milisegundos = 1 segundo) se llama al evento Timer cada segundo. Programa #10. Cyber: El siguiente programa da un ejemplo de un contador de un cyber. Muestra la hora del computador, un contador de tiempo de uso y el precio por el tiempo de uso. Para la realizacin de este programa se deben agregar 6 etiquetas. Las tres primeras (de nombres Label1, Label2 y Label3) se colocan en la parte inferior del formulario y sirven para mostrar las variables del uso del computador, por ello fue borrado el contenido de la propiedad Caption de cada una. Las dems tienen propiedades: Label4 Caption: Hora Label5 Caption: Tiempo de uso Label6 Caption: Precio Se agreg adems, por supuesto, el control Timer. Es muy importante resaltar que este control no es visible en tiempo de ejecucin. Y por ello no tiene propiedades de tamao, ni opciones de borde, color de fondo, y otras similares; ya que no son relevantes. Al control Timer se le asignaron las propiedades Interval=1000 y Enabled = True Luego se colocaron los controles de la siguiente manera: La ubicacin del control Timer tampoco es relevante.

Luego se procede a agregar a la ventana de cdigo del programa las siguientes sentencias: Option Explicit Private Sub Timer1_Timer() Static Segundos As Byte, Minutos As Byte, _ Horas As Integer, Precio As Double, Contador As Long Contador = Contador + 1

Programacin con VB 6.0

Tsu . Enzo Costantini

Label1 = Time If Segundos < 59 Then Segundos = Segundos + 1 Else Segundos = 0 If Minutos < 59 Then Minutos = Minutos + 1 Else Minutos = 0 Horas = Horas + 1 End If End If Label2 = Format(Horas, "##00") + ":" + _ Format(Minutos, "##00") + ":" + Format(Segundos, "##00") Precio = CDbl(Contador * 1200 / 3600) If Precio < 100 Then Precio = 100 End If Label3 = Format(Precio, "##,##00.00") End Sub Puede ejecutar el programa para observar su funcionalidad. Para obtener una explicacin detallada del programa dirjase a la Seccin Detallada de Programas. CONTROLES

CONTROL DRIVELISTBOX: LISTA DE UNIDADES DE DISCOS CONTROL DIRLISTBOX: LISTA DE DIRECTORIOS CONTROL FILELISTBOX:: LISTA DE ARCHIVOS

Estos controles se agruparon en uno ya que tienen finalidades semejantes. El caso de las listas de unidades de disco, muestran un cuadro combinado con las unidades de disco presentes en su computador. La propiedad ms importante de este control es la propiedad Drive que devuelve o establece la unidad seleccionada en tiempo de ejecucin. Las listas de directorios muestran las distintas carpetas de directorio que estn grabadas dentro del computador. la propiedad ms importante de sta es la propiedad Path que devuelve o establece la ruta de acceso actual. La listas de archivos muestran la lista de archivos de un directorio seleccionado. Tambin tiene la propiedad Path con las misma funcin que las listas de directorio, a diferencia que ste muestra la lista de archivos y no la de directorio. Tambin contiene la propiedad Patern que muestra slo la extensin de algn tipo de archivo. Es til por ejemplo, si quiere mostrar slo archivos de extensin *.exe, *.doc, u otro. Programa #11. Directorio: El siguiente programa combina los tres tipos de cuadros visto anteriormente: DriveListBox, DirListBox y FileListBox para mostrar los documentos de word (*.doc) de una carpeta. Para ello, se debe agregar a un formulario una lista de unidades, una de directorio y una de archivos: Luego, se debe copiar y pegar, o escribir: Private Sub Form_Load() Dir1_Change End Sub

Programacin con VB 6.0


Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub Private Sub Dir1_Change() File1.Pattern = "*.doc" File1.Path = Dir1.Path End Sub

Tsu . Enzo Costantini

Ejecute el programa y ubique las diferentes unidades de disco, directorio y verifique que la lista de archivos corresponde a los archivos de word (*.doc) de la carpeta, es recomendado buscar la carpeta Mis Documentos. La explicacin detallada de la codificacin la puede encontrar en la Seccin Detallada de Programas. CONTROL SHAPE: FORMAS El control Shape permite crear figuras sin necesidad de escribir cdigo, tiene varias propiedades que se explicarn a continuacin: Propiedad Shape: Es la ms comn y permite dibujar distintos tipos de figura sin escribir cdigo, por ejemplo: agregue un control Shape a un formulario y cambie la propiedad Shape (en la Ventana de Propiedades del Control) presionando doble clic o eligiendo de la lista, la forma va cambiando segn vaya cambiando su propiedad Shape, se pueden crear las siguientes figuras: Figura Rectngulo Cuadrado Elipse Crculo Rectngulo redondeado Cuadrado redondeado Nro de Estilo 0 1 2 3 4 5 Constante vbShapeRectangle vbShapeSquare vbShapeOval vbShapeCircle vbShapeRoundedRectangle vbShapeRoundedSquare

Las constantes se utilizan para cambiar la forma del control en tiempo de ejecucin, o se puede colocar su forma abreviada mediante su nmero correspondiente. Propiedad FillStyle: Se refiere al estilo del relleno del control. Si se encuentra en la forma Transparente = 1, la propiedad FillColor queda deshabilitada, de tal manera que no habr color de relleno. Los distintos estilo de la propiedades FillStyle pueden obtenerse en el Examinador de Objetos introduciendo la palabra FillStyleConstants. Para cambiar el grosor del borde utilice la propiedad BorderWidth, el grosor predeterminado es uno, de tal manera que los nmeros mayores a uno sern mas gruesos que la predeterminada. No se aceptan valores menores a uno, ni valores decimales. Para cambiar el color del borde elija el tipo de borde con la propiedad BorderStyle y cambie la propiedad BorderColor y DrawMode al de su preferencia. Los estilos de borde tambin se pueden obtener en el Examinador de objeto introduciendo la palabra BorderStyleConstants. No se procedi a realizar un programa con este control ya que su funcionalidad y aplicacin es muy fcil verla slo con la explicacin. CONTROL LINE: LNEA Este control slo tiene una finalidad decorativa de los formularios o puede agregarlas dentro de otro control como cuadro de imagen (PictureBox), marcos (Frame) u otros Puede agregar lneas y cambiar su grosor, estilo, color, puede ubicarla segn las coordenadas y hacerlas visibles o invisibles.

Programacin con VB 6.0

Tsu . Enzo Costantini

Tampoco se procedi a realizar un programa con este control ya que su funcionalidad y aplicacin es muy fcil verla slo con la explicacin. CONTROL IMAGE: IMAGEN Este control tambin se utiliza para mostrar imgenes, acepta los mismos formatos que los cuadros de imagen (PictureBox). La diferencia principal radica en que este control puede reducir el tamao de la imagen para adaptarlo al tamao del control, lo que no sucede con el control PictoreBox. Para ello; ya sea en tiempo de diseo o de ejecucin, establezca la propiedad Stretch a True (verdadero) antes de cargar la imagen. Para cargar la imagen en tiempo de diseo utilice la propiedad Picture y en tiempo de ejecucin utilice la secuencia: Set Imagen.Picture=LoadPicture(Ruta) Donde, imagen es el nombre del control y Ruta es una cadena de texto con la ruta a la imagen que desea mostrar. Si la imagen es pequea y la propiedad Stretch es True (verdadera), la imagen pierde calidad al adaptarse al tamao del control. Si la propiedad Stretch esta establecida a False (Falso) el control cambia de tamao adaptndose al tamao de la imagen. CONTROL DATA: DATOS Este control se utiliza para visualizar datos que se encuentran dentro de una base de datos. Ofrece acceso a varios tipos de bases de datos como Excel, Access, FoxPro, dBASE o incluso Lotus 1-2-3. Al agregarlo a un formulario puede tener acceso a la base de datos incluso sin escribir cdigo. Para utilizar este control mediante un ejemplo se deben seguir los siguientes pasos: 1. Cree un archivo de Excel, rellene las casillas de la siguiente manera, o rellene las casillas como una base de datos Excel con los datos que prefiera (esto es slo una opcin):

2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

Guarde el Archivo, con un nombre y en una carpeta que pueda recordar. Cree un nuevo proyecto de Visual Basic. Agregue un control Data en la parte inferior del formulario. Active la Ventana de Propiedades del control; para ello, presione un clic sobre el control Data y luego presione la tecla F4. En la ventana Propiedades, establezca la propiedad Connect a Excel 5.0 si tiene Office 97 o a Excel 8.0 si tiene Office 2000. En esta misma ventana de propiedades, introduzca en la propiedad DatabaseName el nombre de archivo y la ruta mediante el directorio. En propiedades tambin, haga referencia en la propiedad RecordSource a Hoja1. Agregue un cuadro de texto (TextBox) al formulario. Borre el contenido de su propiedad Text. En la propiedad DataSource del cuadro de texto haga referencia al control Data1. Por ltimo, en la propiedad DataField enlace al campo que desea mostrar en el cuadro de texto. Puede agregar otros cuadros de texto y repetir los pasos 9 a 11, cambiando la propiedad DataField en cada uno para mostrar otros datos de la tabla.

Programacin con VB 6.0

Tsu . Enzo Costantini

13. Ejecute el programa y presione los diferentes botones del control Data1 para desplazarse en la base de datos.

En el ejemplo anterior slo se utilizan controles TextBox para mostrar el contenido de la base de datos. Sin embargo no es el nico control que sirve para visualizar una base de datos, de hecho existen otros controles cuya funcin principal es mostrar el contenido de una base de datos en compaa de un control Data de un formulario. Estos controles son DBGrid, DbList y DBCombo. Estos controles se pueden agregar al cuadro de herramientas, si desplega el cuadro de Componentes y elige de la lista Microsoft Dat Bound Grid Control 5.0 (para DBGrid) o Miscrosoft Data Bound List Controls 6.0 (Para DBList y DBCombo). Nota: La lista de componentes se desplega haciendo clic con el botn secundario del mouse sobre el cuadro de Herramientas, Ir a la barra de Men a la opcin Proyecto, luego Componentes, o simplemente presionando la combinacin de teclas Control+T. Cuando se va a utilizar algunos de estos controles, se debe primero colocar el control Data que hara referecia a la base de datos en sus propiedades en la secuencia: Connect (que define el tipo de base de datos), DataBaseName (El nombre de la base de datos en el disco duro) y RecordSource (La tabla de la base de datos). Se puede rellenar una lista (Controles DBList o DBCombo) con todos los elementos de una columna de una base de datos, por ejemplo todos los nombres de los clientes de una base de datos, todos sus ID o cualquier otra columna. Para enlistarlos se deben rellenar las propiedades de estos controles (DBList y DBCombo) RowSource y ListField, en ese orden. Con el control DBGrid puede visualizar todo el contenido de una tabla de una base de datos si conecta mediante la propiedad DataSource. Para agregar elementos en una base de datos mediante este control en tiempo de ejecucin establezca la propiedad AllowAddNew a True (Verdadero), se agregar una fila al final de la tabla donde puede escribir. Si desea eliminar registros establezca la propiedad AllowDelete a True (Verdadero). Puede ver otras propiedades, mtodos y eventos de este control si escribe DBGrid en el Examinador de objetos.

CONTROL OLE: CONTENEDOR OLE El control contenedor OLE, se utiliza para insertar aplicaciones de documentos. Cuando inserta un control OLE al formulario se desplega la siguiente pantalla:

De tal manera que se puede crear y agregar un archivo nuevo eligiendo de esta lista el tipo de archivo con la opcin Crear nuevo o puede insertar un archivo ya creado mediante la opcin Crear desde un archivo. Inserte algunos tipos de archivos nuevos y ya creados desde el contenedor OLE e interacte, es muy fcil obtener resultados con este control directamente. CONTROL MICROSOFT COMMON DIALOG 6.0:

Programacin con VB 6.0

Tsu . Enzo Costantini

Este control no aparece por defecto en el cuadro de Herramientas, es decir no es un control intrnseco y debe agregarse mediante la Opcin Componentes... que aparece en la Barra de men Proyecto Componentes..., al hacer clic con el botn secundario del mouse sobre el cuadro de herramientas o simplemente presionando la combinacin de teclas (Control + T). Este control, mediante sus propiedades y mtodos, permite mostrar los cuadros de dilogos comunes que se utilizan en las aplicaciones de Windows. Algunos de estos cuadros de dilogo son: Abrir, Guardar como, imprimir y otros que se explicarn ms detalladamente adelante en esta seccin. Los mtodos de este control son: Mtodo wColor wFont wHelp wOpen wPrinter wSave Cuadro de dilogo que muestra Cuadro de dilogo para cambiar Colores Cuadro de dilogo para cambiar Fuente Cuadro de dilogo de Ayuda, mediante el sistema de ayuda de Windows Cuadro de dilogo para Abrir un Archivo Cuadro de dilogo para Imprimir Cuadro de dilogo para Guardar archivo.

Sho Sho Sho Sho Sho Sho

Estos mtodos deben combinarse con algunas de sus propiedades para poder almacenar datos, abrir documentos o realizar completamente la accin que se desea. Es decir, no basta mostrar el cuadro de dilogo abrir para abrir un archivo, hace falta algunas propiedades que nos distingan. Este control en tiempo de ejecucin no es visible, solo puede ver su aplicacin en la aparicin de los cuadros de dilogos, en tiempo de diseo este control tiene un tamao que no se puede variar. Las propiedades de este control se encuentran divididas segn el mtodo, por ejemplo, la propiedad Filter (que devuelve o establece los filtros que se mostrarn en el cuadro de lista Archivos de tipo de un cuadro de dilogo) slo pueden ser utilizados por los mtodos Abrir (ShowOpen) y Guardar (ShowSave) ya que son los nicos cuadros de dilogos que necesitan especificar un tipo de archivo. De esta manera, se muestran a continuacin las diferentes propiedades del control CommonDialog segn los mtodos mostrados anteriormente: Propiedades de los mtodos del Control Cuadros de Dilogos Comunes:

Mtodos ShowOpen y ShowSave:


Propiedad Filter: Cuando se muestra el cuadro de dilogo abrir o guardar, en la parte inferior del cuadro de dilogo aparece una etiqueta que escribe: (Archivos de tipo:). Al su lado aparece un cuadro combinado que muestra una cierta cantidad de tipos de archivos, si no aparece ningn tipo es porque todava no ha establecido la propiedad Filter. La propiedad Filter es la propiedad que establece el o los tipos de archivos que se pueden abrir, o el tipo de archivos que se va a guardar. Para cambiar la propiedad Filter de un control cuadro de dilogo se utiliza la siguiente sentencia: NombreCDialog.Filter="DecripcinTipo1|tipo1|DescripcinTipo2|tipo2" Hasta completar todos los tipos de archivo posibles que pueden ser usados por la aplicacin. Por ejemplo:

Programacin con VB 6.0

Tsu . Enzo Costantini

En un formulario agregue un botn de comando (Command1) y un Control Common Dialog, siguiendo los siguientes pasos: Dirjase a Proyecto, haga clic sobre Componentes... Espere un momento hasta que aparezca la lista de componentes. Busque en la lista Microsoft Common Dialog Control 6.0, active su casilla de verificacin. Haga clic en Aplicar para agregar al cuadro de herramientas y luego en Cerrar para salir de la lista. Seleccione el control Common Dialog que ahora debe aparecer en el cuadro de herramientas. Dibjelo en el formulario. Ahora agregue el siguiente cdigo, puede copiar y pegar: Private Sub Command1_Click() CommonDialog1.Filter = "Mapa de bits *.jpg|*.jpg|Archivos Animados (*.gif)|*.gif" CommonDialog1.FilterIndex=2 CommonDialog1.ShowOpen End Sub (*.bmp)|*.bmp|Archivos JPG

Ejecute la aplicacin, presione un clic sobre el botn de comando, se mostrar el cuadro de dilogo abrir, el mismo en su parte inferior tiene tres tipos de archivos: mapa de bits, Imagen JPG y archivos animados GIF. La propiedad FilterIndex se utiliza para presentar el tipo de archivo predeterminado cuando se muestre el cuadro de dilogo; en este caso el nmero dos (Archivos de imagen JPG). Propiedad FileName: La propiedad FileName devuelve el nombre del archivo que se ha seleccionado cuando se utiliza el cuadro de dilogo Abrir. Puede utilizarse tambin para el cuadro de dilogo guardar. Para ver un ejemplo de esta propiedad puede ver los programas #27 y 28, donde se encuentra la aplicacin de esta propiedad. Se utiliza de la siguiente manera: Archivo = NombreCDialog.FileName Donde Archivo es una variable que almacenar una cadena de texto con la ruta y el nombre del archivo seleccionado, la parte derecha de la igualdad corresponde al archivo seleccionado del cuadro de dilogo. Propiedad FileTitle: Devuelve o establece el nombre (sin la ruta de acceso) del archivo que se va a abrir o guardar en tiempo de ejecucin.

Mtodo ShowPrinter:
Propiedades: Copies: Devuelve o establece un valor que determina el nmero de copias que se van a imprimir. FromPage: Devuelve o establece el valor que indica la primera pgina que se va a imprimir. ToPage: Devuelve o establece el valor que indica la primera pgina que se va a imprimir. Orientation: Devuelve o establece la orientacin del papel de la impresora. Min: Establece el intervalo de impresin. PrinterDefault: Determina si las selecciones de un usuario en cuadro de dilogo Imprimir se usan para cambiar la configuracin predeterminada de la impresora.

Mtodo ShowColor:

Programacin con VB 6.0

Tsu . Enzo Costantini

Slo tiene la propiedad Color que devuelve o establece el color seleccionado en el cuadro de dilogo, por ejemplo: Private Sub ColorDelCirculo_Click() Dim ColorCirculo As Variant CommonDialog1.ShowColor ColorCirculo = CommonDialog2.Color Picture1.Circle (X,Y), Radio, ColorCirculo End Sub Este cdigo dibuja un crculo en las coordenadas x, y de cualquier radio con el color seleccionado en el cuadro de dilogo.

Mtodo ShowFont:
Las propiedades del mtodo ShowFont se refieren al tipo de fuente, son las siguientes:

FontBold: Es un dato tipo boolean que es verdadero si la fuente es negrita, o falso si no lo es. FontItalic: Tambin es un dato tipo boolean que es verdadero para producir fuentes cursivas. FontUnderLine: Es tipo boolean al que se asigna verdadero para producir fuentes subrayadas. FontName: Es una cadena de texto que contiene el nombre del tipo de fuente a utilizar. Ejemplo: Arial, Times New Roman u otras. FontSize: Es un dato tipo Single que asigna un valor de tamao (en puntos) a la fuente. FontStrikeThru: Tambin es un dato tipo boolean que es verdadero para producir fuentes tachadas. Mtodo ShowHelp: HelpCommand: Devuelve o establece el tipo de Ayuda en pantalla
solicitada. solicitado. con el proyecto.

HelpContext: Devuelve o establece el Id de contexto para el tema de Ayuda HelpFile: Devuelve o establece el nombre del archivo de Ayuda asociado

HelpKey: Devuelve o establece la palabra clave que identifica el tema de Ayuda solicitado.

Programacin con VB 6.0

Tsu . Enzo Costantini

5. VARIABLES, TIPOS DE DATOS Y CONSTANTES:


Durante la creacin de una aplicacin en VB 6.0, puede que necesite almacenar temporalmente valores numricos, cadenas de texto u otro tipo de dato y luego poder cambiarlos operando con ellos, hacer clculos o mostrar resultados; para este fin se utilizan las variables. Las variables utilizan un nombre para identificarse en el cdigo, este nombre almacena un tipo de dato mediante la utilizacin de un operador de asignacin (signo igual =) y se puede cambiar operando con ellos ya sea sumando o multiplicando valores (cualquier funcin matemtica) o agregando caracteres a una cadena de texto (para el caso de cadenas de texto). Ejemplo: Variable1 = 45 Variable2 = "Cadena de Texto" Aqu, Variable1 es el nombre de la variable, luego se presenta el signo igual de asignacin y luego 45 que es el dato que desea almacenarse. El ejemplo de la Variable2 almacena una cadena de texto, se identifica por estar encerrada entre comillas. Un ejemplo de operaciones con variables sera: Variable1 = 45 Variable2 = 30 Variable1 = Variable1 + Variable2 En este caso es muy importante resaltar que, la tercera lnea de instruccin el signo igual no representa una ecuacin de igualdad sino una asignacin. La primera lnea asigna el valor 45 a Variable1, en la segunda lnea se asigna 30 a la Variable2. En la tercera lnea se realiza una operacin de suma (Variable1+ Variable2 = 45+30 ) que se asigna a Variable1, por ello el valor de Variable1 cambia de 45 a 75. En este caso se pudo utilizar una Variable3 que guardara el valor de la suma, pero de la forma como se desarroll permiti la economa de memoria ya que utiliz una variable menos.

Variables:

Para declarar variables se utiliza la Sentencia: Dim Variable [As Tipo] Donde, Dim le dice al programa que cree una nueva variable con el nombre Variable, y [As Tipo] es opcional y declara el tipo de dato que se desea almacenar, sino se coloca el programa crea una variable tipo Variant (ver ms delante de que se trata). Por ejemplo: Dim MiCadena As String, prepara una variable de nombre MiCadena para almacenar cadenas de texto. Las variables una vez declaradas no distingue entre maysculas y minsculas, es decir si se declar la variable con nombre MiCadena, cuando se escriba micadena, Micadena, miCadena u otro nombre con otras maysculas y minsculas, el programa cambiar el nombre colocando MiCadena, que es el nombre original, es decir, aunque cambie maysculas y minsculas ser la misma variable.

Declarar variables:

Nombres de variables permitidos:


Como ya se dijo, las variables deben tener un nombre. Se debe elegir un nombre que siga las siguientes reglas: No puede empezar por un nmero, mas bien, debe empezar por una letra (mayscula o minscula) No puede tener ms de 255 caracteres. No puede ser igual a una palabra clave de Visual Basic. No puede ser por ejemplo Dim, If, Then, For, String, etc.

Programacin con VB 6.0


Tsu . Enzo Costantini

No puede incluir caracteres especiales como asterisco, punto, signo de admiracin o interrogacin, u otros. Pueden tener el mismo nombre siempre y cuando estn en procedimientos diferentes.

Si declara una variable dentro de un procedimiento, una vez terminada la secuencia del procedimiento, se perder el valor de la misma, para evitar esto se deber declarar la variables de forma: Static Variable [As Tipo] Esto permitir que se preserve el valor de la variable cuando se termine el procedimiento, y cuando se vuelva a llamar al procedimiento la variable tendr el ltimo valor asignado a ella. Hay variables que se necesitan que puedan modificarse desde diferentes procedimientos para esto, se debe declarar las variables en la seccin de declaraciones del formulario (lneas superiores del cdigo del formulario) de la siguiente forma: Public Variable [As Tipo] , o tambin Dim Variable [As Tipo] Dos variables de procedimientos separados pueden tener un mismo nombre y no sern la misma variable. Programa #12. Contadores de Variables: El siguiente programa tiene por finalidad relacionarse con distintos tipos de variables. Para ello, se deben agregar dos botones de comando y cuatro etiquetas a un formulario. Luego, se debe escribir el siguiente cdigo o copie y pegue: Option Explicit Public Variable As Integer Private Sub Command1_Click() Dim Variable1 As Integer Static Variable2 As Integer Variable1 = Variable1 + 1 Variable2 = Variable2 + 1 Variable = Variable + 1 Label1 = Variable1 Label2 = Variable2 Label4 = Variable End Sub Private Sub Command2_Click() Static Variable2 As Integer Variable2 = Variable2 + 1 Variable = Variable + 1 Label3 = Variable2 Label4 = Variable End Sub Ejecute el programa e interacte con el haciendo clic sobre los botones. Verifique como varan los valores de las variables cada vez que presiona uno de ellos. Para obtener una informacin detallada sobre la codificacin del programa dirjase a la Seccin Detallada de Programas.

Programacin con VB 6.0

Tsu . Enzo Costantini

Pero si existe una variable declarada en la seccin pblica y una variable en un procedimiento privado, VB 6.0 har referencia a la variable mas inmediata, es decir, a la variable del procedimiento mas interno.

Tipos de Datos:
Una buena seleccin de la variable dentro de un programa promueve un ahorro de memoria, por lo que se recomienda que se seleccione el tipo adecuado para almacenar los datos que se desean. Los tipos de datos son los siguientes: Boolean: Almacena un valor que puede tomar dos opciones: verdadero (True) o Falso (False). Un ejemplo de este tipo de dato es la propiedad visible de algunos controles. Ocupa un espacio en la memoria de 2 bytes. Byte: Puede almacenar un nmero natural que puede estar entre 0 y 255. No acepta valores negativos. Puede ser utilizado por ejemplo para almacenar edades, los nmeros de meses del ao o los das del mes, etc. Si se realiza una suma o restan dos nmeros Bytes, el resultado debe ser Byte, debe estar entre 0 y 255, si no, el programa genera un error de desbordamiento. Ocupa un espacio de 1 byte. Integer: Puede almacenar valores enteros desde 32.768 hasta 32.767. Ocupa en la memoria 2 bytes. Long: Tambin puede almacenar valores enteros, pero en este caso tiene una extensin ms grande ya que almacena nmeros entre 2.147.483.648 hasta 2.147.483.647. Ocupa en la memoria 4 bytes. Single: Puede almacenar valores numricos con decimales, tanto negativos como positivos, es de precisin simple, su rango est entre 1,401298x10-45 hasta +1,401298x1045. Ocupa en la memoria 4 bytes. Double: Tambin puede almacenar valores numricos con decimales, negativos y positivos, pero por tener ms memoria asignada puede tener valores de precisin doble, van desde 4,94065645841247x10-324 hasta 1,79769313486232x10308. ocupa en la memoria 8 bytes. Currency: Este tipo de dato se utiliza para almacenar valores numricos monetarios, su rango va desde 922.337.203.685.477,5808 hasta el 922.337.203.685.477,5807. String: Se utiliza para almacenar cadenas de texto. Puede tener una longitud fija si se declara: Dim Variable As String * Longitud, donde longitud es un nmero entero que indica el nmero de caracteres que va a tener la variable. Si cuando se introduce una cadena, sta tiene la longitud menor a la cantidad dada por Longitud, entonces el programa los rellena con espacios en blanco, si la cantidad de caracteres es mayor entonces se recortar. Ocupa en la memoria de acuerdo al nmero de caracteres que contenga (1 byte por carcter). Date: Este tipo de dato puede almacenar valores de fechas y horas. Su rango va para las fechas desde 1/1/100 hasta el 31/12/9999 y para las horas desde 0:00:00 hasta 23:59:59. Variant: Este tipo de dato es el que mas memoria consume (16 bytes), pero tiene una ventaja sobre los otros y es que puede almacenar cualquiera de los tipos de datos descritos anteriormente, incluso puede cambiar de una cadena a un nmero, despus guardar una fecha o cualquier otro tipo de dato. Las variables tipo variant no son declaradas necesariamente puede escribir Dim Variable y VB reconocer como si hubiese escrito Dim Variable As Variant.

Estructuras: Se utiliza para crear un solo tipo de dato (personalizados) combinando los distintos tipos bsicos vistos anteriormente. Estas se explicarn ms adelante en esta misma seccin. Su espacio en la memoria es variable de acuerdo al tipo de datos que combine.

Programacin con VB 6.0

Tsu . Enzo Costantini

Para declarar una variable a un tipo de dato se declara: Public/Private/Dim/Static Variable [As Tipo] Ejemplos de algunos seran:

Dim MiNumero As Double Crea una variable de tipo precisin doble con nombre MiNumero

Public Cadena As String * 8 Crea una variable de tipo cadena de 8 caracteres de nombre Cadena Static Valor As Integer Crea una variable de tipo entero de nombre Valor que preservar su valor Dim Variable Crea una variable tipo variante de nombre Variable Existen funciones que convierten un tipo de dato a otro: las funciones de conversin son: Funcin Cbool(expresin) Cbyte(expresin) Ccur(expresin) Cdate(expresin) CDbl(expresin) Cint(expresin) CLng(expresin) CSng(expresin) CStr(expresin) Cvar(expresin) Convierte a: Boolean Byte Currency Date Double Integer Long Single Strng Variant

Por ejemplo la sentencia CStr(45125) almacena 45125 como una cadena de texto y no como un valor numrico. Programa #13. Conversin de datos: Agregue un botn de comando (Command1) y un cuadro de texto (Text1) a un formulario. Agregue el siguiente cdigo o copie y pegue: Private Sub Command1_Click() Dim Mi As Integer Text1 = CInt(Text1) Text1 = Text1 End Sub Private Sub Form_Activate() Text1.SetFocus End Sub Private Sub Form_Load() Form1.Caption = "Introduzca un valor" Text1 = "" Command1.Caption = "Convertir" End Sub

Programacin con VB 6.0

Tsu . Enzo Costantini

Ejecute el programa en Iniciar y en el cuadro de texto agregue un valor con decimales, el programa lo convertir a entero. Como ya los comandos e instrucciones que se encuentran en este programa ya han sido explicados este programa no se detalla en la Seccin Detallada de Programas.

Estructuras:
Las estructuras se utilizan para crear un solo tipo combinando los tipos bsicos, se denotan: Type Nombre SubVariable1 As Tipo SubVariable2 As Tipo ... End Type Donde Nombre es el nombre de la estructura que grabar un conjunto de datos. SubVariable1, SubVariable2 son sub-variables que componen la estructura. Para crear una variable de este tipo de dato se procede del mismo tipo como si estuviera creando una variable de tipo Nombre: Public Variable As Nombre Ahora, para acceder o asignar cada sub-variable del conjunto se escribe: Variable.SubVariable1 = Valor1 Variable.SubVariable2 = Valor2 As por ejemplo la siguiente secuencia: Type Alumnos Nombre As String Edad As Byte Grado As Byte End Type Crea un tipo de dato que graba el nombre, edad y grado de un alumno, luego se colocar: Public Alumno As Alumnos Alumno.Nombre = "Carlos Bravo" Alumno.Edad = 16 Alumno.Grado = 8 Text1.text = Alumno.Edad

Constantes:
Una constante es un valor que por si slo puede ser difcil de recordar y por lo tanto se le asigna un nombre para trabajar con el nombre y no con el valor. Existen constantes que estn intrnsecas en el lenguaje de programacin como por ejemplo FillStyleConstants, que contienen un diverso conjunto de constantes que pueden ser utilizadas para cambiar el estilo del, relleno a un objeto. Pero, en VB 6.0, puede crear sus propias constantes anteponiendo la palabra Const al nombre de la constante que desea crear, agregar el smbolo igual (=) y luego el valor, de tal manera quedara: Const Nombre = Valor Como ejemplo, podra ser el aplicado en el programa del control de cuadro de imagen (PictureBox): Const Pi = 3.1415927 O tambin:

Programacin con VB 6.0


Const LineasCruzadas = vbCross

Tsu . Enzo Costantini

Luego, puede llamar a la constante de igual manera que se llamara a una variable, pero en este caso no se puede cambiar el valor asignado, si se intentara cambiar el programa mostrara un error de compilacin. Por ejemplo, agregue en un formulario un botn de comando (Command1) y un cuadro de imagen (Picture1), escriba el siguiente cdigo o copie y pegue: Private Sub Command1_Click() Const LineasCruzadas = vbCross Picture1.FillStyle = LineasCruzadas Picture1.Circle (1000, 1000), 400 End Sub As, si se escribe LineasCruzadas en la propiedad FillStyle, sta llama a su contenido que es la constante intrnseca vbCross que pertenece a las constantes de estilos de relleno, se rellenar en el circulo del cuadro de imagen con lneas cruzadas. Ahora si por ejemplo, agrega un botn de comando (Command1) a un formulario y escribe el siguiente cdigo: Private Sub Command1_Click() Const e = 2.71828 Command1.Caption = e End Sub Se escribir en el botn de comando la constante e.

Programacin con VB 6.0

Tsu . Enzo Costantini

6. MATRICES:
Las matrices permiten crear variables con un mismo nombre diferencindose slo por un nmero de ndice. Los elementos de las matrices estn entre un ndice inicial y un ndice final, los ndices de los elementos de la matriz deben estar dentro de estos ndices. Las matrices almacenan todos sus elementos en un mismo tipo de dato, este tipo de dato fue declarado al mismo tiempo que fue declarado la matriz. Las matrices pueden ser de tamao fijo o dinmicas (que pueden cambiar de tamao). Para declarar una matriz de tamao fijo se utiliza la siguiente secuencia: Dim/Public/Static/Private NombreMatriz(NmerodeElementos) As Tipo Los ndices de las matrices comienzan a enumerarse desde cero por lo tanto el nmero al lado de la matriz sumado en uno es el nmero de elementos que contiene la matriz. Por lo tanto: Dim MiMatriz(10) As String Crea una matriz de nombre MiMatriz de 11 elementos de tipo cadena de texto. Con nmeros de ndice entre 0 y 10. Si se desea que slo contenga 10 elementos tendr que declararse: Dim MiMatriz(1 To 10) As String En este caso los ndices van desde 1 hasta 10. El nmero de elementos no puede exceder de la capacidad de un dato Long (2.147.483.647 elementos) Tambin puede declarar matrices con nmeros de ndices entre dos valores diferentes por ejemplo: Public k(10 To 19) As Integer De esta manera puede variar los nmeros de ndice entre dos valores Tipo Long diferentes. Para almacenar un valor en un elemento de la matriz de procede de la siguiente manera: Matriz(ndice) = Valor De la misma manera que se asigna un valor a una variable, pero esta vez contiene dentro del parntesis el nmero de ndice correspondiente. De manera que: Dim i As Integer Dim K(9) As Integer For i = 0 To 9 K(i)=i Next Almacena el nmero de ndice en su variable correspondiente. Tambin se pueden crear matrices multidimensionales si separa con una coma los valores de ndices de la siguiente manera: Static OtraMatriz(4, 4) As Double Esta sentencia crear una matriz de 25 elementos, de 0 a 4 (cinco elementos) en el primer ndice e igual nmero de elementos para el segundo ndice.

Programacin con VB 6.0

Tsu . Enzo Costantini

Al igual que las matrices unidimensionales puede cambiar la numeracin de sus ndices como valores de tipo Long. Ejemplo: Dim MatrizDimensional(1 To 5, 10 To 13) As Single De esta manera se crear una matriz de dos dimensiones de 20 elementos. (De uno hasta cinco en el primer ndice y de diez hasta trece en el segundo ndice) Puede agregar ms dimensiones y crear matrices de tres dimensiones, cuatro o mas dimensiones. Se puede cambiar mediante una instruccin, que debe colocarse en la seccin de declaraciones del formulario, para que todas las matrices comiencen a enumerarse desde el nmero 1 o desde el nmero cero, esta es: Option Base 1 Para que se comience a enumerar desde uno o, Option Base 0 Para enumerarse desde el nmero cero.

Matrices Dinmicas:
Las matrices vistas anteriormente son estticas, ya que el nmero de elementos no puede variar, esto puede ocasionar que el nmero de elementos no sea suficiente para algunas acciones o por el contrario que est sobredimensionado. Para este caso se crearon la matrices dinmicas, estas se declaran de la misma forma que las matrices dinmicas pero sin nada en los parntesis, de la siguiente manera: Dim/Public/Static/Private NombreMatrizDinmica() As Tipo Luego, en tiempo de ejecucin, cuando ya se est seguro del nmero de elementos que necesite, se puede redimensionar, con la siguiente sentencia: Redim [Preserve] NombrematrizDinmica(NmerodeElementos) Cada vez que redimensione la matriz se borrarn todos los elementos que estaban almacenados en la matriz, esto es muy til si desea utilizar la matriz para almacenar valores nuevos, pero sino, esto se puede evitar si se coloca la palabra Preserve. Esta sentencia preservar los valores almacenados en la matriz hasta ese momento. Redim slo se puede usar una vez por funcin o por procedimiento. Aunque se puede redimensionar el nmero de elementos que tiene una matriz no se puede cambiar el nmero de dimensiones. Para ampliar la matriz en un elemento preservando los valores de los elementos que ella contiene se puede utilizar la palabra UBound de la siguiente manera: Redim Preserve NombreMatriz(UBound(NombreMatriz)+1) Slo se puede cambiar la ltima dimensin de una matriz, si se intenta cambiar otra dimensin se producir un error en tiempo de ejecucin.

Programacin con VB 6.0

Tsu . Enzo Costantini

7. OPERADORES LGICOS, OPERADORES MATEMTICOS Y FUNCIONES MATEMTICAS:


Los operadores lgicos son smbolos (algunos matemticos) que se utilizan para crear condiciones y bucles. El computador toma decisiones (mediante las sentencias de control que se vern mas adelante) segn estas condiciones devuelvan verdadero o falso. Los operadores lgicos son: Operador Igual Diferente Igual (en texto) Menor que Mayor que Menor o igual que Mayor o igual que Negacin As por ejemplo: Condicin 30 = 12 12 <> 30 30 < 12 Not 12 > 30 Devuelve: Falso Verdadero Falso Verdadero Smbolo = <> Like < > <= >= Not

Tambin existen conexiones de condiciones y devuelven verdadero o falso segn la combinacin de dos condiciones, estas son:

Or: Devuelve Verdadero si alguna de las condiciones es verdadera. And: Devuelve Verdadero si las condiciones comparadas son verdaderas. XOr: Devuelve Verdadero si una devuelve Verdadero y la otra Falso. Eqv: Devuelve verdadero si las condiciones comparadas son equivalentes, es decir, si son ambas verdaderas o falsas. Imp: Devuelve verdadero en todos los casos, excepto cuando la primera sea verdadera y la segunda falsa.

As por ejemplo: Si X = 3 y V=2 X = X = X <= X = X = X = Condicin 2 Or V = 2 3 And V < 1 3 Xor V = 1 2 Eqv V > 3 3 Eqv V = 4 3 Imp V = 2 Devuelve: Verdadero Falso Verdadero Verdadero Falso Falso

Se pueden colocar mas de una combinacin y as anidar condiciones que tambin devolvern verdadero o falso: Condicin Devuelve:

Programacin con VB 6.0

Tsu . Enzo Costantini

X = 2 Or X = 3 And V = 1 Or V = 2 Verdadero X = 2 And V = 3 Or X = 1 And V = 2 Falso Operadores Matemticos y Funciones Matemticas: VB 6.0 contiene un conjunto de operadores matemticos que se utilizan para hacer clculos numricos, algunos de ellos son: Operadores Matemticos + * / \ ^ Mod Funciones Matemticas Abs(Numero) Atn(Numero) Cos(Numero) Exp(Numero) Fix(Numero) Log(Numero) Log(Numero)/Log(Base#) Ramdomize([Numero]) Rnd([Numero]) Round(Numero, Decimales) Sgn(Numero) Sin(Numero) Sqr(Numero) Tan(Numero) Operacin Suma de nmeros: Ejemplo (2 + 4) devuelve 6. Sustraccin de nmeros o nmero negativo. Ejemplo: (30 15) devuelve 15. Multiplicacin de nmeros. Ejemplo (2 * 5) devuelve 10. Divisin de nmeros. Ejemplo (10 / 3) devuelve 3.3333. Divisin entera de nmeros: Ejemplo 10\3 devuelve 3. Potencia de nmeros. Ejemplo 11^2 devuelve 121. Residuo de una divisin. Ejemplo (100 Mod 9) devuelve 1. Operacin Valor absoluto de un nmero. Ejemplo Abs(-45) devuelve 45. Arcotangente de un nmero. Ejemplo Atn(1) devuelve 0.7854. Coseno de un nmero radian: Ejemplo Cos(3.14159265) devuelve 1. E elevada a un nmero. Ejemplo Exp(1) devuelve 2.71828. Parte entera de un nmero. Ejemplo Fix(4.5) devuelve 4. Logaritmo natural de un nmero: Ejemplo Log(2.71828) devuelve 1. Logaritmo con base distinta de e. Ejemplo Log(100)/Log(10#) devuelve 2, o Log(8)/log(2#) devuelve 3. Inicia generador de nmeros aleatorios. Nmero aleatorio igual o menor a Numero. Numero redondeado a decimales. Ejemplo Round(2.54512, 2) devuelve 2.55. -1, 0, 1 segn nmero sea menor, igual o mayor que cero. Ejemplo Sgn(-45) devuelve 1. Seno de un nmero radian. Ejemplo Sin(1.570796) devuelve 1. Raz cuadrada de un nmero. Ejemplo Sqr(16) devuelve 4. Tangente de un nmero radian. Ejemplo: Tan(0) devuelve cero.

Programacin con VB 6.0

Tsu . Enzo Costantini

8. PROCEDIMIENTOS Y FUNCIONES:
Procedimientos:
Los procedimientos contienen conjunto de acciones o secuencias de cdigo que ejecuta la aplicacin. Estos procedimientos pueden ser llamados desde cualquier lugar de un formulario o sin son pblicos desde cualquier lugar de la aplicacin. Los procedimientos pueden simplificar la codificacin cuando existe una secuencia de cdigo que se debe repetir. Con el nombre del procedimiento puede llamar a este conjunto de secuencias. Supongamos que se tienen dos procedimientos: el principal de nombre Procedimiento1 y el secundario de nombre Procedimiento2. Si en algn lugar de Procedimiento1 se llama a Procedimiento2, desde este lugar, el programa comienza a ejecutar el conjunto de secuencias de Procedimiento2, luego terminado este procedimiento el programa continua ejecutando las secuencias de Procedimiento1 hasta completar la secuencia. Las variables privadas de un procedimiento no se conservan cuando se ejecute el otro procedimiento, si las variables son pblicas (declaradas en la seccin superior del cdigo del formulario bajo la sentencia Public) si conservan su valor. Programa #14. Variables de procedimientos: Se va a crear un programa que calcula el rea de un crculo dado su radio. Para ello se debe agregar, de arriba hacia abajo, una etiqueta con Caption: Radio= al lado de un cuadro de texto (Text1), debajo de estos controles agregue un botn de comando (Command1), luego debajo de ste dos etiquetas Label2 y Label3. Agregue el siguiente cdigo (puede copiar y pegar): Option Explicit Public Area As Double Private Sub Form_Load() Me.Caption = "Area de un Crculo" Text1 = "" Command1.Caption = "Calcular Area" Label2 = "" Label3 = "" Label2.BorderStyle = 1 Label3.BorderStyle = 1 End Sub Private Sub Command1_Click() Dim Radio As Double, Area As Double If Text1 <> "" And IsNumeric(Text1) Then Radio = CDbl(Text1) Area = 3.16159265 * Radio ^ 2 Label2 = "Area= " & Area Display Else MsgBox "Introduzca un valor" Text1.SetFocus End If End Sub Private Sub Display() Label3 = "Area= " & Area End Sub Ejecute el programa introduzca un valor u otro contenido en el cuadro de texto y verifique la respuesta. El procedimiento Display (al final) desplega resultado cero ya que hace referencia a la

Programacin con VB 6.0

Tsu . Enzo Costantini

variable Area pblica (que no tiene ningn valor asignado) y no la variable Area privada que se encuentra en el procedimiento de evento Command1_click. Para obtener detalles sobre la codificacin de este programa se puede dirigir a la Seccin Detallada de Programas al final de este trabajo de investigacin. Para ver otro ejemplo de llamadas a procedimientos puede ver el Programa #5. Dnde estudiar?, donde se presentan dos variables pblicas que conservan su valor fuera de los procedimientos. Tambin puede dirigirse a sus Detalles en la Seccin Detallada de Programas. En VB 6.0 existen tres tipos de procedimientos: Sub Function Property Los primeros slo ejecutan una serie de sentencias y comandos y no devuelven un valor. Los segundos contienen una funcin dentro de s que devuelven un valor al llamarlos. Los terceros pueden devolver o asignar valores. Para crear un nuevo procedimiento, se puede ir en la Barra de Mens de VB a Herramientas, luego hacer clic en Agregar procedimiento tal como lo muestra la figura:

Se desplegar la siguiente pantalla:

En esta se deber colocar el nombre del procedimiento, el Tipo (Sub = Procedimiento; Function = Funcin ; Property = Propiedad o un Evento) y el alcance en caso del procedimiento (Pblico o Privado) si es una funcin despus deber colocar el tipo de dato que devolver la funcin, si no lo coloca este tomar Variant por defecto. Como se han visto ejemplos de procedimientos Sub, se procede a ejemplificar el procedimiento Function.

Programacin con VB 6.0

Tsu . Enzo Costantini

Programa#15. Procedimiento Function: Este programa tiene como finalidad mostrar la aplicacin de los procedimientos Function. Para ello, agregue dos cuadros de texto (Text1 y Text2) al formulario, agregue adems un botn de comando (Command1) y una etiqueta (Label1), Despus agregue el siguiente cdigo (puede copiar y pegar): Option Explicit Private Sub Form_Load() Text1 = "" Text2 = "" Command1.Caption = "Calcular Residuo" Label1 = "" End Sub Private Sub Command1_Click() If IsNumeric(Text1) And IsNumeric(Text2) Then Label1 = Residuo(Text1, Text2) Else MsgBox "Introduzca valores numricos" Text1.SetFocus End If End Sub Private Function Residuo(Dividendo As Integer, Divisor As Integer) _ As Integer Residuo = Dividendo Mod Divisor End Function Se puede notar que la funcin disminuy considerablemente las instrucciones que deban colocarse en la secuencia de Command1. De hecho, no fue necesario declarar variables. Los detalles de la programacin aparecen en la Seccin Detallada de Programas.

Programacin con VB 6.0

Tsu . Enzo Costantini

9. SENTENCIAS DE CONTROL
Las sentencias de control se utilizan en VB 6.0 para que el programa lleve un curso lgico y tome decisiones en base a condiciones que se puedan presentar mientras ste se ejecuta. Como ya se ha visto anteriormente, las condiciones pueden devolver dos posibilidades en una decisin, puede devolver verdadero (True) o Falso (False); as puede llevar el programa a ejecutar una serie de instrucciones de acuerdo a una respuesta, para ello se utilizan las estructuras de decisin. LAS ESTRUCTURAS DE DECISIN SON: If ... Then ... Select Case ...

Estructura de decisin If ... Then ...


Este tipo de estructura (que ya ha sido utilizado en varios programas anteriores) ejecuta una serie de instrucciones, en base a una respuesta a una condicin. Tiene la siguiente forma: If condicin Then Instrucciones si condicin es verdadera [Else] Instrucciones si condicin es falsa End If Donde la condicin rene las especificaciones descritas en la seccin anterior que devuelve verdadero o falso, entre la palabra Then y Else (si se coloca Else) se escriben una serie de instrucciones que se ejecutan si la condicin devuelve verdadero. Entre Else y End If, se colocan las instrucciones en caso de que la instruccin devuelve Falso. La palabra Else no es obligatoria, si no se coloca en caso de que la condicin sea falsa no hay ejecucin de instrucciones. Quedando de la siguiente forma: If condicin Then Instrucciones si condicin es verdadera End If Tambin es posible que se encuentre el caso de que haya mas de una condicin que se desea comparar, as por ejemplo, si se cumple una condicin se ejecutan una serie de instrucciones, en caso de que sea falso talvez se desee comparar otra condicin y verificar si es verdadera, as sucesivamente hasta encontrar la condicin que se cumple, para esto se utiliza la siguiente secuencia: If condicin1 Then Instrucciones si condicin1 es verdadera [ElseIf condicin2 Then] [Instrucciones si condicin2 es verdadera] [ElseIf condicin3 Then] [Instrucciones si condicin3 es verdadera] ... [Else] [Instrucciones si todas las condiciones son falsas] End If Puede agregar cualquier cantidad de ElseIf tantas veces como quiera hasta lograr el objetivo de alcanzar la secuencia que se quiere ejecutar segn la condicin. Cuando ya una condicin se cumple se ejecutan las instrucciones que estn dentro de esta condicin y al terminar la secuencia se va hasta el final

Programacin con VB 6.0

Tsu . Enzo Costantini

Esta secuencia es muy valiosa si las condiciones no incluyen la misma variable o incluyen ms de una variable. Ya que si desea comparar una variable es ms fcil utilizar la secuencia Select Case. Programa #16. Instruccin If: El siguiente programa tiene la finalidad de utilizar la instruccin If en todos la mayora de los casos que se pueda presentar durante la codificacin de un programa. Agregue a un formulario un cuadro de texto (Text1) y un botn de comando (Command1) y escriba el siguiente cdigo, puede copiar y pegar: Private Sub Form_Load() Text1 = "" Command1.Caption = "Comparar" End Sub Private Sub Command1_Click() Dim Valor As Double, Respuesta As String If Text1 = "" Then Valor = 0 Else Valor = CDbl(Text1) End If If Valor < 0 Then Respuesta = "El Valor es negativo" ElseIf Valor = 0 Then Respuesta = "El Valor es cero" Else Respuesta = "El Valor es positivo" End If Text1 = Respuesta End Sub Ejecute la aplicacin e introduzca un valor numrico en el cuadro de texto. Luego haga clic en el botn de comando y espere la respuesta. Si tiene alguna duda sobre la codificacin de este programa puede repasar la explicacin de la estructura de decisin If, y verificar los detalles sobre la funcin de dicha estructura.

Estructura de decisin Select Case...


La estructura Select Case se utiliza si desea comparar una sola variable a un conjunto de condiciones y ejecutar la secuencia segn el caso que se cumpla. El caso del programa anterior pudo utilizar esta estructura. Select Case tiene la siguiente forma: Select Case Variable Case Valor1: instrucciones si Variable es igual a Valor1 Case Valor2, Valor3: instrucciones si Variable es Valor2 o Valor3. Case Is < Valor4: instrucciones si Variable es menor a valor4. Case Valor5 To Valor6: instrucciones si Variable est entre Valor5 y Valor6 End Select Esta explicacin se encuentran las cuatro combinaciones posibles de casos que se pueden presentar. En la seccin que muestra Case Is, se puede colocar menor o igual (<=) , menor (<), mayor (>) o mayor o igual (>=) y hacer la comparacin de la variable respecto a un valor. El programa #16 podra colocarse entonces como cdigo:

Programacin con VB 6.0

Tsu . Enzo Costantini

Private Sub Form_Load() Text1 = "" Command1.Caption = "Comparar" End Sub Private Sub Command1_Click() Dim Valor As Double, Respuesta As String If Text1 = "" Then Valor = 0 Else Valor = CDbl(Text1) End If Select Case Valor Case Is<0: Respuesta="El valor es negativo" Case 0: Respuesta="El valor es cero" Case Else: "El valor es positivo" End Select Text1=Respuesta End Sub Reduciendo el nmero de lneas y las complicaciones de la codificacin. Existe otro tipo de estructuras llamadas estructuras de bucles, ejecutan las instrucciones repetidamente, mientras o hasta que se cumpla una condicin. LAS ESTRUCTURAS DE BUCLES SON: Do ... Loop For ... Next For Each ... Next

El bucle Do ... Loop:


Este bucle utiliza dos formas bsicas (aunque se pueden colocar de distinta manera) para ejecutar un conjunto de instrucciones mientras o hasta se cumpla una condicin. La siguiente instruccin: Do While condicion Sentencias [Exit Do] Loop Se utiliza para realizar el conjunto de instrucciones mientras se cumpla una condicin, as, si la condicin devuelve verdadero (True) o distinto de cero, se ejecutan el conjunto de instrucciones, luego se regresa al inicio y se vuelve a verificar la condicin, si es verdadera de nuevo o distinta de cero, se vuelve a ejecutar la secuencia hasta que la condicin devuelva Falso o cero. Este bucle se puede escribir mas rpidamente de la siguiente manera: While condidion Sentencias Wend Este caso no tiene la opcin de salir del bucle si se deseara. Si la condicin devuelve Falso o cero en la primera evaluacin no se ejecutar ninguna vez, a menos que se coloque de la siguiente forma: Do Sentencias

Programacin con VB 6.0


[Exit Do] Loop While condicion

Tsu . Enzo Costantini

De esta forma se ejecuta primero el conjunto de instrucciones y luego se evala la condicin. Se repetir la ejecucin de acuerdo a la respuesta obtenida en la condicin de acuerdo a lo sealado anteriormente. Tambin se puede cambiar la estructura Do ... Loop de tal manera que se ejecute el conjunto de instrucciones cuando la condicin devuelva Falso o cero, para ello se debe cambiar la palabra While de la instruccin por la palabra Until. De tal manera quedara: Do Until condicion Sentencias [Exit Do] Loop O bien: Do Sentencias [Exit Do] Loop Until condicion

Programa #17. Suma hasta cien: El siguiente programa desplega (cuando se hace clic en el botn de comando) una caja de entrada para obtener un valor que se sumar. Cuando la suma tome el valor 100 o mayor el proceso se detendr: Agregue un botn de comando (Command1) y una etiqueta (Label1) a un formulario, escriba el siguiente cdigo, puede copiar y pegar: Private Sub Command1_Click() Static Suma As Double Do While Suma < 100 Num = InputBox("Escriba un nmero", "Mensaje", "0") Suma = Suma + Num Label1 = Suma Loop End Sub Ejecute la aplicacin e interacte colocando valores hasta llegar hasta 100, verifique que se detiene el proceso. Este programa no se coloc en la Seccin detallada de Programas ya que es de fcil comprensin y muchos de los procesos utilizados ya han sido ampliamente explicados.

El bucle For ... Next:


El bucle For ... Next se utiliza para ejecutar un nmero determinado de veces el conjunto de instrucciones que contiene. Tiene la siguiente forma: For Variable = ValorInicial To ValorFinal [Step ValorIncremento] Sentencias [Exit For] Next [Variable] Donde variable es una variable que va a cambiar desde un valor inicial a un valor final, con un incremento dado por Step (opcional). Exit For se puede utilizar en alguna parte del interior de las sentencias si se desea dar fin al bucle. El valor incremento puede ser positivo, para ir incrementando la variable o negativo para ir disminuyendo, lgicamente si es positivo el valor inicial debe ser menor al valor final o si es negativo el valor inicial debe ser mayor al valor final. Si no se coloca el incremento (Step) este asumir uno a menos que la variable cambie dentro de las sentencias.

Programacin con VB 6.0

Tsu . Enzo Costantini

Programa #18. Utilizacin de For: En un formulario agregue un botn de comando (Command1) y un control cuadro de imagen (Picture1) de 2700 o ms de Ancho (Width) y 1000 de alto (Height). Escriba el siguiente cdigo: Private Sub Command1_Click() Dim X As Long For X = 250 To Picture1.Width Step 1000 Picture1.CurrentX = X Picture1.CurrentY = Picture1.Height - 300 Picture1.Print "Aqui" Next End Sub Ejecute el programa, presione clic sobre el botn de comando, se escribir en el cuadro de imagen la palabra Aqu varias veces segn el ancho del cuadro de imagen. Tambin se puede eliminar la seccin (Step 1000) y colocar en las sentencias despus de la lnea Picture1.Print: X = X + 1000 Es la forma de incrementar la variable directamente en las sentencias de instrucciones.

Bucle For Each ... Next:


Es una modalidad del bucle For ... Next, pero ste permite recorrer una matriz o una coleccin de datos (Ver Objeto Collection) cuando no se sabe el nmero de elementos de contienen. Tiene la siguiente forma: For Each Elemento In Collection/Matriz Sentencias [Exit For] Next Donde Elemento es una variable de tipo Variant si es una Matriz o un Objeto si es una coleccin de objetos. Tambin te la opcin Exit For para salir del bucle en el momento que se desea. OTRAS SENTENCIAS:

Sentencia Goto:
La sentencia Goto permite dirigir la secuencia de instrucciones a otro lugar mas inferior en vez de seguir la secuencia de lneas como generalmente se ejecuta un programa. Cuando esta sentencia se coloca, se debe colocar a su lado el nombre de un subprocedimiento, este nombre debe colocarse ms abajo (en el lugar donde se desea que se dirija el programa) seguido de dos puntos y luego las sentencias o instrucciones que se desea que se ejecute, por ejemplo: Es muy importante resaltar que las lneas de secuencia de las instrucciones por realizarse de arriba hacia abajo no excluye al subprocedimiento, por lo tanto para finalizar la ejecucin de instrucciones antes del subprocedimiento debe agregarse la palabra Exit Sub/Function que corresponda para no ejecutar las lneas contenidas en el procedimiento. Esta sentencia tambin se utilizan en el caso que se produzca un error en la ejecucin de un procedimiento, en este caso se escribira en la primera lnea del procedimiento: On Error Goto NombreSubprocedimiento Y debajo en la parte inferior del procedimiento colocar las lneas correspondientes a las acciones que se deben tomar en caso de producirse un error. Esto se ve ejemplificado en el siguiente programa: Programa #19. Sentencia Goto: Este programa tiene por objetivo verificar si un nmero introducido es divisible entre los valores 2, 3 y 4 simultneamente.

Programacin con VB 6.0

Tsu . Enzo Costantini

Para ello, agregue un botn de comando (Command1), adems agregue dos cuadros de texto (Text1) y (Text2), el segundo identificado con una etiqueta que muestre Divisible entre 2, 3 y 4?, luego agregue el siguiente cdigo: Private Sub Command1_Click() On Error GoTo ErrorValor Text2 = DivisibleEntre2_3_4(Text1) Exit Sub ErrorValor: If Err.Number = 13 Then MsgBox "Error en el valor introducido", , "Introduzca un valor" Text1 = "" Text1.SetFocus End If End Sub Private Function DivisibleEntre2_3_4(Numero As Integer) As Boolean If Numero Mod 2 <> 0 Then GoTo NoEsDivisible End If If Numero Mod 3 <> 0 Then GoTo NoEsDivisible End If If Numero Mod 4 <> 0 Then GoTo NoEsDivisible End If DivisibleEntre2_3_4 = True Exit Function NoEsDivisible: DivisibleEntre2_3_4 = False End Function Ejecute la aplicacin, introduzca un valor entero en el primer cuadro de texto y presione clic sobre el botn de comando, Text2 mostrar Verdadero si el valor es divisible entre 2, 3 y 4 o falso si no lo es. Pruebe con distintos nmeros. Los detalles sobre la codificacin de este programa estn en la Seccin Detallada de programas.

Sentencia With:
A esta sentencia tambin se le llama Bloque With, ya que agrupa un conjunto de instrucciones con respecto a un objeto, control o estructura. La sentencia With se utiliza cuando se desea ejecutar un conjunto de instrucciones con referencia a un objeto, control o estructura para no hacer referencia en cada paso a esta sino una sola vez. Por ejemplo la secuencia: With Label1 .BorderStyle=1 .Caption="Nombre:" .Enabled=True .Width=1815 End With Cambia las propiedades estilo de borde, caption, ensamblado y ancho de la etiqueta uno, con necesidad de escribir Label1 slo una vez.

10. CUADROS DE DILOGO:

Programacin con VB 6.0

Tsu . Enzo Costantini

Los cuadros de dilogo se utilizan para presentar un mensaje al usuario con la finalidad que ste tome decisiones y el programa reaccione a ellas. Por ejemplo si el usuario introdujo realiz una accin invlida, usted puede mostrar mediante un mensaje informando que la accin que se ha realizado fue invlida y por lo tanto debe corregir para continuar. Tambin se pueden presentar cuadros de dilogo para mostrar informacin. Hay otros cuadros de dilogo como el cuadro de dilogo de Abrir, Guardar como, Imprimir, que esperan acciones del usuario para continuar., Los cuadros de dilogos pueden ser modales o no modales. Modales significa que se debe cerrar el cuadro de dilogo (puede ser hacer clic sobre el botn Aceptar, Cancelar, Cerrar u otro) para continuar utilizando la aplicacin. Si no se cierra no se podr continuar utilizando la aplicacin. Los cuadros de dilogo Guardar como, Imprimir, Abrir y el que se han utilizado hasta ahora en la programacin: MsgBox, son de tipo modal, esperan la reaccin del usuario, mientras que el cuadro de dilogo Buscar es de tipo no modal, es decir, puede seguir cambiando o utilizando la aplicacin mientras el cuadro de dilogo no modal est abierto o en funcionamiento. El siguiente programa convierte un formulario en tipo modal: Programa #20. Formulario Modal: Se va a crear un programa de dos formularios (Form1 y Form2). Para ello en el primer formulario cambie su propiedad WindowState a 2 Maximized, despus agregue un botn de comando (Command1). Luego, se debe agregar el otro formulario, para ello busque en la Barra de Herramientas Proyecto, busque Agregar Formulario y despus haga clic sobre Formulario, se crear un formulario con nombre Form2. En Form2, agregue un botn de comando (Command1) y agregue el siguiente cdigo: Private Sub Command1_Click() Unload Me End Sub Haga clic sobre Form1 en el Explorador de Proyectos, luego clic sobre Ver objeto, en el botn de comando presione doble clic para empezar a escribir cdigo, escriba de tal manera que quede: Private Sub Command1_Clic() Form2.Show vbModal End Sub Ejecute el programa y verifique que cuando hace clic sobre el botn de comando Command1 de Form1 se desplega el Form2 de tipo modal, si elimina la sentencia vbModal, entonces Form2 no ser de tipo modal. El botn de comando de Form2 hace que se cierre el formulario mediante la sentencia Unload Me. Por ser de fcil comprensin este programa no se encuentra detallado en la Seccin Detallada de Programas.

Cuadros de Mensajes (MsgBox):


Los cuadros de mensaje MsgBox se utilizan para mostrar una informacin al usuario, son utilizados muy a menudo en el tratamiento de errores para presentar al usuario una falla que se haya cometido, un error causado. Pero tambin se utiliza para informar al usuario sobre un acontecimiento que se ha generado que no sea un error sino que por ejemplo se ha llegado al final de un procedimiento. Los cuadros de mensaje tienen la siguiente forma MsgBox Prompt, [Estilo], [Ttulo] Donde Prompt es una variable o una cadena de texto que representar el mensaje escrito que desea que el usuario lea, Estilo es opcional y son un conjunto de caractersticas que puede tener el cuadro de mensaje ya sea que tenga botn de Aceptar, Cancelar, Ayuda o que tenga un icono a

Programacin con VB 6.0

Tsu . Enzo Costantini

su lado como el signo de exclamacin o un icono crtico, si se omite el estilo predeterminado no se mostrarn iconos y ser vbOkOnly que significa que slo se presentar el botn Aceptar. Los estilos de cuadros de mensaje se pueden observar si coloca la palabra vbMsgBoxStyle en el Examinador de objetos. El titulo tambin es una variable o una cadena de texto que aparecer en el ttulo del cuadro de mensaje, por ejemplo el siguiente cdigo presenta el siguiente mensaje: Programa #21. Mensaje: En este programa se utiliza un cuadro de mensaje para Advertir al usuario si quiere salir de la aplicacin: Agregue a un formulario un botn de comando (Command1) y escriba el siguiente cdigo: Private Sub Command1_Click() Dim Respuesta Respuesta = MsgBox("Desea salir de la aplicacin?", vbCritical _ + vbYesNo, "Cerrar") If Respuesta = vbYes Then Unload Me End If End Sub Ejecute la aplicacin y haga clic sobre el botn de comando, se mostrar un mensaje como el siguiente:

Presenta dos opciones Si o No, si presiona clic sobre Si, se sale del programa y si presiona el otro botn cierra el mensaje y contina la aplicacin. Por ser de muy fcil comprensin este programa no se incluye en la Seccin Detallada de Programas.

Cajas de Entrada (InputBox):


Las cajas de entrada InputBox, se utilizan tambin para dar mensajes, pero en este caso se introduce un dato que se guardar en una variable. Estos cuadros de dilogo tienen la siguiente forma: Variable = InputBox (Prompt, [Titulo], [PorDefecto]) Donde variable es el nombre de una variable a la que se le asignar el valor o cadena introducida en la caja de entrada, Prompt es el valor o cadena que presentar el mensaje al usuario, Ttulo es opcional y presenta el ttulo de la caja de entrada, y PorDefecto tambin es opcional y es el valor o cadena que aparecer por defecto en la caja de entrada, si se omite no aparecer nada por defecto. En este caso el valor o cadena introducido en el InputBox se asignar a Variable y luego puede trabajar con este valor.

Programacin con VB 6.0

Tsu . Enzo Costantini

Programa #22. InputBox: Agregue a un formulario un botn de comando (Command1), tambin agregue una etiqueta, escriba el siguiente cdigo (puede copiar y pegar): Option Explicit Private Sub Command1_Click() Dim Respuesta As String, Suma As Integer Respuesta = InputBox("Introduzca un nmero", "Suma", 10) Suma = Respuesta + 25 Label1 = Suma End Sub En este caso cuando se presiona un clic sobre el botn de comando se desplega una caja de entrada como la siguiente:

El valor que introduzca en la caja de entrada el programa sumar 25, sino agrega un valor y coloca una cadena de texto el programa generar un error. Este programa no se detalla en la Seccin Detallada de Programas ya que es de fcil comprensin.

Programacin con VB 6.0

Tsu . Enzo Costantini

11. LOS MENS:


La Barras de Men que aparecen en la mayora de las aplicaciones son herramientas que nos permiten acceder a los comandos principales de la aplicacin, estas barras de herramientas contienen los nombres de los comandos esquematizados y organizados de tal manera que se puede acceder a ellos de una manera muy rpida. VB 6.0, contiene un Editor de Mens que permite crear este tipo de barras y tambin puede crear mens contextuales que son los que aparecen, por ejemplo, al hacer clic con el botn secundario del mouse sobre un elemento. El Editor de Mens aparece de la siguiente forma:

El Editor de Mens se compone del Caption, que es la palabra que se va a mostrar al usuario, debajo de ella aparece la propiedad Name, que es el nombre con el cual se va a acceder o a llamar desde el cdigo del programa. Otras propiedades que aparecen son: Index (Matrices de mens) Shorcut (Mtodo abreviado) Checked (Smbolo de chequeo) Enabled (Habilitar desabilitar) Visible (Mostrar u ocultar) WindowList NegotiatePosition El Editor de Mens posee una lista inferior que esquematiza todos los elementos creados en l. Las flechas que se encuentran inmediatamente arriba de la lista tienen distintas funciones cada una, las flechas hacia la izquierda y la derecha sirven para disminuir y aumentar las sangras de los mens, respectivamente. Las flechas hacia arriba y hacia abajo sirve para mover un men desde una posicin inicial a una final (cambiar de posicin). Las sangras de los mens se utilizan para crear submens, as, aquellos que aparecen sin sangra son los mens principales que se muestran al usuario directamente en la Barra de Herramientas, los submens primarios (una sangra) son aquellos que se muestran directamente al hacer clic sobre el men principal, si desea crear otros submens se deber colocar doble, triple u otras sangras al submen, dependiendo de cuantos submens desea crear. La mxima cantidad de submens que puede crear es cinco niveles. Las sangras se identifican por tener cuatro puntos(....). La propiedad Index se utiliza para crear matrices de controles de mens, esto se hace con el objetivo de simplificar el cdigo cuando los elementos de las matrices deben de utilizar el mismo

Programacin con VB 6.0

Tsu . Enzo Costantini

cdigo slo variando por su nmero de ndice. Tambin se pueden utilizar para crear un men en tiempo de ejecucin, aumentando la propiedad Index en uno. Programa #23. Matriz de Mens: El siguiente programa utiliza la propiedad index de los mens para crear una matriz de controles de mens. Para ello, vaya al Editor de Mens y siga los siguientes pasos: 1. Seleccione el formulario al que va a Editar el Men con un clic. 2. En la Barra de Men de VB 6.0, dirjase a Herramientas Editor de Mens, o directamente presione la combinacin de teclas Ctrl+E. 3. Escriba en el primer Caption la palabra &Archivo, en la propiedad Name escriba mnuArchivo, presione Enter para pasar al siguiente men o haga clic sobre la el botn Siguiente. 4. Presione la flecha hacia la derecha para crear una sangra. 5. Escriba en el Caption nuevo la palabra &Abrir, coloque como Name mnuSubArchivo, establezca la propiedad Index a cero. Coloque como Shortcut (Ctrl+O). Pase al siguiente submen presionando la tecla Enter o haciendo clic en siguiente. 6. Escriba en el Caption actual la palabra &Guardar como..., el la propiedad Name escriba mnuSubArchivo y en la propiedad Index escriba uno (1). Establezca la propiedad Shortcut (Ctrl+G). Pase al siguiente submen. 7. Escriba en el nuevo Caption la palabra &Imprimir, propiedad Name mnuSubArchivo y la propiedad Index sea igual a dos (2). Cambie la propiedad Shorcut a (Ctrl+P). Haga clic en Aceptar 8. Dirjase en la Barra de Men de Visual Basic dirjase a Proyecto Componentes, o directamente presione la combinacin de teclas Ctrl+T 9. De la lista de elementos que se muestran seleccione la casilla de verificacin de Microsoft Common Dialog Control 6.0. Haga clic en aplicar y luego en aceptar. 10. Agregue este control sobre el formulario de la misma manera que se agrega un control no se preocupe por el tamao, este al igual que el control Timer tiene un tamao predeterminado y no es visible en tiempo de ejecucin. 11. Ahora dirjase a la Ventana Ver Cdigo y escriba las siguientes instrucciones: Private Sub mnuSubArchivo_Click(Index As Integer) Select Case Index Case 0: CommonDialog1.ShowOpen Case 1: CommonDialog1.ShowSave Case 2: CommonDialog1.ShowPrinter End Select End Sub Ejecute la aplicacin e interacta con el programa, dirjase a cualquier submen de Archivo y compruebe como se muestra cada Cuadro de dilogo de acuerdo con su nombre. Ejemplo Abrir desplega el cuadro de dilogo Abrir, Guardar como, desplega el cuadro de dilogo guardar e igualmente con imprimir. No borre todava el programa ya que se seguir utilizando para las explicaciones de las otras propiedades. Este programa no se detalla en la Seccin Detallada de Programas ya que es de fcil comprensin. La Propiedad Shortcut se utiliza si quiere agregar un acceso directo, por ejemplo si elige la combinacin Ctrl+O para un submen (que es el caso del submen Abrir), si se encuentra en cualquier lugar de la aplicacin al presionar esta combinacin de teclas se llama a las instrucciones que se encuentran dentro del evento clic del nombre de men, de manera que no tendr que dirigirse siempre a la Barra de Men sino que conociendo la combinacin de teclas se abrevia el tiempo de

Programacin con VB 6.0

Tsu . Enzo Costantini

ejecucin. Si se presiona Ctrl+O o Ctrl+G o Ctrl+P se llama al procedimiento de Abrir, Guardar, o imprimir respectivamente que son los nombres de los submens. Si antepone el smbolo & a la palabra caption de un men principal, al presionar la combinacin de teclas Alt+(Carcter subrayado), se genera el evento clic sobre el nombre del men, si antepone este mismo smbolo a un submen, luego que se hace clic sobre el men principal con presionar la tecla subrayada se genera el evento clic del submen. Para el ejemplo del Programa #19, si se encuentra en el formulario, puede presionar la combinacin de teclas Alt+A, se llama al Men Archivo de la Barra de Men, luego si se presiona la tecla A, G o I, se llamarn a los eventos clic de Abrir, Guardar o Imprimir, respectivamente. La Propiedad Checked que no fue utilizada en el programa pasado sirve para colocar un smbolo de chequeo al lado del caption del submen, tiene la siguiente forma:

De tal manera que se muestre que hay un elemento activo y uno inactivo, en el caso del ejemplo se supone que se pueden crear dos tipos de grficos (logartmico y semilogartmico) y segn se muestra actualmente se est utilizando el grfico de tipo logartmico. La propiedad Enabled se utiliza para habilitar o deshabilitar un men o submen, por ejemplo si un tipo de men no aplica para las opciones que se pueden crear durante una aplicacin se puede deshabilitar y de este modo no estara disponible. Por ejemplo en Word cuando no se ha copiado nada al portapapeles la seleccin Pegar est deshabilitada ya que no se puede pegar hasta ese momento ningn elemento. Cuando se copia una seleccin al portapapeles se habilita de nuevo el submen pegar para que esta opcin pueda ser utilizada.

La propiedad Visible Mens emergentes:


Los mens emergentes son muy utilizados en las aplicaciones de Windows. Para ello se utiliza la propiedad Visible de los mens y la instruccin PopupMenu. Los mens emergentes aparecen usualmente cuando se hace clic con el botn secundario sobre algn elemento de la aplicacin. VB 6.0 contiene estas herramientas que pueden desplegar un men flotante independiente de la barra de mens que presenta tambin opciones de ejecucin. Programa #24. Men Emergente: Este programa tiene la finalidad de presentar un men emergente cuando se hace clic con el botn secundario del mouse sobre un control cuadro de imagen (PictureBox). Para ello, seleccione un formulario y dirjase al Editor de Mens. Llene el editor con los siguientes datos y propiedades: Men Principal Caption: Dibujar Name: mnuDibujar Visible: Falso (desactive la casilla de verificacin) Caption: Dibujar Crculo Name: mnuCirculo Visible: Verdadero Caption: Dibujar Lnea Name: mnuLinea Visible: Verdadero

Primer Submen (con una sangra) Segundo Submen (con una sangra)

Programacin con VB 6.0

Tsu . Enzo Costantini

Luego vaya al formulario y agregue un PictureBox (de nombre Picture1), despus escriba el siguiente cdigo: Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, _ X As Single, Y As Single) If Button = 2 Then PopupMenu mnuDibujar End If End Sub Private Sub mnuCirculo_Click() Picture1.Circle (1000, 1000), 500, vbRed End Sub Private Sub mnuLinea_Click() Picture1.Line (1500, 1500)-(2000, 2000), vbBlue End Sub Ejecute la aplicacin, presione el botn secundario del mouse sobre el control Picture1 y verifique que se desplega un men emergente con las opciones Dibujar Circulo y Dibujar Lnea, si hace clic en alguno de ellos se llamarn a las instrucciones correspondientes. Este programa aparece en la Seccin Detallada de programas explicando algunas de sus instrucciones principales.

Programacin con VB 6.0

Tsu . Enzo Costantini

12.

COLORES EN VISUAL BASIC:

Los colores en VB 6.0 pueden ser trabajados o asignados de distintas formas: La principal es asignar un color de los valores predeterminados de VB, estos se pueden visualizar en el Examinador de Objetos mediante la palabra ColorConstants, estos son: vbBlack (Negro) vbBlue (Azul) vbCyan (Aguamarina) vbGreen (Verde) vbMagenta (Fucsia) vbRed (Rojo) vbWhite (Blanco) vbYellow (Amarillo)

Pero si slo se trabajara con estos colores se estara muy limitado, por ello el lenguaje cuenta con una manera de colores personalizados, cuenta con la instruccin RGB. Esta funcin combina tres colores principales R (Rojo) G (Verde) y B (Azul) por sus siglas en ingls (Red, Green Blue) para crear colores personalizados, el valor de cada componente principal puede variarse desde el cero hasta el 255 generando mas de 16 millones de posibilidades de colores. La instruccin RGB tiene la siguiente forma: Variable = RGB(Red, Green, Blue) Donde variable es el nombre de una variable que almacena un valor tipo Long (Numrico Entero de gran extensin) que devuelve la funcin RGB, red es el tinte del color rojo, green el tinte de color verde y Blue el tinte de color azul, como ya se ha dicho estos valores pueden estar entre 0 y 255. De esta manera la combinacin RGB( 0, 0, 0) devuelve el color negro mientras que la combinacin RGB (255, 255, 255) devuelve el color blanco. Programa #25. Colores mediante RGB: El siguiente programa combina tres barras de desplazamiento horizontal para generar cambios en los colores de la funcin RGB. Coloque tres barras de desplazamiento horizontal con las siguientes propiedades: Primera Barra Segunda Barra Tercera Barra Name: HScrollRed Min=0 Max=255 Name: HScrollGreen Min=0 Max=255 Name: HScrollBlue Min=0 Max=255

Coloque cuatro Figuras (Shape) de la siguiente manera: La primera de nombre ShpRed, arriba de la barra de desplazamiento HScrollRed. La segunda de nombre ShpGreen, arriba de la barra de desplazamiento HScrollGreen. La tercera de nombre ShpBlue, arriba de la barra de desplazamiento HscrollBlue. La cuarta de tamao un poco mas grande de nombre ShpGenerado, sola en la parte derecha del formulario.

Programacin con VB 6.0

Tsu . Enzo Costantini

Cambie todas las propiedades de FillStyle de estos rectngulos a 0 Slido (0 Solid) El formulario debe tener la siguiente apariencia:

Ahora, se va agregar el siguiente cdigo al formulario: Private Sub HScrollRed_Change() ShpRed.FillColor = RGB(HScrollRed.Value, 0, 0) ShpGenerado.FillColor = RGB(HScrollRed.Value, _ HScrollGreen.Value, HScrollBlue.Value) End Sub Private Sub HScrollGreen_Change() ShpGreen.FillColor = RGB(0, HScrollGreen.Value, 0) ShpGenerado.FillColor = RGB(HScrollRed.Value, _ HScrollGreen.Value, HScrollBlue.Value) End Sub Private Sub HScrollBlue_Change() ShpBlue.FillColor = RGB(0, 0, HScrollBlue.Value) ShpGenerado.FillColor = RGB(HScrollRed.Value, _ HScrollGreen.Value, HScrollBlue.Value) End Sub Ejecute el programa. Puede ver las variaciones de los colores mientras cambia las posiciones de las barras de desplazamiento, tanto individualmente como el color generado por la combinacin de los tres colores.

Programacin con VB 6.0

Tsu . Enzo Costantini

13. EL OBJETO COLLECTION:


Este objeto se utiliza para agrupar datos como si fuera una lista pero en este caso cada elemento queda grabado en la memoria como una variable tipo Variant, por lo que cada elemento tiene una longitud de 16 bytes, sea cual sea el contenido que ste tenga. Por almacenar este tipo de datos, puede grabar entonces cualquier tipo de dato que puede almacenar una variable Variant, como lo son todos los objetos, matrices estndar y los tipos de datos excluyendo las estructuras. Para crear una nueva coleccin se usa la siguiente expresin: Dim/Private/Public NombreColeccin As New Collection El objeto Collection tiene los siguientes mtodos y propiedades: Propiedad o Mtodo Mtodo Add Propiedad Count Mtodo item Mtodo Remove Funcin Agrega un elemento a la coleccin Devuelve el nmero de elementos de la coleccin Devuelve un elemento de la coleccin Elimina un elemento de la coleccin

Para almacenar, recuperar o eliminar elementos de una coleccin se puede hacer mediante los ndices y las claves. Si se utiliza el nmero de ndice se hace del mismo modo que una lista pero a diferencia que los elementos de las colecciones comienzan enumeradas por uno y no por cero como es el caso de las listas y los cuadros combinados. Para el caso de las claves, stos son datos tipo String (cadenas de texto) que se colocan como referencia para almacenar un elemento, de tal manera que si no conoce el nmero de ndice se recurre a la clave que debe ser diferente para cada elemento. Para agregar un elemento a la coleccin se utiliza la siguiente expresin. NombreColeccin.Add Elemento[, Clave, Before, After] Donde NombreColeccin es el nombre de la coleccin, Elemento es el dato que se quiere grabar en la coleccin ya sea un valor, objeto o cadena de texto. La clave es un dato tipo String que sirve como gua para encontrar el dato, y Before y After se utilizan para agregar el dato en una posicin determinada, por ejemplo: MiColeccion.Add "Pedro Fernndez", "Pedro", before:=2 Agrega a la coleccin MiColeccion el elemento Pedro Fernndez con clave Pedro en la posicin nmero dos. Para eliminar un elemento de la coleccin se utiliza el mtodo Remove de la siguiente forma: NombreColeccin.Remove ndice O bien NombreColeccin.Remove "Clave" De modo que para borrar el elemento Pedro Fernndez de la coleccin se usara: MiColeccin.Remove 1 En el caso que este elemento est en la primera posicin o ms directamente con su clave: MiColeccin.Remove "Pedro"

Programacin con VB 6.0

Tsu . Enzo Costantini

Para obtener un elemento de una coleccin se utiliza el mtodo item, que tal como Remove puede colocarse tanto su ndice como su clave. Tiene la siguiente forma: [Set] Variable = NombreColeccin.Item(indice) o tambin [Set] Variable = NombreCColeccin.Item("Clave") Si se utilizaron nmeros como claves, stos deben ser convertidos mediante la instruccin CStr para ser usados en el mtodo item o Remove, ya que si es un nmero entero la coleccin lo admite como un ndice. Como item es el mtodo predeterminado del objeto Collection, en la codificacin no es necesario hacer referencia a l, se puede simplificar de la siguiente manera: [Set] Variable = NombreColeccin(ndice) o tambin, [Set Variable = NombreColeccin(Clave)

Programacin con VB 6.0

Tsu . Enzo Costantini

14. PROGRAMAS (FORMULARIOS MDI)

DE

MLTIPLES

DOCUMENTOS

MDI es la abreviacin de Interfaz de Mltiples Documentos por su siglas en ingls (Multiple Document Interface). Los programas con este tipo de interfaz permiten visualizar y trabajar con ms de un documento (Formulario) al mismo tiempo, estos formularios se encuentran dentro de un formulario principal contenedor. Los programas Microsoft Word, Microsoft Excel son ejemplos de programas con interfaz de Mltiples documentos. Se pueden identificar por tener en la Barra de Men la opcin Ventana que permite desplazarse entre los distintos documentos abiertos hasta ese momento. Lo contrario de MDI es SDI (Single Document Interface) que son aplicaciones donde pueden existir varios formularios tambin, pero cada uno es individual y separado y no posee un formulario principal contenedor. Todos los formularios poseen una propiedad llamada MDIChild que es Falsa por defecto. Para el caso de las aplicaciones MDI, este valor debe ser cambiado a Verdadero (True). Pero antes, debe colocarse un formulario principal contenedor como un formulario MDI, de la siguiente manera: Se debe dirigir a la Barra de Men Proyectos. Agregar Formulario MDI Agregar un men hijo, cambiando la propiedad MDIChild de un formulario a Verdadero (True).

Si no existe un Formulario MDI en la aplicacin y algn formulario tiene la propiedad MDIChild establecida a Verdadero, al llamar al formulario se producir un error. Al formulario principal contenedor que desde ahora llamaremos Formulario MDI, no se le pueden agregar todos los controles directamente, se puede el control PictureBox, que servir para agregar controles sobre ste y permitir insertar botones de comandos y todos los dems controles. Tambin puede agregar el control Timer y el control Data. El tamao de los controles cuadro de imagen se adaptan automticamente a la parte superior del formulario MDI, tomando todo el ancho del formulario, esto se hace con la intencin de que funcione como una Barra de Herramientas. Cuando se establecen formularios MDI y secundarios (MDIChild) estos tienen caractersticas muy particulares que pueden distinguirse. Los formulario MDI en tiempo de diseo presenta una coloracin mas oscura que los formularios estndar. Adems en el Explorador de proyectos tienen una imagen que los distinguen, al igual que los formularios secundarios y estndar, como se puede observar en la figura siguiente:

Formulario Estndar Formulario Secundario Formulario MDI

Los formularios secundarios cuando se abren, su rea de trabajo siempre estar regido por el rea de trabajo del formulario MDI, al maximizar el formulario secundario este tomar el total del formulario MDI, y su ttulo se combinar con el ttulo del formulario MDI, adems las barras de mens que tenga el formulario secundario se combinar con la barra de Men del formulario MDI.

Programacin con VB 6.0

Tsu . Enzo Costantini

Al minimizar los formularios secundarios, stos no se colocarn directamente en la barra de Tareas, ms bien, se colocarn en la parte inferior del formulario MDI.

Programa #26. Programa MDI: Para la creacin de un programa con mltiples documentos siga los siguientes pasos: 1. Cree un proyecto Nuevo, en el formulario principal (Form1) establezca su propiedad MDIChild a Verdadero, cambie el Caption a Documento 1. 2. Agregue un formulario MDI, en el men Proyecto Agregar Formulario MDI. 3. Agregue un control cuadro de imagen (PictureBox) con propiedad Height = 375. 4. Agregue un botn de comando (Command1) al control cuadro de imagen insertado en el paso anterior, de tamao cuyo alto se adapte al tamao del control cuadro de imagen y el ancho sea de 375. Borre el contenido de la propiedad Caption. Luego, cambie su propiedad Picture, buscando la imagen en la carpeta:
C:\Archivos de Programas\Microsoft Visual Studio\Common\Graphics\Bitmaps\TlBr_W95\New.bmp

Establezca la propiedad Style del botn de comando a 1 Graphical. Se mostrar la imagen del comando Nuevo, en el botn de comando. Si no se encuentra la imagen y la carpeta puede grabarlos en el computador desde la instalacin de Visual Basic o Visual Studio 6.0. 5. Agregue dos botones de comando comando (Command2 y Command3) del mismo tamao que Command1, puede colocar como sugerencia en Caption C2 y C3. O deje tal cual est. 6. Dirjase al formulario Form1, y agregue un control cuadro de imagen (Picture1). Cambie la propiedad BackColor a Blanco. Y adems establezca las propiedades Left y Top a cero. En este formulario agregue el siguiente cdigo: Private Sub Form_Resize() Picture1.Height = ScaleHeight Picture1.Width = ScaleWidth End Sub 7. En el Formulario MDI agregue el siguiente cdigo: Option Explicit Dim Contador As Integer Private Sub MDIForm_Activate() Contador = 1 End Sub Private Sub Command1_Click() Dim Formulario As New Form1 Contador = Contador + 1 Formulario.Show Formulario.Caption = "Documento " & Contador End Sub Private Sub Command2_Click() ActiveForm.Picture1.Circle (500, 500), 300, , , , 2 / 3 End Sub Private Sub Command3_Click() ActiveForm.Picture1.Refresh End Sub Para probar este programa ejectelo, maximice la ventana MDI, es decir la ventana superior, presione el botn Command1 (el que tiene la imagen Nuevo) se crear un nuevo Documento

Programacin con VB 6.0

Tsu . Enzo Costantini

(Documento 2), coloque los dos de tal manera que sean totalmente visibles ambos, que no se superponga uno del otro, presione el segundo botn de comando se dibujar una elipse en el formulario activo, esto sucede debido a la sentencia ActiveForm que detecta el formulario activo y trabaja sobre el de acuerdo a la instruccin. Igualmente sucede con el tercer botn de comando, pero en este caso borra el contenido de la imagen. Otros detalles del programa pueden verse en la Seccin Detallada de Programas.

Programacin con VB 6.0

Tsu . Enzo Costantini

15. TRABAJO CON FICHEROS:


Muchas veces necesitamos guardar la informacin de aplicaciones en un dispositivo, ya sea disco duro, disquete u otro dispositivo de almacenamiento, para cargarlo posteriormente y continuar introduciendo datos sobre estos archivos ya establecidos. Para esto Visual Basic posee una herramienta de trabajo que permite almacenas en ficheros la informacin que el programador especifique. En Windows y en Visual Basic 6.0 existen dos tipos de ficheros: Ficheros Ascii Ficheros Binarios. Los primeros almacenan la informacin de acuerdo al cdigo ASCII que pueden ser ledos por programas como el Bloc de Notas (NotePad). Generalmente tienen extensin *.txt (archivos de texto) o *.bat. Existen otros archivos que tambin guardan la informacin como archivos ASCII, como son *.c (archivos de lenguaje de programacin C), *.cpp (Archivos de lenguajes de programacin C+ +), *.java (archivos de lenguaje de programacin JAVA) o *.m (Archivos de programas de Matlab). Los ficheros binarios son ficheros que devuelven la informacin tal como se encuentran en la memoria. stos no son legibles por el bloc de notas y tampoco directamente por el usuario. Ocupan menos espacios de memoria y pueden ser fcilmente cambiados a formato ASCII al escribirlos y al leerlos. El Acceso de un fichero puede ser de alguno de estos tres tipos:

Acceso Secuencial: Leen y escriben los datos secuencialmente, es decir, uno tras otro y no hay posibilidad de volver atrs, el acceso secuencia slo aplica a ficheros Ascii y por lo tanto pueden ser ledos por el bloc de notas (NotePad). Este tipo de acceso tiene tres formas de apertura, una para slo lectura (Input), y dos para escritura (Output y Append). Acceso Aleatorio: Estos ficheros estn formados por registros del mismo tamao en bytes, por lo tanto permiten acceder a alguno de ellos sin necesidad de para por todos los anteriores. Es muy importante resaltar que cada registro debe tener el mismo tamao en bytes, para que as se pueda acceder a un registro especfico por su ubicacin en la memoria. La nica forma de apertura es Random que sirve tanto para lectura como para escritura de datos. Este tipo de acceso almacena la informacin tal como se encuentra en la memoria. Acceso binario: Son semejantes al acceso aleatorio pero en caso el acceso no esta basada en registros sino en cada byte.
Para trabajar con ficheros deben respetarse los siguientes pasos mediante el cdigo: Apertura del fichero Leer o escribir datos Cerrar el fichero

Apertura de un fichero.
Para abrir un fichero se utiliza la sentencia Open. Ella debe especificar el tipo de acceso que se desea. La instruccin general para abrir un fichero es la siguiente: Open Archivo For tAcceso As #Nmero [Len = Tamao] Donde Open da la orden de apertura, Archivo es una cadena de texto que devuelve la ruta y el nombre del fichero o archivo que se va a abrir, tAcceso es el tipo de acceso de acuerdo a los tres tipos de acceso que se explicaron anteriormente (Input, Output, Append, Random o Binary), Nmero

Programacin con VB 6.0

Tsu . Enzo Costantini

es un nmero entero positivo (o variable que devuelve un nmero entero positivo) que definir el nmero del fichero. La sentencia [Len = Tamao] aplica slo a ficheros de Acceso aleatorio, donde tamao define el tamao en bytes de cada registro. La apertura de un fichero nos permite escribir o leer datos en el mismo. No puede haber ficheros distintos abiertos con el mismo nmero. Para ello VB 6.0 dispone de una funcin llamada FreeFile que devuelve un nmero entero que no ha sido utilizado por ningn fichero.

Ficheros de Acceso Secuencial:


Si en un fichero de acceso secuencial se utiliza Input para abrir un fichero que no existe, el programa producir un error. Si se utiliza el tipo de acceso Output a un fichero que no existe, se crear uno nuevo, si ya exista borra su contenido para empezar desde el comienzo, si desea conservar el contenido del fichero utilice el tipo de acceso Append. Leer o escribir datos en un fichero secuencial: PARA LECTURA: Sentencia Input: Para leer y guardar el conjunto de caracteres escritos en una lnea de un archivo de texto se puede utilizar la sentencia Input de la siguiente manera: Input #Nmero, Variable1, Variable2, Variable3 ... Donde Nmero, hace referencia al nmero con el cual el fichero fue abierto y las variables 1, 2, 3, ... son los nombres de las variables que almacenarn las distintas lneas de escritura del archivo o fichero abierto. Programa #27. Sentencia Input: As por ejemplo si tenemos un programa con un botn de comando (Command1), una etiqueta (Label1) que tenga un ancho (Propiedad Width) de mediana longitud y un control de cuadros de dilogos comunes (CommonDialog1) y adems tenemos el siguiente cdigo: Option Explicit Private Sub Command1_Click() On Error GoTo Mensaje Dim Archivo As String, Linea1 As String Dim Linea2 As String, Linea3 As String CommonDialog1.ShowOpen Archivo = CommonDialog1.FileName Open Archivo For Input As #1 Input #1, Linea1, Linea2, Linea3 Label1.Caption = Linea1 & Chr(13) & Linea2 & Chr(13) & Linea3 Exit Sub Mensaje: Select Case Err Case 62: MsgBox "El archivo no tiene tres lneas" & Chr(13) & "Elija un Archivo con tres o ms lneas", vbExclamation, "Error" Case 75: Exit Sub Case Else: MsgBox "Error " & Err.Number & " " & Err.Description End Select End Sub Cuando presiona el botn de comando, puede elegir un archivo de texto (*.txt) que tenga tres o ms de lneas (si lo elige de menos lneas se mostrar un mensaje de error). La variable Linea1

Programacin con VB 6.0

Tsu . Enzo Costantini

almacenar los caracteres de la primera lnea y as sucesivamente llegar hasta la tercera lnea, estas variables sern mostradas en la etiqueta 1. Como ya la mayora de los comandos han sido explicados en la Seccin Detallada de Programas en otros programas, este programa no aparece en dicha seccin. Puede introducir valores numricos en el archivo de texto y luego mediante la instruccin de conversin a numrico (sea CDbl, CSgl u otra) puede operar matemticamente con ellos. Por ejemplo, si se introduce en la primera lnea el valor numrico 100, en la segunda 100 y en la tercera 120 y adems se cambia la lnea de comando del programa: Label1.Caption = Linea1 & Chr(13) & Linea2 & Chr(13) & Linea3 Por la siguiente lnea Label1.Caption = CDbl(Linea1)+CDbl(Linea2)+CDbl(Linea3) Al presionar el botn de comando y abrir el archivo con los valores guardados anteriormente la etiqueta devolver 320, que es el valor de la suma de los tres valores. Sentencia Line Input: La forma general de la funcin Line Input es: Line Input #Nmero, Variable1 Line Input #Nmero, Variable2 ... Donde Variable1 almacena los caracteres existentes en la primera lnea del fichero, Variable2 la segunda lnea y as sucesivamente tantas veces como tantas lneas crea necesario. La funcin Line Input tambin lee una lnea completa hasta llegar al retorno de carro o un retorno de carro mas avance de lnea Chr(13) y Chr(10) respectivamente -. Hasta ahora no he podido distinguir la diferencia entre esta funcin y la anterior Input , la nica diferencia que mi experiencia me ha dado es que para Line Input necesito escribir ms cdigo para asignar cada lnea a cada variable. Funcin Input: La funcin Input tiene la siguiente forma general: Variable = Input(nCaracteres, #Nmero) Donde Variable es una variable que almacena los caracteres indicados por nCaracteres, por ejemplo la siguiente sentencia: Variable = Input(10, #1) Almacena en Variable los primeros 10 caracteres del fichero abierto mediante la asignacin nmero 1. Si se desea que la variable almacene todos los caracteres de un fichero o archivo se puede utilizar la siguiente instruccin: Variable = Input(LOF(Nmero), #Nmero) Ya que LOF devuelve el nmero total de bytes o caracteres que contiene un fichero. PARA ESCRITURA: Las sentencias de escritura slo se pueden utilizar en ficheros secuenciales que fueron abiertos mediante el tipo de acceso Output o Append. Sentencia Print: La sentencia Print tiene la siguiente forma: Print #Nmero, [Spc(n)];[Tab(n)];Variable1; Variable2; Variable3;... Donde Nmero es el valor numrico del fichero abierto donde se desea escribir, Variable1, 2, 3..., son las variables que se van a agregar al fichero o archivo abierto. Las sentencias opcionales

Programacin con VB 6.0

Tsu . Enzo Costantini

son Spc(n) que indica si desea dejar un nmero de espacios (indicados por n) al comenzar a escribir, o un nmero de tabulaciones (indicados por n) al comenzar de escribir en la lnea. Por ejemplo las siguientes lneas de comando: Option Explicit Private Sub Command1_Click() Dim Variable1 As String, Variable2 As String Open "C:\Fichero.txt" For Output As #1 Variable1 = "Primera Cadena" Variable2 = "Segunda Cadena" Print #1, Spc(5); Variables = Variable1;, ; Variable2 End Sub Cuando ejecuta el programa y hace clic en Command1 aparentemente no pasa nada, pero se ha creado un nuevo archivo (llamado Fichero) en la unidad C: (Disco Duro) donde se escribe, primero dejando cinco espacios en blanco: Variables = Primera Cadena, Segunda Cadena Salga del programa, busque el archivo fichero en C: con el Explorador de Windows y verifique. Como ya se explic anteriormente, el archivo fue abierto mediante el tipo de acceso Output, esto hace que se cree el archivo si no existe y adems si existe borra el contenido del fichero, para conservar el contenido del archivo de texto y escribir al final debe sustituirse la palabra Output por Append en el programa. Sentencia Write: La sentencia Write tiene la siguiente forma general: Write #Nmero, Variable1; Variable2; Variable3... Una diferencia relevante que tiene esta sentencia con respecto a la sentencia Print, es que sta separa las variables en el fichero por comas, adems encierra entre comillas las cadenas de texto, entre numerales (#) los valores de fechas y boolean , y agrega al final de la lnea un retorno de carro + avance de lnea, constantes de VB 6.0 Chr(13) y Chr(10) respectivamente. Por lo tanto, si escribe otra sentencia Write debajo, se escribir en la siguiente lnea del fichero. Por ejemplo: Private Sub Command1_Click() Open "C:\Fichero.txt" For Output As #1 Write #1, "Saludos" Write #1, "Hoy es"; Date Write #1, "La Hora es"; Hour(Time) & ":" & Minute(Time) End Sub Al abrir el archivo Fichero en la unidad C: este mostrar un archivo como el siguiente:

Programacin con VB 6.0

Tsu . Enzo Costantini

Escribiendo al lado de Hoy es la fecha actual y al lado de La hora es la hora actual.

Fichero de Acceso Aleatorio:


Los ficheros de acceso aleatorio son una modalidad de ficheros binarios, es decir, poseen la informacin tal como se encuentra en la memoria, se caracteriza por tener registros que deben tener el mismo tamao en bytes, aunque parezca una desventaja, se hace con la finalidad de encontrar un registro de los almacenados de acuerdo al nmero de bytes de los registros, por ejemplo, si cada registro del fichero tiene un tamao fijo de 12 bytes, para encontrar el primer registro el programa se traslada al byte nmero 1, para el segundo registro al byte nmero 13 y as sucesivamente, hasta llegar al registro deseado. El tipo de Acceso es Random, que sirve tanto para lectura como para escritura, adems al final de la sentencia Open debe agregarse el tamao de registro Len = especificando el tamao de cada registro en bytes, de la siguiente manera: Open Archivo For Random As #Nmero Len = Bytes Donde Archivo es una cadena de texto que debe tener la ruta y el nombre del archivo o fichero que se va a abrir, Nmero es el valor numrico entero que se asigna al fichero y Bytes es el tamao de cada registro en bytes. Los ficheros de acceso aleatorios pueden grabar informacin de tal manera que puede crear una base de datos que puede ser almacenada en un dispositivo de memoria (disco duro, disquete, etc) para operar con los registros posteriormente. La desventaja que hasta ahora presenta VB 6.0 es que no posee sentencias para eliminar registros de este tipo de fichero. Esperemos que las versiones posteriores posean dichas funciones. PARA LECTURA: Sentencia Get: La sentencia Get se utiliza para leer u obtener registros almacenados en el fichero, tiene la siguiente forma general: Get #Nmero, Registro, Variable Donde Nmero es el nmero que se asign al fichero de donde se quiere obtener informacin, Registro es un nmero natural que indica el nmero de registro y Variable es la variable que almacena el valor que se encuentra grabado en la memoria. Variable puede ser un tipo de dato, un objeto (Object) o una estructura (Type). PARA ESCRITURA: Sentencia Put: La sentencia Put tiene una forma similar a la sentencia Get, se generaliza como: Put #Nmero, Registro, Variable Donde Nmero es el nmero de fichero donde quiere escribirse, Registro es un nmero natural que contiene el nmero de registro y Variable es la variable que contiene el valor, cadena, objeto o estructura que se escribir. Si se da un valor de registro que ya estaba en lista, se rescribir su valor, se borrar el registro anterior. Por lo tanto esta sentencia sirve tanto para escribir como para reemplazar. Eliminar registros de un fichero con Acceso Aleatorio:

Programacin con VB 6.0

Tsu . Enzo Costantini

Aunque no existe un mtodo para eliminar registros, se puede seguir un conjunto de pasos que permiten eliminarlos, estos son: 1. Abrir un archivo o fichero de acceso aleatorio provisional. El Archivo original queda hasta ahora intacto. 2. Pasar los registros que no sern borrados al fichero provisional. 3. Cerrar el fichero de original mediante la sentencia Close #Nmero. 4. Borrar de la memoria el archivo original mediante la instruccin Kill(Archivo). 5. Abrir de nuevo el archivo original con tipo de acceso aleatorio. 6. Devolver los registros. 7. Cerrar el archivo provisional. 8. Borrar de la memoria el archivo provisional con la instruccin Kill(Provisional). Este atento a que el archivo provisional no tome el nombre de un archivo existente, de ser as el archivo ser borrado. En el siguiente programa se utiliza el siguiente procedimiento para eliminar registros. Programa #28. Extensin del Programa #7 - Coordenadas: El siguiente programa es una extensin del programa #7 que se planteaba usar el control ListBox (Cuadro de lista) para agregar valores de coordenadas X e Y. Ahora con el trabajo de los ficheros nos ofrecen la posibilidad de guardar estos valores en archivos que puedo utilizar posteriormente, agregando o eliminando valores. Agregue un control Common Dialog Control 6.0 (cuadros de dilogos comunes encontrado en la seccin de Componentes del men Proyecto o presione la combinacin Ctrl+T), el nombre de este control ser el que viene por defecto (CommonDialog1) Adems, agregue tres botones adicionales a los que contiene el formulario con los nombres cmdNuevo, cmdAbrir, cmdCerrar. Agregue el siguiente cdigo, ademas del que ya aparece: Private Sub cmdNuevo_Click() Dim Nuevo As String Nuevo = InputBox("Introduzca un nombre de Archivo", "Nuevo") Archivo = CStr("C:\" + Nuevo + ".dat") Open Archivo For Random As #1 Len = 4 If LOF(1) > 0 Then For Registro = 1 To LOF(1) / 4 Get #1, Registro, Punto lstPuntos.AddItem "(" & Punto.X & "," & Punto.Y & ")" Monitor.Circle (Punto.X, Punto.Y), 30, vbRed Next Registro End If txtX.SetFocus End Sub Private Sub cmdAbrir_Click() CommonDialog1.Filter = "Archivos *.Dat|*.dat" CommonDialog1.ShowOpen Archivo = CommonDialog1.FileName Open Archivo For Random As #1 Len = 4 For Registro = 1 To LOF(1) / 4 Get #1, Registro, Punto lstPuntos.AddItem "(" & Punto.X & "," & Punto.Y & ")" Monitor.Circle (Punto.X, Punto.Y), 30, vbRed Next Registro txtX.SetFocus End Sub

Programacin con VB 6.0

Tsu . Enzo Costantini

Private Sub cmdCerrar_Click() Close #1 lstPuntos.Clear Monitor.Refresh End Sub Ojo: AHORA, CAMBIE EL CONTENIDO DE LOS SIGUIENTES EVENTOS: Private Sub cmdIngresar_Click() Punto.X = CInt(txtX) Punto.Y = CInt(txtY) Monitor.Circle (Punto.X, Punto.Y), 30, vbRed lstPuntos.AddItem "(" & Punto.X & "," & Punto.Y & ")" Registro = LOF(1) / 4 + 1 Put #1, Registro, Punto txtX = "" txtY = "" txtX.SetFocus End Sub Private Sub cmdEliminar_Click() Dim RegEliminar As Integer RegEliminar = lstPuntos.ListIndex + 1 Open "C:\Provisional123.dat" For Random As #2 Len = 4 For Registro = 1 To LOF(1) / 4 - 1 If Registro >= RegEliminar Then Get #1, Registro + 1, Punto Put #2, Registro, Punto Else Get #1, Registro, Punto Put #2, Registro, Punto End If Next Registro Close #1 Kill (Archivo) lstPuntos.Clear Monitor.Refresh Open Archivo For Random As #1 Len = 4 For Registro = 1 To LOF(2) / 4 Get #2, Registro, Punto Put #1, Registro, Punto lstPuntos.AddItem "(" & Punto.X & "," & Punto.Y & ")" Monitor.Circle (Punto.X, Punto.Y), 30, vbRed Next Registro Close #2 Kill ("C:\Provisional123.dat") End Sub Adems agregue un mdulo estndar (El mdulo estndar se agregar mediante la barra de Men en Proyecto Agregar Mdulo) y en l agregue el siguiente cdigo: Public Type Puntos X As Integer Y As Integer End Type

Programacin con VB 6.0

Tsu . Enzo Costantini

En la seccin de declaraciones del formulario donde aparece Option Explicit agregue debajo: Dim Punto As Puntos, Registro As Integer, Archivo As String Ejecute el formulario, haga clic sobre el botn cmdNuevo y establezca un nombre para el archivo nuevo, agregue valores de coordenadas y estos se irn grabando en el disco duro en un archivo cuyo nombre usted estableci. Para cerrar el fichero presione el botn con el nombre cmdCerrar, si intenta abrir un archivo o crear un archivo nuevo y est abierto otro fichero el programa generar un error. Puede borrar puntos de coordenadas mediante el botn cmdEliminar, en este caso (a diferencia del programa #7 que borraba slo el dato de la lista) el programa nuevo borra el punto de la lista y del cuadro de imagen. Si desea tener una explicacin detallada sobre la codificacin de este pasado programa puede dirigirse a Seccin Detallada de Programas al final de este trabajo de investigacin.

Fichero de Acceso Binario:


Como ya se ha dicho este tipo de fichero es muy parecido al fichero de acceso aleatorio devuelve la informacin tal como se encuentra en la memoria, por lo tanto no pueden ser ledos por el bloc de notas, la diferencia radica en que estos no almacenan la informacin a travs de registros sino por cada byte. La forma general para abrir un fichero con acceso binario es: Open Archivo For Binary As #Nmero Donde Archivo es una cadena de texto que indica el nombre y la ruta del fichero y Nmero es el nmero que se asigna al fichero. Por ejemplo: Dim ByteDiez As String Archivo = "C:\Fichero.dat" Open Archivo For Binary As #1 Get #1, 10, ByteDiez ByteDiez=R Put #1, 10, ByteDiez Close #1 En este caso se abre un fichero, se lee el dcimo byte y se le asigna a la variable ByteDiez, luego se cambia la variable a r y se escribe en esa misma posicin la variable.

Cierre de Fichero:
Tanto los ficheros de acceso secuencial, los de acceso aleatorio y binarios se cierran de la misma manera, se utiliza la siguiente sintaxis: Close #Nmero Donde Nmero es el nmero de fichero que se desea cerrar, si se omite se cierran todos los ficheros, tambin se puede utilizar el mtodo Reset para cerrar todos los ficheros.

Otras funciones de Ficheros:


Para ubicar otras funciones de ficheros puede dirigirse al Examinador de Objetos y escribir (en buscar) la palabra FileSystem.

16. IMPRIMIR TEXTO E IMGENES:

Programacin con VB 6.0

Tsu . Enzo Costantini

Para imprimir texto e imgenes se utiliza el objeto Printer, que como todos los objetos posee propiedades y mtodos. El objeto printer posee una coleccin que contiene todas las impresoras instaladas en el computador, para acceder a ella se pueden utilizar las siguientes lneas de comando: Agregue un cuadro combinado (ComboBox) de nombre Combo1a un formulario y escriba el siguiente cdigo: Private Sub Form_Load() Dim Impresora As Printer For Each Impresora In Printers Combo1.AddItem Impresora.DeviceName Next End Sub Al ejecutar el programa el cuadro combinado contiene todas las impresoras instaladas en su computador. Para colocar una impresora como impresora predeterminada se utiliza la instruccin: Set Printer = Printers(ndice) Donde ndice indica el nmero de la lista de la impresora. Las impresoras estn enumeradas desde cero hasta Printer.Count 1. Para conocer el nmero de ndice utilice la siguiente sintaxis: Private Sub Form_Load() Dim Indice As Integer For Indice = 0 To Printers.Count - 1 Combo1.AddItem Indice & " - " & Printer.DeviceName Next End Sub En este caso al cargar el formulario, el cuadro combinado contendr el ndice de la impresora al lado de su nombre de identificacin. Para imprimir texto mediante el objeto Printer se utiliza el mtodo Print de la siguiente manera: Printer.Print Texto Donde texto contiene la cadena de caracteres que se desea imprimir, se puede llamar al contenido de una caja de texto (TextBox) si se coloca su nombre, de la siguiente manera: Printer.Print Text1.Text Para imprimir imgenes de debe llamar mediante la sentencia: Printer.PaintPicture LoadPicture (Ruta), DistanciaX, DistanciaY Donde Ruta es una cadena de texto que contiene la ruta y el nombre de la imagen que se desea imprimir, DistanciaX es la distancia en puntos que existe entre el margen izquierdo del papel y la ubicacin donde se desea imprimir la imagen y DistanciaY la distancia entre el margen superior y la ubicacin donde se desea imprimir la imagen. Adems de poder imprimir texto e imgenes, el objeto printer soporta los mtodos grficos explicados en el control PictureBox (Circle, Line, CurrentX, CurrentY), puede imprimir, crculos, arcos, elipses, cuadrados, rectngulos, etc. Pero en este caso hay que resaltar que la impresora generalmente tiene ms resolucin que el monitor y por lo tanto al utilizar un mtodo grfico con el

Programacin con VB 6.0

Tsu . Enzo Costantini

objeto Printer debe tomar en cuenta que los puntos por pulgadas de la impresora son mucho mayor a los puntos por pulgada del monitor. Al momento de imprimir se observan stos ms pequeos. Programa #29. Objeto Printer: Para la realizacin de este programa slo es necesario agregar un botn de comando (Commnad1) y un cuadro de texto (Text1) a un formulario, agregue despus el siguiente cdigo: Private Sub Command1_Click() If Text1.Text <> "" Then Printer.CurrentX = 15 Printer.CurrentY = 20 Printer.FontName = "Times New Roman" Printer.FontSize = 13 Printer.Print Text1.Text Printer.PaintPicture LoadPicture _ ("C:\Windows\Aros.bmp"), Printer.ScaleWidth / 2, 20 Printer.Circle (2000, 2000), 1000, vbRed Printer.Line (0, 1500)-(800, 500), vbBlack Printer.CurrentX = Printer.ScaleWidth / 2 - 300 Printer.CurrentY = Printer.ScaleHeight - 500 Printer.Print "Pgina " & Printer.Page Printer.EndDoc Else MsgBox "No hay texto para imprimir", vbExclamation, "Texto vaco" End If End Sub Ejecute el programa, escriba sobre el cuadro de texto y luego presione el botn de comando para enviar a imprimir. En el programa anterior se utiliza el mtodo EndDoc del objeto Printer para enviar el documento a la impresora, este mtodo da fin a la inclusin de elementos y da comienzo a la impresin. Existen otros mtodos muy tiles, uno de ellos es NewPage, que contina el trabajo de impresin en una nueva pgina y el mtodo KillDoc que cancela el trabajo de impresin. Existe una enumeracin en VB 6.0 llamada PrinterObjectConstants que puede verse desde el examinador de objetos, ella contiene las distintas constantes que pueden establecerse a las propiedades en un trabajo de impresin. Definen el tipo de papel a usar, orientacin del mismo, color y calidad de la impresin y otras propiedades.

Programacin con VB 6.0

Tsu . Enzo Costantini

17. EL PORTAPAPELES:
El portapapeles de Windows puede llamarse mediante la palabra Clipboard. Permite unas de las acciones mas comunes usadas bajo ambiente Windows: copiar, cortar y pegar. Este objeto no posee propiedades ni eventos, slo contiene seis mtodos que sirven para colocar, obtener, verificar el formato o borrar el contenido de l. Existen dos mtodos que sirven para trabajar con texto: SetText y GetText; que coloca informacin o obtiene cadenas de texto del portapapeles respectivamente. Otros dos mtodos que funcionan de la misma manera pero para grficos, son: SetData y GetData. El mtodo GetFormat devuelve un valor booleano que indica si un elemento del portapapeles se ajusta a un formato determinado y el mtodo Clear se utiliza para eliminar o vaciar la informacin del portapapeles, tanto para texto como para grficos. El portapapeles puede contener dos elementos siempre y cuando no tengan el mismo formato, es decir, si pega una imagen al portapapeles y luego un texto, permanecen los dos elementos contenidos en el mismo. Pero si coloca un texto, y posteriormente otro texto se elimina el primero para colocar el segundo. Detalles de los mtodos: Mtodo SetText: Como ya se ha mencionado el mtodo SetText del objeto Clipboard se utiliza para colocar una cadena de texto en el portapapeles, lo que corresponde a la accin de Windows Copiar, se utiliza la siguiente sintaxis: Clipboard.SetText Texto [, Formato] Donde Texto es la cadena de texto que se va a colocar en el portapapeles. Puede ser alguna variable o un objeto que contenga una cadena de texto (por ejemplo el contenido de la propiedad caption de una etiqueta). Formato es opcional y se refiere a algunos de los formatos que pueden ser reconocidos, para cadenas de texto los formatos pueden ser: Formato vbCFText vbCFLink vbCFRTF Valor Numrico 1 -16640 -16639 Descripcin (Predeterminado) Texto Informacin de conversacin DDE Formato de texto enriquecido

Tambin puede copiar un fragmento de un cuadro de texto en el portapapeles si utiliza la propiedad SelText de los mismos. Por ejemplo si utiliza la instruccin: Clipboard.SetText Text1.SelText Copia en el portapapeles la cadena de texto seleccionada en el cuadro de Texto (Text1). Mtodo GetText: Este mtodo se utiliza para devolver el contenido grabado en el portapapeles, lo que corresponde a la accin de Windows Pegar, se utiliza la siguiente sintaxis: Clipboard.GetText([Formato]) Donde Formato tambin es opcional y se refiere a los formatos de textos descritos en la parte anterior. Si el formato escrito en el mtodo GetText no coincide con el que est grabado en el portapapeles, se devuelve una cadena vaca. Mtodo SetData: Este mtodo se utiliza para colocar una imagen o grfico en el portapapeles, tambin corresponde a la accin de copiar, pero en este caso como ya fue mencionado es para imgenes y grficos, tiene la siguiente forma: Clipboard.SetData FuenteImagen[, Formato]

Programacin con VB 6.0

Tsu . Enzo Costantini

Donde FuenteImagen es la imagen que se desea colocar en el portapapeles, puede ser una imagen contenida en un cuadro de imagen si utiliza la propiedad Image de los PictureBox (no la propiedad Picture), o puede colocar alguna imagen contenida en el disco duro si agrega LoadPicture como se indica a continuacin: Clipboard.SetData LoadPicture(Ruta)[, Formato] Donde Ruta define la ruta y el nombre de la imagen que desea pegar en el portapapeles, los formatos aceptados para imgenes son las siguientes: Formato vbCFBitmap vbCFMetafile vbCFDIB vbCFPalette Valor Numrico 2 3 8 9 Descripcin Imagen de Mapa de Bits (BMP) Metarchivo (WMF) Imagen de mapa de bits independiente (DIB) Paleta de colores

Mtodo GetData: Se utiliza para pegar imgenes llamadas desde el portapapeles, tiene la siguiente forma: Clipboard.GetData ([Formato]) Como en todos los casos formato es opcional, puede tomar cualquiera de los valores o constantes descritos en el punto anterior, de colocarse debe ir entre parntesis y si se omite, el portapapeles alige el formato apropiado con el que fue grabado. Mtodo GetFormat: Este mtodo se utiliza para verificar el formato del texto o imagen contenida en el portapapeles. Slo puede ser verdadero (True) o falso (False), que corresponde al si o no el contenido del portapapeles cumple con un formato especfico tanto para texto como para imgenes, tiene la siguiente forma: VariableBool=Clipboard.GetFormat(Formato) En este caso el formato si es requerido colocarlo, puede tomar cualquiera de los formatos especificados en SetText y SetData, la VariableBool almacena Verdadero o Falso dependiendo de la correspondencia del contenido del portapapeles con el formato. Es muy importante resaltar que algunas imgenes cumplen en algunas ocasiones con ms de un formato de imagen. Es decir, una sola imagen puede cumplir con el formato vbCFBitmap y a la vez el formato vbCFDIB. Mtodo Clear: Borra el contenido del portapapeles, si el portapapeles contiene texto e imgenes se borran ambos. Es muy utilizado muy a menudo antes de colocar algn contenido al portapapeles, sin embargo, como se puede colocar simultneamente texto e imgenes puede omitirse para agregar alguno de ellos sin borrar el contenido anterior. Pero, si slo se est trabajando con un formato (slo texto o slo imagen) es recomendable vaciar el contenido del portapapeles antes de colocar un nuevo elemento. Este mtodo tiene la siguiente forma: Clipboard.Clear Programa #30. Clipboard: Realice un formulario como se ve a continuacin:

Programacin con VB 6.0

Tsu . Enzo Costantini

Este formulario cuenta con los siguientes controles: Picture1: PictureBox que contiene una imagen (cualquiera) desde la propiedad Picture. En este caso se visualiza la imagen de una computadora (carpeta de imgenes de conos) Picture2: PictureBox que tienes las propiedades Height y Width iguales a Picture1 y no contiene ninguna imagen. Se encuentra debajo de Picture1. Text1: TextBox donde fue borrado la propiedad Text, se encuentra en l aparte superior derecha. Label1: Etiqueta donde se encuentra escrito en la porpiedad Caption: Esta es una cadena de texto. Command1: CommandButton con caption: Copiar Texto Command2: CommandButton con Caption: Copiar Imagen Command3: CommandButton con Caption: Pegar Texto Command4: CommandButton con Caption: Pegar Imagen Command5: CommandButton con Caption: Contenido Portapapeles Command6: CommandButton con Caption: Limpiar Todo Label2: Etiqueta ubicada en la parte inferior. Propiedad Caption: Cadena Vaca (). Coloque el siguiente cdigo, puede copiar y pegar: Option Explicit Private Sub Command1_Click() Clipboard.SetText Label1.Caption End Sub Private Sub Command2_Click() Clipboard.SetData Picture1.Image End Sub Private Sub Command3_Click() Text1.Text = Clipboard.GetText() End Sub Private Sub Command4_Click() Picture2.Picture = Clipboard.GetData() End Sub Private Sub Command5_Click() Dim Formato As Byte, Mensaje As String If Clipboard.GetFormat(vbCFText) Then Formato = Formato + 1

Programacin con VB 6.0

Tsu . Enzo Costantini

End If If Clipboard.GetFormat(vbCFBitmap) Then Formato = Formato + 2 End If Select Case Formato Case 0: Mensaje = "El Portapapeles est vaco" Case 1: Mensaje = "El Portapapeles contiene slo texto" Case 2: Mensaje = "El Portapapeles contiene slo una imagen" Case 3: Mensaje = "El Portapapeles contiene una imagen y un texto" End Select Label2.Caption = Mensaje End Sub Private Sub Command6_Click() Clipboard.Clear Text1.Text = "" Picture2.Picture = LoadPicture Command5_Click End Sub Ejecute la aplicacin e interacte con la misma, puede copiar texto (Caption de Label1) o imagen (imagen de Picture1), y colocarlo en otros controles. Puede verificar el contenido del portapapeles o borrar para comenzar de nuevo. Verificar el tipo de control activo para colocar un elemento al portapapeles: Puede que quiera en algunas ocasiones llevar al portapapeles un elemento, pero que el programa verifique el tipo de control activo, para colocar en el portapapeles una imagen o un texto de acuerdo al control activo, es decir, si el control activo es un PictureBox aplicar el mtodo SetData o GetData y si lo es un control con propiedad Text utilizar SetText. Para ello, se puede combinar La funcin TypeOf junto a Screen.ActiveControl de la siguiente manera: If TypeOf Screen.ActiveControl Is PictureBox Then Clipboard.SetData Screen.ActiveControl.Image ElseIf TypeOf Screen.ActiveControl Is TextBox Then Clipboard.SetText Screen.ActiveControl.SelText ElseIf TypeOf Screen.ActiveControl Is ListBox Then Clipboard.SetText Screen.ActiveControl.Text End If Aplica para otros controles. Despus de colocar un elemento en el portapapeles, se puede pegar utilizando GetText y GetData tambin verificando el tipo de control de destino donde se pegar. De la siguiente manera: If TypeOf Screen.ActiveControl Is PictureBox Then Screen.ActiveControl.Picture = Clipboard.GetData() ElseIf TypeOf Screen.ActiveControl Is TextBox Then Screen.ActiveControl.SelText = Clipboard.GetText() ElseIf TypeOf Screen.ActiveControl Is ListBox Then Screen.ActiveControl.AddItem Clipboard.GetText() End If

Programacin con VB 6.0

Tsu . Enzo Costantini

18. BASE DE DATOS:


Creacin de una base de datos mediante cdigo:
Ya se ha visto un poco sobre la conexin con base de datos mediate la utilizacin del control Data. Y como se pueden eliminar y agregar registros a una tabla mediante el control no intrnseco DBGrid. Ahora este captulo permite tener acceso a las bases de datos mediante otro procedimiento, o mejor dicho mediante la utilizacin de un objeto llamado DAO (por sus siglas Data Access Object). Este objeto, no tiene representacin grfica en la aplicacin, pero debemos declararla como a una variable, siguiendo los parmetros para declaracin de variable segn el alcance que se quiera que tenga. Para comenzar a utilizar este objeto, se debe colocar la referencia, para ello se debe ir a la lista de referencias que se encuentra en la barra de men Proyecto, y luego buscar Referencias, para elegir el Objeto DAO, debe encontrar en la lista el objeto Microsoft DAO 3.51 Objet Library (para Access 97) o Microsoft DAO 3.6 Objet Library (para Access 2000), luego se hace clic en aceptar. Se ha creado la referencia. Luego podemos declarar una variable como una base de datos en la seccin de declaraciones de un mdulo o del formulario, segn el alcance que se desee, de la siguiente manera: Dim MiBase As Database o Public MiBase As Database Nota: Si no se hace la referencia no se podr declarar una variable como Database. Se generar el siguiente Error de compilacin. No se ha definido el tipo definido por el usuario. El objeto DAO trabaja con colecciones, estas son a su vez objetos de acceso a datos. Luego de haber declarado la Base de datos, se debe declarar una sesin de trabajo mediante la utilizacin del Objeto Workspace. El objeto Workspace define una sesin de trabajo para algn usuario. En algunos casos necesitar crear ms de una sesin de trabajo, pero normalmente slo necesitar una sola sesin, para ello Visual Basic genera el primer elemento de la coleccin WorkSpaces, esta es Workspaces(0). Entonces primero declarar y luego, asignarlo. En el siguiente ejemplo se usa el Workspace creado por defecto en VB -Workspaces(0)-. Dim UnaSesion As Workspace Set UnaSesion = Workspaces(0) Luego pasamos a la creacin de la base de datos, se utiliza la frmula para la creacin de Objetos DAO, se propone como frmula general: Set ObjDAOInf = ObjDAOSup.Mtodo (Argumentos) Donde argumentos vara segn el mtodo que se vaya a utilizar y los Objetos DAO Inferior y Superior mantendrn sus posiciones cualquiera que sea el caso de la creacin del objeto DAO. Para crear la base de datos se utiliza el mtodo CreateDatabase, en este caso el objeto DAO superior es el Workspaces UnaSesion y el objeto inferior MiBase, los argumentos son: (Ruta, Idioma, Opciones) Ruta es una cadena de texto que define el archivo de base de datos que se crear (de no tener extensin se agregar .mdb), Idioma es una constante de VB que define el idioma (por supuesto), se recomienda para los idiomas espaol, ingls o francs, la constante dbLangGeneral (la constante dbLangSpanish no ofrece ninguna ventaja frente a dbLangGeneral) y opciones se refiere a la versin de Access en la que se crear y puede incluir tambin si desea crear una base de datos codificada, si se omite se crear una base de datos no codificada. Por lo tanto para crear una nueva base de datos se coloca: Dim Archivo As String Archivo="C:\CarpetaDatos\MiBase.mdb" Set MiBase=UnaSesion.CreateDatabase(Archivo, dbLangGeneral)

Programacin con VB 6.0

Tsu . Enzo Costantini

Despus de creada una base de datos, se procede a crear las tablas, sus campos, y si se desea tambin se pueden crear consultas, ndices (claves) y relaciones entre tablas. Para crear una tabla se usa el mtodo CreateTableDef, pero antes de crearla se debe declarar la variable correspondiente, por ejemplo: Dim Tabla1 As TableDef Si se declara de la forma anterior slo se podr crear una tabla, por lo tanto se deben declarar tantas variables de objeto TableDefs como tablas se requieran para la base de datos. De forma que se puede agregar a la sentencias anterior: Dim Tabla1 As TableDef, Tabla2 As TableDef, Table3... Cuando se est creando una tabla no se est agregando a la base de datos, solo se est creando en forma apartada permaneciendo en la memoria RAM del ordenador, por ello luego debe agregarse al documento de datos mediante el mtodo Append, este se ver mas adelante. Ahora si, se puede crear la o las tablas. Set Tabla1 = MiBase.CreateTableDef("NombreTabla1") Set Tabla2 = MiBase.CreateTableDef("NombreTabla2") Set Tabla3 = MiBase.CreateTableDef("NombreTabla3") ... Se puede observar que se ha usado la frmula general: Set ObjDAOInf = ObjDAOSup.Mtodo (Argumentos) En este caso ObjDAOInf es el objeto TableDef (Tabla#) y el superior es el nombre del objeto DataBase (MiBase). Para el caso del ejemplo puede cambiar los nombres de las tablas al que desea que aparezcan cuando ejecute Access. Siguiendo la secuencia, ahora le toca el paso a la creacin de los campos, se usa el mtodo CreateField. Tal y como se procedi con los objetos anteriores, estos tambin deben declararse, de la siguiente manera: Dim Campo_1_1 As Field, Campo_1_2 As Field, Campo_2_1 As Field,... En este ejemplo, se utiliza Campo_1_1 para referirse al campo de la primera tabla, primer campo, es decir, el primer nmero se utiliz para identificar la tabla y el segundo para identificar el nmero del campo. Ahora se puede crear el campo: Si utilizamos la ecuacin general: Set ObjDAOInf = ObjDAOSup.Mtodo (Argumentos) Sera ahora: Set Campo_1_1=Tabla1.CreateField("Nombre", Tipo, Caracteres) Donde Nombre es una cadena de texto que definir el nombre del campo, por ejemplo: ID_Cliente, NombreCliente, Direccin, etc. Tipo define el tipo de dato que aceptar el campo: la siguiente tabla enumera algunas de las opciones: Constante Tipo Descripcin dbBoolean Boolean Verdadero o Falso dbByte Byte 0 a 255 dbCurrency Currency Dinero o clculos de signo decimal fijo dbDate Date/Time Datos de fechas y hora dbDouble Double Nmeros de precisin doble dbInteger Integer Nmeros enteros medianos dbLong Long Nmeros enteros Largos dbMemo Memo Texto extendido dbNumeric Numeric Numrico dbSingle Single Nmeros de precisin simple dbText Text Cadenas de texto dbTime Time Hora Se desea conocer otros tipos de datos puede dirigirse a la ayuda de VB. En el caso de Caracteres, slo aplica cuando el tipo de dato es texto, y se refiere al nmero mximo de caracteres que puede tener la cadena de texto.

Programacin con VB 6.0

Tsu . Enzo Costantini

Una vez creadas todas las tablas y campos de la base de datos se procede a agregarlas, esto es posible al mtodo Append, se utiliza de la siguente manera: Primero los campos: Tabla1.Fields.Append Campo_1_1 Tabla1.Fields.Append Campo_1_2 Tabla2.Fields.Append Campo_2_1 Aqu es muy til la sentencia With cuando existe un nmero considerado de campos para resumir el cdigo: With Tabla1 .Fields.Append .Fields.Append .Fields.Append .Fields.Append End With Campo_1_1 Campo_1_2 Campo_1_3 Campo_1_4

Luego las tablas: MiBase.TableDefs.Append Tabla1 MiBase.TableDefs.Append Tabla2 Para finalizar es recomendable no dejar la base de datos abierta, esta se cierra mediante el mtodo Close: MiBase.Close Programa #31. Crear una base de datos con cdigo en VB: Para este programa no necesita agregar ningn control al formulario, es necesario crear una carpeta en el directorio C:\ de nombre CarpetaDatos, luego en el formulario agregue el siguiente cdigo: Option Explicit Private Sub Form_Click() Dim MiBase As Database Dim UnaSesion As Workspace Set UnaSesion = Workspaces(0) Dim Archivo As String Archivo = "C:\CarpetaDatos\MiBase.mdb" Set MiBase = UnaSesion.CreateDatabase(Archivo, dbLangGeneral) Dim Tabla1 As TableDef, Tabla2 As TableDef Set Tabla1 = MiBase.CreateTableDef("Productos") Set Tabla2 = MiBase.CreateTableDef("Clientes") Dim Campo_1_1 As Field, Campo_1_2 As Field Dim Campo_1_3 As Field, Campo_2_1 As Field Dim Campo_2_2 As Field Set Campo_1_1 = Tabla1.CreateField("CodigoProducto ", dbInteger) Set Campo_1_2 = Tabla1.CreateField("Producto", dbText, 15) Set Campo_1_3 = Tabla1.CreateField("Precio", dbCurrency) Set Campo_2_1 = Tabla2.CreateField("CodigoCliente", dbInteger) Set Campo_2_2 = Tabla2.CreateField("NombreCliente", dbText, 20) With Tabla1 .Fields.Append Campo_1_1 .Fields.Append Campo_1_2 .Fields.Append Campo_1_3 End With

Programacin con VB 6.0


With Tabla2 .Fields.Append Campo_2_1 .Fields.Append Campo_2_2 End With With MiBase .TableDefs.Append Tabla1 .TableDefs.Append Tabla2 End With MiBase.Close End Sub

Tsu . Enzo Costantini

Ejecute la aplicacin, haga click sobre el formulario parece que el programa no reaccionara, pero la verdad se ha creado una base de datos en la nueva carpeta CarpetaDatos que se encuentra en el directorio C:\, puede dirigirse a ella y verificar, si da un clic nuevo se producir un error debido a que no se podr crear una base de datos ya creada, slo se podr abrir mediante el mtodo OpenDatabase. Faltan ahora dos procesos por aprender, la creacin de ndices y de relaciones. Para crear un ndice se utiliza el mtodo CreateIndex, y como todos los objetos debe declararse antes de ser asignado: Dim Indice As Index Set Indice = Tabla1.CreateIndex("PrimerIndice") Una vez creado el ndice, ste pasa a crear al campo que se quiere sea ndice, fjese bien que aunque la sentencia dice crear campo, el campo ya estuvo que estar creado, slo se utiliza esta sentencia para asignar el ndice al campo deseado: Set Campo_1_1 = Indice.CreateField("CodigoProducto ", dbInteger) En este caso el nombre del campo y su tipo de dato debe coincidir con el campo creado. De hecho si es tipo texto (dbText) debe coincidir tambin el nmero de caracteres declarados cuando se cre el campo. Esto en caso que se quiera que slo un campo tenga ndice, si desea que otro campo de la misma tabla tambin sea ndice entonces se colocan las dos sentencias:
Set Campo_1_1 = Indice.CreateField("CodigoProducto ", dbInteger) Set Campo_1_2 = Indice.CreateField CreateField("Producto", dbText, 15)

Una vez que se hayan asignado el o los ndices, se debe(n) agregar a la coleccin Fields, de la siguiente manera: Indice.Fields.Append Campo_1_1 Indice.Fields.Append Campo_1_2 Las dos lneas son necesarias si desea que dos campos sean ndices, si slo se desea que un campo sea el indice slo es necesario escribir la primera lnea. Despus de agregar el o los ndices a la coleccin Fields, se deben agregar a la coleccin Indexes del Objeto Tabledef, de la siguiente manera: Tabla1.Indexes.Append UnIndice Ahora le toca el turno a la creacin de Tablas Relacionales, es decir, las relaciones. stas se crean mediante el mtodo CreateRelation, pero claro, primero hay que declararla: Dim Relacion As Relation

Programacin con VB 6.0

Tsu . Enzo Costantini

Para relacionar un campo con otros, ese campo debe ser clave primaria. A la tabla que contiene a este campo se le llama Tabla Principal. A la tabla que contiene el campo (o los campos) relacionados se le llama Tabla Relacionada. Despus de declararse, si observa un poco los pasos de los objetos, le toca el paso a la creacin de la relacin, esto se hace de la siguiente manera: Set Relacion = MiBase.CreateRelation ("NombreRelacin") En este caso NombreRelacin pasa a ser el nombre de la relacin, aunque este sea poco utilizado. La relacin se ha creado pero falta un detalle importante, que campos se van a relacionar. Supongamos que se va a relacionar el primer campo de la primera tabla (Campo_1_1 de la Tabla1) y el primer campo de la segunda tabla (Campo_2_1 de la Tabla2), claro est, esto no es posible porque estos campos no son del mismo tipo ni tienen el mismo nombre, pero como se dijo anteriormente, esto es slo una suposicin. Para ello se procede de la siguiente manera: Relacion.Table = "Tabla1" Relacion. ForeignTable = "Tabla2" Podemos utilizar la propiedad Attributes para cambiar los atributos de la relacin, por ejemplo se puede establecer la constante dbRelationUpdateCascade, para que, cuando se realice algn cambio en el campo de la tabla principal, se refleje en el campo o los campos relacionados con l. Establecemos cual es el nombre del campo de la tabla principal que vamos a relacionar, mediante el mtodo CreateField (aunque el campo ya ha sido creado), tambin debemos declarar el nombre del objeto Field que vamos a crear para la relacin: Dim OtroCampo As Field Set OtroCampo = Relacion.CreateField("Campo_1_1") Establecemos ahora cual es el nombre del campo en la tabla relacionada: OtroCampo.ForeignName = "Campo_2_1" Aadimos el campo creado a la coleccin Fields del objeto Relation Relacin.Fields.Append OtroCampo Y ahora aadimos el objeto Relation recin creado a la coleccin Relations del objeto Database MiBase.Relations.Append Relacion Con esto se da fin al trabajo de investigacin, a continuacin la Seccin Detallada de Programas.

Programacin con VB 6.0

Tsu . Enzo Costantini

Seccin: Explicacin Detallada de Programas


Programa #1. Saludar: Cuando hace clic en el botn Saludar, el programa llama al cdigo de Private Sub Command1_Click(). Por ello, verifica si la propiedad Caption del botn Command1 es Saludar, si es as, entonces el programa ejecuta las sentencias despus de Then y antes de Else. Por lo tanto, la propiedad Text del control Text1 mostrar: Hola!, Cmo estas?, luego cambia la propiedad Caption de Command1 a Borrar. Ahora el botn no mostrar la palabra Saludar, sino Borrar. Al volver a hacer clic (ahora en Borrar), el programa vuelve a llamar a la sentencia Private Sub Command1_Click(). Verifica la condicin Command1.Caption=Saludar, pero en este caso es falsa ya que es Borrar, entonces se ejecutan las sentencias que estn despus de Else y antes de End If. As, la propiedad Text del control Text1 generar una cadena vaca () y la propiedad Caption del botn Command1 volver a ser Saludar. Programa #2. Sumar: La Sentencia (Public Suma As Double) crea una variable pblica de nombre Suma de tipo doble (Numrico de doble precisin) que guardar el resultado de una operacin. (ver Seccin nro. 5 Variables y Tipos de Datos) Cuando hace clic en el comando Sumar, el programa llama a la secuencia de cdigos de Private Sub Command1_Click(). Dim es una expresin que tambin crea una variable en este caso privada. El nombre de la variable es Valor y es tambin de tipo Doble. La siguiente lnea verifica si la propiedad Text de txtValor es una cadena vaca (si no hay datos), si es as asigna a la variable Valor el nmero cero, sino es cadena vaca, convierte el contenido de txtValor a tipo doble y lo asigna a la variable Valor (Si el contenido de txtValor no es numrico se genera un error). La siguiente lnea realiza la operacin: Suma = Suma + Valor, aqu realiza la operacin suma + valor y lo asigna a la variable Suma, Ejemplo, si suma es igual a 10 y quiero sumar 15, VB toma el valor de Suma = 10 y le suma 15 luego borra de la memoria el valor 10 y asigna 25. La siguiente lnea consigue que se muestre este resultado en la propiedad Caption de lblResultado. Luego, se convierte el contenido de txtValor a una cadena vaca, de manera que borra el contenido que haya en ella. Es importante resaltar que Suma se declar como una variable pblica para mantener su valor fuera de el evento clic del botn de comando. Si se declara privada dentro del procedimiento Private Sub Command1_Click() cada vez que inicie la secuencia, Suma valdr cero, por lo que el resultado mostrar el valor de la variable Valor. Tambin podra declararse privada pero con la sentencia Static (Static Suma as Double) para que mantuviera su valor. Programa #3. rea de un tringulo: La primera seccin del programa llama al evento clic del botn de comando Borrar y elimina el contenido de los cuadros de texto, desactiva el botn calcular y ocasiona que el cuadro de texto donde se debe introducir el valor de la Base del tringulo tome el enfoque. La segunda seccin cita al evento clic del botn calcular (en caso que est activado), crea las variables privadas Base, Altura y Area como valores numricos de doble precisin, luego asigna a Base el valor de txtBase a Altura el valor de txtAltura. Despus verifica si la entrada de datos de estos cuadros de texto son numricos, de ser as, calcula el rea y lo muestra en un texto, sino muestra un mensaje de Error.

Programacin con VB 6.0

Tsu . Enzo Costantini

Luego viene la siguiente seccin, que se llama cada vez que cambie el contenido del cuadro de texto txtBase, comprueba si la longitud en bytes de los cuadros de texto txtBase y txtAltura tienen uno o ms elementos, de ser as, activa el botn Calcular. Es importante resaltar que el contenido de txtAltura_Change es igual al contenido de txtBase_Change, ya que estos verifican si los dos cuadros de textos tienen uno o ms elementos. Luego se llama al evento KeyPress, que se genera cada vez que se presione y libera una tecla del teclado. En este caso, reconoce si se presiona la tecla Enter (vbKeyReturn o 13), de ser presionada esta tecla ocasiona que el cuadro de texto txtAltura tome el enfoque. El ltimo evento en la codificacin es KeyPress del Cuadro de texto txtAltura, este provoca (si se presiona la tecla Enter) que el botn de comando Calcular tome el enfoque. Programa #4. Dibujar en un PictureBox: Como la explicacin de los mtodos fueron explicados uno por uno durante los mtodos grficos del PictureBox, no se darn mayores explicaciones sobre cada uno. Slo hay que resaltar varios puntos: Si el comando Mostrar Imagen produce un error, coloque la ruta de una imagen que est grabada en su computador. En el Comando para crear cuadros se puede ver que se asigna a la propiedad FillStyle (Estilo de relleno) el valor de uno, que a pesar de ser el predeterminado, pudo ser cambiado si se presiona antes la tecla para dibujar la elipse. Este estilo determina un relleno transparente (sin color). Adems, en el primer rectngulo se omite la instruccin para el color, por ello, el programa asigna el color determinado por la propiedad Monitor.ForeColor. En la lnea siguiente el argumento B cambi a BF, esto se utiliza para rellenar un cuadrado o rectngulo con el color asignado. Luego se enmarca el cuadrado rellenado con uno negro. En el comando para crear puntos, primero se realizan tres puntos que se muestran cerca de la esquina superior izquierda, luego se crea una secuencia de puntos que generan una curva con la la Sentencia For X=1 to Monitor.Width. sta va aumentando el valor de X de uno en uno hasta llegar al valor del ancho del control PictureBox (Monitor.Width), durante esta secuencia de puntos se calcula el valor de Y (una funcin) y se dibuja el punto X, Y. La instruccin Next hace que la sentencia For vaya al prximo valor de X. El color de los puntos utiliza la instruccin RGB. Ver explicacin de esta sentencia en el capitulo 12 de este trabajo. En el comando para crear dibujar la elipse, se coloca la propiedad FillStyle a cero (Slido), esto crea un relleno para la elipse y a la propiedad FillColor se asigna el color rojo, es decir, se rellena de color rojo, una elipse de color azul. Luego viene el comando para realizar crculos y arcos, se asigna a la constante Pi el valor 3.1415927, esta constante se utiliza para trabajar en grados radianes, luego se coloca de nuevo la propiedad FillStyle a transparente (1) y se dibuja un crculo y un arco desde el grado pi medio (Pi/2) hasta el grado pi. (90 a 180 si fueran grados sexagesimales, ya que la conversin dice que un grado Pi es 180 sexagesimales) Para escribir texto se va al punto (X, Y) = (2500, 3000) se cambia la propiedad ForeColor para escribir en color azul. Programa #5. Dnde estudiar?: Este programa tiene la finalidad de mostrar como se pueden agrupar varios controles mediante el control Frame (marcos) y adems dar una respuesta a los eventos clic de un botn de opcin, en este caso mostrando una respuesta en una etiqueta llamada Label1. La primera sentencia crea las variables de cadenas de texto strCarrera y strInstitucion. El primer evento que es llamado es el evento optCarrera_Click(Index), que ocurre cuando hace clic sobre cualquier botn de opcin que est dentro del marco Carrera, si hace clic en el botn de opcin Ingeniera, este corresponde al Index #0 (optCarrera(0)), se asigna a la variable strcadena el Caption del botn, en este caso Ingeniera, luego llama al evento Display que escribe en la etiqueta una cadena que incluye Ha decidido estudiar luego la variable strCarrera que describe la carrera, a continuacin escribe en la y despus la variable strInstitucion. No se hizo referencia el

Programacin con VB 6.0

Tsu . Enzo Costantini

evento de los botones de opcin dentro del control Frame de la institucin ya que ocurre un procedimiento semejante al del control Frame que contiene las carreras. El botn de comando finaliza el programa mediante la descarga del formulario. Programa #6. Contrato: En este programa la etiqueta muestra en la etiqueta Si contratar si las tres casillas de verificacin estn activadas o chequeadas, si alguna falta muestra la etiqueta No contratar. Programa #7. Coordenadas: Los eventos Change de los dos cuadros de texto habilitan y deshabilitan el botn de comando cmdIngresar segn ambos tengan uno o ms elementos. Si ellos tienen uno o ms elementos se habilita y sino se deshabilita. El evento KeyPress de txtX hace que el cuadro de texto txtY tome el enfoque cuando se presiona la tecla Enter. El evento KeyPress de txtY hace (si se presiona la tecla Enter) que tome el enfoque el botn de comando cmdIngresar si est habilitado, y si no lo est, toma el enfoque txtX. El evento clic del comando Ingresar, genera dos variables de nmeros enteros (X,Y) asigna a la primera el valor entero de txtX y a la segunda el valor entero de txtY; luego, dibuja un pequeo crculo (simulando un punto) en las coordenadas del cuadro de imagen (Monitor). La siguiente lnea agrega un elemento a la lista de puntos, incluye un parntesis abierto, la variable X, una coma, la variable Y y un parntesis cerrado. El contenido del evento clic del comando Eliminar se puede comprender con la explicacin de cmo se borra un elemento de una lista durante la explicacin de este control e igualmente el mtodo Clear del cuadro de lista. El mtodo Refresh del cuadro de imagen borra el contenido del PictureBox (Monitor). Programa #8. Nmero de Mes: El primer evento Form_Load ocurre cuando se carga el formulario, dentro de ella estn las instrucciones para agregar cada mes (mediante su nombre) al control Combo1. Luego se presenta el evento clic del botn de comando Command1. Primero, crea una variable de nombre Mes de tipo Byte (byte es un nmero entero que puede estar entre 0 y 255, se creo de este tipo ya que el valor de Mes va a estar entre 1 y 12). La lnea consecutiva verifica cual es el valor constante o cadena que toma Combo1 (selecciona el caso); en caso que sea Enero asigna a la variable Mes el valor 1, si es Febrero le asigna dos y as sucesivamente. La sentencia Case Else ocurre cuando no toma ninguno de los casos particulares, en este caso, si no toma ningn nombre de mes desplega un mensaje de error. La instruccin End Select finaliza la secuencia de Select Case y luego se muestra en el cuadro de texto el valor de la variable mes. Programa #9. Mirar el contenido de una etiqueta: Dentro del evento Command1_click se asignan a las escala del formulario y a la de la imagen la constante vbCharacters, para trabajar con escala de tamao de caracteres de cadena de texto. Luego, se llama al mtodo mover que coloca la etiqueta al principio del control cuadro de imagen (esquina superior izquierda). Despus, se asigna a la propiedad caption de la etiqueta el contenido del cuadro de texto, a continuacin, se asigna a la propiedad Max de la barra de desplazamiento la diferencia entre el ancho de la etiqueta y el ancho del cuadro de imagen mas un carcter, esto se hace para que la barra de desplazamiento se limite a los extremos de la cadena de texto, es decir, que se puede desplazar slo por la cantidad de elementos que existen. La barra de desplazamiento aparece (es visible) si el ancho del cuadro de imagen es menor al ancho del contenido de la etiqueta. El evento HScroll1_Change se llama cada vez que cambia la posicin de la barra de desplazamiento, esto se aprovech para asignarle a la propiedad Left de la etiqueta el valor negativo de la Barra de desplazamiento, es decir, la propiedad Value va de Min (mnimo) a Max (mximo), en este caso de cero hasta (Label1.Width - Picture1.Width + 1), si se le asigna el valor negativo de Value a la propiedad left de la etiqueta, hace que la etiqueta se desplace hacia la izquierda mostrando el contenido de ella.

Programacin con VB 6.0

Tsu . Enzo Costantini

Programa #10. Cyber: Como la propiedad Enabled del control Timer est Activada (True) y adems la propiedad Interval de este control tiene el valor 1000, el programa llama al evento Timer cada segundo, por lo tanto, cada segundo se llaman a las variables que preservan su valor debido a la sentencia (Static), con los siguientes nombres: Segundos (tipo Byte), Minutos (tipo Byte), Horas (tipo Entero), Precio (tipo Doble) y Contador (tipo Entero Largo). Luego se aumenta en una unidad la variable Contador, cada vez que transcurre un segundo se suma una unidad. Este contador nos sirve para calcular el precio del tiempo de uso. Luego, se muestra en la primera etiqueta la hora del sistema (Label1=Time). A continuacin si el valor de los segundo no ha llegado a 59, se suma un segundo, de lo contrario, se reinicia el conteo de los segundos y se suma un minuto. Similarmente si el conteo de minutos no ha llegado a 59, se suma un minuto, de lo contrario se reinicia el conteo de minutos y se suma una hora. En la segunda etiqueta se muestra el contador de horas, minutos y segundos con un formato de dos dgitos cada uno separados por los dos puntos. Se calcula el valor del precio del tiempo de uso, para ello se contabiliza 1 unidad monetaria cada tres segundos, si este valor no ha llegado a 100, la etiqueta del precio muestra 100 como valor mnimo, despus de los 5 minutos (tiempo cuando ya el precio ha alcanzado 100) se suma cada tres segundos una unidad monetaria. El precio se muestra en la tercera etiqueta. Programa #11. Directorio: En este programa cuando se carga el formulario se llama a la secuencia de Dir1_Change, esto se realiz con la intencin que se actualice la lista de archivos al directorio seleccionado por defecto C:\. Despus, si ocurre el evento Change del DriveListBox (cambio de unidad de disco) cambia la propiedad Path de la Lista de Directorio a la unidad elegida. Path es una propiedad que slo est disponible en tiempo de ejecucin y devuelve o establece la ruta de acceso actual, por lo tanto se actualiza la lista de directorio a la unidad seleccionada. Dentro del evento Change de Dir1, la propiedad Pattern del File1 (Lista de Archivos) muestra slo los archivos con la extensin especificada, en este caso los archivos de extensn *.doc (Archivos de Word), luego la lista de archivos actual muestra el directorio seleccionado; es decir, se muestran los archivos de Word de la carpeta. Se recomienda ir a la carpeta Mis Documentos para enlistar los archivos. Tambin puede cambiar la extensin de los archivos, si no elige ningn patrn se mostrarn todos los archivos. Programa #12. Contadores de Variables: En este programa se crearon cuatro variables, la variable pblica de nombre Variable de tipo entero aumenta en uno si se presiona cualquiera de los dos botones de comando, como es una variable pblica conserva su valor despus de presionar cualquiera de los dos botones. Para la seccin del evento clic del primer botn de comando se crean dos variables mas: Variable1, de tipo entero, se declara con la sentencia Dim, por lo tanto cada vez que termina el evento clic del botn de comando ste toma el valor de cero, y como mediante el procedimiento se aumenta en uno la primera etiqueta siempre muestra el valor uno al presionar el primer botn. Variable2, tambin de tipo entero, en este caso se declara con la sentencia Static, por lo tanto una vez terminado el procedimiento el valor conserva su valor final, terminado el primer procedimiento su valor ser uno, luego dos y as sucesivamente tantas veces se presione este botn. Este valor se muestra en la segunda etiqueta. Para la seccin del evento clic del segundo botn de comando se crea otra variable, llamada Variable2. Como est declarada con la sentencia Static, conserva su valor despus de terminado este procedimiento, por lo tanto se aumenta en uno cada vez que presiona un clic. Es muy importante resaltar que a pesar de tener el mismo nombre de una variable de otro procedimiento, es otra variable, ya que est declarada en otro procedimiento.

Programacin con VB 6.0

Tsu . Enzo Costantini

Programa #14. Variables de procedimientos: La secuencia Option Explicit permite llevar el control de las variables, no permite que se utilice una variable no declarada. Public Area As Double, crea una variable de nombre Area de tipo numrico de precisin doble. La secuencia de Private Sub Form_load() se ejecuta cuando se carga el formulario, en este caso cambia su propio caption a Area de un Crculo y suceden varios cambios de propiedades de los controles del formulario. La secuencia del procedimiento de evento Command1_Click se ejecuta cuando se hace clic en el botn de comando, en este caso declara dos variables: La primera de nombre Radio de tipo numrico de precisin doble y la segunda de nombre Area de tipo precisin doble. Luego se coloc una sentencia de control If, en este caso quiere decir: Si el cuadro de texto Text1 es diferente de vaco (tiene algn elemento) y adems es numrico entonces se procede a realizar el clculo de rea, antes asignando a la variable Radio el valor de text1 convertido a numrico de precisin doble. Se muestra en la segunda etiqueta el rea calculada y despus se llama al procedimiento de nombre Display. Este procedimiento tiene como nica secuencia mostrar en la tercera etiqueta una variable de nombre Area; es muy importante destacar que la tercera etiqueta mostr el valor cero, ya que la variable Area a la que se hace referencia ya no es la variable Area calculada en el procedimiento Command1_Click sino la variable publica que no a sufrido ningn cambio desde el transcurso de todo el programa. Programa#15. Procedimiento Function: Como otros detalles de programacin han sido explicados en programas anteriores, slo se proceder a explicar el procedimiento Function utilizado en este programa. La Function de nombre Resto crea un procedimiento que devuelve un valor cuando es llamado. Hay que resaltar que Resto fue declarada con dos variables, se puede notar que est escrito Resto(Dividendo As Integer, Divisor As Integer), de modo que, la Function Resto se puede llamar al escribir Resto(Valor1, Valor2), donde el Valor1 toma el valor del dividendo y Valor2 toma el valor del divisor. En este programa cuando se presiona clic sobre el botn de comando el programa verifica que la entrada de los cuadros de texto sean valores numricos, de ser as se asigna al caption de la etiqueta la funcin Resto con dividendo igual a Text1 y divisor Text2. Programa #19. Sentencia Goto: La primera lnea del botn de comando On Error Goto NombreSubprocedimiento, se aplica cuando puede suceder algn error mientras se ejecutan las instrucciones de un programa, de modo que me gua hasta una seccin del programa (subprocedimiento) que ejecuta una serie de instrucciones cuando se produzca un error, son muy tiles mas que todo para mostrar un mensaje personalizado de error al usuario, o para realizar acciones especficas ante la presencia de un error. En este programa esta sentencia dirige hasta el subprocedimiento ErrorValor que contiene la siguiente instruccin: If Err.Number = 13 Then Esta sentencia verifica el nmero de error (Err.Number) que se ha producido al ejecutar este procedimiento, en este caso el tipo de error tiene el nmero 13 que se refiere al Error (No coinciden los tipos). El nmero de error siempre lo muestra VB al momento de producirse un error en sus mensajes. Por ello, la sentencia On Error Goto puede aplicarse para informar al usuario mediante un Mensaje (MsgBox) la accin que debe tomar para continuar utilizando la aplicacin. En este programa se utiliz para mostrar un mensaje al usuario diciendo que se produjo un error en el valor introducido, borra el contenido de text1 y hace que ste tome el enfoque. Si no hay error en el valor introducido, se llama a la funcin DivisibleEntre2_3_4 con el valor introducido en Text1, al llamar a la funcin sta verifica si el valor introducido es divisible entre 2, en caso contrario dirige a la secuencia de la funcin al subprocedimiento NoEsDivisible, igual para el caso de divisible entre 3 y 4, una vez terminada esta secuencia se cambia el valor de la funcin Divisible a Verdadero (hay que notar que en caso de que fuera falso el procedimiento ya anteriormente ha saltado este paso), luego se coloc la sentencia Exit Function para que el

Programacin con VB 6.0

Tsu . Enzo Costantini

programa finalice la secuencia, el subprocedimiento NoEsDivisible cambia el valor de la funcin a Falso. Programa #24. Men Emergente: El primer procedimiento llamada es el evento Picture1_MouseUp que ocurre cuando libera algn botn del mouse sobre el control Picture1 (Cuadro de imagen). En este la instruccin If button=2 Then, ocurre cuando persona el botn secundario del mouse, si es as se desplega el men emergente mediante la instruccin: PopupMenu mnuDibujar, Popupmenu realiza el llamado y al lado est el nombre del men que se quiere desplegar. Las dems instrucciones ya han sido vistas en la explicacin del control cuadro de imagen. Programa #26. Programa MDI: Este programa utiliza las instrucciones mas comunes para programas con formulario MDI. El formulario hijo (Form1) contiene dentro de s la sentencia ScaleHeight y ScaleWidth para adaptar el ancho y el alto al tamao del formulario, se encuentra dentro del procedimiento de evento Form_Resize, para que cada vez que cambie de tamao el formulario, el control Picture1 cambie su tamao tambin adaptndose al tamao del formulario. Dentro del procedimiento de evento Form_Activate se encuentra el iniciador de conteo de documentos abiertos, Contador toma el valor 1, es importante resaltar que se coloc dentro del procedimiento de evento Form_Activate ya que no se permite colocar valores a variables dentro del procedimiento Form_Load. Cuando se hace clic sobre el primer botn de comando se crea una nueva instancia de Form1, se agrega una unidad al contador y se muestra el formulario, se cambia el Caption de acuerdo al nmero de documento. Cuando se presiona clic sobre el segundo botn de comando, el slo ejecuta una lnea de instruccin que es: ActiveForm.Picture1.Circle (500, 500), 300, , , , 2 / 3 ActiveForm, busca el formulario activo, como todos los formularios abiertos son instancias de Form1, todos tienen el control Picture1, por ello en l se dibuja una elipse, es decir, en el control Picture1 del formulario activo. Con respecto al tercer botn de comando, tambin utiliza la sentencia ActiveForm, pero en este caso para borrar el contenido de su cuadro de imagen. Programa #28. Extensin del Programa #7 Coordenadas: El evento clic del botn cmdNuevo, crea un archivo nuevo si no existe, si el archivo existe se abre graficando sus coordenadas en el cuadro de imagen (Monitor). La variable Nuevo es una cadena de texto que el usuario introduce para dar un nombre al archivo, mediante la conversin a cadena de CStr("C:\" + Nuevo + ".dat") se completa el nombre del archivo, es decir, se agrega la ubicacin donde se guardar C:\, el nombre del archivo introducido por el usuario y adems la extensn .dat. Luego se abre el fichero con tipo de acceso aleatorio con un tamao de registro de 4 bytes (X es Integer y adems Y es Integer, por lo tanto como se vio en la seccin de tipos de datos, stos ocupan slo dos bytes cada uno por lo tanto el tamao de cada registro es de 4 bytes). Si el archivo tiene registros grabados (If LOF(1) > 0 Then) el programa procede a enlistar los puntos en el ListBox y adems los grafica en el cuadro de imagen (Monitor), los dems detalles ya han sido explicados en otros programas. El evento clic del botn cmdAbrir tiene las siguientes secuencias: Si se produce un error se dirige a la parte inferior del procedimiento llamado Corregir, sino se declara una variable de cadena llamada Archivo, se establece la propiedad Filter del CommonDialog1 para leer slo los archivos de extensin DAT, se muestra el cuadro de dilogo Abrir para buscar un archivo grabado para luego asignar a la variable Archivo el archivo elegido (si se presiona la tecla cancelar se produce un error) posteriormente se procede a abrir el fichero tipo aleatorio, se leen los datos (Get #1, Registro, Punto), se enlista y se grafica en el monitor el punto. El evento clic del botn cerrar, cierra el fichero, borra el contenido de la lista y del cuadro de imagen, este boton se debe presionar si se desea abrir un fichero nuevo, si abre un fichero cuando existe otro abierto se produce un error.

Programacin con VB 6.0

Tsu . Enzo Costantini

Para el caso del cmdIngresar las cuatro primeras lneas se han explicado, luego se asigna a registro un nmero mayor en uno del nmero de registros que existen (Registro = LOF(1)/4+1), el nmero de registros que existen viene dado por LOF(1)/4, que es el tamao del fichero entre el tamao de cada registro. Se escribe en el fichero los datos del punto, luego borra el contenido de los cuadros de texto y hace que tome el enfoque el primer cuadro de texto (txtX). El comando Eliminar crea una variable nueva que guarda el nmero del registro que se va a eliminar (RegEliminar=lstPuntos.ListIndex + 1) ya que las listas comienzan a enumerar desde cero, abre el archivo provisional que grabar los registros que no sern borrados. Luego se utiliza el bucle For para pasar los registros desde el fichero original hasta el fichero provisional, es muy importante notar que para para los registros que se encuentran antes el traslado es directo: Get #1, Registro, Punto Put #2, Registro, Punto) Pero a partir del registro que ser borrado se utilizan las siguientes instrucciones Get #1, Registro + 1, Punto Put #2, Registro, Punto) Esto se hace con la intencin que grabe el registro superior en uno al registro menor en uno del fichero provisional, es decir que si se va a eliminar el tercer registro, pase el cuarto del fichero original al tercero del provisional, as se desplaza el registro eliminado. La sentencia Close #1 cierra el fichero original, luego Kill(Archivo) borra del disco duro ste fichero. Los dems comandos que se encuentran en este procedimiento, ya se han visto.

Programacin con VB 6.0

Tsu . Enzo Costantini

Indice:
Contenido: VISUAL BASIC 1. EL ENTORNO DE DESARROLLO DE VB 6.0 2. PROPIEDADES, MTODOS, EVENTOS Y CONSTANTES. 3. EL EXAMINADOR DE OBJETOS 4. LOS CONTROLES: 5. VARIABLES, TIPOS DE DATOS Y CONSTANTES: 6. MATRICES: 7. OPERADORES LGICOS, OPERADORES MATEMTICOS Y FUNCIONES MATEMTICAS: 8. PROCEDIMIENTOS Y FUNCIONES: 9. SENTENCIAS DE CONTROL 10. CUADROS DE DILOGO 11. LOS MENS 12. COLORES EN VISUAL BASIC 13. EL OBJETO COLLECTION 14. PROGRAMAS DE MLTIPLES DOCUMENTOS (FORMULARIOS MDI) 15. TRABAJO CON FICHEROS 16. IMPRIMIR TEXTO E IMGENES 17. EL PORTAPAPELES 18. BASE DE DATOS 19. SECCION DETALLADA DE PROGRAMAS

Pgina
2 2 7 9 10 34 40 42 44 47 53 56 60 62 64 67 75 77 81 86