Curso Visual Basic
Curso Visual Basic
INTRODUCCION El lenguaje de programacin de alto nivel BASIC (Beginner's All purpose Symbolic Instruction Code) naci en el ao 1964 como una herramienta destinada a principiantes, buscando una forma sencilla de realizar programas, empleando un lenguaje casi igual al usado en la vida ordinaria (en ingls), y con instrucciones muy sencillas y escasas. Teniendo en cuenta el ao de su nacimiento, este lenguaje cubra casi todas las necesidades para la ejecucin de programas. Tngase en cuenta que las mquinas existentes en aquella poca estaban estrenando los transistores como elementos de conmutacin, los ciclos de trabajo llegaban a la impensable cifra de 10.000 por segundo y la memoria no pasaba de unos pocos ks en toroides de ferrita. La evolucin del BASIC por los aos 70 fue escasa, dado el auge que tomaron en aquella poca lenguajes de alto nivel como el Fortran y el Cobol. En 1978 se defini una norma para unificar los BASIC existentes crendose la normativa BASIC STANDARD. Con la aparicin de los primeros ordenadores personales (PC) para el ao 1981, dedicados comercialmente al usuario particular, el lenguaje BASIC resurgi como lenguaje de programacin pensado para principiantes, y muchos de estos pequeos ordenadores domsticos lo usaban como nico sistema operativo (Sinclair, Spectrum, Amstrad). Con la popularizacin de la PC, salieron varias versiones del BASIC que funcionaban en este tipo de ordenadores (versi BASICA, de IBM y GW-BASIC, de Microsoft), pero todas estas versiones del BASIC no hicieron otra cosa que terminar de rematar este lenguaje. Los programadores profesionales no llegaron a utilizarlo, habida cuenta de las desventajas de este lenguaje respecto a otras herramientas como Pascal, C, Clipper. El BASIC con estas versiones para PC lleg incluso a perder crdito entre los profesionales de la informtica. Las razones para ello eran obvias: * * * * * * No No No No No Un era un lenguaje estructurado. existan herramientas de compilacin fiables. dispona de herramientas de intercambio de informacin. tena libreras. se poda acceder al interior de la mquina a bajo nivel como el lenguaje C. largo etctera de desventajas respecto a otros lenguajes de programacin.
Tal fue ese abandono por parte de los programadores, que la aparicin del QuickBASIC de Microsoft (para finales de los 80), una versin ya potente del BASIC, que correga casi todos los defectos de las versiones, pas prcticamente inadvertida, a no ser porque las ltimas versiones del sistema operativo MS-DOS incluan una versin de QuickBASIC algo recortada llamada QBasic (era interpretado, no poda compilar a .exe) como un producto mas dentro de la amplia gama de archivos ejecutables que acompaan al sistema operativo, y aprovecha de l el editor de textos (cada vez que se llamaba al EDIT.COM, estamos corriendo el editor del QBasic). Este compilador del popular BASIC (QuickBASIC), ya es un lenguaje estructurado, lo que permite crear programas modularmente, mediante subrutinas y mdulos, capaz de crear programas ya competitivos con otros lenguajes de alto nivel. Sin embargo llegaba tarde, pues los entornos MSDOS estaban ya superados por el entorno grfico de Windows. Sin embargo algo haba en el BASIC que tentaba a superarse: Su gran sencillez de manejo.
Si a esto se le aade el entorno grfico Windows, el aprovechamiento al mximo de las posibilidades de Windows en cuanto a intercambio de informacin, de sus libreras, de sus drivers y controladores, manejo de bases de datos, etc. el producto resultante puede ser algo que satisfaga todas las necesidades de programacin en el entorno Windows. La suma de todas estas cosas es: Visual Basic. Esta herramienta conserva del BASIC de los aos 80 nicamente su nombre y su sencillez, y tras su lanzamiento al mercado (para Windows 3.0 en el 1991), la aceptacin a nivel profesional hizo borrar por fin el "mal nombre" asociado a la palabra BASIC. Actualmente se est comercializando la versin 6.0 de este producto. Desde su salida al mercado, cada versin supera y mejora la anterior, siempre. Dados los buenos resultados a nivel profesional de este producto, y el apoyo prestado por el fabricante para la formacin de programadores, Visual Basic se ha convertido en la primera herramienta de desarrollo de aplicaciones en entorno Windows, asi como lo oye, la primera. Resumamos las distintas versiones de Visual Basic. Cuando sali Visual Basic 1.0, Bill Gates los describi como "algo maravilloso..." y "que cambiara la forma en que la gente utilizaba Windows". Visual Basic 2.0 era ms rpido y ms sencillo de utilizar. Visual Basic 3.0 incopor formas sencillas y potente para acceder a las bases de datos ms potentes. Visual Basic 4.0 trajo la programacin a 32 bits en el entorno Windows 95. Aunque hubo una versin de Visual Basic 4.0 de 16 bits para Windows 3.x. Pero que pasa, hasta ahora Visual Basic no compilaba los archivos .exe a cdigo navito o cdigo mquina, como C y C++. Los programas compilados a cdigo nativo (como C++) son muy rpidos, mucho ms rpidos que los compilados en Visual Basic. Esas versiones de Visual Basic(de la 1 a la 4) compilaban a cdigo-p. Lo que significaba la necesitad de realizar una llamada al motor en tiempo de ejecucin, retrasando el tiempo de ejecucin del programa. Cmo funciona el cdigo-p? Ese cdigo funciona mediante la compilacin de un programa en un formato de cdigo intermedio que es mucho ms compacto (pequeo) que el cdigo de las mquinas 80x86 de Intel. Y para que se cre el codigo-p, si era lento e ineficiente? Microsoft cre el cdigo-p originalmente como una tecnologa de compresin de cdigo. Microsoft se dio cuenta de que los desarrolladores (programadores) de programas bajo MS-DOS y Windows a menudo respondan a muchos aspectos de la demanda del consumidor, mientras que al mismo tiempo se encontraban presionados por la limitacin de la cantidad de memoria que consumia las aplicaciones. Por eso, para 1992, Microsoft habilit el cdigo-p como una caracterstica para su compilador de C. En promedio, el cdigo-p, reduce el tamao del programa ejecutable (.exe) en un 40%. Si bien el cdigo-p relentiza algo la ejecucin del programa, el la mayora de los casos, esto pasa practicamente desapercibido. Finalmente, Visual Basic 5, y tambien la version 6, aade la capacidad de compilar a cdigo nativo, aunque el cdigo compilado con C++ es siempre un poquitito ms rpido. Adems, ahora posee tambin un generador de codigo para utiilzarlo en el Pentium Pro. Las carasterstas de Visual Basic 6, sinceramente son casi las mismas que el Visual Basic 5. Todava no he leido mucho sobre el Visual Basic 6. Tambien es posible con VB5 y la version 6, crear controles ActiveX. Antes slo era posible crear controles ActiveX con C++. Pero, es obligado decir sin embargo, que sigue siendo BASIC. No se pueden comparar sus prestaciones con otros lenguajes cuando deseamos llegar al fondo de la mquina y controlar uno a uno sus registros. Si es ese el fin perseguido con VB y si es necesario llegar a esas precisiones ser necesario utilizar otro lenguaje que permita bajar el nivel de programacin, como Visual C++, o realizar libreras (DLL) que lo hagan. En la mayor parte de las aplicaciones, las herramientas aportadas por VB son mas que suficiente para lograr un programa fcil de realizar y de altas prestaciones.
Caractersticas Generales de Visual Basic Visual Basic es una herramienta de diseo de aplicaciones para Windows, en la que estas se desarrollan en una gran parte a partir del diseo de una interfaz grfica. En una aplicacin Visual Basic, el programa est formado por una parte de cdigo puro, y otras partes asociadas a los objetos que forman la interfaz grfica. Es por tanto un trmino medio entre la programacin tradicional, formada por una sucesin lineal de cdigo estructurado, y la programacin orientada a objetos. Combina ambas tendencias. Ya que no podemos decir que VB pertenezca por completo a uno de esos dos tipos de programacin, debemos inventar una palabra que la defina : PROGRAMACION VISUAL. La creacin de un programa bajo Visual Basic lleva los siguientes pasos: * Creacin de un interfaz de usuario: Este interfaz ser la principal va de comunicacin hombre-mquina, tanto para salida de datos como para entrada. Ser necesario partir de una ventana - Formulario - a la que le iremos aadiendo los controles necesarios. * Definicin de las propiedades de los controles - Objetos: que hayamos colocado en ese formulario. Estas propiedades determinarn la forma esttica de los controles, es decir, como son los controles y para qu sirven. * Generacin del cdigo asociado a los eventos que ocurran a estos objetos. A la respuesta a estos eventos (click, doble click, una tecla pulsada, etc.) le llamamos Procedimiento, y deber generarse de acuerdo a las necesidades del programa. * Generacin del cdigo del programa. Un programa puede hacerse solamente con la programacin de los distintos procedimientos que acompaan a cada objeto. Sin embargo, VB ofrece la posibilidad de establecer un cdigo de programa separado de estos eventos. Este cdigo puede introducirse en unos bloques llamados Mdulos, en otros bloques llamados Funciones, y otros llamados Procedimientos. Estos Procedimientos no responden a un evento acaecido a un objeto, sino que responden a un evento producido durante la ejecucin del programa. No es necesario entender de momento lo anterior. Visual Basic introduce un concepto nuevo de programacin, y es necesario cambiar hasta el argot del programador. Posiblemente se le habrn acumulado demasiados trminos de una sola vez. Es normal. A poco que siga leyendo ver las cosas mas claras cuando se explique una por una.
CAPITULO 1_1
Aqu se desarrollara un formulario para que responda a una pulsacin del ratn. Pulse dos veces(doble Click) con el ratn sobre cualquier parte en blanco(que no tenga nada) del Form1. En esta imagen se ve la ventana Cdigo(la tuya puede variar dependiendo de como la configuraste):
Nota: Nuestros graficos estan en ingles, dado que nuestro colaborador tiene instalada en su Pc el Visual Basic en Ingles. Seguramente tu VB estara en espaol (como el mio)...
Cuando pulsas dos veces sobre el formulario se abre sta ventana. La tecla F7 har el mismo efecto. Como habrs notado, en la parte superior hay dos cuadros de lista combinado (ComboBox). Si pulsa con el ratn sobre la fecha del cuadro de la derecha, se desplegar una lista con todos los eventos que puede reconocer, como se muestra en la figura siguiente:
Un formulario puede reconocer 31 eventos, de modo que este cuadro contiene 31 elementos. Si despliega el cuadro de la izquierda, aparecer una lista con todos los controles que tiene el formulario. Como todava no hemos colocado cuadros de texto, botones de orden, u otro control, no hay ningn objeto, excepto el propio formulario (esto es si usted esta siguiendo este manual). En la primera imagen, se puede ver el siguiente cdigo: Private Sub Form_Load End Sub Este cdigo es un ejemplo de una plantilla de un procedimiento de evento. Como cualquier plantilla, esta proporciona una base con la que trabajar. El evento Form_Load (al cargar formulario) se llama siempre que VB recupera un formulario. Este se utiliza a menudo para establecer las propiedades iniciales del formulario a travs de cdigo. Por ahora, queremos introducir el cdigo que indique a VB como responder a una pulsacin del ratn. Para ello, hay que mostrar la plantilla para el procedimiendo Form_Click. Sitese sobre el cuadro combinado de la derecha y pulse la flecha hacia abajo. Desplcese a travs del cuadro hasta que pueda ver el elemento Click. Si lo pulsa con el ratn, VB realizar lo siguiente: 1. Proporciona una nueva plantilla para un procedimiento de evento, para el procedimiendo de evento Click
2. Sita el cursor en la lnea en blanco inmediatamente anterior a la de End Sub de la plantilla del procedimiendo Click. Si el cursor no se presenta en la lnea en blanco antes de End Sub de la plantilla, sitelo ah desplazndose a travs de la ventana Cdigo y pulsado con el ratn en la lnea en blanco. Pulse la tecla Tab o pulsa la barra espaciadora y escribe lo siquiente: Print "Has pulsado el ratn una vez". Escrbelo tal y como est, incluyendo las comillas(" "). Si pulsas F5 se ejecuta la aplicacin, tan pronto como aparezca el formulario, mueve el ratn hasta que el puntero quede dentro del formulario y pulsa una vez el botn izquierdo del ratn. Se ver: "Has pulsado el ratn una vez". Esto aparece escrito dentro del formulario. Como probablemente habr adivinado, la orden Print enva el texto que se encuentra entre comillas(" ") al formulario. La posicin por omisin del texto es la esquina superior izquierda de la pantalla. Mas procedimientos para eventos generales En general, no importa el evento que quiere que responda un formulario, el cdigo de un procedimiento de evento para un formulario de VB empieza con algo parecido a esto: Private Sub Form_NombreDelEvento() End Sub La tabla siguiente muestra algunos ejemplos de los procedimientos de evento y que significan. Procedimiento de evento... Private Sub Form_Click() Private Sub Form_DblClick() Private Sub Form_GotFocus() Hace que el formulario... Responda a una pulsacin del botn izquierdo del ratn Responde a dos pulsaciones del botn izquierdo del ratn Responde cuando ste (el formulario) recibe el enfoque (esta selecionado o activo) Responde cuando ste (el formulario) pierde el enfoque (no esta seleccionado o activo)
Supervisin de eventos mltiples Visual Basic siempre est supervisando los eventos que ocurren en la computadora, pero a menos que haya escrito cdigo para el evento, no ocurrir nada. Supongamos que desea escribir cdigo para el evento DblClick (al pulsar dos veces). Para ello abra la ventana Cdigo (con F7 o pulsando doble click en el formulario). Ahora situamos el ratn sobre la flecha que despliega los eventos relacionados al formulario (la de la derecha) y buscamos el evento DblClick. Por cierto, se observa que el procedimiento para el evento Click ahora se encuentra en negrita (Bold); as es como VB indica que ya exite un procedimiento para un evento determinado. Se aade una plantilla nueva para el evento DblClick. Igual que la de el evento Click. Por ejemplo, si introduce: Print "Dije una pulsacin, no dos!!". En la ventana Cdigo: Private Sub Form_DblClick() Print "Dije una pulsacin, no dos!!!" End Sub
Ahora ejecute la aplicacin (F5) y dele un click primero al ratn. Ver el primer mensaje de. Ahora dele doble click con el ratn. Ver el nuevo mensaje que acabamos de escribir. Observe que ambas lneas de texto aparecen en la pantalla. Esto es debido a que si esta esperando una doble pulsacin del ratn. VB tambin detecta la primera pulsacin y activa el cdigo asociado a ese evento. Si todo lo que desea es borrar la pantalla antes de mostrar el segundo mensaje, slo escriba la orden Cls en la primera lnea del procedimiento DblClick, que borrar cualquier texto o grfico del formulario. Private Sub Form_DblClick() Cls Print "Dije una pulsacin, no dos!!!" End Sub Las rdenes Print y Cls son ejemplos de lo que VB denomina mtodos. En trminos generales se puede decir, que los mtodos son sentencias de VB que afectan a lo que hacen los objetos de VB (a diferencia de las propiedades, que afectan a como son) Puede utilizar otra sintaxis para las rdenes Print y Cls. Esta sintaxis se utiliza para otros objetos de VB, y estos siguen el formato general Objeto.Mtodo. Esta sintaxis utiliza el nombre del objeto, seguido de un punto y del nombre del mtodo, y seguido (si es aplicable) de lo que debera de hacer: NombreObjeto.Mtodo Lo que hacer El nombre por omisin del primer formulario creado en un proyecto nuevo en VB es Form1, por tanto el procedimiento DblClick en esta sintaxis se escribira asi: Private Sub Form_DblClick() Form1.Cls Form1.Print "Dije una pulsacin, no dos!!!" End Sub A menudo ser necesario utilizar esta versin extendida cuando los proyectos utilicen ms de un formulario, debido a que esta versin permite a VB conocer a que formulario hay que aplicarle el mtodo. A muchos programadores (como a mi) les gusta utilizar el nombre de objeto reservado: Me. Este nombre de objeto siempre se refiere a cualquier formulario que este activo(que tenga el enfoque). De esta forma, una lnea de cdigo como sta: Me.Cls siempre borrar la pantalla en el formulario en el que el cdigo se est utilizando. Normalmente en este tutorial se utilizar el nombre objeto Me.
El primer objeto Visual Basic con que nos encontramos es el FORMULARIO. De hecho, cada vez que iniciamos Visual Basic (VB) nos presenta en pantalla un nuevo formulario, que tiene por defecto el nombre de Form1. El Formulario es un objeto, que sirve de soporte de otros objetos. El nombre de FORMULARIO lo toma precisamente porque, al igual que un formulario de papel contiene textos escritos, lugares donde podemos escribir, figuras, cajas donde podemos elegir una u otra opcin, etc., en este cuadro grfico que llamamos formulario, podemos introducir textos escritos, lugares donde podemos escribir, figuras, cajas donde podemos elegir una u otra opcin ...
En realidad un formulario es lo que normalmente conocemos por VENTANA. El nombre de formulario le viene muy bien cuando ese formulario es una ventana donde vamos a introducir datos alfanumricos. Cuando en vez de introducir datos, lo que tenemos es, por ejemplo, una ventana donde se reproducen exactamente los controles de operacin de una mquina, parece en principio que sera mas correcto el nombre de "ventana". De alguna forma hay que llamarlo, y esa forma es FORMULARIO. Posiblemente a lo largo de estos apuntes nos referiremos al formulario con el nombre de ventana, o incluso, pantalla. Procuraremos usar el nombre apropiado: FORMULARIO. Forma inicial del formulario:
Como cualquier objeto Visual Basic, un formulario tiene propiedades y procedimientos. Propiedades: Puedes cambiar sus propiedades en la Ventana Propiedades de Visual Basic.
Aqui esta las propiedades: Name (Nombre): Define al objeto durante la ejecucin del programa. Se introduce en tiempo de diseo y no se puede variar durante la ejecucin. Nombre por defecto: Form1 (Form2 y sucesivos) Este nombre por defecto debe cambiarse, (debera cambiarse por norma en el momento de introducir el formulario), ya que de no hacerlo corremos el riesgo de borrar el cdigo existente de otro formulario del mismo nombre en el momento de guardar la aplicacin. El prefijo que sugiere Microsoft para nombrar los formulario es: frm. O, frmNombreDelFormulario. Por ejemplo, si quiere que un formulario se llame: Editor de Texto, es la propiedad Name escriba: frmEditorDeTexto. Este prefijo hace que sea ms fcil de leer el programa y ms fcil para depurar. Con esto sabes que todo lo que tenga como prefijo: frm Se hace referencia a un formulario. Pero no est obligado a utilizar esto si no quiere, pero lo recomiendo. Caption (Ttulo): Es el texto que aparecer en la barra de Ttulo cada vez que aparezca en pantalla este formulario (como vimos en el cap. 1.1) No tiene otra funcin dentro del programa. El programa no accede a este formulario por el ttulo, sino por el nombre. Puede cambiarse en tiempo de ejecucin.
NOTA.- No confundir Nombre (Name) con Ttulo (Caption)
Control Box Control menos del Formulario: Valor por defecto : True Propiedad booleana que admite los valores de true (verdadero) o False (Falso). Si esta propiedad es True, aparecer en la esquina superior izquierda el "menos" para desplegar el men de control de este formulario. Si esta propiedad se pone como False, no existir dicho "menos" y por tanto no se puede desplegar dicho men. MinButton MaxButton: Valor por defecto: True Botones de minimizar y maximizar este formulario. Son igualmente propiedades booleanas, que admiten el valor True o False. Deben configurarse de una u otra forma, dependiendo si se quiere minimizar/ maximizar este formulario durante la ejecucin. Nota. En los formularios MDI child, es necesario poner a true las propiedades ControlBox, MinButton y MaxButton para poder maximizar el formulario hijo. De no ponerlas a true, s se pretende maximizar el formulario hijo, (Propiedad WindowState=2) el formulario no aparece.(hablar de los formulario MDI en captulos ms avanzados)
BorderStyle: Tipo de borde Define el tipo de borde que tendr el formulario durante la ejecucin. No se puede cambiar en tiempo de ejecucin, Admite los siguientes valores: 0 - None El formulario no tiene borde alrededor 1 - Fixed Single El formulario tendr un borde fino, y no podr cambiarse su tamao durante el tiempo de ejecucin. Con este valor, el formulario puede tener un men de control, barra de ttulo y botones de maximizar y minimizar. Solo podr cambiarse de tamao utilizando estos botones. 2 - Sizable El formulario tendr borde grueso, y se podr cambiar su tamao en tiempo de ejecucin mediante los botones de maximizar y minimizar, y mediante el arrastre de uno de los bordes con el ratn. 3 - Fixed Dialog El formulario tendr borde grueso, y no se podr redimensionar durante la ejecucin. No puede tener los botones de maximizar ni minimizar. 4 - Fixed ToolWindow En las versiones de 16 bits de Windows y Windows NT 3.51 y anteriores se comporta como Fixed Single. No puede cambiar de tamao. En Windows 95 muestra el botn Cerrar, y el texto de la barra de titulo aparece con un tamao de fuente reducido. El formulario no aparece en la barra de tareas de W95. 5 - Sizable ToolWindow En las versiones de 16 bits se comporta como Sizable. En W95 muestra el botn Cerrar y el texto de la barra de titulo aparece con un tamao de fuente reducido. El formulario no aparece en la barra de tareas de W95. Valor por defecto: 2 . Sizable Nota: Al cambiar a determinados valores, las propiedades MaxButton y MinButton se ponen a False. Pueden cambiarse a True posteriormente. Appearance Apariencia Valor por defecto: 3D Admite los valores 0 (=Flat, plano) y 1 (=3D) Si tiene el valor 1 (3D), el formulario aparecer con cierto efecto tridimensional, y los controles que le introduzcamos a este formulario aparecern como esculpidos dentro de l. Con valor 0 (Flat) en esta propiedad, el formulario aparecer durante la ejecucin como una superficie plana. El color de fondo se ve afectado al cambiar esta propiedad. Si se cambia a 3D, el fondo (Backcolor) toma el color definido en Windows en el Panel de Control. Si se cambia a Flat, toma el color blanco. Autoredraw Valor por defecto: False. Propiedad booleana. Esta propiedad, estando en True, permite actualizar el contenido del formulario y de sus controles incluso cuando no estn visibles. Imaginemos que en este formulario existe un texto, una etiqueta (Label) o caja de texto (Text Box) cuyo texto se haya cambiado, bien por programa, bien por una entrada, mientras este formulario no estaba visible. Lo mismo podemos decir de las propiedades de cualquier otro control. Si esta propiedad Autoredraw est en False, al hacer visible este formulario, aparecer igual que cuando se ocult. Si esta propiedad est en True, aparecer actualizado. Backcolor Color del fondo Establece el color del fondo del formulario. Puede cambiarse en tiempo de ejecucin. Valor por defecto: El establecido en el Panel de Control de Windows. ClipControls Valor por defecto: False Propiedad Booleana. Establece si un evento Paint vuelve a dibujar el objeto entero (True) o si solamente dibujan las partes que han sufrido cambios (False) DrawMode Establece un valor que determina el aspecto de la salida de un mtodo grfico o el aspecto de un control Shape o Line. Ver mas adelante los efectos de esta propiedad. DrawStile Valor por defecto : 0 Establece el estilo de lnea de la salida de mtodos grficos: Valores: 0 - Lnea continua 1 - Rayas 2 - Puntos 3 - Raya-Punto 4 - Raya - Punto - Punto 5 - Transparente 6 - Continuo interior.
DrawWidth Valor por defecto: 1 Establece el ancho de una lnea dibujada. El valor debe expresarse en pixeles. Enabled Activado Valor por defecto: True Propiedad booleana. Si est en True, el formulario est activado y se puede interactuar con l. Si est en False, se desactiva el formulario, impidiendo de esta forma, que se pueda trabajar con l. ForeColor Valor por defecto: Negro Establece el color del primer plano del formulario. Es el color que tendrn las letras si escribimos en l, o los dibujos, si lo que hacemos es dibujar. En tiempo de diseo, determina el color de la rejilla. FillStyle Tipo de relleno Valor por defecto: 2 Establece el modo de rellenar controles Shape, o figuras (crculos o cuadrados) creados con los mtodos grficos Circle y Line. Valores: 0 - Continuo 1 - Transparente 2 - Lnea Horizontal 3 - Lnea Vertical 4 - Diagonal hacia arriba 5 - Diagonal hacia abajo 6 - Cruzado 7 - Diagonal cruzada FillColor Color de relleno Especifica el color del relleno contemplado en FillStyle. Font Tipo de letra Valor por defecto: El determinado en la personalizacin. Especifica el tipo y tamao de la letra que se usar en el formulario. Al seleccionar esta propiedad en la ventana de propiedades, aparece un cuadro de dialogo donde se eligen ambos parmetros. Cuando introduzca nuevos controles en el Formulario, la propiedad Font de estos controles tomar el valor que tenga esta propiedad en el Formulario. Puede servirle este pequeo truco para utilizar en todos los controles una determinada fuente sin tener que teclearla para cada control. FontTranparent Texto Transparente Valor por defecto: True Establece si el texto o grfico de fondo del formulario se muestra (True) o no se muestra entre los caracteres de texto escritos en el propio formulario. FontSize Tamao de letra Establece el tamao de la letra. Esta propiedad, que puede variarse en tiempo de ejecucin, vara solamente el tamao, y no el tipo de letra. El tamao debe expresarse en puntos. Mximo, 2160 puntos. FontBold, FontItalic, FontStrikethru, FontUnderline Permiten, en tiempo de ejecucin, cambiar un texto a negrita, cursiva, tachado y subrayado. Son propiedades booleanas True / False Height Altura Valor por defecto: No existe. Define la altura del formulario. El valor de esta propiedad no se introduce normalmente como un dato numrico, sino que toma el valor automticamente, dependiendo de las dimensiones del formulario durante el tiempo de diseo. Puede cambiarse durante el tiempo de ejecucin. HelpContextID Valor por defecto: 0 Establece un nmero de contexto asociado para este formulario. Este nmero se aplica para determinar la ayuda interactiva asociada a este formulario. Puede tomar los siguientes valores : 0 - No se especifica nmero de contexto >0 Un entero que especifique un contexto vlido. Icon Icono Esta propiedad define el icono que va a representar a este formulario cuando est minimizado. Si el formulario es el formulario padre o formulario de inicio de una aplicacin, este icono es el que toma el Asistente de Instalacin para colocarlo como icono de apertura del programa en el grupo de programas Windows correspondiente. Como valor de esta propiedad se le puede asignar directamente el icono o el nombre de un archivo (con su path correspondiente)
que lo contiene, hacindolo directamente sobre la caja de propiedades. Valor por defecto: el icono que se le haya programado en la personalizacin. KeyPreview Valor por defecto: False Propiedad Booleana. Cuando un formulario tiene dentro de s varios controles, uno de ellos es el que est activo. En estas condiciones, si se pulsa una tecla, esa pulsacin la recibe en primer lugar el control que est activo, y si ste no la procesa, pasa esa pulsacin al formulario. Para hacer que esa pulsacin pase directamente al formulario, debe ponerse esta propiedad en True. Left Borde Izquierdo Valor por defecto: No existe Indica la posicin del borde izquierdo del formulario. Normalmente no se introduce como valor numrico, sino que lo toma automticamente de la posicin que tenga el formulario en el tiempo de diseo. Puede cambiarse en tiempo de ejecucin, para mover el formulario. LinkMode Valor por defecto: 0 Permite que una aplicacin destino inicie una conversacin DDE con el formulario (origen de datos). Puede tomar los siguiente valores: 0 - No hay interaccin DDE 1 - Source. Indica que este Formulario es origen de una comunicacin DDE. El dato que se va a traspasar en esa comunicacin DDE estar en un TextBox, en un Label o en un PictureBox de este Formulario. LinkTopic Establece el tema al que este formulario va a responder a una conversacin DDE, cuando funciona como origen. Es por este tema por el que se debe llamar a este formulario cuando acta de origen en una conversacin DDE. MDIChild Valor por defecto: False Establece que este formulario es un formulario Hijo dentro de un formulario MDI. No se puede cambiar en tiempo de ejecucin. Es una propiedad booleana True = es formulario hijo False =No lo es. MouseIcon Valor por defecto: ninguno Establece un icono personalizado para el puntero del ratn cuando est encima de este Formulario. Este icono puede ser un bit-map de los existentes en el directorio Icons de Visual Basic o cualquiera que tengamos. Si se pone 99 como valor de la propiedad MousePointer (siguiente), cada vez que el puntero del ratn pase por este Formulario, cambiar su forma y adoptar la del icono elegido. MousePointer Valor por defecto: flecha Determina la forma del puntero del ratn cuando se coloca encima del formulario. Puede elegirse uno de los punteros preestablecidos (15 en total) o el personalizado visto en la propiedad anterior. Para elegir ese icono personalizado, debemos poner en esta propiedad el valor 99. Picture Grfico Valor por defecto: No existe Mediante esta propiedad podemos poner un grfico como fondo del formulario. El grfico puede ser un bitmap o un archivo .ICO(en VB5 y VB6 puede utilizar los formatos .jpg y .gif) ScaleHeight, ScaleWidth, ScaleMode: Indican la unidad de medida de dimensin de altura y anchura del Formulario. ScaleMode indica en qu unidades de medida se van a medir esas dimensiones. Acepta Twips (1), Point(2), Pixel (3), Character (4), Pulgadas (Inch) (5), Milmetros (6), Centmetros (7). Si colocamos la propiedad ScaleMode en cualquiera de estos valores, las propiedades ScaleHeight y ScaleWidth nos vendrn dadas automticamente dependiendo del ancho del Formulario, y no se extrae si encuentra para estas propiedades valores tan peregrinos como 4815 y 7423. Al haber elegido la unidad de medida, los valores de ancho (ScaleWidth) y alto (ScaleHeight) sern los que tengan que ser, medidos en la unidad que hemos elegido. Podemos elegir una cifra para el ancho y el alto del Formulario de forma que podamos controlar mejor las distintas posiciones que van a ocupar en l los controles, los textos o los dibujos. Podemos poner, por ejemplo, que el Formulario mida 400 de ancho (ScaleWidth = 400) y 300 de alto (ScaleHeight = 300) forzndole estas propiedades, bien en tiempo de diseo en la caja de propiedades, o en tiempo de ejecucin mediante cdigo. Entonces sabemos que el formulario, independientemente de las dimensiones fsicas que tenga sobre la pantalla, medir 400 de ancho
y 300 de alto, y si en estas condiciones queremos colocar un control o un dibujo justo en el medio del Formulario, sabemos que tenemos que colocarle en las coordenadas 200, 150. Que unidad de medida estaremos utilizando entonces en el Formulario ? Unas definidas por el usuario (distintas para el ancho y el alto) que sern las necesarias para que el Formulario mida de ancho lo que le hayamos puesto en la propiedad ScaleWidth y de alto lo que le hayamos puesto en la propiedad ScaleHeight. Observe que la propiedad ScaleMode se ha cambiado automticamente a User (0) al introducir las dimensiones de ancho y alto que nosotros queremos. Estas unidades de medida afectarn a los controles que metamos en este Formulario. Se medirn en su ancho y alto con la unidad de medida definida para el ancho y alto del Formulario. Lgicamente tambin afectar a las propiedades Left y Top de los controles, pero estas propiedades se vern afectadas adems por las propiedades ScaleLeft y ScaleTop del Formulario que se vern a continuacin. ScaleLeft, ScaleTop Estas propiedades, medidas en la unidad de medida elegida para el ancho y alto mediante las propiedades ScaleMode, ScaleWidth y ScaleHeight anteriores, expresan las coordenadas iniciales de la parte izquierda y de la parte superior respectivamente del Formulario. Estas propiedades no afectan a la posicin del Formulario en la pantalla (Si est maximizado seguir ocupando toda la pantalla, si est en Normal ocupar el mismo sitio que se dio en tiempo de diseo). Supongamos que se le asigna a un Formulario, las propiedades ScaleWidth = 400, y ScaleHeight = 300. Si colocamos un control justamente en el centro del Formulario tendr sus propiedades Top =150 y Left=200. Si ponemos ahora las propiedades del Formulario ScaleLeft a 30 y ScaleTop a 10, ese control, para seguir en el centro del Formulario deber tener sus propiedades Top a 160 (150 + 10) y Left a 230 (200 + 30). Recuerde que las medidas de un formulario crecen, desde la esquina superior izquierda, segn avanzamos hacia abajo y hacia la derecha. Como aclaracin de las relaciones entre distintas unidades de medida, puede ver en la siguiente table la correspondencia entre cada una de ellas y la unidad imaginaria Twip. 1 Point=20 Twips ; 1Pixel=15 Twips : 1 Charecter=240 Twips ; 1 Inch (pulgada) =1440 Twips 1mm=56,52 Twips 1 cm=566 Twips Tag Valor por defecto: No existe Esta propiedad no la usa directamente Visual-Basic. Sirve para asociar al formulario informacin adicional para fines externos a la programacin. Pero tambin le puede servir para almacenar en ella una variable para que la use un cdigo ajeno al formulario. El autor de estos apuntes tiene por costumbre utilizar la propiedad Tag del formulario inicial para guardar el parmetro que se le pasa a algunos programas para acceder a ellos con unos determinados privilegios. Resumiendo, est ah para lo que el programador quiere. Top Posicin del borde superior Valor por defecto: No existe Esta propiedad establece la posicin del borde superior del formulario. Normalmente no se introduce como valor numrico sino que lo toma automticamente de la posicin que tenga el Formulario durante el tiempo de diseo Este valor puede cambiarse durante la ejecucin para, conjuntamente con Left, variar la posicin del Formulario. Los valores de Top y Left definen la esquina superior izquierda del Formulario. Visible Valor por defecto: True Propiedad Booleana. Asignndole el valor True la pantalla es visible, y asignndole el valor False, no se ve. Este valor puede cambiarse durante el tiempo de ejecucin para ocultar y hacer visible el formulario. Width Ancho Valor por defecto: No existe Define la anchura del formulario. Normalmente no se introduce como valor numrico sino que lo toma automticamente del tamao que tenga el formulario durante el tiempo de diseo. Juntamente con Height define el tamao del formulario. Puede cambiarse durante el tiempo de ejecucin. WindowState Establece el estado en el que aparecer el formulario cuando se activa y presenta en pantalla. Admite tres opciones: 0 - Normal El formulario recupera la posicin y tamao que tena en el tiempo de diseo. 1 - Minimizado El formulario aparece minimizado, representado por su icono. 2 - Maximizado El formulario aparece maximizado, ocupando toda la pantalla. PROCEDIMIENTOS Activate Activacin Click Click DblClick Doble click
Deactivate Desactivacin DragDrop Arrastrar y soltar DragOver Arrastrar por encima GotFocus Obtener el foco KeyDown Mantener pulsada una tecla KeyPress Pulsar una tecla KeyUp Soltar una tecla LinkError Error de enlace LinkExecute Ejecucin de un enlace de datos LinkOpen Romper el enlace Load Cargar el formulario LostFocus Perder el foco MouseDown Pulsar una tecla del ratn MouseMove Mover el ratn (Detecta la posicin del ratn sobre el formulario) MouseUp Soltar una tecla del ratn Paint Pintar QueryUnload Confirmacin de descarga Resize Cambio de tamao Unload Descargar el formulario Un Formulario sirve, fundamentalmente, de contenedor de controles. Es la ventana de Windows de nuestra aplicacin. Una aplicacin puede tener varios Formularios y dentro de cada uno de ellos, los controles necesarios para cada paso o estado de la aplicacin. Un Formulario puede servir tambin como soporte de textos o dibujos.
Una vez introducido un Formulario, se pueden colocar los objetos (controles) que forman parte de la aplicacin. Estos controles se irn viendo en prximos captulos. Los controles, lo mismo que el Formulario, tienen Propiedades y Procedimientos. Las Propiedades definen las caractersticas del Control. Los Procedimientos definen la forma de actuar (la forma de proceder) de un control frente a un evento. Tanto las propiedades como los procedimientos deben ser definidos por el programador. Las propiedades dejan un pequeo margen de actuacin, los procedimientos son en su totalidad, definidos por el programador. Estos procedimientos forman parte del programa. Podra incluso hacerse una aplicacin que no tuviese mas cdigo que el introducido en los procedimientos. Para colocar un control en un Formulario, basta con "tomarlo" de la caja de herramientas existente en la parte izquierda de la pantalla de VB y seleccionar el control que desee dndole un slo click. Esta figura es la ToolBox (cuadro de herramientas).
Tambin si dejas el cursor del ratn sobre algn control, como 2 segundos, te dice el nombre del control. Cuando el control est seleccionado, vaya al formulario que desee poner el control y "dibuje" la forma que desea para el control en el formulario con el ratn. Eso es todo. O, de la forma mas fcil, dndole doble click al control que desee y este aparecer, en la forma por omisin, en el formulario activo. El Command Button (control del que trataremos en este capitulo) es un objeto que sirve para introducir datos a travs de la pantalla. El Botn de Comando tiene la siguiente forma:
El botn de comando puede usarse para la entrada de datos con el ratn, o para validar cualquier operacin. El tamao puede cambiarse a voluntad, pero la forma siempre es rectangular. En la figura anterior vemos uno marcado con unos puntos en su contorno. Estos puntos nos permiten variar su tamao en tiempo de diseo (utilizando el ratn). Tambin puede cambiarse su tamao y posicin en tiempo de ejecucin. PROPIEDADES Recuerde que para cambiar sus propiedades en tiempo de diseo, se utiliza la Ventana propiedades. Name (Nombre) Es el nombre que define a este objeto durante la ejecucin del programa. No se puede cambiar en tiempo de ejecucin. El nombre por defecto es Command1, Command2, etc. Estos nombres por defecto deberan cambiarse por otros que nos indiquen algo respecto a este control, aunque en este caso no es tan imprescindible como para los formularios. El prefijo que sugiere Microsoft para los CommandButton es: cmdNombreDelControl. Para un CommandButton que le quiera poner el nombre de Ayuda, escirba: cmdAyuda Asi sabr, que todo lo que tenga como prefijo cmd, se hace referencia a un CommandButton. Caption (Ttulo) Es el texto que aparece en el botn. Puede cambiarse en tiempo de ejecucin. No tiene otra funcin dentro del programa.
NOTA.- No confundir Nombre (Name) con Ttulo (Caption)
Appearance Apariencia Determina la forma del botn. Admite los valores de Flat (Plano) y 3D. No se aprecia en gran medida la diferencia. Backcolor Color de fondo Es el color de un pequeo cuadrado que aparece rodeando el ttulo, NO el color del botn, que es invariable. Puede cambiarse en tiempo de ejecucin. Cancel Establece un valor que indica si un botn de comando es el botn Cancelar de un formulario. Es una propiedad booleana, y admite los valores True o False. Puede utilizar la propiedad Cancel para dar al usuario la opcin de cancelar los cambios que no se han hecho efectivos y devolver el formulario a su estado anterior. En un formulario slo puede haber un botn de comando con la propiedad Cancel = True. Default Establece un valor que determina el control CommandButton que es el botn de
comando predeterminado de un formulario. Slo un botn de comando de un formulario puede ser el botn de comando predeterminado. Cuando Default se define a True para un botn de comando, se define automticamente a False para el resto de los botones de comando del formulario. Cuando la propiedad Default del botn de comando est establecida a True y su formulario primario est activo, el usuario puede elegir el botn de comando (invocando su evento Click) presionando ENTRAR (Enter, o Intro). Cualquier otro control que tuviera el enfoque no recibe evento de teclado (KeyDown, KeyPress o KeyUp) de la tecla ENTRAR a menos que el usuario haya movido el enfoque a otro botn de comando del mismo formulario. En este caso, al presionar ENTRAR se elige el botn de comando que tiene el enfoque en lugar del botn de comando predeterminado. DragIcon Establece el icono que se presenta como puntero en una operacin de arrastrar y colocar. DragMode Establece un valor que determina si se usa el modo de arrastre manual o automtico en una operacin de arrastrar y colocar. Los valores posibles de nmero son: 0 Manual (Predeterminado) 1 Automtico Enabled Habilitado Propiedad Booleana que habilita o deshabilita el botn. Cuando est deshabilitado (Enabled = False), el botn no tiene efecto, y su apariencia vara, presentando un tono plido tanto en su cuerpo como en su ttulo. Puede variarse en tiempo de ejecucin. Font Fuente Es el tipo de letra para el ttulo. Puede cambiarse en tiempo de ejecucin. Height Altura Establece la altura del botn. Normalmente esta propiedad no se introduce numricamente, sino que la toma automticamente de las dimensiones que se le den al botn en tiempo de diseo. Puede cambiarse, cambiando el valor a esta propiedad, en tiempo de ejecucin. HelpContextID Establece un nmero de contexto asociado para este control. Este nmero se aplica para determinar la ayuda interactiva. Puede tener los siguientes valores: 0 = No se especifica nmero de contexto >0 Un entero que especifica un contexto vlido. Index Indice En el caso de que se tengan varios botones que realicen una funcin similar (Las teclas numricas de una calculadora, p.e.) puede hacerse un array con estos botones de comando. Todos tendrn el mismo nombre, y se diferencian por un ndice. Esta propiedad Index toma el nmero de ese ndice. Left Posicin de su parte izquierda. Indica la posicin del botn, concretamente de la parte izquierda del mismo. Normalmente esta propiedad no se introduce numricamente, sino que la toma automticamente de la posicin que se le de al botn en tiempo de diseo. Puede cambiarse, cambiando el valor a esta propiedad, en tiempo de ejecucin. MouseIcon Icono para el puntero del ratn Determina el icono que presenta al puntero del ratn cuando pasa por encima del botn, cuando se especifica en la propiedad MousePointer que el puntero del ratn es el definido por el usuario. (Custom) MousePointer Puntero ratn Determina la forma del puntero del ratn cuando ste pasa por encima del botn. Puede elegirse uno de los punteros preestablecidos (15) o incluso uno diseado especialmente. Para especificar que el puntero es uno diseado especialmente, hay que poner a esta propiedad el valor 99 (Custom), y en este caso aparecer el icono determinado por la propiedad MouseIcon TabIndex N de orden para tabulador Cuando disponemos de varios controles en un mismo formulario, solamente uno de ellos tiene el foco. Esta expresin de tener el foco significa que ese control est remarcado y en esa condicin, si pulsamos la tecla ENTER hara el mismo efecto que hacer click con el ratn en ese control. Esto es necesario, ya que existen ordenadores que no disponen de ratn (tpico de algunos porttiles). En estos casos, para elegir uno u otro control debemos pulsar repetidas veces la tecla TABulador. El foco ir cambiando de uno a otro control (pueden ser controles de distinto tipo) cada vez que pulsemos la tecla TABulador. Esta propiedad TabIndex marca el orden que seguir el foco a travs de cada control. TabStop Sale del control de la tecla TAB Propiedad booleana. Cuando esta propiedad est a False, el botn no tomar el foco cuando se pulse la tecla del Tabulador. Sin embargo sigue manteniendo el ndice de la propiedad TabIndex descrita anteriormente. Puede cambiarse en tiempo de ejecucin. Esto nos permite descartar algn botn de tomar el foco, cuando por facilidad para el usuario, sea conveniente en determinados puntos del programa. Tag Esta propiedad no la usa directamente Visual-Basic. Sirve para asociar a este control alguna informacin adicional para fines externos a la programacin. Similar a la del formulario. Top Indica la coordenada de la parte superior del control. Puede variarse durante el tiempo de ejecucin. Esta propiedad, juntamente con Left definen la esquina superior izquierda del botn de
comando. Normalmente esta propiedad no se introduce numricamente, sino que la toma automticamente de la posicin que se le den al botn en tiempo de diseo. Puede cambiarse, cambiando el valor a esta propiedad, en tiempo de ejecucin. Visible Visible Propiedad Booleana. Si es true, el botn se ve, si es False el botn no se ve. Puede cambiarse en tiempo de ejecucin. De hecho, es un recurso muy usado para dejar visibles en un formulario, solamente los objetos (controles) necesarios. WhatThisHelpID (Propiedad, Windows 95) Devuelve o establece un nmero de contexto asociado a un objeto. Se utiliza para dotar a las aplicaciones de Ayuda interactiva con el men emergente Qu es esto? de la Ayuda de Windows 95. Width Ancho Define el ancho del botn. Con Height determina la dimensin del botn. PROCEDIMIENTOS del command button: Click DragDrop DragOver GotFocus KeyDown KeyPress KeyUp LostFocus MouseDown MouseMove MouseUp (ver Procedimientos) El botn de Comando no tiene el procedimiento DbClick!
Control LABEL (ETIQUETA) Una etiqueta es un control que nos permite presentar un texto. La etiqueta debe usarse en aquellos casos en los que exista una informacin esttica o dinmica que no deba ser cambiada por el operador. Puede adoptar estas formas: con borde tridimensional, borde plano o sin borde, y el texto justificado a la izquierda, a la derecha o centrado.
El prefijo que sujiere Microsoft es:lbl.... lblNombreDeLaEtiqueta. Por ejemplo: lblTexto PROPIEDADES Alignment Justificacin Establece si el texto se justifica a la izquierda, a la derecha, o se centra sobre la etiqueta. Appearance Apariencia Plana o tridimensional. Autosize Tamao Propiedad booleana. Si se pone a True, el tamao de la etiqueta se ajusta al texto que contiene. Backcolor Color de fondo Es el color de fondo de la etiqueta. Puede cambiarse en tiempo de ejecucin. BackStyle Tipo de fondo Opaco o transparente. Cuando se selecciona transparente, se ve solamente el texto de la etiqueta. Cuando se selecciona opaco, este texto se v sobre un fondo gris. BorderStyle Tipo de borde Sin borde o con borde. En caso de haber elegido en la propiedad Appearance el modo tridimensional, y eligiendo con borde en esta propiedad, el aspecto adopta una forma como incrustada en el formulario. Caption Ttulo Es el texto de la etiqueta. Puede cambiarse en tiempo de ejecucin, lo que permite usar la etiqueta como dispositivo de presentacin de textos. No se puede cambiar por el procedimiento de arrastrar con el ratn, por lo que es el control adecuado cuando se quiere presentar un texto que no se pueda cambiar por el operador. DataField DataSource Establecen la base de datos y el campo donde est el texto Datos que se
llevar a la propiedad Caption. Estas propiedades permiten presentar los datos de una Base de Datos mediante un procedimiento muy sencillo, con la ayuda de un control Data (Se ver mas adelante) DragIcon Establece el icono que se presenta como puntero en una operacin de arrastrar y colocar. DragMode Establece un valor que determina si se usa el modo de arrastre manual o automtico en una operacin de arrastrar y colocar. Los valores posibles de nmero son: 0 Manual (Predeterminado) 1 Automtico Enabled Habilitado Propiedad Booleana que habilita o deshabilita la etiqueta Cuando est deshabilitado (Enabled = False), no tienen efecto los eventos que se produzcan sobre ella, y su apariencia vara, presentando un tono plido tanto en su cuerpo como en su ttulo. Puede variarse en tiempo de ejecucin. Font Fuente Es el tipo de letra para el ttulo. Puede cambiarse en tiempo de ejecucin. ForeColor Es el color de la letra de la etiqueta. Puede cambiarse en tiempo de ejecucin. Height Altura Establece la altura de la etiqueta. Normalmente esta propiedad no se introduce numricamente, sino que la toma automticamente de las dimensiones que se le den a la etiqueta en tiempo de diseo. Index Indice En el caso de que se tengan varios etiquetas que realicen una funcin similar puede hacerse un array con etiquetas. Todas tendrn el mismo nombre, y se diferencian por un ndice. Esta propiedad Index toma el nmero de ese ndice. Left Posicin de su parte izquierda Indica la posicin de la etiqueta, concretamente de su parte izquierda. Normalmente esta propiedad no se introduce numricamente, sino que la toma automticamente de la posicin que ocupaba en tiempo de diseo. Puede cambiarse, cambiando el valor a esta propiedad, en tiempo de ejecucin. LinkItem LinkMode LinkTimeout LinkTopic Estas propiedades establecen la forma en que debe llevarse a cabo una conexin DDE con otra aplicacin. Se vern con mas detalle al estudiar los enlaces DDE MouseIcon Icono del puntero del ratn MousePointer Puntero ratn Para estas propiedades es aplicable todo lo dicho para las mismas en el Botn de Comando Name Nombre Es el nombre de la etiqueta con el que se le conocer a lo largo del programa TabIndex N de orden Al igual que para los botones de comando, la etiqueta tiene propiedad TabIndex. Sin embargo, una etiqueta NUNCA tomar el foco. Vea la propiedad UseMneumonic mas adelante. Tag Esta propiedad no la usa directamente Visual-Basic. Sirve para asociar a este control alguna informacin adicional para fines externos a la programacin. Top Indica la coordenada de la parte superior del control. Puede variarse durante el tiempo de ejecucin. Esta propiedad, juntamente con Left definen la esquina superior izquierda del botn de comando. Normalmente esta propiedad no se introduce numricamente, sino que la toma automticamente de la posicin que se le den a la etiqueta en tiempo de diseo. Puede cambiarse, cambiando el valor a esta propiedad, en tiempo de ejecucin. UseMneumonic Devuelve o establece un valor que indica si al incluir el signo (&) en el texto de la propiedad Caption del control Label se define una tecla de acceso. Es una propiedad Booleana. Los valores que puede tomar son True o False. True (Predeterminado) Los caracteres (&) que aparezcan en el texto de la propiedad Caption definen al carcter siguiente como tecla de acceso. El signo (&) no aparece en la interfaz del control Label. False Los caracteres (&) que aparezcan en el texto de la propiedad Caption aparecen como tales en la interfaz del control Label. En tiempo de ejecucin, al presionar ALT+ la tecla de acceso definida en la propiedad Caption del control Label, el enfoque se desplaza al control siguiente al control Label en el orden de tabulacin. Visible Visible Propiedad Booleana. Si es true, la etiqueta se ve, si es False no se ve. Puede cambiarse en tiempo de ejecucin. WhatThisHelpID (Propiedad, Windows 95) Devuelve o establece un nmero de contexto asociado a un objeto. Se utiliza para dotar a las aplicaciones de Ayuda interactiva con el men emergente Qu es esto? de la Ayuda de Windows 95. Width Ancho Define el ancho de la etiqueta. Con Height determina la dimensin de la misma. WordWrap Devuelve o establece un valor que indica si un control Label con el valor True en su propiedad AutoSize se expande vertical u horizontalmente para adaptarse al texto especificado en su propiedad Caption. Es una propiedad Booleana. Esta propiedad puede cambiarse en tiempo de ejecucin True El control Label se expande o contrae horizontal y verticalmente para adaptarse al
texto y al tamao de la fuente. Contempla para la expansin horizontal la colocacin de los espacios del texto. False (Predeterminado) El texto no se ajusta a la siguiente lnea; el control Label se expande o contrae horizontalmente para adaptarse a la longitud del texto y verticalmente para adaptarse al tamao de la fuente y al nmero de lneas. Nota Si se establece False en AutoSize, el texto siempre se ajustar a la lnea siguiente, independientemente del tamao del control Label y del valor de la propiedad WordWrap. Esto puede ocultar parte del texto, ya que el control Label no se expande en ninguna direccin. PROCEDIMIENTOS DEL LABEL Click Change DbClick DragDrop DragOver LinkClose LinkError LinkNotify (Ver Procedimientos)
TEXT BOX (Cajas de texto/cuadros de texto) Las cajas de texto son los controles en los que Visual Basic presenta o introduce textos. Es por tanto un control bidireccional. Normalmente se usan para introducin de textos, o para la presentacin de aquellos que el operador pueda cambiar. Para cambiar o escribir un texto en una caja de texto, basta con conseguir que esa caja de texto tenga el foco y teclear el texto en el teclado. Esto se puede lograr, bien haciendo click con el ratn en esa caja de texto, bien con la tecla TAB, bien por programa. La caja de texto no se debe usar nunca para presentar textos que el operador de la aplicacin no deba cambiar. sese para ello la etiqueta, control no bidireccional, que adems tiene la ventaja de ocupar menos memoria de programa. Las cajas de texto pueden tener una o varias lneas, segn est la propiedad Multiline. La capacidad mxima de una caja de textos es de 32 KB. La forma de una caja de texto es la siguiente, dependiendo de las propiedades BorderStyle y Appearance:
El prefijo de Microsoft para los TextBox es: txtNombreDelControl Ejemplo: txtEditor PROPIEDADES Alignment Justificacin Establece si el texto se justifica a la izquierda, a la derecha, o se centra sobre la etiqueta. Esta propiedad solamente tiene efecto cuando la propiedad Multiline est a True, ignorndose en caso contrario. Es decir, permite colocar el texto justificado a la derecha cuando ese texto puede ser de varias lneas. Para una nica lnea, se justifica siempre a la izquierda. Esta propiedad no puede cambiarse en tiempo de ejecucin, pero s puede leerse en que condicin est. Appearance (vea Appearance). Backcolor (Vea BackColor) BorderStyle (vea BorderStyle) DataField DataSource (Vea TadaField, DataSource) DragIcon (Vea DragIcon) DragMode (Vea DragMode) Enabled Habilitado Propiedad Booleana que habilita o deshabilita la etiqueta Cuando est deshabilitado (Enabled = False), no tienen efecto los eventos que se produzcan sobre el TextBox. No se puede escribir el l ni pasarle el foco, pero s se le puede cambiar el texto mediante el programa. Puede ser una buena alternativa para impedir que el usuario pueda cambiar un determinado texto. Esta propiedad puede variarse en tiempo de ejecucin. Font Fuente Es el tipo de letra que se utilizar en el TextBox. Puede cambiarse en tiempo de ejecucin. ForeColor Color de la letra Determina el color de las letras del texto. Height Altura Establece la altura de la caja de texto. Normalmente esta propiedad no se introduce numricamente, sino que la toma automticamente de las dimensiones que se le den a la caja en tiempo de diseo. Index (Vea Index) Left (vea Left) LinkItem LinkMode LinkTimeout LinkTopic Estas propiedades establecen la forma en que
debe llevarse a cabo una conexin DDE con otra aplicacin. Se vern con mas detalle al estudiar los enlaces DDE Locked Establece si el texto se puede editar, es decir, cambiar. Cuando se pone esta propiedad a True, el texto existente en la caja puede resaltarse con el ratn, e incluso copiarlo al portapapeles, pero no puede variarse tecleando un nuevo texto. Se puede cambiar por programa, cambiando la propiedad Text. Si est en False, puede cambiarse el texto mediante teclado. MaxLenght Indica, si se establece, la longitud mxima del texto. Si pone el valor 5 a esta propiedad, solamente se pueden escribir 5 caracteres en este cuadro de texto(TextBox) MouseIcon (Vea MouseIcon) MousePointer (vea MousePointer) Name Nombre Es el nombre de la caja de texto con el que se le conocer a lo largo del programa. Prefijo: txt PasswordChar En ocasiones, es conveniente que no se pueda leer lo que se escribe en la caja de texto, caso por ejemplo de la entrada de un password o palabra de paso. Esta propiedad nos permite indicar un carcter que sustituye a cualquier carcter que tenga la caja de texto. (Tpicos el * o ?). El texto que tenga en la propiedad Text no cambia por el hecho de presentar en pantalla un carcter distinto. Esta propiedad puede cambiarse en tiempo de ejecucin. Para quitar el PasswordChar basta con forzarlo al carcter nulo : Text1.PasswordChar = "" Esta propiedad se ignora cuando la propiedad Multiline est a True. ScrollBars Cuando la propiedad Multiline de la caja de texto est a True, se pueden colocar barras de desplazamiento del texto hacia arriba y abajo, o hacia los lados. Esto nos permite tener una caja de texto de tamao reducido y poder leer en ella un texto mayor que la propia caja. Esta propiedad puede tomar los siguiente valores : 0 - No salen barras 1 - Barras de desplazamiento horizontal 2 - Barras de desplazamiento vertical 3 - Ambas barras. TabIndex (Ver TabIndex) Tag (Vea Tag) WhatThisHelpID (vea WhatThisHelpID) PROCEDIMIENTOS DE LA CAJA DE TEXTO Click Change DblClick DragDrop DragOver GotFocus KeyDown KeyPress KeyUp LinkClose (Para mas informacion, (Ver Procedimientos)
Un control Frame proporciona un agrupamiento identificable para controles. Tambin puede utilizar un Frame para subdividir un formulario funcionalmente: por ejemplo, para separar grupos de controles OptionButton.
Para agrupar controles, en primer lugar trace el control Frame y, a continuacin, meta los controles dentro de Frame. De este modo podr mover al mismo tiempo el Frame y los controles que contiene. Si traza un control fuera del Frame y, a continuacin, intenta moverlo dentro de ste, el control se colocar sobre el Frame, pero no pertenecer a el. Es decir, si es un OptionButton este se comportar como si estuviese fuera del Frame, aunque fsicamente est dentro de el. Cuando un control Frame tiene dentro otros controles, y hacemos invisible al Frame, mediante su propiedad Visible = False, los controles interiores al Frame quedan tambin invisibles. Prefijo:fm PROPIEDADES Las sealadas con (*) no presentan novedades respecto a las ya comentadas para los controles precedentes. Appearance (*) Backcolor (*) Caption: Es el ttulo que aparece en el borde del Frame. ClipControls Si esta propiedad est a True, los mtodos grficos en eventos Paint vuelven a dibujar el objeto entero. Antes del evento Paint se crea una zona de recorte alrededor de los controles no grficos del formulario. Si esta propiedad est a False dibujarn solamente las reas ltimamente expuestas. En tiempo de ejecucin, esta propiedad es de slo lectura. DragIcon (*) DragMode (*) Enabled Cuando esta propiedad est a False, tanto los procedimientos asociados al propio control Frame como todos los controles dentro del Frame estarn inhabilitados. Si esta propiedad est a True, todos ellos estn habilitados. Font En esta propiedad, el tipo de letra afecta solamente al ttulo del Frame, no a los controles internos a el. ForeColor Color de las letras del ttulo del Frame. Height (*) Index (*) Left (*) MouseIcon (*) MousePointer (*) TabIndex (*) Tag (*) Top (*) Visible Cuando un Frame est con la propiedad Visible = False, tanto el propio Frame como todos los controles interiores a el sern invisibles. WhatsThisHelpID (*)
CHECK BUTTON y OPTION BUTTON (BOTONES DE ELECCION Y OPCION) Se obtienen directamente de la caja de herramientas. Dada la similitud de ambos controles, se comentan conjuntamente.
El control CheckBox, o casilla de verificacin, permite elegir una opcin (activada/desactivada, True/False) que el usuario puede establecer o anular haciendo click. Una X (o una marca de cotejo, tiene casi la forma de una V o un tilde) en una casilla de verificacin indica que est seleccionada, activada, o con valor True. Cada casilla de verificacin es independiente de las dems que puedan existir en el formulario, pudiendo tomar cada una de ellas el valor True o False, a voluntad del usuario.
Un control OptionButton muestra una opcin que se puede activar o desactivar, pero con dependencia del estado de otros controles OptionButton que existan en el formulario. Generalmente, los controles OptionButton se utilizan en un grupo de opciones para mostrar opciones de las cuales el usuario slo puede seleccionar una. Los controles OptionButton se agrupan dibujndolos dentro de un contenedor como un control Frame, un control PictureBox o un formulario. Para agrupar controles OptionButton en un Frame o PictureBox, dibuje en primer lugar el Frame o PictureBox y, a continuacin, dibuje dentro los controles OptionButton (Tiene que "dibujar" los controles para que funcione de esta forma ya que de la otra forma, que es la de dar doble click al control y este aparece en el formulario, el control no queda "dentro" del Frame o del PictureBox. para que funcione, como dije, tiene que dibujar el control). Todos los controles OptionButton que estn dentro del mismo contenedor actan como un solo grupo, e independientes de los controles OptionButton de otros grupos distintos. Aunque puede parecer que los controles OptionButton y CheckBox funcionan de forma similar, hay una diferencia importante: Cuando un usuario selecciona un OptionButton, los otros controles del mismo grupo OptionButton dejan de estar disponibles automticamente. Por contraste, se puede seleccionar cualquier nmero de controles CheckBox. Un ejemplo:
En el ejemplo de la figura, existen tres grupos de OptionButton, uno en un PictureBox, que acta, al tiempo que como cuadro de imagen, como contenedor de controles OptionButton. Otro grupo est en el interior de un control Frame, y el otro grupo est en el formulario. Los tres grupos son independientes entre s, pero interiormente al grupo solamente puede seleccionarse uno de los OptionButton que lo componen. En el formulario tambin existen tres CheckBox, que como puede verse, se pueden seleccionar los que se desee, sin ningn tipo de exclusin entre ellos. Prefijo para CheckBox: chk Prefijo para OptionButton: opt PROPIEDADES Las sealadas con (*) son comunes a ambos controles y no presentan novedades respecto a las ya comentadas para los controles precedentes. Alignment Comn a ambos controles. Admite los siguientes valores : 0 - Left Justify 1 - Right Justify Cuando se elige el valor 0, justificado a la izquierda, el ttulo del control aparece a la derecha del botn, pegado a la figura del botn. Cuando se elige el valor 1, justificado a la derecha, el ttulo
(Caption) aparece a la izquierda del botn, comenzando en la parte izquierda del cuerpo total del control, es decir, no tiene porqu aparecer con su parte derecha pegado al botn, caso que el cuerpo total del control se haya hecho mas largo que la palabra del ttulo. Appearance (*) Backcolor (*) Caption (*). DataField DataSource Propiedades del CheckBox solamente. Establecen la base de datos y el campo donde estn los datos (True / False) que se llevarn a la propiedad Value . Al igual que en los controles Label y TextBox esta propiedad nos permite visualizar datos de una base de datos de una forma muy sencilla. En este caso, el CheckBox solamente permite presentar (logicamente) datos de tipo Booleano. DragIcon (*) DragMode (*) Enabled (*) Font (*) ForeColor (*) Height Comn a ambos controles. La altura del control solamente afecta a la colocacin del Titulo (Puede ponerse un ttulo largo en varias lneas), no al tamao del botn, que es invariable. Index (*) Left (*) MouseIcon (*) MousePointer (*) TabIndex (*) Tag (*) Top (*) Value Comn a ambos controles El valor de esta propiedad indica si el control est seleccionado (Value = 1) o no seleccionado (Value = 0 Value = False). Esta propiedad puede cambiarse en tiempo de ejecucin. Mediante esta propiedad, podemos tanto forzar el valor como leerlo. Atencin: Presenta una diferencia entre uno y otro control respecto a la forma de expresarse respecto a su valor cuando est seleccionado. Para forzar que el control NO est seleccionado, o para leer el Value cuando no est seleccionado, podemos utilizar tanto Value = 0 como Value = False. Sin embargo, cuando lo que se quiere es poner la propiedad a True hay una diferencia entre ambos controles. Para el OptionButton podemos utilizar indistintamente las siguiente formas: Option1.Value = True Option1.Value = 1 Con cualquiera de ellas seleccionaremos ese control por programa. Para el CheckBox solamente se podr usar para este propsito la instruccin : Check1.Value = 1 El poner como Value el valor True nos dar en este control un error. Para la lectura del Value, existe una diferencia entre el valor devuelto por el CheckBox y el devuelto por el OptionButton. Para leer el dato existente en un CheckBox es necesario utilizar la forma : variable = Check1.Value donde variable tomar el valor 1 (no True) Para el control OptionButton emplearemos una instruccin igual : variable = Option1.Value donde variable tomar el valor True (no 1). WhatsThisHelpID (*) PROCEDIMIENTOS Click DblClick (Solo OptionButton) DragDrop DragOver GotFocus KeyDown KeyPress KeyUp LostFocus (Para mas informacion, (Ver Procedimientos)
Estos dos controles, debido a su similitud, se estudian conjuntamente. Se obtienen directamente de la caja de herramientas :
Un control ListBox muestra una lista de elementos en la que el usuario puede seleccionar uno o ms. Si el nmero de elementos supera el nmero que puede mostrarse, se agregar automticamente una barra de desplazamiento al control ListBox. Un control ComboBox combina las caractersticas de un control TextBox y un control ListBox. Los usuarios pueden introducir informacin en la parte del cuadro de texto y seleccionar un elemento en la parte de cuadro de lista del control. En resumen, un ComboBox es la combinacin de un ListBox, que se comporta como si de un ListBox se tratase, y de un TextBox, con comportamiento anlogo a un TextBox sencillo, con la particularidad aqu de que el texto se le puede introducir por teclado, o elegir uno de los que figuran en la parte ListBox del Combo. Esto es un ejemplo de lo que que se puede hacer con estos controles:
Aclaracin: Lo que dice ListBox y ComboBox en la imagen de ejemplo, no forman parte de los controles, slo son Label(etiquetas) que he puesto con los nombre de los controles para que sepan cuales con los controles). Puede verse en la figura un ejemplo de presentacin de un ListBox (izquierda), y un ComboBox con la lista desplegar (derecha). La lista tiene varios elementos. Cada lnea de esta lsta es un elemento de la lista. Como el nmero de elementos de la lista tiene mas elementos de los que le podan caber, gener automticamente la barra de desplazamiento vertical. El ComboBox est normalmente sin desplegar. Se despliega cuando se hace click con el ratn en la flecha que tiene en su parte derecha (vase fig. Anterior). Al desplegarse, muestra la lista con todos sus elementos. Haciendo click con el ratn en cualquiera de sus elementos, el elemento elegido pasa a la parte TextBox del Combo y la lista vuelve a replegar. El ListBox (y por tanto el ComboBox) tiene unas propiedades y mtodos particulares que solamente se pueden aplicar durante el tiempo de ejecucin(mediante cdigo): ListCount - Indica el nmero de elementos que tiene la lista ListIndex - Indica el nmero de orden del elemento seleccionado dentro de la lista. AddItem - Aade un elemento a la lista. RemoveItem - Elimina un elemento de la lista. Text - Obtiene el elemento seleccionado. List (n) - Obtiene el elemento cuyo orden dentro de la lista es n. ListCount valdr 0 si la lista no tiene ningn elemento, y n si tiene n elementos. Para seleccionar un elemento de la lista, basta con hacer click con el ratn sobre l. Ese elemento se resaltar con fondo en azul. Una vez seleccionado un elemento, la propiedad ListIndex tomar el valor del nmero de orden que ocupa
ese elemento en la lista, comenzando por el 0 para el elemento que ocupa el primer lugar. Si no se selecciona ningn elemento, el valor de la propiedad ListIndex ser -1. El primer elemento de la lista es ListIndex 0, y el valor de la propiedad ListCount siempre es uno ms que el valor mayor de ListIndex. En el ComboBox la propiedad Text contiene el texto que contenga la parte TextBox del Combo, bien haya sido introducida desde teclado o mediante la recuperacin de un elemento la parte ListBox del mismo. Ejemplos: supongamos que tenemos un ListBox llamado List1, y un ComboBox llamado Combo1. Se enumeran distintas formas de obtener informacin de ellos. Variable = List1.Listcount Variable contendr un nmero con el nmero total de elementos de la lista List1. Variable = List1.ListIndex Variable contendr un nmero con el nmero de orden del elemento de la lista seleccionado en ese momento. List1.AddItem "ELEMENTO NUEVO" Aade un elemento a List1. En este caso, el elemento aadido es la palabra ELEMENTO NUEVO. Variable = "VISUAL BASIC" List1.AddItem Variable Aade un elemento a List1. En este caso, el elemento aadido es la palabra VISUAL BASIC. Variable = List1.Text Variable contendr el elemento que estaba seleccionado en List1. (Variable ser una cadena de caracteres) Variable = List1.List (n) Variable contendr el elemento que ocupa el nmero de orden n dentro de la lista. Variable = List1.List (List1.ListIndex) Variable contendr el elemento que estaba seleccionado en List1. Se ha utilizado la propiedad List para obtener el elemento, y en vez de introducir un nmero para definir el elemento que se desea, se introdujo el valor ListIndex de List1, que es concretamente, el nmero de orden del elemento seleccionado en ese momento. Observe que poner List1.List (List1.ListIndex) es idntico a poner List1.Text. List1.RemoveItem (n) Elimina el elemento n de List1. List1.RemoveItem (List1.ListIndex) Elimina el elemento que estaba seleccionado en ese momento. List1.listIndex = n Selecciona el elemento n de List1 (Se resalta en azul el elemento n) Prefijo para ListBox: lst Prefijo para ComboBox:cbo PROPIEDADES de ListBox y de ComboBox Las sealadas con (*) son comunes a ambos controles y no presentan novedades respecto a las ya comentadas para los controles precedentes. Appearance (*) Backcolor (*) Columns Propiedad de ListBox solamente. Determina si los elementos se presentan en una sola columna o en varias columnas, y la forma de presentar los elementos en el ListBox. Si esta propiedad se pone a 0 la lista tendr solamente una columna, y presentar los elementos uno debajo de otro. Cuando los elementos sean mas que los que se pueden presentar en la lista, aparecen automticamente unas barras de desplazamiento vertical. Si la propiedad se pone a un nmero distinto a 0, el ListBox es de tipo multicolumna, presentar en cada columna los elementos que le quepan dependiendo de su dimensin vertical, y tendr tantas columnas como sea necesario para albergar el nmero de elementos que tenga. Presentar en su cuadro tantas
columnas como se le indique en el valor de esta propiedad, y si no puede presentar todos los elementos en las columnas que muestra, le aparecern barras de desplazamiento horizontales para poder movernos por todas las columnas que tenga. Recuerde : El nmero que se le asigna a la propiedad Columns no indica el nmero de columnas que tendr el ListBox sino el nmero de columnas que presenta. Esta propiedad puede asignarse en diseo, mediante la caja de propiedades, o en tiempo de ejecucin mediante una instruccin como esta : Nombrelista.Columns = nmero . Esta propiedad no puede definirse a 0 o cambiada desde 0 en tiempo de ejecuciones decir, no se puede convertir en tiempo de ejecucin un ListBox de mltiples columnas en un ListBox de columna nica o un ListBox de columna nica en un ListBox de mltiples columnas. Sin embargo, s es posible cambiar durante la ejecucin el nmero de columnas de un ListBox de mltiples columnas. DataField DataSource Establecen la base de datos y el campo donde estn los datos que se llevarn al TextBox o ComboBox para presentar datos procedentes de una Base de Datos. DragIcon (*) DragMode (*) Enabled (*) Font (*) ForeColor (*) Height (*) Index (*) ItemData Propiedad muy importante. Devuelve o establece un nmero especfico para cada elemento de un control ComboBox o ListBox. Sintaxis: objeto.ItemData(ndice) [= nmero] La sintaxis de la propiedad ItemData tiene las siguientes partes: objeto Nombre del ListBox o ComboBox. ndice El nmero de un elemento concreto del objeto. nmero El nmero que se asocia con el elemento especificado. Comentarios La propiedad ItemData es una matriz de valores enteros largos cuyo nmero de elementos es el valor de la propiedad ListCount del control. Los nmeros asociados con cada elemento se pueden usar para cualquier fin. Por ejemplo, se puede usar en la confeccin de una lista de telfonos, el nmero de identificacin de un empleado, etc. Cuando se rellena el ListBox, tambin se rellena los elementos correspondientes de la matriz ItemData con los nmeros correspondientes. La propiedad ItemData se usa a menudo como ndice de una matriz de estructuras de datos asociados con los elementos de un control ListBox. Nota: Cuando se inserta un elemento en una lista con el mtodo AddItem, el elemento tambin se inserta automticamente en la matriz ItemData. Sin embargo, el valor no se reinicializa a cero; retiene el valor que estaba en esa posicin antes agregar el elemento a la lista. Cuando se usa la propiedad ItemData, asegrese de establecer su valor al agregar nuevos elementos a la lista. Left (*) List Es el contenido de la lista. Si la lista de elementos es corta e invariable, pueden introducirse los elementos en el cuadro de propiedades durante el diseo. MouseIcon (*) MousePointer (*) Name (*) Sorted Establece o devuelve un valor que indica si los elementos de un ListBox o ComboBox se colocan automticamente en orden alfabtico. Los valores que puede adoptar son True o False. True Los elementos de la lista se ordenan alfabticamente (sin distinguir entre maysculas y minsculas). False (Predeterminado) Los elementos de la lista no se ordenan alfabticamente. Cuando esta propiedad tiene el valor True, Visual Basic se encarga de casi todo el procesamiento de cadenas necesario para mantener el orden alfabtico, incluyendo el cambio de los nmeros de ndice cuando se agregan o eliminan elementos. Nota El uso del mtodo AddItem para agregar un elemento en una posicin especfica de la lista puede romper el orden alfabtico, y los elementos agregados con posterioridad pueden no ordenarse correctamente. TabIndex (*)
Tag (*) Top (*) WhatsThisHelpID (*) PROCEDIMIENTOS Click Change (Solo ComboBox) DblClick DragDrop DragOver DropDown (Solo ComboBox) GotFocus KeyDown KeyPress KeyUp LostFocus MouseDown (Solo ListBox) MouseMove (Solo ListBox) MouseUp (Solo ListBox) (Para mas informacion, (Ver Procedimientos) NOTA MUY IMPORTANTE El procedimiento Change del ComboBox solamente se efecta cuando el cambio se produce mediante la entrada de un texto DESDE EL TECLADO, no por un cambio en la parte Text de este control, producido al llevar un elemento desde la parte List a la parte Text.
Una imagen representa una figura, bien natural (tipo fotografa) o sinttica. Para presentar una imagen es necesario hacerlo sobre un objeto que la admita. Los objetos que admiten una imagen son: * Formularios * PictureBox * Image Existen mas controles grficos que se irn viendo a lo largo del curso. Estos tres son los mas usados y con los que comenzaremos a trabajar. Para mostrar una imagen en cualquiera de estos objetos, es necesario especificarlo en su propiedad Picture. La forma de especificarle al objeto la imagen que debe presentar puede hacerse de dos formas: a - En la ventana de Propiedades, si no se va a variar la imagen durante la aplicacin mediante una instruccin para cambiar esta propiedad. b - La instruccin mediante cdigo es la siguiente: NombreDelControl.Picture = LoadPicture (Path, Archivo) Donde NombreDelControl, ser un control que soporte imgenes (Formularios, PictureBox, Image). Por ejemplo, si tenemos un formulario llamado Form1 y queremos rellenarlo con una imagen contenida en el archivo de de mapa de bit (.BMP) Clouds.bmp (o en la versin es espaol de Windows, Nubes.bmp) que se encuentra en el directorio C:\Windows, deberemos ejecutar la instruccin: Form1.Picture = LoadPicture ("C:\Windows\clouds.bmp") Para "descargar" esa imagen de ese formulario, basta con ejecutar la misma instruccin sin archivo alguno: Form1.Picture = LoadPicture ( ) Tambin pueden tomar la imagen desde otro control de imagen, mediante un procedimiento de Intercambio Dinmico de Datos (DDE) (Solo el PictureBox) Puede tambin meter una imagen en
una variable, y luego poner en uno de los controles citados anteriormente la imagen guardada en la variable. Este mtodo es muy rpido, ya que no necesita acceder al disco para buscar una imagen, pero emplea mucha memoria RAM (Ramdon Access Memory), ya que la variable o variables conteniendo la(s) imgenes estn en la RAM. Para ello debemos declarar una o varias variables tipo Picture, y meter en ellas una imagen mediante el mtodo LoadPicture. EL FORMULARIO Ya hemos visto lo que es el Formulario. Simplemente podemos aadir a lo ya dicho, que un formulario tiene la propiedad Picture, con lo que podemos poner como fondo un bit-map, un archivo de icono ( .ICO) , un Metarchivo (.WMF) o en el caso de VB5 y VB6 los formatos de imgenes .JPG y .GIF. Un fondo grfico sobre el Formulario puede convertir una aplicacin de buena a excelente. No intente nunca mejorar una aplicacin mediocre con un fondo artstico en un Formulario. (Mas informacion en Formularios)
Este objeto permite presentar todo tipo de archivos grficos (.BMP, WMF, .ICO, .CUR) VB5 y VB6 (.BMP, DIB, WMF, EMF, .ICO, .CUR, .JPG, .GIF) Las dimensiones del PictureBox se establecen en el diseo o mediante programa, variando las propiedades Height y Width. Tambin puede cambiarse su posicin mediante las propiedades Top y Left. Dispone de una propiedad, Align que permite colocarlo adosado a uno de los lados del formulario que lo contiene. El Control PictureBox puede ser destino de los datos de un enlace DDE. (Los datos sern, lgicamente, grficos). Por ello, tiene las propiedades LinkMode, LinkItem, LinkTimeout y LinkTopic. Tambin puede tomar el dato del grfico de una Base de Datos. (A travs de un control Data o un objeto Recordset) Las propiedades de un PictureBox son: Align ClipControls DrawWidth ForeColor LinkMode Negotiate ScaleWidth WhatThisHelp Appearance DataField Enabled Height LinkTimeout Picture TabIndex Width Autoredraw DataSource FillColor HelpContextID LinkTopic ScaleHeight TabStop Autosize DragIcon FiilStyle Index MouseIcon ScaleLeft Tag Backcolor DragMode Font Left MousePointer ScaleMode Top BorderStyle DrawStile Fontransparent LinkItem Name ScaleTop Visible
Un PictureBox puede disponer de los siguientes procedimientos: Click Change DblClick DragDrop DragOver GotFocus KeyDown KeyPress
Este control permite presentar todo tipo de archivos grficos (.BMP, WMF, .ICO, .CUR). VB5 y VB6(.BMP, DIB, WMF, EMF, .ICO, .CUR, .JPG, .GIF) El control Image no puede ser destino de una comunicacin DDE. Puede tomar la imagen de una base de datos, bien a travs de un control Data o a travs de un objeto Recordset. El control Image utiliza menos recursos del sistema y repinta con ms rapidez que un control PictureBox, pero slo admite una parte de las propiedades, los eventos y los mtodos de PictureBox. Use la propiedad Stretch para determinar si el grfico se escala para que se ajuste al control o viceversa. Poniendo esta propiedad a True el grfico se adaptar a las dimensiones del control Image. Si se pone a False, el control Image tomar las medidas del grfico que contenga. Si el grfico es un bit-map (archivo .BMP), con la propiedad Stretch a True podemos variar el tamao del bit-map, variando las propiedades Width y Height del control Image, propiedades que se pueden cambiar en tiempo de ejecucin. Si esta propiedad est a False, el tamao del bit-map no cambiar, presentndose solamente una porcin del bit-map, caso que el control Image sea menor que el tamao del bit-map, o sobrar espacio en el control, en caso contrario. Aunque puede colocar un control Image en un contenedor, un control Image no puede actuar como contenedor. Esto se entiende mejor con un ejemplo. Prepare un formulario con un PictureBox y con un control Image. Introduzca dos OptionButton en cada uno de ellos, y otro en otra parte del formulario, fuera de ambos. Ejecute la aplicacin. Los OptionButton colocados dentro del PictureBox se comportan entre ellos independientes de los otros tres OptionButton presentes en el formulario, exactamente igual que si se les hubiera introducido en un Frame. Los controles colocados dentro del control Image cambian formando conjunto con el que se coloc en el formulario, fuera de los dos controles. El PictureBox funciona como un contenedor de esos dos OptionButton que tiene en su interior, mientras que el control Image, no. (Vea el ejemplo del captulo 2, Oficina de cambio de divisas) Un Image es transparente, es decir, deja ver el fondo del formulario en las partes no ocupadas por su grfico. Por lo tanto, no tendran sentido en este control propiedades como Backcolor, FillColor, o FillStyle. Las propiedades de un Image son: Appearance Enabled Name WhatThisHelp BorderStyle Datafield DataSource DragIcon DragMode Height Index Left MouseIcon MousePointer Picture Stretch Tag Top Visible Width
Un Image puede disponer de los siguientes procedimientos: Click DblClick DragDrop DragOver GotFocus MouseDown MouseMove MouseUp PROPIEDADES DE LOS CONTROLES PictureBox e Image Align (PictureBox solamente) Permite colocar el control en el borde superior (Align Top), en el inferior (Align Bottom), en el izquierdo (Align Left) o en el derecho (Align Right) del formulario que lo contiene. Para no alinearlo con ningn borde basta con poner la propiedad Align a 0-None. Cuando se adosa a uno de los bordes, el tamao del control se ajusta automticamente a la anchura o altura del formulario. Sintaxis: NombrePictureBox.Align [= nmero] nmero Un entero que especifica cmo se presenta el control.
Puede tomar los siguientes valores : 0-None (Predeterminado cuando el control se coloca en un formulario no MDI). Con este valor, el control mantiene el tamao y la posicin asignada en tiempo de diseo. 1-Top (Predeterminado cuando el control se coloca en formularios MDI) El control se coloca en la parte superior del formulario y su anchura es igual a la anchura del formulario. 2-Bottom El control se coloca en la parte inferior del formulario y su anchura es igual a la anchura del formulario. 3-Left El control se coloca en la parte izquierda del formulario y su altura es igual a la altura del formulario. 4-Right El control se coloca en la parte derecha del formulario y su altura es igual a la altura del formulario. Se puede usar propiedad Align para crear rpidamente una barra de herramientas o una barra de estado en la parte superior o inferior de un formulario. Cuando un usuario cambie el tamao del formulario, un control con la propiedad Align establecida a 1 2 modificar su tamao de forma automtica para ajustarse a la anchura del formulario. De la misma forma se puede crear barras de herramientas a los lados izquierdo o derecho de un formulario. Si en un formulario hay dos barras de herramientas, una en la parte superior (o inferior) y otra en un lateral, la de la parte superior o inferior es la que se extiende hasta la esquina, teniendo preferencia sobre las colocadas verticalmente a la izquierda o a la derecha. Al ser el PictureBox un contenedor, puede poner un PictureBox en la parte superior de un Formulario, y colocar en este PictureBox varios controles Image, a los que se les puede poner un icono. De esta forma realizamos una barra de herramientas. Negotiate (PictureBox solamente) Establece un valor que determina si se muestra un control que puede alinearse cuando un objeto activo del formulario muestra una o ms barras de herramientas. No est disponible en tiempo de ejecucin. La propiedad Negotiate puede tener los valores True o False: True Si el control se alinea en el formulario (la propiedad Align se establece como un valor no cero), el control permanecer visible cuando un objeto activo del formulario muestre una barra de herramientas. False (Predeterminado) El control no se muestra cuando un objeto activo del formulario muestra una barra de herramientas. La barra de herramientas del objeto activo se muestra en lugar del control. Appearance (PictureBox e Image) 3D o Flat, como en otros controles Autoredraw (PictureBox solamente) Permite que el Formulario o PictureBox (El control Image no tiene esta propiedad), mantenga siempre la imagen presente. Si Autoredraw est a False, el control no presentar las imgenes que no se hayan dibujado realmente (caso por ejemplo de un formulario minimizado) o que se hayan borrado por haber sido puestas tras otro control. Sintaxis objeto.AutoRedraw [= valor] Los valores posibles de valor son: True Activa el redibujado automtico de un control PictureBox. Los grficos y el texto se escriben en la pantalla y en una imagen almacenada en memoria. El control no recibe eventos Paint; se vuelve a dibujar cuando es necesario, usando la imagen almacenada en memoria. False (Predeterminado) Desactiva el redibujado automtico de un control y escribe los grficos y el texto solamente en la pantalla. Visual Basic invoca el evento Paint del control cuando se necesita volver a dibujar dicho control. Autosize (PictureBox solamente) Devuelve o establece un valor que determina si el tamao de un control se cambia automticamente para presentar su contenido completo. Sintaxis objeto.AutoSize [= valor] Los valores posibles de valor son: True El tamao se cambia automticamente para presentar el contenido completo. False (Predeterminado) Mantiene constante el tamao del control. El contenido se recorta cuando excede el rea del control. BackColor (PictureBox solamente) Color de fondo. Igual que otros controles
BorderStyle (PictureBox e Image) Tipo de borde. Ninguno o fijo. Igual que otros controles. ClipControls (PictureBox solamente) Devuelve o establece un valor que determina si los mtodos grficos en eventos Paint vuelven a dibujar el objeto entero o solamente las reas ltimamente expuestas. Tambin determina si el entorno operativo Microsoft Windows crea una zona de recorte que excluya los controles no grficos contenidos en el objeto. En tiempo de ejecucin es de slo lectura. Sintaxis objeto.ClipControls [= booleano] Los valores posibles de booleano son: True (Predeterminado) Los mtodos grficos de los eventos Paint vuelven a dibujar completamente el objeto. Antes del evento Paint se crea una zona de recorte alrededor de los controles no grficos del formulario. False Los mtodos grficos de los eventos Paint solamente vuelven a dibujar las partes recin expuestas. Antes del evento Paint no se crea una zona de recorte alrededor de los controles no grficos. Los formularios complejos se cargan normalmente ms rpido cuando ClipControls est establecido a False. DataField (PictureBox e Image) Devuelve o establece un valor que indica el nombre del campo de una Base de datos de donde se tomar la imagen a presentar. Sintaxis objeto.DataField =NombredelCampo Para poder presentar una imagen contenida en una base de datos, el control PictureBox o Image deben estar enlazados a una base de datos mediante un control Data. DataSource (PictureBox e Image) Establece un valor que especifica el control Data a travs del cual el control Picture Image se enlaza a una base de datos. No est disponible en tiempo de ejecucin. Ver esto con mas detalles cuando estudie los Objetos enlazados a Datos. DragIcon DragMode (PictureBox e Image) Igual que otros controles DrawMode (PictureBox solamente) Devuelve o establece un valor que determina el aspecto de la salida de un mtodo grfico. DrawStyle (PictureBox solamente) Devuelve o establece un valor que determina el estilo de lnea de la salida de mtodos grficos. Sintaxis objeto.DrawStyle [= nmero] Los valores posibles de nmero son: 0 (Predeterminado) Continuo. 1 Rayas. 2 Puntos. 3 Raya-punto. 4 Raya-punto-punto. 5 Transparente. 6 Continuo interior. DrawWidth (PictureBox solamente) Devuelve o establece la anchura de lnea de lo dibujado con los mtodos grficos. Sintaxis NombredelPictureBox.DrawWidth [= tamao] tamao Expresin numrica comprendida entre 1 y 32.767 que representa la anchura de la lnea en pixeles. El valor predeterminado es 1, es decir, un pxel de ancho. Enabled (PictureBox e Image) Habilitado. Igual que otros controles. FillColor, FillStyle, Font, Fontransparent, ForeColor (PictureBox solamente) Igual que otros controles. Height, Width , Left, Top (PictureBox e Image) Definen el tamao y la posicin del control. En el control Image el tamao puede depender del grfico que se introduzca y del valor de la propiedad Stretch.
HelpContextID (PictureBox solamente) Igual que otros controles Index (PictureBox e Image) Igual que otros controles LinkItem, LinkMode, LinkTimeout, LinkTopic (PictureBox solamente) Propiedades que afectan al comportamiento de este control como DESTINO de una conversacin DDE. Se estudiar con mas detalles al estudiar el Intercambio Dinmico de Datos. MouseIcon, MousePointer (PictureBox e Image) MouseIcon Establece un icono de mouse personalizado. (Una vez que comenzamos a estudiar las propiedades grficas, se comenta cmo se puede cambiar el icono de la propiedad MouseIcon de todos los controles) Sintaxis objeto.MouseIcon = LoadPicture(ruta) objeto.MouseIcon = imagen donde: objeto Nombre del objeto PictureBox o Image ruta Expresin de cadena que especifica la ruta y el nombre del archivo que contiene el icono personalizado. As podemos cargar un icono de los existentes en el disco. Ejemplo: Image1.MouseIcon = LoadPicture("C:\vb\icons\computer\disk05.ico") Image Propiedad Picture de un objeto Form, de un control PictureBox o de un control Image, o nombre de una variable tipo Picture. De esta forma podemos cargar como un icono el grfico que tengamos en otro objeto o en una variable tipo Picture. Ejemplo: Image1.MouseIcon = Picture1.picture La propiedad MouseIcon proporciona un icono de mouse personalizado que se utiliza cuando el valor de la propiedad MousePointer es 99. MousePointer devuelve o establece un valor que indica el tipo de puntero de mouse que aparece cuando se pasa el puntero del ratn por encima de un objeto en tiempo de ejecucin. Sintaxis: objeto.MousePointer [= valor] objeto Nombre del objeto PictureBox o Image valor Nmero entero que especifica el tipo de puntero de mouse que aparece, segn se describe mas adelante. Las opciones para valor son: 0 (Predeterminado) Forma que determine el objeto. 1 Flecha. 2 Cruz (puntero en forma de cruz). 3 Forma de I. 4 Icono (pequeo cuadrado dentro de otro cuadrado). 5 Tamao (flecha de cuatro puntas: norte, sur, este y oeste). 6 Tamao NE SO (flecha doble apuntando al nordeste y al sudoeste). 7 Tamao N S (flecha doble apuntando al norte y al sur). 8 Tamao NO SE (flecha doble apuntando al noroeste y al sudeste). 9 Tamao O E (flecha doble apuntando al oeste y al este). 10 Flecha hacia arriba. 11 Reloj de arena (espera). 12 No soltar. 13 Flecha y reloj de arena. 14 Flecha e interrogacin. 15 Tamao de todo (personalizable en Microsoft Windows NT 3.51) 99 Icono personalizado especificado en la propiedad MouseIcon explicada anteriormente. Name (PictureBox e Image) Nombre del control Picture (PictureBox e Image) Devuelve o establece un grfico mostrado en un control. Ya se ha estudiado mas atrs como cambiar la propiedad Picture.
ScaleHeight, ScaleWidth, ScaleLeft, ScaleTop, ScaleMode Propiedades del PictureBox solamente. Todas las propiedades Scale ? ? ? ? afectan a las coordenadas, no a la escala ! ScaleHeight, ScaleWidth Devuelven o establecen el nmero de unidades de medida horizontal (ScaleWidth) y vertical (ScaleHeight) del interior de un objeto al utilizar mtodos grficos o al colocar controles. Sintaxis objeto.ScaleHeight [= valor] objeto.ScaleWidth [= valor] objeto Nombre del Control valor Expresin numrica que especifica la medida horizontal o vertical. Nota Las propiedades ScaleHeight y ScaleWidth son distintas de las propiedades Height y Width. ScaleLeft, ScaleTop Devuelven o establecen las coordenadas horizontal (ScaleLeft) y vertical (ScaleTop) de los bordes izquierdo y superior de un objeto al utilizar mtodos grficos o al situar controles. Estas coordenadas estn medidas de acuerdo con la unidad de medida establecida en las propiedades ScaleHeight y ScaleWidth ScaleMode Devuelve o establece un valor que indica la unidad de medida de las coordenadas de un objeto al utilizar mtodos grficos, o al situar controles. Sintaxis objeto.ScaleMode [= valor] objeto Nombre del Control valor Nmero entero que especifica la unidad de medida, segn se describe a continuacin. 0 Indica que una o ms de las propiedades ScaleHeight, ScaleWidth, ScaleLeft y ScaleTop tienen valores personalizados. Se usa entonces una unidad de medida definida por el usuario (User) 1 (Predeterminado) Twip (1440 twips por pulgada lgica; 567 twips por centmetro lgico). 2 Punto (72 puntos por pulgada lgica). 3 Pxel (la unidad mnima de la resolucin del monitor o la impresora). 4 Carcter (horizontal = 120 twips por unidad; vertical = 240 twips por unidad). 5 Pulgada. 6 Milmetro. 7 7 Centmetro. Utilizando las propiedades relacionadas ScaleHeight, ScaleWidth, ScaleLeft y ScaleTop, puede configurar un sistema de coordenadas completo, con coordenadas positivas y negativas. Estas cuatro propiedades de escala se relacionan con la propiedad ScaleMode de la siguiente forma: Al establecer un valor en cualquier otra propiedad de escala, en ScaleMode se establece automticamente 0. Al establecer en ScaleMode un nmero mayor que 0, ScaleHeight y ScaleWidth cambian a la nueva unidad de medida, y en ScaleLeft y ScaleTop se establece 0. Adems, los valores de CurrentX y CurrentY cambian para reflejar las nuevas coordenadas del punto actual. Stretch (Solo control Image) Devuelve o establece un valor que indica si un grfico cambia su tamao para ajustarlo al de un control Image. Sintaxis objeto.Stretch [= lgico] objeto Nombre del control Image lgico Expresin booleana que especifica si el grfico adapta su tamao, segn se describe a continuacin. True El grfico cambia su tamao para ajustarlo al del control. False (Predeterminado) El control cambia su tamao para ajustarlo al del grfico. Si Stretch tiene el valor True, al cambiar el tamao del control tambin se cambiar el del grfico que contenga. Cuando aumenta el tamao del control, mantiene las nuevas medidas aunque se le introduzca un grfico de menor tamao. Debe controlarse por programa el tamao del mismo. TabIndex, TabStop (Solo control PictureBox) Igual que otros controles Tag Top Visible WhatsThisHelpID Width Comunes a ambos. Igual que resto de controles.
Controles HScrollBar y VScrollBar Son dos controles similares, para introducir un dato cuasi-analgico en una aplicacin. Se toman directamente de la caja de herramientas, y tienen un aspecto parecido al de un control de volumen de un equipo de msica. El HScrollBar est en posicin horizontal, y el VScrollBar en posicin vertical.
Mediante estos controles se pueden introducir datos variando la posicin del cursor. PROPIEDADES de HScrollBar y VScrollBar Las sealadas con (*) son comunes a ambos controles y no presentan novedades respecto a las ya comentadas para los controles precedentes y se han explicado en el Capitulo III DragIcon (*) DragMode (*) Enabled (*) Height (*) HelpContextID (*) Index (*) LargeChange Esta propiedad establece la variacin de la propiedad Value cada vez que se hace click en el interior de la barra de desplazamiento, en la parte por donde pasa el cursor. Left (*) Max Esta propiedad establece el valor mximo para la propiedad Value, es decir, el valor de esta propiedad cuando el cursor est en su parte mxima. (Recuerde que el cursor est en el mximo, cuando est mas a la derecha, caso del HScrollBar, o cuando est en la parte mas baja, caso del HScrollBar. Min Esta propiedad establece el valor mnimo para la propiedad Value, es decir, el valor de esta propiedad cuando el cursor est en su parte mnima. (Recuerde que el cursor est en el mnimo, cuando est mas a la izquierda, caso del HScrollBar, o cuando est en la parte mas alta, caso del HScrollBar. MouseIcon (*) MousePointer (*) Name (*) SmallChange Esta propiedad establece la variacin de la propiedad Value cada vez que se hace click en las flechas superior o inferior de la barra de desplazamiento. TabIndex (*) TabStop (*) Tag (*) Top (*) Value Esta propiedad lee o establece el valor dado por la posicin del cursor. Este valor tiene un mnimo, establecido por Min y un mximo, establecido por Max. Esta propiedad es la que se debe leer para conocer la posicin del cursor. Visible (*) WhatsThisHelpID (*) Width (*) PROCEDIMIENTOS de HScrollBar y VScrollBar Change DragDrop DragOver GotFocus KeyDown KeyPress KeyUp LostFocus Scroll Comentario El Procedimiento Change se produce cuando, tras mover el cursor, se suelta el botn del ratn. Esto produce el efecto de que el cambio que se tenga que producir con el
movimiento del cursor no se realiza de una manera continua. El procedimiento Scroll se realiza en el instante que se est moviendo el cursor. Por lo tanto, es este procedimiento el que se debe usar para conseguir el efecto de un cambio continuo mientras se est moviendo el cursor. (Arriba)
Control TIMER (Temporizador) Este objeto permite establecer temporizaciones. Presenta una novedad respecto a los controles estudiados hasta ahora. El control Timer solamente se ve durante el tiempo de diseo. En tiempo de ejecucin, el control permanece invisible. La temporizacin producida por el Timer es independiente de la velocidad de trabajo del ordenador. (Casi independiente). El timer no es un reloj exacto, pero se le parece) Se toma directamente de la caja de herramientas, y tiene el aspecto siguiente :
PROPIEDADES Las sealadas con (*) son comunes a ambos controles y no presentan novedades respecto a las ya comentadas para los controles precedentes y se han explicado en el Capitulo III Enabled (*) Index (*) Interval El valor de esta propiedad nos dar el intervalo de tiempo (en milisegundos) en que se producir un evento Timer y consecuentemente, realizar el procedimiento asociado a este evento. Si el valor de la propiedad Interval est a 0 (Predeterminado), no se produce el evento Timer. (El control Timer est deshabilitado cuando se pone la propiedad Interval = 0) Left (*) Name (*) Tag (*) Top (*) PROCEDIMIENTOS del control Timer Se produce cada vez que se cumple un intervalo completo. Aqui solo hablamos sobre lo bsico del control Timer, pero en captulos futuro, hablaremos de como programar en el. (Arriba)
Shape es un control grfico que se muestra como un rectngulo, un cuadrado, una elipse, un crculo, un rectngulo redondeado o un cuadrado redondeado. Utilice controles Shape en tiempo de diseo en lugar o adems de invocar los mtodos Circle y Line en tiempo de ejecucin. Puede dibujar un control Shape en un contenedor, pero no puede actuar como contenedor. (Esto quiere decir que un control Shape nunca le servir, por ejemplo, para albergar varios OptionButton y pretender que sean independientes de otros controles OptionButton que se encuentren fuera del control Shape.
Este control no tiene Procedimientos. En realidad, solamente sirve para mostrar un determinado grfico, envolver grficamente a otros controles, pero no tiene ninguna aplicacin en cuanto a programa. Es un adorno para sus aplicaciones. PROPIEDADES Las sealadas con (*) son comunes a ambos controles y no presentan novedades respecto a las ya comentadas para los controles precedentes y se han explicado en el Capitulo III Backcolor (*) BackStyle Esta propiedad establece si Shape permite ver a su travs (Transparent) o n lo permite (Opaque) BorderColor Establece el color del borde. BorderStyle Establece el tipo de borde. Puede ser : Transparent, (No se ve el borde) Solid, (Borde de lnea continua), Dash, (lnea a rayas), Dot, (lnea a puntos), Dash-Dot, (lnea de raya - punto), dash-Dot-Dot, (lnea de raya - punto - punto), InsideSolid, (raya continua) El efecto de establecer la propiedad BorderStyle depende del valor de la propiedad BorderWidth. Si BorderWidth no es 1 y BorderStyle no es 0 o 6, BorderStyle se establece como 1. BorderWidth Establece el ancho de la lnea. DrawMode (*) FillColor (*) FillStyle (*) Height (*) Index (*) Left (*) Name (*) Shape Establece la forma del control. Puede ser : Rectangular, cuadrado, redondo, ovalado, cuadrado con esquinas redondeadas y rectangular con esquinas redondeadas. Tag (*) Top (*) Visible (*) Width (*) PROCEDIMIENTOS No tiene. (Arriba)
Line, al igual que Shape, es un control grfico que solamente sirve para poner una lnea en un formulario. Del mismo modo, no tiene procedimientos, por lo que no sirve para aportar cdigo al programa. Solo sirve para aportar una caracterstica grfica, es un adorno. PROPIEDADES Las sealadas con (*) son comunes a ambos controles y no presentan novedades respecto a las ya comentadas para los controles precedentes y se han explicado en el Capitulo III BorderColor Establece el color de la lnea. BorderStyle Establece el tipo de lnea: Puede ser: Transparent, (No se ve la lnea), Solid, (Lnea continua), Dash, (lnea a rayas), Dot, (lnea a puntos), Dash-Dot, (lnea de raya - punto), dash-Dot-Dot, (lnea de raya - punto - punto), InsideSolid, (raya continua) BorderWidth Establece el ancho de la lnea. DrawMode (*) Index (*) Left (*) Name (*) Tag (*) Visible (*) X1, X2 Establece las coordenadas x del inicio y final. Y1, Y2 Establece las coordenadas y del inicio y final. PROCEDIMIENTOS No tiene.
El Lenguaje de programacin Visual Basic Como se explico en el captuo 1.1, para escribir el cdigo que le da "vida" a los controles y a los formularios, se escribe en la ventana Cdigo. Te aconsejo que repases ese captulo si no te acuerdas bien. Si te acuerdas, Mejor!!!. De ahora en adelante por los prximos captulos, vamos a pelear con el Lenguaje de Programacin de Visual Basic, que se basa en cierto modo al BASIC de antes. En estos captulos tienes que poner mucho de tu parte, ya que es la forma de crear programas en VB, utilizando cdigo. Por eso, si al terminar ste captulo o uno de los prximos captulos no te aprendes bien todo lo que te explico, no pases a los dems captulos hasta que domines bien lo que te presento. Es por tu bien. Ya que con esto, le vas a sacar mejor provecho al Visual Basic. Empecemos...... IntelliSense Antes de empezar a escribir cdigo, aunque ya hemos escrito algn tipo de cdigo en el captulo 1.1, primero tengo que mencionar que es IntelliSense. IntelliSense, es la sofisticada tecnologa de Microsoft que le permite ahorrar trabajo y tiempo en las bsquedas y en la escritura. Probablemente ya la habrs visto funcionar, sobre todo si ha intentado escribir algo de cdigo. IntelliSense muestra unos pequeos cuadros con informacin
de utilidad sobre el objeto con el que se est trabajando. Tiene tres componentes, los cuales se describen a continuacin. Nota: Si ha desactivado IntelliSense, sus caractersticas son parte del men contextual (emergente) del men de la Ventana Cdigo) Informacin rpida: En la informacin rpida puede obtener informacin sobre la sintaxis de un operador de VB. Siempre que introduzca una palabra reservada, seguida de un espacio o de un parntesis, aparece una nota en pantalla que contiene la sintaxis de ese elemento. Esto es un ejemplo de lo que hace con la orden MsgBox:
A propsito, puede desactivar la Informacin rpida modificando la ficha Editor del cuadro de dilogo de Opciones(ir al men Tools (herramientas) y escojer Options (opciones)). Pero podr acceder a la Informacin rpida por medio de Crtl+I Pero como principiante que es, le recomiendo que las deje activadas. Lista de propiedades y mtodos: La caracterstica IntelliSense muestra una lista de las propiedades y mtodos de un objeto despu de que haya escrito el punto. Por ejemplo, si tiene un Label (etiqueta) denominada lblTexto e introduce lblTexto. a continuacin aparecer algo como esto:
seleccione el elemento que desea, desplazndose a travs de la lista. A continuacin pulse la tecla TAB para insertar el elemento. (Si desactiva esta opcin, la abreviatura de teclado es Ctrl+J) Lista de constantes: La tima caracterstica, de esta ingeniosa IntelliSense contiene un lista de todas las constante disponibles. Por ejemplo, si tiene una etiqueta denominada lblTexto e introduce lblTexto.Value = aparecer un cuadro desplegable con True o False. (De nuevo, seleccione uno de ellos, pulsando la tecla TAB).
(Arriba)
Las sentencias de comentarios Despus de esa introduccin a IntelliSense para facilitarle a la hora de escribir cdigo, vamos a lo bueno..... Hay dos formas de indicar una sentencia de comentario en VB. Las ms comn es una comilla simple ('), pero no un apstrofo. A continuacin se muestra un ejemplo. Private Sub Command1_Click() 'Este comentario describir este procedimiento End Sub Tambin puede utilizar la palabra reservada Rem (no la recomiendo) Private Sub Command1_Click() Rem Este comentario describir este procedimiento End Sub Como viene siendo habitual, las lneas del programa estan sangradas para mejorar su legibilidad. Si quiere aadir comentarios al final de las lneas, es ms fcil emplear la comilla ('), puesto que para el formato Rem sera necesario poner dos puntos (:) delante. Por ejemplo PrintForm 'Imprime la ventana actual PrintForm :Rem Un poco mas icmodo Sugerencia: Hace poco encontr un cdigo complejo en Visual Basic que todos los comentarios precedido por Rem. Por favor, no hacer esto. Visual Basic (BASIC) probablemente es el nico lenguaje de programacin que tiene una palabra reservada para iniciar comentarios. Si todo el mundo hace de cuenta como si Rem no exitiera, quiz Microsoft lo elimine en la siguiente versin. (Arriba)
La sentencia End Cuando Visual Basic procesa una sentencia End(terminar), el programa se detiene. Si se est ejecutando el programa en el IDE de VB, se vuelve al entorno de desarrollo. El efecto es exactamente el mismo que si selecciona la orden Terminar del men Ejecutar. En programas independientes, despus de una sentencia End, se cierran todas las ventanas abiertas por el programa y se elimina del programa de la memoria. En un programa VB puede utilizar todas las sentencias End que desee, pero es una buena prctica de programacin restringir el nmero de ocurrencias que finalizan un programa. Muchos de los programadores profesionales prefieren utilizar una nica sentencia End en su cdigo. El lugar para esta sentencia End es en el evento QueryUnload (al descargar formualrio) del formulario principal. Una de las ventajas de realizar esto es que puede utilizar el evento QueryUnload para ejecutar el cdigo necesario antes de que finalice la aplicacin. Si se decide a escribir programas de esta forma, sustituya todas las sentencias End por una sentencia Unload Me. Esto llama al evento QueryUnload de ese formualario. Asignacin y configuracin de propiedades.
Dos de las tareas ms comunes del cdigo VB es la asignacin de valores a las variables y la configuracin de propiedades. Visual Basic usa el signo de igual (=) para ambas operaciones. Por ejemplo: TasaDeInteres = 0.5 El nombre de la variable siempre aparece a la izquierda y el valor siempre a la derecha. VB tiene que ser capaz de obtener un valor del lado derecho de la sentencia de asignacin. Har cualquier tipo de proceso necesario para que esto ocurra. Puede considerar una sentencia de asignacin como la forma que tiene una variable VB de obtener un nuevo valor, o como una forma de copiar la informacin desde el origen al destino. Asignacin a propiedades Si quiere una propiedad de una objeto VB, escribe el nombre del objeto seguido por un punto (.) y luego el nombre de la propiedad a la izquierda del signo de igual (=), y el nuevo valor en el derecho: objeto.propiedad = valor Por ejemplo, suponga que tiene un cuadro de texto (TextBox) y quiere dejar en blanco el cuadro de texto mediente cdigo, en lugar de emplear la ventana propiedades, slo se necesita una lnea como la siguiente en un procedimiento de evento: Text1.Text = " " Puesto que no hay nada entre las comillas, el texto asignado a esta propiedad quedar en blanco. Igualmente, una lnea como: Text1.Text = "Este es el nuevo texto." en un procediento de evento, cambiar el valor de la propiedad Text al texto que aparece en comillas. Puede cambiar el valor de una propiedad mediante cdigo tantas veces como desee. Por ejemplo, si desea el ttulo de una bton de orden donominado Command1, podra escribir una lnea como esta en un procedimiento de evento. Command1.Caption = "Este es el nuevo ttulo" De esta forma anloga, si se necesita que el botn denominado Command5 seal el primer botn en el orden de tabulacin, basta con aadir una lnea como esta a una procedimiento de evento: Command5.TabIndex = 0 Ahora, suponga que desee un formulario denominado Form1 que se mueva cuando se pulse ciertos botones. A continuacin se muestra unos de los procedimiento que necesitar: Form1.Left = Form1.Left - 75 Fjese en la lnea esta. En la parte izquierda de la sentencia de asignacin se encuentra la propiedad que toma el valor, pero esta propiedad tambin aparece en la parte derecha. Lo que ocurre es que Visual Basic primero analiza la parte derecha de cualquier sentencia de asignacin para calcular su valor. En este caso mira la posicin actual del lado izquierdo del formualrio y calcula el nmero de twips que hay hasta el extremo izquierdo de la pantalla. A continuacin resta 75 a este valor. Solamente, una vez que se haya hecho esto, se pasa a la parte izquierda. Ahora VB cambia el antiguo valor de la propiedad Left por la nueva. (Arriba)
Propiedades booleanas Las propiedades que slo toman el valor de True (Cierto/Verdadero) o False (Falso) se denominan propiedades booleanas o propiedades lgicas, deben su nombre al matemtico ingls George Boole. Ya se han visto muchas propiedades booleanas. Las propiedades booleanas pueden especificar si un botn de orden es visible, si est habilitado, o si el botn de cancelar por omisin. VB tiene una serie de constantes incorporadas para estas propiedades importantes. Una sentencia como: Command1.Visible = False En un procedimiento de evento, ocultar el botn de orden denominado Command1. El control permanecera oculto hasta que Visual Basic procesa esta sentencia: Command1.Visible = True Si desea utilizar la tecla TAB para desplazase entre los distintos controles durante la ejecucin del programa, asigne False a la propiedad TabStop: Control.TabStop = False Donde Control, es el nombre del control que quiera cambiar la propiedad. Internamente, VB usa los valores 0 para False y 1 para True (En verdad vale cualquier valor distinto a cero para True) La forma habitual de alternar el valor de las propiedades booleanas es mediante el operador Not. Supngase que tiene una sentencia como la siguiente: Command1.Visible = Not(Command1.Visible) en un procedimiento de evento. Esta sentencia funciona de esta manera: Visual Basic busca el valor actual de Command1.Visible y luego, mediente el operador Not, lo cambia. Es decir, que si era True lo pone False, y viceresa. Nota: Para que el operador Not funcione correctamente y haga alternar los valores de las propiedades booleanas, es necesario emplear la constante incorporada True o el valor 1 para la misma
Variables Las variables contienen informacin (valores). Siempre que utilice una variable, Visual Basic define un rea de la memoria de la computadora para guardar la informacin. Los nombres de las variables en Visual Basic puede tener una longitud mxima de 255 caracteres, con la particularidad de que el primer carcter tiene que ser una letra, y el resto puede ser una combinacin de letras, nmeros y de caracter de subrayado. El hecho de que el nombre de la variable est en mayscula o minscula es irrelevente. La tabla siguiente muestra algunos posibles nombres de variables e indica si son correcto. Base1_Bola Correcto: empieza por una letra 1Base_Bola Incorrecto: el primer carcter no es una letra Base.1 Incorrecto: utiliza un punto EstoEsMuyGrandePeroEsCorrecto Correcto: slo tiene 31 caracteres
Todos los caracteres de un nombre de variable son significativos, pero no importa si estn o no en maysculas o en minsculas. BASE es la misma variable que base. Por otra parte, Base es una variable diferente que Base1, y ambas son diferentes que Base_1. Sin embargo, VB cambia siempre el formato de los nombres de las variables para reflejar el ltimo criterio de maysculas y minsculas que se haya empleado en la declaracin de una variable. La eleccin de nombres de variables significativos ayuda a la documentacin de los programas y facilita el inevitable proceso de la depuracin. Los nombres de las variables significativos son una forma exelente para aclarar el sentido de muchos tipos de sentencias del programa. No se pueden utilizar nombres reservados de VB para nombres de variables. Por ejemplo, Print no es una nombre de variable aceptable. Sin embargo, puede incluir palabras reservadas dentro del nombre de una variable. Por ejemplo, MiPrint es un nombre de variable perfecto. VB presentar un mensaje de error en cuando pulse la tecla ENTER si utiliza un nombre reservado de VB para nombre de una variable. Uno de los convenios ms utilizado para la denominacin de variables es la utilizacin de letras maysculas slo al principio de las palabras que forman el nombre de la variable. Por ejemplo: IntersHipoteca en lugar de Intershipoteca. Este es el convenio que empleo yo y que sugiero que utilices, ya que es ms legible. Tambin hay quien aade espacios subrayados(por ejemplo, Inters_Hipoteca). Este estilo no lo empleo yo, ya que desperdicia espacios, y a veces puede causar problemas en la depuracin. Tipos de variables Visual Basic utiliza 14 tipos de estndar de variables. En esta seccin describe los tipos que ms se suele utilizar para la manipulacin de datos. String (Cadena). Las variables string(cadena) guardan caracteres. Un mtodo para la identificacin de las variables de este tipo es el signo de dlar($) al final del nombre de la variable. Por ejemplo: VariableDeCadena$. Las variables de cadena pueden, tericamente, guardar hasta 2 billones de caracteres, si bien, algunas mquinas pueden que no permitan tantos caracteres debido a restricciones de memoria, necesidades de Winodws o el nmero de variables de cadena usadas en el formulario. Uno de los usos ms comunes de las variables string, es para la seleccin de informacin contenida en los cuadros de texto(TextBox). Por ejemplo, si se tiene un cuadro de texto denominado Text1, la sentencia: ContenidoDelCuadroDeTexto= Text1.Text Esto asigna la cadena contenida en el TextBox a la variable que hay a la izquierda. Integer (Entero) Las variables Integer guardan valores enteros relativamente pequeos (Entre -32.768 y +32.767). La aritmtica con las variables Integer es muy rpida, pero est restringida a este rango. El identificador es el signo de porcentaje (%): UnaVariableInteger% = 3 Long Integer (Entero largo) La variable Long Integer es un tipo que se introdujo en QuickBASIC. Guarda enteros entre -2.147.483.648 y +2.147.483.647. El identificador que se utiliza es el ampersand (&). La artimtica de los nmeros con enteros largos tambin es rpida, y en mquinas Pentiun, Pentium MMX y Pentium II y Pentium III la diferencia de tiempo entre la utilizacin de enteros largos en lugar de enteros normales es muy pequea.
Single Precision (Simple precisin) Para los nmeros de simple precisin, el identificador es un signo de exclamacin (!). Estas variables guardan aproximaciones de los nmeros. Pueden ser fraccionarios, pero slo una presicin de siete dgitos. Esto significa que si la solucin es 12.345.678.97 no hay garanta de la presicin del 8.97. La respuesta podra ser tambin 12.345.370.01. Aunque su presicin est limitada, el tamao (lmite) de estos nmeros es de hasta 38 dgitos. Los clculos con este tipo de variables siempre sern aproximados. Ms an, la artimtica con estas variables es ms lenta que con Integer o Long Integer. Double Precision (Doble precisin) Este tipo de variable guarda nmeros con una precisin de 16 dgitos y permite ms de 300 dgitos. El identificador es el signo de de numeral (#). Con esta variable los clculos tambin ser aproximados. Currency (Moneda) Las variables de moneda se disearon para evitar ciertos problemas inherente al cambio entre fracciones binarias y fracciones decimales. El tipo de modena puede tener 4 dgitos a la derecha del punto decimal y hasta 14 a la izquierda del mismo. Dentro de estos mrgenes, la aritmtica es exacta. Date (Fecha) El tipo de datos del fecha, le proporciona una forma apropiada para guardar informacin de fechas y de horas comprendidas entre la medianoche de enero del ao 100 y la medianoche del 31 de diciembre de 9999. Necesita colocar el signo de # a los lados de las variables de fecha en ingls, como por ejemplo: Milenio = #January 1, 2000# Si no incluye una hora en la fecha, VB supone que es medianoche. Byte El tipo byte es nuevo en Visual Basic 5 y puede contener enteros entre 0 y 255. Es muy til cuando se necesita ahorrar espacio, y se permite la creacin de matrices mucho ms pequeas que en las versiones anteriores de Visual Basic. Boolean (Booleano) Utilice en tipo booleano para variables que utilicen valores de True o False(como se vi en el captulo anterior). Variant (Variante) El tipo variante se incorpor en la versin 2.0 de VB. El tipo de datos variante se dise para guardar en un nico lugar de la memoria los diferentes datos posibles recibidos por VB. Si no puede indicar a VB que tipo de informacin va a contener la variable, utilice este tipo de datos. No importa si la informacin es numrica, de fecha/hora, de cadena, de valores True o False, el tipo de variable variante puede guardar todo. Todo esto se realiza automticamente todas las conversiones necesarias para que el programador no tenga que preocuparse de que tipo de datos se esta guardando en la variable. Adems, como ya se ver, puede utilizar una funcin incorporada para determinar si los datos almacenados en la variable son numricos, fecha/hora o cadena. La utilizacin del tipo variante en lugar de un tipo especfico de variable (como Integer) es siempre un poco ms lenta debido a las conversiones necesarias, y necesita un poco ms de memoria. Adems muchos programadores opinan (como yo), que confiar en la conversin automtica de tipos de variable conduce a una programacin descuidada. Esto se debe que si confa a la computadora que realice las conversiones, pueden originarse problemas en su programa (debido a que las conversiones que se suponen que se van a realizar, no las realiza Visual Basic) (Arriba)
Declaraciones de variables La sentencia Dim Muchos programadores(como yo nuevamente), prefieren no utilizar los identificadores para la especificacin del tipo de una variable. En su lugar utilizan la sentencia Dim dentro de un procedimiento. El trmino para este tipo de sentencias es declaraciones. Es una buena tcnica de programacin la declaracin de los tipos de variables que se van a utilizar en un procedimiento de evento, antes de que vaya a ser utilizadas. Esto aumenta la legibilidad de sus programas ya que es fcil no apreciar a los identificadores con un solo carcter.
Private Sub Calcular_Click() 'Este procedimiento calcula el inters de una hipoteca Dim Aos As Integer 'Se declara como entera Dim Tasa As Currency 'Se declara como tipo moneda Dim Cantidad As Long Integer 'Se declara como entero largo Dim CuadroDeTexto As String 'Se declara como cadena Dim Casado As Boolean 'Se declara como booleana (True/False) End Sub Como expliqu en el captulo anterior, la sentencia que empieza con una comilla simple ('), son comentarios sobre el el procedimiento que se va a ejecutar. Puede combinar varias declaraciones en una misma lnea, como esto: Dim Ao As Integer, Dinero As Currency, Nombre As String Creo que esto viene de la programacin en C. Un error tpico es la utilizacin de algo como esto: Dim Aos, Tasa, Numero As Integer y suponer que se trata de tres variables enteras. Pues esto est mal!!!! Por que las variables Aos y Tasa son variables tipo variantes, y Numero es la variable entera. Tiene que utilizar el identificador de tipo cada vez. El tipo de variable por omisin es el tipo Variant. As que para declarar una variable tipo variant, basta con escribir la variable sin el identificador: Dim Java 'hace que Java seal del tipo de datos variante Tambin puede utilizar Dim Java As Variant 'de forma explcita. Ms legible.