__________________________________

 

Generalidades

Visual Basic es un lenguaje de programación de los llamados "visuales", puesto que parte de la programación que se realiza con él se basa en la utilización de elementos visuales. La palabra "Visual" hace referencia al método que se utiliza para crear la interfaz gráfica de usuario. En lugar de escribir numerosas líneas de código para describir la apariencia y la ubicación de los elementos de la interfaz, simplemente podemos agregar objetos prefabricados en su lugar dentro de la pantalla, que ahorran mucho tiempo de programación y que sobrepasan el concepto de la programación convencional en cuanto a la estructura secuencial del programa. Profundizaremos en estos conceptos a medida que avancemos en el desarrollo del curso.

Tradicionalmente el lenguaje Basic (Beginners All-Purpose Symbolic Instruction Code) se ha considerado como el lenguaje adecuado para principiantes en el mundo de la programación, si bien se le achaca que no tiene la potencia suficiente para cubrir todas las expectativas de los programadores avanzados. Cierto es que aunque nos permite la creación de componentes y trabajar con objetos, otros lenguajes tienen más potencia en la programación orientada a objetos, pero a medida que han avanzado en las versiones de Visual Basic, ha aumentado su versatilidad. Este curso pretende ser una iniciación a la programación en Visual Basic, que posteriormente puede implementarse con otros cursos avanzados en el sentido de profundizar en el concepto de la programación. La versatilidad a la que se hace alusión viene del hecho de que una vez realizado este curso se tiene la base suficiente para abordar otros aspectos de la programación actual. En primer lugar, podríamos abordar la programación de VBA (Visual Basic para Aplicaciones), que nos permitirá programar rutinas de código que nos proporcionarán mayor potencia y funcionalidad de nuestras aplicaciones ofimáticas, por ejemplo para los programas del paquete Microsoft Office: Microsoft Word, Microsoft Excel, Microsoft Access..., las macros que se pueden programar en estos programas se escriben en VBA, que es un lenguaje basado en Visual Basic, es decir una vez conocido este, aprender VBA consiste en tener en cuenta las especificaciones que hace sobre el Visual Basic que ya conocemos, la idea a transmitir es que no hay que aprender nada nuevo desde el principio, sino que con poco esfuerzo, rápidamente podemos empezar a crear nuestras propias macros.

En segundo lugar, y teniendo en cuenta el auge que está teniendo Internet actualmente, el conocer Visual Basic nos abre una ventana a la programación para Internet. En la creación de páginas Web se utiliza el lenguaje HTML, en combinación con otros que le proveen de funcionalidad, uno de ellos es el VBScript, que en realidad no es otra cosa que una adaptación de Visual Basic, dicho de otra forma, conociendo Visual Basic, cuesta muy poco aprender VBScript, lo que nos permitirá programar ASP (Active Server Pages). Esto quedará mejor explicado con un ejemplo: Suponer que queremos programar una página Web que además de los enlaces a otras páginas nos permita, por ejemplo, consultar una base de datos en Access, esta consulta no se puede programar con HTML ya que no dispone de órdenes para ello, necesitamos enlazar la página en HTML a una página ASP, la cual programaremos mezclando HTML y VBScript, que es la que mediante el VBScript nos permitirá ejecutar la consulta a la base de datos.

Características de Visual Basic.

Podríamos decir que Visual Basic es un lenguaje orientado a eventos. En las aplicaciones tradicionales o "por procedimientos", la aplicación es la que controla qué partes de código y en qué secuencia se ejecutan. La ejecución comienza con la primera línea de código y continúa con una ruta predefinida a través de la aplicación, llamando a los procedimientos según se necesiten.

En una aplicación controlada por eventos, el código no sigue una ruta predeterminada; ejecuta distintas secciones de código como respuesta a los eventos. Los eventos pueden desencadenarse por acciones del usuario, por mensajes del sistema o de otras aplicaciones, o incluso por la propia aplicación. La secuencia de estos eventos determina la secuencia en la que se ejecuta el código, por lo que la ruta a través del código de la aplicación es diferente cada vez que se ejecuta el programa.

Para manejar los objetos y controles del lenguaje hay que conocer tres conceptos asociados a ellos:

  • Propiedades:
  • Para todos los objetos y controles de Visual Basic, hay definidas una serie de propiedades que nos permiten controlarlos: nombre, tamaño, color, posición, etc..., la mayoría de las propiedades serán comunes, pero evidentemente, habrá objetos que tengan unas determinadas propiedades específicas.
  • Eventos:
  • Cada objeto lleva asociados unos determinados eventos que le pueden ocurrir, por ejemplo a un botón, le puede ocurrir que el usuario pulse con el botón principal del ratón sobre él, eso es el evento NombreDelBotón_Click(), bien cuando esto ocurra, se dispara este evento, al cual nosotros le añadiremos el código de lo que queremos que haga la aplicación cuando el usuario pulse el botón.
  • Métodos:
  • Son procedimientos asociados a un objeto, es decir, nos permiten realizar acciones como por ejemplo escribir un texto en un objeto, necesitaríamos usar el método Print, con la siguiente sintaxis: NombreDelObjeto.Print "Texto deseado".

Encontraremos tanto propiedades, eventos como métodos comunes, si bien, dependiendo de los objetos que utilicemos encontraremos elementos específicos y exclusivos del objeto.

El esquema de programación es muy sencillo, para crear una aplicación, primero crearemos un formulario vacío sobre el que iremos poniendo los controles que deseemos, en tiempo de diseño podremos especificar las propiedades iniciales de esos controles. Posteriormente escribiremos el "código respuesta" a los eventos que queramos controlar de nuestros objetos. En ese "código respuesta", que es lo que llamaremos tiempo de ejecución, podremos modificar algunas propiedades de los objetos, lanzar métodos, ejecutar rutinas, llamar a otros procedimientos etc..

 

Descripción del entorno.

Cuando ejecutamos VB, después de cargar el entorno, nos aparece el siguiente cuadro:

Nos ofrece tres solapas: Nuevo, con las diferentes opciones que nos permite crear VB, en principio sólo utilizaremos EXE estándar, que nos llevará a un formulario vacío desde el cual comenzaremos a desarrollar nuestra aplicación. Existente, nos permite abrir proyectos que ya existen para continuar implementándolos. Recientes, lo mismo pero sobre los últimos proyectos que hayamos estado desarrollando.

Una vez que hayamos elegido EXE estándar, aceptamos y aparece la siguiente ventana (salvo por las diferencias de tamaño, necesarias para que entre la imagen), en la cual vemos que tenemos un proyecto abierto que en principio cuenta con un formulario vacío. Posteriormente, si los necesitamos podremos insertarle tantos formularios al proyecto como queramos.

La ventana principal está formada además de por la barra de menús y la barra de botones superiores, de un conjunto de ventanas con funciones diversas, cada una de ellas es configurable en cuanto tamaño, o incluso se pueden ocultar para ganar espacio para otras. Las principales son:

  • Ventana del Proyecto:
  • Es la ventana que va a contener el objeto activo del proyecto, en la imagen superior vemos que contiene el formulario vacío, que utilizaremos para el diseño gráfico. Pero cuando le queramos añadir código, la ventana de código también estará contenida aquí.
  • Explorador de proyectos:
  • Ventana superior derecha, nos permite visualizar los objetos que contiene el proyecto actual agrupados por categorías, en nuestro caso y por el momento solo hay un formulario colgando de la carpeta formularios. Además en la parte superior izquierda de esta ventana hay dos botones que nos permiten intercambiar la vista de diseño gráfico con la ventana de código en la ventana del proyecto. No obstante para pasar a la ventana de código bastaría con hacer doble click sobre cualquier control.
  • Ventana de propiedades:
  • Situada debajo de la anterior, contiene el conjunto de propiedades, con el valor actual correspondiente, de cada uno de los objetos. Es aquí donde podremos modificar los valores iniciales de esas propiedades, en lo que se conoce como tiempo de diseño.
  • Ventana de posición del formulario:
  • Situada debajo de la anterior, permite la colocación del formulario en la pantalla, representado la misma con una imagen a escala.
  • Caja de herramientas:
  • Situada a la izquierda, contiene los controles que podemos ir colocando en el formulario, para ello bastará con hacer doble click sobre uno de ellos, o pulsar sobre el control y "dibujarlo" sobre el formulario.

@@@@@@@@@@@@@@@@@

 

 

Formulario

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 opción, etc., en este cuadro gráfico que llamamos formulario, podemos introducir textos escritos, lugares donde podemos escribir, figuras, cajas donde podemos elegir una u otra opción ....

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 alfanuméricos. Cuando en vez de introducir datos, lo que tenemos es, por ejemplo, una ventana donde se reproducen exactamente los controles de operación de una máquina, parece en principio que sería más correcto el nombre de "ventana".  De alguna forma lo hay que llamar, 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.

 

 

http://profesorjosdarmoreno.blogdiario.com/img/formulario.gif

 

Forma inicial del formulario. Como cualquier objeto Visual Basic, un formulario tiene propiedades y procedimientos:

PROPIEDADES.

Name              Nombre

Define al objeto durante la ejecución del programa. Se introduce en tiempo de diseño y no se puede variar durante la ejecución. Nombre por defecto: Form1  (Form2  y sucesivos)   Este nombre por defecto debe cambiarse, (debería cambiarse por norma en el momento de introducir el formulario), ya que de no hacerlo corremos el riesgo de borrar el código existente de otro formulario del mismo nombre en el momento de guardar la aplicación. 

 

Caption           Título

Es el texto que aparecerá en la barra de Título cada vez que aparezca en pantalla este formulario. No tiene otra función dentro del programa. El programa no accede a este formulario por el título, sino por el nombre.   Puede cambiarse en tiempo de ejecución.

                                   NOTA.- No confundir Nombre (Name) con Título (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 (flechas) de minimizar y maximizar este formulario. Son igualmente propiedades booleanas, que admiten el valor True o False. Si están en true, aparecerá la flecha correspondiente. Si están en False, no aparecerá dicha flecha. Deben configurarse de una u otra forma, dependiendo si se quiere minimizar / maximizar este formulario durante la ejecución.

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.

 

BorderStyle     Tipo de borde   

Define el tipo de borde que tendrá el formulario durante la ejecución. No se puede cambiar en tiempo de ejecución,

                        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 tamaño durante el tiempo de ejecución. Con este valor, el formulario puede tener un menú de control, barra de título y botones de maximizar y minimizar. Solo podrá cambiarse de tamaño utilizando estos botones.

2-Sizable 

El formulario tendrá borde grueso, y se podrá cambiar su tamaño en tiempo de ejecución mediante los botones de maximizar y minimizar, y mediante el arrastre de uno de los bordes con el ratón.

                        3 - Fixed Dialog  

El formulario tendrá borde grueso, y no se podrá redimensionar durante la ejecución. 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 tamaño. En Windows 95 muestra el botón Cerrar, y el texto de la barra de titulo aparece con un tamaño 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 botón Cerrar y el texto de la barra de titulo aparece con un tamaño 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 aparecerán como esculpidos dentro de él. Con valor 0 (Flat)  en esta propiedad, el formulario aparecerá durante la ejecución 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 están 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 ejecución.

            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 método gráfico o el aspecto de un control Shape o Line. Verá mas adelante los efectos de esta propiedad.

 

DrawStyle                                Valor por defecto : 0  

Establece el estilo de línea de la salida de métodos gráficos:

                        Valores:            0 - Línea 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 línea 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 tendrán las letras si escribimos en él, o los dibujos, si lo que hacemos es dibujar. En tiempo de diseño, determina el color de la rejilla,.

 

FillStyle           Tipo de relleno   Valor por defecto: 2

Establece el modo de rellenar controles Shape, o figuras (círculos o cuadrados) creados con los métodos gráficos Circle y Line.

                        Valores:            0 - Continuo

                                               1 - Transparente

                                               2 - Línea Horizontal

                                               3 - Línea 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 personalización.

Especifica el tipo y tamaño 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 parámetros.

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 pequeño 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 gráfico de fondo del formulario se muestra (True) o no se muestra entre los caracteres de texto escritos en el propio formulario.

 

FontSize                      Tamaño de letra

Establece el tamaño de la letra. Esta propiedad, que puede variarse en tiempo de ejecución, varía solamente el tamaño, y no el tipo de letra. El tamaño debe expresarse en puntos. Máximo, 2160 puntos.

 

FontBold, FontItalic, FontStrikethru, FontUnderline  

Permiten, en tiempo de ejecución, 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 numérico, sino que toma el valor automáticamente, dependiendo de las dimensiones del formulario durante el tiempo de diseño. Puede cambiarse durante el tiempo de ejecución.

 

HelpContextID                        Valor por defecto: 0

Establece un número de contexto asociado para este formulario. Este número se aplica para determinar la ayuda interactiva asociada a este formulario. Vea mas adelante, el tema Ayuda de Windows.

Puede tomar los siguientes valores :      0 - No se especifica número de contexto

                                                           >0 Un entero que especifique un contexto válido.

 

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 aplicación, este icono es el que toma el Asistente de Instalación 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, haciéndolo directamente sobre la caja de propiedades.

            Valor por defecto: el icono que se le haya programado en la personalización. 

 

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 pulsación la  recibe en primer lugar el control que esté activo,  y si éste no la procesa, pasa esa pulsación al formulario. Para hacer que esa pulsación pase directamente al formulario, debe ponerse esta propiedad en True.

 

Left      Borde Izquierdo             Valor por defecto: No existe

Indica la posición del borde izquierdo del formulario. Normalmente no se introduce como valor numérico, sino que lo toma automáticamente de la posición que tenga el formulario en el      tiempo de diseño. Puede cambiarse en tiempo de ejecución, para mover el formulario.

 

LinkMode                                Valor por defecto: 0

Permite que una aplicación destino inicie una conversación DDE con el formulario (origen de datos). Puede tomar los siguientes valores:

                        0 - No hay interacción DDE

1 - Source. Indica que este Formulario es origen de una comunicación DDE. El dato que se va a traspasar en esa comunicación 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 conversación DDE, cuando funciona como origen. Es por este tema por el que se debe llamar a este formulario cuando actúa de origen en una conversación 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 ejecución. 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 ratón 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 ratón pase por este Formulario, cambiará su forma y adoptará la del icono elegido.

 

MousePointer                         Valor por defecto: flecha

Determina la forma del puntero del ratón 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            Gráfico             Valor por defecto: No existe

Mediante esta propiedad podemos poner un gráfico como fondo del formulario. El gráfico puede ser un bit-map o un fichero .ICO

 

ScaleHeight, ScaleWidth, ScaleMode,

Indican la unidad de medida de dimensión 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), Milímetros (6), Centímetros (7).  Si colocamos la propiedad ScaleMode  en cualquiera de estos valores, las propiedades ScaleHeight y ScaleWidth nos vendrán dadas automáticamente dependiendo del ancho del Formulario, y no se extrañe 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) serán 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) forzándole estas propiedades, bien en tiempo de diseño en la caja de propiedades, o en tiempo de ejecución mediante código. Entonces sabemos que el formulario, independientemente de las dimensiones físicas 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 serán 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 automáticamente a User (0) al introducir las dimensiones de ancho y alto que nosotros queremos.

Estas unidades de medida afectarán a los controles que metamos en este Formulario. Se medirán en su ancho y alto con la unidad de medida definida para el ancho y alto del Formulario. Lógicamente también afectará a las propiedades Left y Top de los controles, pero estas propiedades se verán afectadas además por las propiedades ScaleLeft y ScaleTop del Formulario que se verán a continuación.

 

 

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 posición 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 diseño).  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, según avanzamos hacia abajo y hacia la derecha.

Como aclaración 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 información adicional para fines externos a la programación. Pero también le puede servir para almacenar en ella una variable para que la use un código ajeno al formulario. El autor de estos apuntes tiene por costumbre utilizar la propiedad Tag del formulario inicial para guardar el parámetro 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      Posición del borde superior        Valor por defecto: No existe

Esta propiedad establece la posición del borde superior del formulario. Normalmente no se introduce como valor numérico sino que lo toma automáticamente de la posición que tenga el  Formulario durante el tiempo de diseño Este valor puede cambiarse durante la ejecución para, conjuntamente con Left,  variar la posición del Formulario. Los valores de Top y Left definen la esquina superior izquierda del Formulario.

 

 

                   

Visible                                                Valor por defecto:  True

Propiedad Booleana.  Asignándole el valor True la pantalla es visible, y asignándole el valor False, no se ve.  Este valor puede cambiarse durante el tiempo de ejecución 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 numérico sino que lo toma automáticamente del tamaño que tenga el formulario durante el tiempo de diseño. Juntamente con Height define el tamaño del formulario. Puede cambiarse durante el tiempo de ejecución.

 

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 posición y tamaño que tenía en el tiempo de diseño.

1 - Minimizado  El formulario aparece minimizado, representado por su icono.

2 - Maximizado   El formulario aparece maximizado, ocupando toda la pantalla.

PROCEDIMIENTOS

Activate           Activación                                Click                Click

DblClick           Doble click                               Deactivate       Desactivación

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    Ejecución de un enlace de datos

 

LinkOpen        Romper el enlace                      Load                Cargar el formulario

LostFocus        Perder el foco                           MouseDown    Pulsar una tecla del ratón

MouseMove     Mover el ratón (Detecta la posición del ratón sobre el formulario)

MouseUp         Soltar una tecla del ratón           Paint               Pintar

QueryUnload   Confirmación de descarga          Resize             Cambio de tamaño

Unload            Descargar el formulario

 

 

Un Formulario sirve, fundamentalmente, de contenedor de controles. Es la ventana de Windows de nuestra aplicación. Una aplicación puede tener varios Formularios y dentro de cada uno de ellos, los controles necesarios para cada paso o estado de la aplicación.

Un Formulario puede servir también como soporte de textos o dibujos.

 

CONTROLES

Una vez introducido un Formulario, se pueden colocar los objetos (controles) que forman parte de la aplicación. Estos controles se irán viendo en próximos capítulos.

Los controles, lo mismo que el Formulario, tienen Propiedades y Procedimientos.

Las Propiedades definen las características 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 pequeño margen de actuación, los procedimientos son en su totalidad, definidos por el programador. Estos procedimientos forman parte del programa. Podría incluso hacerse una aplicación que no tuviese mas código 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 llevarlo al Formulario. Si no existiese el control deseado en la caja de herramientas, deberemos ir a “cogerlo” a Controles personalizados que están en el menú desplegable Herramientas de la barra de Menú de VB. Se elige el nuevo control, marcando la caja de opción a la izquierda de su nombre, y haciendo click en ACEPTAR. Este control ya pasa a la caja de herramientas.

 

 

 

..______________________..

Visual Basic 

Variables, definición y entorno

Basic, desde siempre, al contrario de otros sistemas de programación, no exigió la definición previa de una variable.  Una variable, como Vd. seguro que conoce, es un nombre que en el programa le asignamos a un dato. Ese dato podrá cambiar. Piense por ejemplo, en un programa consistente en la toma de datos de los alumnos de un centro escolar. Existirán varias variables para poder introducir los datos de los alumnos. Estas variables pueden tener nombre tales como:

            Nombre

            Apellido1

            Apellido2

            Dirección

            Teléfono

            DNI

 

La variable Nombre tomará valores distintos según vayamos introduciendo los datos de los distintos alumnos. Es posible, que a lo largo de la ejecución del programa, esta variable Nombre valga:

            José

            Pedro

            María

            Luis

 

Espero que su intuición o conocimiento anterior le lleve a conocer el concepto de variable. Más adelante lo verá mas claro.

Decíamos que Basic no exige la definición previa de las variables. Otras herramientas exigen que se haga así. Por lo tanto es normal encontrar, en otros sistemas de programación, que un programa comienza de la siguiente forma:

           

            Declare Nombre As String         Le dice que Nombre es una sucesión de letras

            Declare Apellido1 As String

            Declare Apellido2 As String

            Declare Dirección As String

            Declare Teléfono As String         Le dice que Teléfono es una sucesión de letras  

            Declare DNI As Número             Le dice que DNI es un número

 

Mediante estas declaraciones, el programa sabe de que tipo de dato se trata y por tanto cómo debe trabajar con él. En otros sistemas de programación distintos de Basic, es necesario realizar esta declaración antes de introducir una variable.

Basic permite que no se declaren. Cuando a lo largo del programa le introducimos una variable nueva, asume que es una variable y que el tipo es el adecuado para el valor que le estamos introduciendo en ese momento.

Por ejemplo, si Basic encuentra estas instrucciones

                        DNI=50000000

                        Nombre ="Pedro"

                        Teléfono = "1234567"

 

Entiende que DNI, Nombre y Teléfono son variables, que DNI es un número (No hemos metido su valor entre comillas), y que Nombre y Teléfono son sucesiones de caracteres alfanuméricos (su valor está entre comillas)

Esta particularidad de no necesitar declarar las variables hace que sea sencillo introducir una variable nueva.  Sin embargo entraña un gran peligro. Imagínese que en un paso posterior del programa, le mandamos escribir esos tres datos anteriores con la instrucción PRINT

                        Print DNI

                        Print Nombre

                        Print Telwfono

 

Habrá observado en tercer lugar la palabra Telwfono, que por error ha introducido el programador. Basic interpreta que Telwfono es una variable e irá a leer en memoria el valor que tiene. No tendrá ningún valor. Por lo tanto no escribirá nada y encima no dará ningún aviso de que se ha cometido un error. Nada es gratis en esta vida, y la facilidad para introducir variables se paga con la posibilidad de un error.

Basic ha pensado en ese problema, y se puede solucionar con esta que será la primera instrucción BASIC que vamos a estudiar:

 

OPTION EXPLICIT      

Obliga a declarar previamente las variables que se vayan a usar. De no haberla declarado antes de usarla, el programa dará una comunicación de error.

 

TIPOS DE VARIABLES

Las variables pueden ser de los siguientes tipos: (El número indicado en segundo lugar indica el número de Bytes que ocupa en memoria.)

 

Booleana          (2)        Admite los valores 0 y 1, o True (verdadero) y False (falso)

Byte                 (1)        Números enteros, en el rango de 0 a 255

Integer              (2)        Números enteros en el rango de -32768 a 32767

Long                 (4)        Números enteros en el rango de -2147483648 a 2147483647

Single               (4)        Punto flotante, simple precisión

Doble               (8)        Punto flotante, doble precisión.

Currency           (8)        Entero, con punto decimal fijo  (Típico de monedas)

String               (*)         Cadenas alfanuméricas de longitud variable o fija

Date                 (8)        Fechas

Objet                (4)        Referencia a objetos

Variant             (**)       Otros tipos de datos

 

(*) Una variable tipo String ocupa el mismo número de bytes que caracteres tenga la cadena.

(**) Una variable tipo Variant ocupa 16 bytes si se trata de un número y 22 bytes + longitud de la cadena si se trata de un dato tipo cadena de caracteres.

 

Existen también variables definidas por el usuario (Ya verá la sentencia Type). En este tipo de variables se pueden introducir muchos datos de distinto tipo. Los bytes necesarios para almacenar esa variable dependerá de los datos que se hayan definido.

Dentro de las variables Objet (variables que se refieren a objetos) existe una gran variedad que a estas alturas del curso no debemos complicarnos con ellas. Pero para adelantar algo, veremos que una variable puede ser del tipo Form - Formulario - , tipo Picture, etc. etc.

Cada tipo de variable ocupa unos determinados bytes. Si no se define una variable, VB toma como tipo por defecto para la variable el tipo Variant. Este tipo ocupa más bytes que, por ejemplo, un integer. Si el tipo de dato que vamos a introducir en una variable es un integer, y no la hemos declarado como tal, VB asumirá para esa variable que es del tipo Variant, lo que le llevará a gastar mas bytes de memoria (16) que los que necesitaría (2) si la hubiésemos declarado previamente. Si esa variable va a estar en el rango de 0 a 255, y no declaramos previamente que la variable va a se del tipo Byte, o la declaramos como integer, p. e., estamos desperdiciando memoria RAM y posiblemente, retardando la ejecución del programa. Lo mismo podemos decir del resto de las variables, y lo importante que es definirlas y definirlas bien.

NOTA. Observe en la lista anterior que un dato Booleano ocupa 2 Bytes, mientras que un dato tipo Byte ocupa un byte.  En muchas ocasiones declaramos variables tipo Boolean con la intención de que ocupen menos espacio. Paradoja del VB. Si la declaramos como Byte ocupamos menos espacio en memoria. Declarar una variable como Boolean tiene también sus ventajas (escribirá menos código por lo general cuando necesite leer o escribir una variable tipo Boolean), pero tenga presente esta observación respecto a los datos Boolean.

Puede declarar el tipo de la variable mediante un carácter después del nombre de la variable. Esta técnica, obligatoria en Quick-Basic, está en desuso en VB. No es recomendable definir el tipo de esta forma, pues existe un serio peligro de error. De cualquier forma, eso es potestativo del programador y de sus costumbres.

 

Los caracteres que definen cada tipo de variable son:

                        %         Integer              &          Long                 !           Single

                        #          Double              @         Currency           $          String

 

Ejemplos Prácticos de declaración de variables

En Visual Basic, cuando declaramos una variable como String (Cadena de caracteres), no es necesario declarar su longitud.  VB aceptará cualquier número de caracteres. Si desea evitar que se puedan introducir más de un determinado número de caracteres, debe declarar su número. Por ejemplo:

            Dim Var1 as String                    Var1 puede tener cualquier número de caracteres

            Dim Var2 as String * 15             Var2 puede tener un máximo de 15 caracteres.

 

En este segundo caso, si se introduce como Var2 una cadena de caracteres con mas de 15 caracteres, Var2 tomará solamente los 15 primeros.  Visual basic no presenta ningún aviso de que esa variable ha omitido los caracteres que han sobrepasado la cifra de 15. Si desea que el usuario conozca esa circunstancia, debe introducir el código oportuno para producir el aviso.

La declaración de variables tipo String con número de caracteres predefinido presenta también inconvenientes a la hora de tratar esa cadena de caracteres con sentencias tales como Mid, Left y Right, o a la hora de añadir una cadena a otra.  La experiencia nos indica que NO merece la pena declarar variables tipo String con el número de caracteres prefijado.

 

En una gran parte de los casos una variable que se compone de números debe declararse como una variable de cadena de caracteres (String), y no como numérica. Cuando pensamos por ejemplo en un número de DNI, compuesto por 7 u 8 cifras, un código postal, el número de una calle, el piso de un edificio,  parecen invitar a que la variable que los contenga sea una variable de tipo numérico (Byte, Integer, Long, ...).  Estas variables, aunque su contenido sean números, siempre se deben declarar como String, ya que se tratan en realidad de cadenas de caracteres, aunque estos sean números. Para aclarar más estas ideas, piense en el número del DNI con la letra del NIF incluido, o que el lugar del DNI se deba rellenar con el número del permiso de residencia, (lleva letras).  Piense en el código postal de una provincia que comienza por 0 ( 08XXX = Barcelona ) . Si la variable que va a contener ese código postal se declara como numérica, el cero de la izquierda lo desprecia, por lo que ese código postal quedaría reducido al  8XXX, número de 4 cifras que el cartero nunca reconocería como un código postal, que necesariamente ha de tener 5 cifras.  Para terminar, piense la forma de introducir en una variable numérica el número 32Bis de una calle o el piso S2 de un edificio. O piense en una variable que va a contener un código de un producto. Ese código siempre va a ser un número, por ejemplo de 9 cifras. ¿Ha pensado como trataría el ordenador una variable numérica que contiene el código 000100123 ?. El resultado sería que convertiría ese código en la cifra 100123, y Vd. deberá buscarse la vida para añadir los ceros iniciales a la hora de sacarlo a una impresora, por ejemplo.

 

En todos los casos anteriores, el número no representa una cantidad numérica, sino un nombre. Lo que ocurre es que ese nombre contiene solamente números. 

¿Qué variables debemos declarar entonces como numéricas? La respuesta es bien sencilla: Aquellas que van a contener datos con lo que vamos a realizar operaciones matemáticas.

 

Las variables booleanas (True/False) pueden en muchos casos sustituirse por una variable del tipo Byte. Si ese datos True / False se va a introducir en una base de datos o en fichero en el disco, puede ser mas prudente poner 0 en vez de False y 1 en vez de True.

Una variable byte ocupa muy poco, simplemente 1 byte como su nombre indica. Pero no puede contener números mayores de 255 ni números negativos.

Cada vez que declare una variable numérica piense en los valores que puede tener, sobre todo cuando esa variable va a ser el resultado de una operación matemática. Recuerde el escaso margen de una variable tipo Integer ( de -32768 a 32767)

Si la aplicación va a tratar moneda, piense en la forma de expresar los números decimales y el número de ellos permitidos, así como el redondeo.  La variable correcta para este caso es Currency, pero Currency le añade automáticamente el tipo de moneda de cada país (Pts. Para España) lo que con frecuencia es un engorro. Los datos del tipo de moneda los toma del sistema operativo del ordenador, por lo que no se extrañe si le expresa el número de pesetas en dólares. Cambie el país  en su S. O.

 

Ámbito de las variables.

Denominamos ámbito de una variable a las partes del programa donde esa variable está declarada.  Para entenderlo mejor, veamos someramente la forma de un programa desarrollado en VB.

 

Un programa VB tiene uno o varios formularios. Cada formulario tiene varios controles. Tanto el formulario como cada uno de sus controles tienen una parte del programa, justamente la parte relacionada con cada uno de los eventos que pueden suceder bien al formulario o a los controles. A estas partes las habíamos llamado Procedimientos. Podemos tener procedimientos que no estén relacionados con ningún evento ocurrido al formulario o a sus controles. (Los Procedimientos que iremos insertando a lo largo de la aplicación)

Aparte de formularios y controles, un programa puede tener Módulos, y en cada uno de los módulos podemos insertar cuantos Procedimientos y Funciones queramos.  La estructura de un programa VB puede ser de la siguiente forma:

 

Formulario1       Formulario2       Formulario3       Módulo1           Modulo2

 

Declaraciones   Declaraciones   Declaraciones   Declaraciones   Declaraciones

Proc. A1           Proc. B1            Proc. C1            Proc. D1            Proc. E1

Proc. A2           Proc. B2            Proc. C2            Proc. D2            Proc.  E2

Proc. A3           Proc. B3            Proc. C3            Proc. D3            Función E1

Proc. A4           Proc. B4            Proc. C4            Proc. D4            Función E2                   

Proc. A5           Proc. BB1          Proc. CC1                                 Función E3

Proc. AA1         Proc. BB2          Proc. CC2                                 Función E4

Proc. AA2         Proc. B33          Proc. CC3                                 Función E5

Proc. AA3                                Proc. CC4                                 Función E6 

 

Si se declara una variable dentro de un procedimiento o Función, esa variable "NO SALE" del Procedimiento o Función donde se declaró. El procedimiento puede estar en un Formulario (Cualquier procedimiento de un control o un procedimiento creado por nosotros) o en un Módulo (En este caso, el procedimiento solo puede ser creado por nosotros)           

En un Formulario, una variable puede declararse de dos formas: Privada o Pública. Para declarar una variable a nivel de formulario debe hacerse en la sección de declaraciones, que está la ventana de código Objeto = General, Proc. = Declaraciones. Si se declara Privada, esa variable se puede mover por todo el formulario, (es decir, por todos los procedimientos de todos los controles del formulario y por los Procedimientos que pudiésemos insertar en ese formulario), pero no sale de dicho formulario.  Si se declara como Pública, esa variable puede moverse por todo el formulario, de la misma forma que lo haría declarada como Privada, y además puede ser usada desde otro Formulario o Módulo, citándola con el nombre del Formulario, seguido del nombre de la variable (Formulario. Variable)

 

En un Módulo una variable puede declararse como Privada, con lo que no saldrá de ese Módulo, o Pública, pudiendo en este caso usarse en todo el programa. Cuando se declara una variable como pública en un Módulo, basta referirse a ella por su nombre, sin citar el nombre del Módulo donde se declaró.

En  VB es posible declarar varias veces las variables, es decir, pueden declararse a nivel de formulario, en su apartado de declaraciones, y esa variable conservará su valor en todas las partes de ese formulario. Sin embargo, si se declara una variable con el mismo nombre a un nivel inferior, por ejemplo al principio de un procedimiento, esa variable será una variable distinta a la anterior, aunque tenga el mismo nombre, a al declararla en un Procedimiento, solamente será válida en ese Procedimiento. Una vez que hayamos salido de ese procedimiento, la variable con ese nombre volverá a ser la declarada en el Formulario. En realidad, lo que tenemos son dos variables distintas, pero con el mismo nombre, una declarada para todo el formulario excepto para el procedimiento donde se volvió a declarar, y otra para ese procedimiento concreto.

NOTA.- No es recomendable declarar una variable a dos niveles. Es mucho mejor utilizar otro nombre para esa variable dentro del procedimiento donde se le declararía por segunda vez. A esta nota cabe exceptuar cuando declaramos variables para una operación tipo contador

     

       For I = 1 To N

 

Esa variable I es práctico declararla con el mismo nombre en cada Procedimiento donde se use.

 

Tipos de declaración de variables.

 

            Sentencia DIM             Es la forma mas común de declarar una variable como

Privada. Puede emplearse en un Procedimiento, Función, Formulario o Módulo. La sintaxis es de la siguiente forma:

                   

     Dim      nombre variable  As Integer        (o el tipo que sea)

Declarando una variable con la sentencia DIM, en un formulario, Función, procedimiento o módulo, el entorno de la variable será el explicado anteriormente para una variable declarada como Privada. Es decir, esa variable no sale del formulario, procedimiento ó módulo donde se declaró. Cada vez que entremos al formulario, procedimiento o módulo, esa variable tomará el valor cero (si es numérica) o nulo (si es string).

Sentencia PRIVATE                Es la forma de declarar una variable como Privada. Puede Emplearse solamente en la sección de declaraciones de un Formulario o Módulo. La sintaxis es de la siguiente forma:

              

          Private            nombre variable  As Tipo variable             

 

Declarando una variable mediante la sentencia PRIVATE en un Formulario o Módulo, esa variable puede usarse en todo ese Formulario o Módulo (En todos sus Procedimientos y Funciones), pero NO fuera del Formulario o Módulo donde se declaró.

La sentencia Private no puede usarse en un procedimiento o función.

 

Sentencia PUBLIC                  Es la forma de declarar una variable como Pública. Puede emplearse solamente en la sección de declaraciones de un Formulario o Módulo. La sintaxis es de la siguiente forma:

                              

  Public      nombre variable     As    Tipo variable       

 

Declarando una variable de esta forma en la sección de declaraciones de un Módulo, esa variable puede usarse en cualquier parte del programa citándola simplemente por su nombre.

Si se declara de esta forma en la sección de declaraciones de un Formulario, esa variable puede usarse en toda el programa. Para nombrarla, si estamos en el Formulario donde se declaró basta con citarla por su nombre. Si no estamos en ese Formulario, habrá que citarla por el nombre del Formulario, seguido del nombre de la variable, separado por un punto:

                   

     Nombre Formulario .Nombre variable

 

En un Módulo puede usarse también la sentencia Global en vez de Public :

       

     Sentencia  GLOBAL    Declara una variable que es válida en todo el programa. La    sintaxis es:

                   

     Global                         nombre variable  As        tipo variable

 

La sentencia Global sólo puede usarse en el apartado de declaraciones de un Módulo.

Mediante la sentencia Global la variable puede usarse en todo el espacio del programa.

 

 

Sentencia STATIC

Como se dijo anteriormente, una variable declarada en un procedimiento pierde su valor al salir de él. Lo peor es que una vez que el programa vuelva a entrar en ese procedimiento, la variable estará puesta a cero. Afortunadamente, esto último tiene solución. Si declarásemos una variable en un procedimiento o función, como estática, esa variable, aunque no la podremos utilizar fuera de ese procedimiento o función, cuando volvamos a él conservará el valor que tenía cuando lo abandonamos. Esta declaración como estática se realiza mediante la intrucción  Static

           

Static               nombre variable              As        tipo variable

 

El nombre de una variable puede ser tan largo como queramos. Hasta un máximo de 40 caracteres.  En la versión VB para España se pueden usar incluso la Ñ y vocales acentuadas. Es indiferente usar mayúscula ó minúsculas. No se sorprenda, si por ejemplo, la ha declarado con mayúsculas y luego la cita con minúsculas al escribir el código, que automáticamente se cambie a mayúsculas. El nombre de una variable siempre debe comenzar por una letra.

No hay problema por utilizar variables largas. Al compilar el programa no se lleva el nombre, es decir, no le va a ocupar mas espacio. Utilice siempre nombres que le definan la variable con algún sentido. Es muy útil a la hora de acordarse como se llaman, y sobre todo, a la hora de rehacer un programa que realizó hace seis meses.

Pese a que Visual Basic no obliga a declarar variables, es muy útil hacerlo. De esta forma se tiene control sobre el programa. La experiencia se lo irá demostrando.

 

Resumimos la forma de declarar una variable:

 

En un Procedimiento  (La variable no puede usarse fuera de esta Procedimiento)

                        Dim Variable As Tipo variable

 

En un Procedimiento, como permanente (La variable no puede usarse fuera de este procedimiento, y dentro de él conserva el valor aunque se salga y se vuelva a entrar)

                        Static  Variable As Tipo variable

 

En un Formulario  (En su sección de declaraciones)

Como Privada  (Solamente se puede usar en ese Formulario)

                        Dim Variable As  Tipo variable          ó

                        Private Variable As Tipo variable

Como Pública    (Puede usarse en toda la aplicación)

                        Public Variable As Tipo variable

 

En un Módulo                    

Como Privada  (Solamente puede usarse en ese Módulo)

Dim Variable As  Tipo variable          ó

                        Private Variable As Tipo variable

 

 

Como Pública    (Puede usarse en toda la aplicación)

                       Public Variable As Tipo variable        ó   

                        Global  Variable As Tipo variable

 

Error típico de un programador novel de Visual Basic

Creo que esta costumbre viene del lenguaje C. Pero no vale en VB. Se trata de declarar varias variables juntas en una misma línea:

Dim Variable1, Variable2, Variable3, Variable4 As String

Esta declaración está MAL hecha. Visual Basic interpretará que Variable1, Variable2 y Variable3 son del tipo Variant, y solamente Variable4 la supone como tipo String

La forma correcta de hacerlo, si queremos declarar esas variables  una sola línea, es la siguiente:

Dim Variable1 As String, Variable2 As String, Variable3 As String,  Variable4 As String.

 

@..................@

COMMAND BUTTON

 

 

 

El Command Button es un objeto que sirve para introducir datos a través de la pantalla. El Botón de Comando tiene la siguiente forma:

 

http://profesorjosdarmoreno.blogdiario.com/img/boton.gif 

 

 

El botón de comando puede usarse para la entrada de datos con el ratón, o para validar cualquier operación. El tamaño puede cambiarse a voluntad, pero la forma siempre es rectangular. En la figura anterior vemos dos botones de comando, uno de ellos (el Command2) marcado con unos puntos en su contorno. Estos puntos nos permiten variar su tamaño en tiempo de diseño. También puede cambiarse su tamaño y posición en tiempo de ejecución.

 

PROPIEDADES

 

Name              Nombre           

Es el nombre que define a este objeto durante la ejecución del programa. No se puede cambiar en tiempo de ejecución. El nombre por defecto es Command1,  Command2, etc. Estos nombres por defecto deberían cambiarse por otros que nos indiquen algo respecto a este control, aunque en este caso no es tan imprescindible como para los formularios.

 

Caption           Título

Es el texto que aparece en el botón. Puede cambiarse en tiempo de ejecución. No tiene otra función dentro del programa.

                     NOTA.- No confundir Nombre (Name) con Título (Caption)

 

Appearance    Apariencia

Determina la forma del botón. 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 pequeño cuadrado que aparece rodeando el título, NO el color del botón, que es invariable. Puede cambiarse en tiempo de ejecución.

 

 

Cancel

Establece un valor que indica si un botón de comando es el botón 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 opción de cancelar los cambios que no se han hecho efectivos y devolver el formulario a su estado anterior. En un formulario sólo puede haber un botón de comando con la propiedad Cancel = True.

 

 

Default

Establece un valor que determina el control CommandButton que es el botón de comando predeterminado de un formulario. Sólo un botón de comando de un formulario puede ser el botón de comando predeterminado. Cuando Default se define a True para un botón de comando, se define automáticamente a False para el resto de los botones de comando del formulario. Cuando la propiedad Default del botón de comando está establecida a True y su formulario primario está activo, el usuario puede elegir el botón de comando (invocando su evento Click) presionando ENTRAR. 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 botón de comando del mismo formulario. En este caso, al presionar ENTRAR se elige el botón de comando que tiene el enfoque en lugar del botón de comando predeterminado.

 

DragIcon

Establece el icono que se presenta como puntero en una operación de arrastrar y colocar.

 

DragMode

Establece un valor que determina si se usa el modo de arrastre manual o automático en una operación de arrastrar y colocar.  Los valores posibles de número  son:

0         Manual  (Predeterminado)

                        1         Automático

 

Enabled           Habilitado

Propiedad Booleana que habilita o deshabilita el botón. Cuando está deshabilitado (Enabled = False), el botón no tiene efecto, y su apariencia varía, presentando un tono pálido tanto en su cuerpo como en su título. Puede variarse en tiempo de ejecución.

 

 

Font                 Fuente

Es el tipo de letra para el título. Puede cambiarse en tiempo de ejecución.

 

Height             Altura

Establece la altura del botón. Normalmente esta propiedad no se introduce numéricamente, sino que la toma automáticamente de las dimensiones que se le den al botón en tiempo de diseño. Puede cambiarse, cambiando el valor a esta propiedad, en tiempo de ejecución.

 

HelpContextID

Establece un número de contexto asociado para este control. Este número se aplica para determinar la ayuda interactiva.

Puede tener los siguientes valores:

0 = No se especifica número de contexto

>0  Un entero que especifica un contexto válido.

 

 

Index               Indice

En el caso de que se tengan varios botones que realicen una función similar (Las teclas numéricas de una calculadora, p.e.) puede hacerse un array con estos botones de comando. Todos tendrán el mismo nombre, y se diferencian por un índice. Esta propiedad Index toma el número de ese índice.

 

Left     

Posición de su parte izquierda. Indica la posición del botón, concretamente de la parte izquierda del mismo. Normalmente esta propiedad no se introduce numéricamente, sino que la toma automáticamente de la posición que se le de al botón en tiempo de diseño. Puede cambiarse, cambiando el valor a esta propiedad, en tiempo de ejecución.

 

MouseIcon       Icono para el puntero del ratón

Determina el icono que presenta al puntero del ratón cuando pasa por encima del botón, cuando se especifica en la propiedad MousePointer que el puntero del ratón es el definido por el usuario. (Custom)

 

MousePointer  Puntero ratón

Determina la forma del puntero del ratón cuando éste pasa por encima del botón. Puede elegirse uno de los punteros preestablecidos (15) o incluso uno diseñado especialmente. Para especificar que el puntero es uno diseñado 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 expresión de tener el foco significa que ese control está remarcado y en esa condición, si pulsamos la tecla ENTER haría el mismo efecto que hacer click con el ratón en ese control. Esto es necesario, ya que existen ordenadores que no disponen de ratón (típico de algunos portátiles). 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 través de cada control.

 

TabStop          Sale del control de la tecla TAB

Propiedad booleana. Cuando esta propiedad está a False, el  botón 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 ejecución. Esto nos permite descartar algún botón 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 información adicional para fines externos a la programación. Similar a la del formulario. 

 

Top

Indica la coordenada de la parte superior del control. Puede variarse durante el tiempo de ejecución. Esta propiedad, juntamente con Left define la esquina superior izquierda del botón de comando. Normalmente esta propiedad no se introduce numéricamente, sino que la toma automáticamente de la posición que se le den al botón en tiempo de diseño. Puede cambiarse, cambiando el valor a esta propiedad, en tiempo de ejecución.

 

Visible             Visible

Propiedad Booleana. Si es true, el botón se ve, si es False el botón no se ve. Puede cambiarse en tiempo de ejecución. De hecho, es un recurso muy usado para dejar visibles en un formulario, solamente los objetos (controles) necesarios.

 

WhatThisHelpID                      (Propiedad, Windows )

Devuelve o establece un número 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.

 

Width              Ancho

Define el ancho del botón. Con Height determina la dimensión del botón.

 

PROCEDIMIENTOS DEL BOTON DE COMANDO

Click                            DragDrop                    DragOver                    GotFocus

KeyDown                    KeyPress                     KeyUp                         LostFocus

MouseDown                MouseMove                 MouseUp

 

 

¡El botón de Comando no tiene el procedimiento DbClick!

ººº

Text box

   

Acerca de profesorjosdarmoreno

Licenciado en Educación Mención Informática.

Archivo

Suscríbete

RSS | Atom

Contacto

Contactar

Albergado en:blogdiario.com

Noticias: Noticias