Curso Básico de Programación
en Visual Basic

 

Entrega Veintitres: 4/Oct/98
por Guillermo "guille" Som

Si quieres linkar con las otras entregas, desde el índice lo puedes hacer

 

Tengo muchas excusas que darte, para justificar este retraso, pero no voy a dártelas, ya que no hará que esta entrega se publicara antes...
La verdad es que esto de tanta "teoría" me aburre un poco y no me motiva, pero se que es importante que sepas todo esto de los eventos y demás cosillas, así que voy a intentar seguir, ya que en cuestión de un par de entregas estaremos con otras cosas... no se que cosas, pero seguro que con otros temas... lo importante es que sigas aprendiendo... pero no sólo de lo que publico en el curso básico, sino que si le echas una visual a los manuales y a la ayuda... algo tendrás aprendido, espero que con todas las cosas que llevo puestas hasta la fecha te haya servido para poder entender lo que en esos manuales y ayuda se dice... y si no es así, no te preocupes, que algún día lo podrás entender...

Bien, vamos a ver algunos de los eventos que se producen con el ratón.

Como ya te comenté en la entrega anterior, se puede saber los eventos que un control puede interceptar, al menos los que el Visual Basic nos permite, son los que se muestran en la ventana de código, en la parte izquierda se selecciona el control o formulario y en la derecha están los eventos que podemos "codificar".
No todos los controles procesan los mismo eventos, pero en el caso de los eventos del ratón, casi la mayoría los interceptan... aunque no todos los que quisiéramos, pero al menos algunos...

En estas imágenes podemos ver las listas de "objetos" disponibles en el formulario, en los que podemos interceptar eventos y algunos de los eventos disponibles en el formulario.

En la lista desplegable de la izquierda están los controles que están contenidos en el formulario, así como la sección "General" usada para las declaraciones de variables y procedimientos.
 
 
En la lista de la derecha, se muestran los diferentes eventos disponibles para el control seleccionado en la izquierda, en esta imagen vemos algunos de los eventos "interceptados" por el VB referente a los formularios normales.

 

Por ejemplo, podemos saber cuando se está moviendo el ratón por el control, (te recuerdo que los formularios también tienen estos eventos), si se ha presionado un botón y hasta que botón se ha presionado...
Vamos a verlos con un poco más de detalle:


Evento MouseDown.

Este evento se produce cuando pulsamos un botón del ratón. Con los parámetros que tiene este evento podemos saber que botón se ha pulsado, la posición dentro del control y si se está pulsando la tecla Shift (Mayúsculas), Control o Alt.

Vamos a ver los parámetros y algunos de los valores disponibles.

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Button   Indica el botón que se está pulsando, puede tener los siguientes valores:
1, se está pulsando el botón izquierdo,
2, se está pulsando el derecho,
4, se está pulsando el botón central.
Sólo se controla un botón a la vez.
Shift   Indica si se está pulsando algunas de las teclas de "cambio", Shift, Ctrl o Alt, el valor devuelto corresponde con:
1, se está pulsando la tecla Shift (mayúsculas)
2, se está pulsando Control
4, se está pulsando Alt
Se permiten combinaciones de estos valores, es decir que si se pulsan varias de esas teclas, los valores serán:
3, se están pulsando Shift y Ctrl,
5, se están pulsando Shift y Alt,
6, se están pulsando Ctrl y Alt,
7, se están pulsando las tres teclas.
X, Y   Indica las coordenadas de la posición del puntero del ratón dentro del control.
Es importante saber que estos valores son sólo dentro del control en cuestión, no referente al formulario o la pantalla.

El evento MouseDown se suele usar, entre otras cosas, para mostrar menús emergentes (PopUpMenus), normalmente controlando que se haya pulsado el botón derecho, (cuando Button vale 2)


Evento MuseUp.

Este evento se produce cuando se suelta el botón, los parámetros son los mismos que para MouseDown, pero en este caso lo que se detecta es cuando se "suelta" el botón pulsado.


Evento Click.

Este evento se produce cuando se hace "click" en un control... es una combinación del MouseDown seguido de un evento MouseUp... debes tener en cuenta que si estás gestionando los eventos MouseDown, MouseUp y Click te encontrarás con que se producen los tres eventos en ese orden, es decir, primero se presiona, después se suelta y por último se produce el Click.


Evento DblClick.

Este como podrás imaginarte, se produce cuando se hace una doble pulsación, doble click.

Si estás controlando estos cuatro eventos, además de hacer tus propias comprobaciones, deberías saber que normalmente se producen en este orden:
Primero el MouseDown, seguido de un MouseUp, a continuación un Click seguido de un DblClick y por último un MouseUp.
Todo esto lo puedes comprobar con el siguiente código:

'
'Pruebas para la entrega 23 del curso básico            (04/Oct/98)
'
Option Explicit

Private Sub Form_Click()
    Debug.Print "Se ha pulsado sobre el formulario (Click)"
End Sub

Private Sub Form_DblClick()
    Debug.Print "Doble pulsación en el formulario (DblClick)"
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Debug.Print "Se ha pulsado el botón del ratón (MouseDown)"
End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Debug.Print "Se ha soltado el botón del ratón (MouseUp)"
End Sub

 


Evento MouseMove.

Este evento se produce cada vez que movemos el ratón por un control o por el formulario.
Los parámetros de este procedimiento son los mismos que en los otros referentes al ratón:
Private Sub xxx_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Con este evento podemos saber cuando estamos dentro del control, sabiendo esto, podemos cambiar su apariencia, etc.
El problema es que no sabemos cuando no estamos en el control, aunque si interceptamos la entrada en otras partes del formulario, podremos saber que no estamos en el control en cuestión, ya que si estamos en otro control... quiere decir que no estamos en este... ¡Elemental querido Watson!

Si quieres ver un ejemplo para hacer "garabatos" en la pantalla... algunos lo llaman dibujar, en el código del evento MouseDown, selecciona la palabra MouseDown y pulsa F1, en el ejemplo que se muestra está el programa para hacer esos garabaticos...

 

Y esto es todo por hoy... poco, pero mejor poco que nada... la próxima entrega será sobre los eventos del teclado... que podría haber puesto en esta, pero...
Y después veremos algunos otros más... lo que no se es si será en la próxima o en la siguiente... ya veremos.

Y para seguir con la norma... si quieres dejar un mensaje referente al curso básico, puedes hacerlo, para ello usa el siguiente link para que te resulte más fácil y así controle que lo que me quieres decir es referente al curso y no para hacer una consulta, ya que algunos aprovechan la ocasión para preguntar...
Este es el link para que me mandes tu comentario.

Nos vemos.
Guillermo


 
entrega anterior ir al índice siguiente entrega

Ir al índice principal del Guille