Apúntate...


Consultas, desarrollo de programas y petición de presupuestos:

jueves, 3 de enero de 2013

Inputs vs Eventos: Reaccionar ante una acción

Hasta ahora, en nuestros programas de "consola", las acciones de los usuarios, las íbamos controlando mediante la orden "input", donde el usuario escribía algo (por ejemplo la opción de un menú) y el programa decidía que hacer a continuación (hacer listados, añadir registros pidiendo mas datos, salir del programa, etc...)

En la programación gráfica, vamos a tener una serie de objetos (botones, cuadros de textos, etc), los cuales son la forma en que el usuario se va a comunicar con la aplicación, y mediante eventos se recoge la acción realizada por el usuario.

Por ejemplo, un usuario hace click con el ratón sobre un botón llamado "Button1" se produce un "evento" llamado _Click(), y se ejecuta el código que tenga dicho botón asociado a ese evento:



Public Sub Button1_Click()

  Print "hola"

End





Al ejecutarse "Button1_Click()", lo que se produce es una impresión en la consola de la palabra "hola". (La consola también es accesible desde las aplicaciones gráficas)



Como veis, la forma  de programar un evento es como si fuera una subrutina, siendo el nombre de la subrutina formado por el nombre del objeto (Button1)  seguido de un guión bajo "_" y el nombre del evento "Click()"

Esta forma permite también, que dentro del mismo programa, mediante código, se puedan ejecutar estos eventos...

Public Sub Form_Open()

Button1_Click()

End



Normalmente cada objeto tiene varios eventos a los que responden, para ver los eventos que tienen, en la pantalla gráfica, se hace click con el botón derecho sobre ellos, se despliega el siguiente menu, y eligiendo la opción de "Eventos", podemos ver todos los eventos relacionados con ese objeto:


Hay eventos que son comunes a todos los objetos, y otros no.

A continuación pongo una lista de los eventos más usuales:


Evento
Significado
Click
El usuario hace una pulsación “click” sobre el objeto (pulsa y suelta el boton rapidamente)
DblClick
El usuario hace dos pulsaciones rápidas sobre el objeto
Enter
Se produce cuando entramos en el objeto con el puntero del raton
Leave
Se produce cuando sale del objeto con el puntero del raton
GotFocus
Se produce cuando el objeto consigue ser el foco del programa
LostFocus
Se produce cuando el objeto pierde el foco del programa
Drag/Drog
Eventos relacionados con “coger y soltar”
KeyPress
Se produce cuando estamos en el objeto (tenemos el foco en el) y se pulsa una tecla. Para sabe que tecla se ha pulsado se usa “key.code”, el cual nos da el numero ASCII de la tecla pulsada.
MouseDown
Si se pulsa el boton del raton
MouseUp
Si se suelta el boton del raton.
MouseMove
Si esta pulsado el boton del raton, y lo movemos dentro del objeto se produce este evento. Se pueden obtener las coordenadas del raton, con mouse.x y mouse.y

Os dejo aqui el código de ejemplo de uso de eventos con un botón: PruebasEventosBoton



Para saber más: Programación dirigida por Eventos

No hay comentarios:

Publicar un comentario

A falta de donativos... un poco de publicidad