Servicio Nacional de Aprendizaje – SENA

Programa de formación: Técnico en Sistemas Versión 1 Nivel: Técnico
Sistema de Gestión de la Calidad

Fecha: Febrero 28 de 2011 Versión 1.0 Página 1 de 16

GUIA DE ACTIVIDADES DE PROGRAMACIÓN ORIENTADA A EVENTOS

Nombre del Proyecto: ADMINISTRACIÓN DEL SOPORTE TÉCNICO EN
SISTEMAS A INSTITUCIONES EDUCATIVAS.

Duración en meses: 18 meses

Fase del Proyecto:
CONCEPTUALIZACIÓN

Actividad de Proyecto
Recopilar información relacionada con el proyecto

Duración en meses de la actividad 4 meses

Actividades de Aprendizaje Guía de conocimiento.

Duración en horas de la actividad

Competencia: 220501046 –

APLICAR HERRAMIENTAS OFIMÁTICAS, REDES SOCIALES Y COLABORATIVAS DE ACUERDO CON LE PROYECTO A DESARROLLAR.

Resultados de Aprendizaje: Duración 22050104604 APLICAR resultado:
CONTROLES Y ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN DE UN LENGUAJE ORIENTADO A EVENTOS DE ACUERDO CON EL PROBLEMA A SOLUCIONAR.

en 90

horas

del

Visual Basic - Guía del Estudiante Cap. 5
OBJETOS VISUAL BASIC PROPIEDADES, PROCEDIMIENTOS Y METODOS

Vamos a ver en este capítulo como podemos realizar una aplicación en Visual Basic. Comencemos por abajo. Una aplicación VB es una aplicación que, generalmente, tiene una interface gráfica. Es decir, es una aplicación de las típicas de Windows. Y esa interface gráfica está formada por un formulario y dentro de él, controles. Tanto al formulario como a los controles les denominamos genéricamente Objetos. Hay objetos VB que no los podemos ver en la interface gráfica. No podemos verlos porque pese a que son objetos VB, no tienen ninguna representación en la ventana. Son por ejemplo, los objetos de acceso a datos que veremos profusamente más adelante. Todos los objetos de Visual Basic tienen Propiedades. (Por ejemplo, el nombre de ese objeto es una de sus propiedades). Los objetos que tienen parte gráfica tienen además Eventos. Y muchos de ellos tienen también Métodos

Propiedades, Eventos, Procedimientos y Métodos
Típica pregunta de examen de VB elemental. Veamos que es cada una de estas cosas.

Visual Basic - Guía del Aprendiz Sena Cap. 5

Página 1

Servicio Nacional de Aprendizaje – SENA

Programa de formación: Técnico en Sistemas Versión 1 Nivel: Técnico
Sistema de Gestión de la Calidad

Fecha: Febrero 28 de 2011 Versión 1.0 Página 2 de 16

GUIA DE ACTIVIDADES DE PROGRAMACIÓN ORIENTADA A EVENTOS

Las propiedades son aquellas características de un objeto que lo define "físicamente", bien por su forma o color, por su contenido, por la forma en la que va a trabajar… Las propiedades pueden modificarse cuando estamos diseñando la interface gráfica, mediante lo que llamamos caja de propiedades, o durante la ejecución del programa. En este caso hay que hacerlo con código escrito en el propio programa. Veamos ya dos definiciones que se repetirán profusamente a lo largo del curso Tiempo de diseño. Es cuando realizamos una operación durante el diseño. Por ejemplo, podemos cambiar el color de un control durante el diseño de la aplicación, accediendo a su propiedad BackColor en la caja de propiedades. Tiempo de ejecución. Es cuando esa operación se realiza durante la ejecución del programa. Si tenemos una línea de código como esta MiControl.BackColor =RGB(255,0,0) al ejecutarse esa línea, se cambiará el color del control de nombre MiControl. Hemos cambiado la propiedad BackColor de ese control en tiempo de ejecución. Las propiedades pueden ser de lectura y escritura, (se puede cambiar y se puede leer el valor de la propiedad), sólo de lectura (solamente se puede leer el valor de la propiedad) ó solo de escritura (hay muy pocas de este tipo). Puede que una propiedad, que es de lectura y escritura en tiempo de diseño, sea sólo de lectura en tiempo de ejecución (esto es lo que le pasa por ejemplo, a la propiedad Name - Nombre) Un evento es todo aquello que le puede ocurrir a un objeto con parte gráfica (Control o Formulario) Por ejemplo, es un evento el hecho de hacer click sobre ese control, el hecho de pasar el ratón por encima de él, el hecho de que un control cambie de tamaño…. Los controles tienen muchos eventos, unos de ellos comunes a casi todos los controles (Evento click, por ejemplo) y otros exclusivos de un determinado control (El evento Timer solamente lo tiene el control Timer) Puede ver los eventos de un control haciendo doble click sobre ese control en tiempo de diseño. Le aparecerá la ventana de código.

-

Visual Basic - Guía del Aprendiz Sena Cap. 5

Página 2

Servicio Nacional de Aprendizaje – SENA

Programa de formación: Técnico en Sistemas Versión 1 Nivel: Técnico
Sistema de Gestión de la Calidad

Fecha: Febrero 28 de 2011 Versión 1.0 Página 3 de 16

GUIA DE ACTIVIDADES DE PROGRAMACIÓN ORIENTADA A EVENTOS

Fig. 2.1 Ventana de código La ventana de código es el lugar donde deberá escribir el código de su aplicación. Puede ver que existen en ella dos listas desplegables, una a la izquierda (sin desplegar) donde se ve el nombre del control del cual estamos visualizando el código (en este caso Command1) y otra a la derecha, donde se despliegan todos los eventos que tiene ese control. Haciendo click en la línea de uno de esos eventos, aparecerá la ventana de código dedicada a ese evento. Nota. Fíjese en la parte inferior izquierda de la ventana de código. Hay dos botones, uno que permite visualizar el código correspondiente a un solo evento, (el de más a la izquierda) y otro que permiten ver en la misma ventana el código de todos los eventos. Cada programador tiene su costumbre para ver uno o todos. La práctica le dirá lo que es más práctico para Vd. Un Procedimiento es el código que introducimos dentro de un evento. No pretendo hacer escuela con definiciones, puesto que el concepto de evento y procedimiento se confunde con mucha frecuencia, y no pasa nada por ello. El código introducido en la ventana de código del evento click será el procedimiento click, el que se introduzca en el evento MouseUp será el procedimiento MouseUp. No se sorprenda si a lo largo de este libro nos referimos a evento o a procedimiento de forma equivocada. En el lenguaje coloquial es muy habitual ese error y como decíamos, no pasa nada por ello. Estos procedimientos forman parte del programa. Podría hacerse una aplicación que no tuviese mas código que el introducido en los procedimientos, y muchas veces esa es la realidad.

Visual Basic - Guía del Aprendiz Sena Cap. 5

Página 3

Servicio Nacional de Aprendizaje – SENA

Programa de formación: Técnico en Sistemas Versión 1 Nivel: Técnico
Sistema de Gestión de la Calidad

Fecha: Febrero 28 de 2011 Versión 1.0 Página 4 de 16

GUIA DE ACTIVIDADES DE PROGRAMACIÓN ORIENTADA A EVENTOS

Un procedimiento puede pasar parámetros. Se dice que pasa parámetros cuando el sistema aporta datos automáticamente al procedimiento. Por ejemplo, el procedimiento MouseUp, que se ejecuta cuando levantamos el botón del ratón (también existe el evento MouseDown), pasa los siguientes parámetros: Número del botón que se ha pulsado, (1=Izdo, 2=Dcho, 3=Central), si está pulsada la tecla mayúsculas (Shift, 1 si está pulsada, 0 si no está pulsada) y los valores X e Y de la posición del cursor del ratón. Podemos ver los parámetros que pasa en la propia definición del procedimiento, que nos da Visual Basic Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub Observe que los parámetros están entre paréntesis, y que queda definido el tipo de variable que es cada uno de ellos. Podemos usar ese valor dentro del código del procedimiento como un dato más. Un Método es una operación que la realiza Visual Basic sin necesidad de escribir código para realizarla. Por ejemplo, si queremos dibujar una línea en un formulario o en la impresora utilizaremos el método Line. Si queremos dibujar una circunferencia usaremos el método Circle. Si queremos escribir texto, utilizaremos el método Print. No necesitamos decirle como lo tiene que haver, puesto que eso ya lo sabe hacer VB sin necesidad de que se lo expliquemos. A los métodos les tenemos que pasar datos. A eso le llamamos también pasarle parámetros. Los métodos solo permiten introducir los parámetros que necesita el método para ejecutarse. (En el caso de una línea, el punto inicial y el final, en el caso del circulo, el radio y las coordenadas del centro. Pueden pedir parámetros optativos, como el puede ser el color de la línea o circulo. Espero que le quede claro cada una de estas definiciones. Tendrá tiempo suficiente a lo largo del curso para verlas, y dentro de muy poco tiempo le serán muy familiares estos conceptos.

EL 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 mas 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.

Visual Basic - Guía del Aprendiz Sena Cap. 5

Página 4

Servicio Nacional de Aprendizaje – SENA

Programa de formación: Técnico en Sistemas Versión 1 Nivel: Técnico
Sistema de Gestión de la Calidad

Fecha: Febrero 28 de 2011 Versión 1.0 Página 5 de 16

GUIA DE ACTIVIDADES DE PROGRAMACIÓN ORIENTADA A EVENTOS

Fig. 2.2 Forma inicial del formulario.

Fig. 2.3 Un formulario que parece un equipo de radio (Programa realizado por el autor)

Visual Basic - Guía del Aprendiz Sena Cap. 5

Página 5

Servicio Nacional de Aprendizaje – SENA

Programa de formación: Técnico en Sistemas Versión 1 Nivel: Técnico
Sistema de Gestión de la Calidad

Fecha: Febrero 28 de 2011 Versión 1.0 Página 6 de 16

GUIA DE ACTIVIDADES DE PROGRAMACIÓN ORIENTADA A EVENTOS

Ejemplo de un formulario para una aplicación industrial. Este formulario reproduce el panel de control de un transmisor - receptor de radio. En este caso, parece que el nombre de ventana le viene mejor que el de formulario. Observe que dentro del formulario existen gran cantidad de objetos. Botones, que hacen la misma función que el botón real en el equipo de radio, y un par de displays, que muestran un texto, en este caso las frecuencias de transmisión y recepción. Como cualquier objeto Visual Basic, un formulario tiene propiedades, procedimientos y métodos. Vamos a ver las propiedades del formulario, pero solo veremos las que son específicas para un formulario. El resto las podrá ver al final del capítulo. Aquí haremos referencia a esas propiedades con un asterisco (*) que significa que esa propiedad no tiene una notación especial para los formularios. Seguiremos esta norma con todos los controles. 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 Menú de Control en la parte sup. Izda. 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 icono (el "menos" en W-3.11) para desplegar el menú de control de este formulario. Si esta propiedad se pone como False, no aparece dicho icono 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. 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.

Visual Basic - Guía del Aprendiz Sena Cap. 5

Página 6

Servicio Nacional de Aprendizaje – SENA

Programa de formación: Técnico en Sistemas Versión 1 Nivel: Técnico
Sistema de Gestión de la Calidad

Fecha: Febrero 28 de 2011 Versión 1.0 Página 7 de 16

GUIA DE ACTIVIDADES DE PROGRAMACIÓN ORIENTADA A EVENTOS

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

Visual Basic - Guía del Aprendiz Sena Cap. 5

Página 7

Servicio Nacional de Aprendizaje – SENA

Programa de formación: Técnico en Sistemas Versión 1 Nivel: Técnico
Sistema de Gestión de la Calidad

Fecha: Febrero 28 de 2011 Versión 1.0 Página 8 de 16

GUIA DE ACTIVIDADES DE PROGRAMACIÓN ORIENTADA A EVENTOS

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, que se haya cambiado por programa mientras este formulario no estaba visible. Si esta propiedad Autoredraw está en False, al hacer visible este formulario, aparecerá sin reflejar ese cambio. 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. DrawStile DrawWidth Enabled ForeColor (*) (*) (*) Valor por defecto: Negro Valor por defecto : 0 Valor por defecto: 1

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 FillColor Font Tipo de relleno Color del relleno 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 utilizar el método Print. 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.

Visual Basic - Guía del Aprendiz Sena Cap. 5

Página 8

Servicio Nacional de Aprendizaje – SENA

Programa de formación: Técnico en Sistemas Versión 1 Nivel: Técnico
Sistema de Gestión de la Calidad

Fecha: Febrero 28 de 2011 Versión 1.0 Página 9 de 16

GUIA DE ACTIVIDADES DE PROGRAMACIÓN ORIENTADA A EVENTOS

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 (*) (*)

FontBold, FontItalic, FontStrikethru, FontUnderline Height HelpContextID Icon Altura (*)

Identificador de contexto de la Ayuda 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 previamente por formulario, debe ponerse esta propiedad en True. Esta propiedad la usará frecuentemente cuando quiera realizar alguna función pulsando una letra. Pone KeyPreview a True, y puede conocer que tecla se ha pulsado en el procedimiento KeyPress del formulario. Si la tiene a False, ese procedimiento no se ejecuta ya que la pulsación “no pasa” por el formulario. Left Posición del Borde Izquierdo

Indica la posición del borde izquierdo del formulario respecto a la parte izquierda de la pantalla. (Lo verá mas adelante, la pantalla será para VB el objeto Screen). 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 siguiente valores: 0 - No hay interacción DDE

Visual Basic - Guía del Aprendiz Sena Cap. 5

Página 9

Servicio Nacional de Aprendizaje – SENA

Programa de formación: Técnico en Sistemas Versión 1 Nivel: Técnico
Sistema de Gestión de la Calidad

Fecha: Febrero 28 de 2011 Versión 1.0 Página 10 de 16

GUIA DE ACTIVIDADES DE PROGRAMACIÓN ORIENTADA A EVENTOS

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 MouseIcon MousePointer Picture (*) (*) Gráfico Valor por defecto: flecha False =No lo es

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.

Visual Basic - Guía del Aprendiz Sena Cap. 5

Página 10

Servicio Nacional de Aprendizaje – SENA

Programa de formación: Técnico en Sistemas Versión 1 Nivel: Técnico
Sistema de Gestión de la Calidad

Fecha: Febrero 28 de 2011 Versión 1.0 Página 11 de 16

GUIA DE ACTIVIDADES DE PROGRAMACIÓN ORIENTADA A EVENTOS

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 Top (*) Posición del borde superior

Esta propiedad establece la posición del borde superior del formulario respecto a la parte superior de la pantalla (Objeto Screen). 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 Width 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. Ancho (*) (*) Valor por defecto: True

Visual Basic - Guía del Aprendiz Sena Cap. 5

Página 11

Servicio Nacional de Aprendizaje – SENA

Programa de formación: Técnico en Sistemas Versión 1 Nivel: Técnico
Sistema de Gestión de la Calidad

Fecha: Febrero 28 de 2011 Versión 1.0 Página 12 de 16

GUIA DE ACTIVIDADES DE PROGRAMACIÓN ORIENTADA A EVENTOS

EVENTOS DEL FORMULARIO Se explican a continuación los eventos de un formulario. Recuerde que un evento es lo que le puede ocurrir a un formulario o control (p.e. Evento Click) y un procedimiento es el código escrito en ese evento, que se ejecutará cuando ocurra el evento. Evento Activate Activación Este evento se ejecuta al convertirse el formulario en formulario activo. Esto sucede múltiples veces cuando tenemos en el programa mas de un formulario. Sólo uno de ellos puede ser el formulario activo. Este procedimiento no pasa parámetros. No debe emplearse para los parámetros iniciales del formulario. Úsese para este fin el evento Load o el Initialize. Evento Click Click Este evento se ejecuta cuando hacemos Click (con cualquier botón del ratón) en una parte del formulario que no esté ocupada por un control. Para que se ejecute el evento Click es necesario que no se ejecute el procedimiento MouseDown. (Que no tenga código escrito en el evento MouseDown). Existe una diferencia entre el evento click del formulario y el de cualquier control : en el formulario se ejecuta con cualquiera de los botones del ratón, y en los controles, solamente con el botón izquierdo. Este evento no pasa parámetros. Evento DblClick Doble click Este evento se ejecuta cuando hacemos doble click con cualquier botón del ratón sobre una parte del formulario que no esté ocupada por un control. Este evento no se ejecuta si tenemos escrito código en el procedimiento Click. No pasa parámetros. Evento Deactivate Desactivación Se produce cuando el formulario deja de ser el formulario activo. Vea Activate. No pasa parámetros. Evento DragDrop Evento DragOver Evento GotFocus Acción de Soltar durante el Drag & Drop Pasar el ratón por encima en una operación de Drag & Drop El formulario obtiene el foco (*) (*)

Este evento ocurre cuando el formulario toma el foco. Cosa un poco difícil, ya que para que el formulario tome el foco debe ocurrir, o que no tenga ningún control capaz de tomar el foco, o que todos los controles existentes en el formulario y que puedan tomar el foco, estén desactivados. No se suele usar este procedimiento. Evento Initialize Inicialización del formulario

Se produce al cargar por primera vez el formulario. Esto significa que si en una aplicación cargamos ese formulario una vez (la primera) se realiza este evento, pero si descargamos el formulario (con Unload Formxx) y luego lo volvemos a cargar (con Formxx.Show), esta segunda vez (y sucesivas) no se produce este evento Evento KeyDown Evento KeyPress Evento KeyUp Pulsar una tecla (Instante en que se ha pulsado) Pulsar una tecla Soltar una tecla (Instante en que se levanta)

Visual Basic - Guía del Aprendiz Sena Cap. 5

Página 12

Servicio Nacional de Aprendizaje – SENA

Programa de formación: Técnico en Sistemas Versión 1 Nivel: Técnico
Sistema de Gestión de la Calidad

Fecha: Febrero 28 de 2011 Versión 1.0 Página 13 de 16

GUIA DE ACTIVIDADES DE PROGRAMACIÓN ORIENTADA A EVENTOS

Estos tres eventos solamente se producirán en el formulario cuando la propiedad KeyPreview está a True. (Vea propiedad KeyPreview) Estos tres procedimientos son excluyentes y tienen la jerarquía con el orden siguiente: KeyDown, KeyPress y KeyUp. Si el procedimiento KeyDown tiene código que pueda realizar una operación, no se ejecutará el procedimiento KeyPress ni el KeyUp. Si es el procedimiento KeyPress quien tiene el código que ejecuta una operación, no se ejecutará el KeyUp. Para que realice esta exclusión es necesario que el código pueda realizar alguna operación. Pasa los siguientes parámetros: KeyDown : KeyCode As Integer, Shift As Integer KeyPress : KeyAscii As Integer KeyUp : KeyCode As Integer, Shift As Integer KeyCode es el código ASCII de la tecla pulsada. KeyAscii es el código ASCII de la tecla pulsada. La diferencia entre KeyCode y KeyAscii es que el primero se refiere a las teclas del teclado (Todas las letras y números, teclado numérico, Alt, F1 a F12, etc.) mientras que KeyAscii solamente tiene valor cuando se pulsa una tecla de letra o número. Puede observar que el KeyCode de un número tecleado en el teclado numérico es distinto del KeyCode de ese mismo número pulsado en el teclado alfanumérico. No se confunda con el hecho de que el KeyCode de algunas teclas coincida con el KeyAscii. No es lo mismo. Shift indica si está pulsada la tecla “Mayúsculas”. Contiene un 1 si está pulsada, 0 si no lo está. Evento LinkError Evento LinkExecute Evento LinkOpen Error de enlace Ejecución de un enlace de datos Romper el enlace

Estos tres procedimientos ocurren cuando el formulario forma parte de un enlace DDE. Vea el capítulo del DDE para mas detalles. Evento Load Cargar el formulario

Este evento es se ejecuta en el momento de la carga del formulario. Es el que presenta en la ventana de código por defecto, es decir, uno de los mas usados en el formulario. Y es el mas usado porque es el mas apropiado para introducirle a ese formulario los valores y parámetros iniciales, abrir bases de datos, etc. Se ejecuta después del evento Initialize del formulario, pero este evento Load, al contrario que el Initialize, se ejecuta cada vez que cargamos el formulario. Para introducir código de inicialización debe utilizar este evento Load. Este evento no pasa parámetros. Evento LostFocus Perder el foco Ocurre cuando el formulario pierde el foco. Y un formulario solo puede perder el foco cuando lo tenía. Cosa que no es fácil que ocurra, tal como se explicó en el Evento GotFocus. Evento MouseDown Pulsar una tecla del ratón Ocurre cuando se pulsa cualquier botón del ratón, estando el cursor encima de un punto del formulario libre de controles. Pasa como parámetros Button (Botón pulsado, 1 = Izquierdo, 2 = Derecho, 3 = Central), Shift (Tecla de Mayúsculas) y la posición del puntero del ratón sobre el

Visual Basic - Guía del Aprendiz Sena Cap. 5

Página 13

Servicio Nacional de Aprendizaje – SENA

Programa de formación: Técnico en Sistemas Versión 1 Nivel: Técnico
Sistema de Gestión de la Calidad

Fecha: Febrero 28 de 2011 Versión 1.0 Página 14 de 16

GUIA DE ACTIVIDADES DE PROGRAMACIÓN ORIENTADA A EVENTOS

formulario (X e Y). Este evento puede usarse para muchas cosas. Una de ellas, muy típica, iniciar una operación de Drag & Drop manual, usando la particularidad de que como pasa la tecla Shift como parámetro, puede obligarse a pulsar esa tecla para iniciar el D & D, evitando así cualquier activación accidental. Evento MouseMove Mover el ratón (Detecta la posición del ratón sobre el formulario) Se produce cada vez que se mueve el ratón sobre el formulario. Tenga cuidado al usar este evento, ya que cualquier movimiento del ratón lo va a desencadenar. Por eso, siempre se usa con una condición (que esté pulsada la tecla de mayúsculas, que esté pulsado uno de los botones del ratón, etc.). Los parámetros que pasa son Button As Integer, Shift As Integer, X e Y As Single. Evento MouseUp Soltar una tecla del ratón Este evento sucede cuando se levanta la tecla pulsada del ratón. Pasa como parámetros Button (Botón pulsado, 1 = Izdo, 2 = Dcho, 3= Central) Shift (Mayúsculas), X e Y (Single) como posición del puntero del ratón Este evento suele usarse para mostrar PopupMenús, deshacer una operación iniciada con MouseDown, etc. Evento Paint Redibujar tras un cambio de tamaño Se produce al cambiar el tamaño del formulario, tras el evento Resize, excepto cuando se minimiza. Puede aprovecharse para redibujar el contenido del formulario (de ahí su nombre) tras un cambio de tamaño. No pasa parámetros Evento QueryUnload Confirmación de descarga Este procedimiento se ejecuta cuando el formulario recibe la instrucción de descargarse. Todavía estamos a tiempo de evitar que se descargue. Por lo tanto es aquí donde suele colocarse una caja de mensaje donde se obliga al usuario a ratificar o revocar la orden de descarga del formulario. En caso de que en realidad no queramos descargarlo, basta con poner Cancel = True (o Cancel = 1) y no se producirá la descarga. Pasa como parámetros Cancel As Integer, UnloadMode As Integer. Cancel es un parámetro que debemos introducir para abortar la descarga del formulario. Si se pone a un valor distinto de 0, se detiene la descarga. UnloadMode es un valor o constante que nos da el sistema, dependiendo de la causa que ha provocado la descarga del formulario. Constante vbFormControlMenu vbFormCode vbAppWindows 2 vbAppTaskManager vbFormMDIForm Valor 0

El usuario eligió el comando Cerrar del menú Control del formulario o hizo click en el X del mismo. 1 Se invocó la instrucción Unload desde el código. La sesión actual del entorno operativo Microsoft Windows está finalizando. 3 El Administrador de tareas de Microsoft Windows está cerrando la aplicación. 4 Un formulario MDI hijo se está cerrando porque el formulario MDI padre también se está cerrando.

Visual Basic - Guía del Aprendiz Sena Cap. 5

Página 14

Servicio Nacional de Aprendizaje – SENA

Programa de formación: Técnico en Sistemas Versión 1 Nivel: Técnico
Sistema de Gestión de la Calidad

Fecha: Febrero 28 de 2011 Versión 1.0 Página 15 de 16

GUIA DE ACTIVIDADES DE PROGRAMACIÓN ORIENTADA A EVENTOS

Este procedimiento no se ejecuta cuando sale de la aplicación mediante la instrucción End. Solamente se ejecuta cuando con la instrucción Unload, o con el comando Cerrar del menú Control del formulario, o haciendo click en el X del mismo. El evento QueryUnload se utiliza con frecuencia para guardar la configuración actual de la aplicación.

Evento Resize

Cambio de tamaño

Se ejecuta cuando cambia el tamaño del Formulario, bien porque le cambia con las flechas del ratón arrastrando uno de sus bordes, bien porque lo maximizamos, ponemos a tamaño intermedio o minimizamos. Puede usar este evento para redistribuir o cambiar el tamaño de los controles. No pasa parámetros. Evento Terminate Este evento se produce al descargar el formulario, después de QueryUnload y Unload. Aquí ya no podemos abortar la descarga. Solamente podremos, por ejemplo, guardar la configuración usada por la aplicación, para que vuelva a arrancar con la última configuración usada. Este evento no se produce si sale de la aplicación con la instrucción End. Solamente si lo hace mediante Unload (Unload Me, p.e.) o con el comando Cerrar o el X del formulario. Me permito recomendarle que No termine sus aplicaciones mediante End. No podrá usar los eventos QueryUnload, Unload ni Terminate. Evento Unload Descargar el formulario

Este evento se produce en el momento en el que se descarga el formulario. Pasa como parámetro Cancel, al igual que lo hace QueryUnload. Es la última oportunidad de cancelar la descarga del formulario, haciendo Cancel = True o Cancel = cualquier valor distinto de 0. Este procedimiento no se ejecuta cuando sale de la aplicación mediante la instrucción End. Solamente se ejecuta cuando con la instrucción Unload, o con el comando Cerrar del menú Control del formulario, o haciendo click en el X del mismo. Eventos del OLE Existen varios eventos relacionados con el OLE de Windows. Se estudiarán cuando se estudie el OLE. De momento se enumeran con los parámetros que pasan. Evento OLECompleteDrag (Effect As Long) Evento OLEDragDrop (Data As DataObject, Effect As Long, Button As Integer, Shift As _ Integer, X As Single, Y As Single) Evento OLEDragOver (Data As DataObject, Effect As Long, Button As Integer, Shift As _ Integer, X As Single, Y As Single, State As Integer) Evento OLEGiveFeedback (Effect As Long, DefaultCursors As Boolean) Evento OLESetData (Data As DataObject, DataFormat As Integer) Evento OLEStartDrag (Data As DataObject, AllowedEffects As Long)

Visual Basic - Guía del Aprendiz Sena Cap. 5

Página 15

Servicio Nacional de Aprendizaje – SENA

Programa de formación: Técnico en Sistemas Versión 1 Nivel: Técnico
Sistema de Gestión de la Calidad

Fecha: Febrero 28 de 2011 Versión 1.0 Página 16 de 16

GUIA DE ACTIVIDADES DE PROGRAMACIÓN ORIENTADA A EVENTOS

Visual Basic - Guía del Aprendiz Sena Cap. 5

Página 16

Sign up to vote on this title
UsefulNot useful