|
Curso básico
de programación en Visual Basic
Lección
23
Cómo
saber los eventos que producen los formularios y controles
|
Realizamos
programas para la gestión de empresas. Empresas medianas y
pequeñas. Programas de contabilidad, cartera de pedidos
clientes proveedores, facturación control de albaranes,
tesorería cartera de cobros y pagos y estadísticas.
Nuestro
agradecimiento a todos los que por unas causas o por otras
visitan nuestra web. Gestión de empresas PYMES. Curso de
programación de Visual Basic.
|
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.
|