1 - Introducción

[editar]
Curso gratis creado por José Manuel. Extraido de: http://www.lawebdejm.com
30 de Noviembre de 1999
En nuestro anterior artículo acabamos desarrollando un pequeño componente que nos permitía realizar una conversión de divisas, aunque dejamos algunos aspectos en el aire. Uno de estos aspectos trataba sobre cómo podíamos definir nuestros propios eventos, para que el desarrollador que utilice el componente, pueda programar lo que quiera en ellos.
Los eventos en los entornos gráficos

Los eventos son uno de los aspectos más importantes en entornos gráficos como Windows, ya que una misma acción puede realizarse de distintas formas.
Por ejemplo, una opción de menú tiene distintas maneras de activarse:

  1. Podemos hacer clic sobre el menú.
  2. O bien podemos utilizar el acceso directo del menú (la combinación de teclas que aparece al lado del nombre, como Ctrl+V, F5, etc.)
  3. O incluso podemos utilizar los aceleradores del teclado asignados menú (la letra subrayada que aparece en el nombre, como Archivo, Edición, etc.)

Como vemos, tenemos muchos caminos para llegar al mismo destino, y en ciertas ocasiones sería demasiado complicado controlar todas estas opciones. Es por esto que el propio sistema operativo Windows nos “avisa” cada vez que ocurre algo importante: “Eh aplicación!, que el usuario está haciendo clic sobre tu botón Aceptar”. “¡¡Atención!! el usuario ha dicho que quiere cerrar tu programa ¿qué hacemos?”

Cada uno de estos “avisos” recibe el nombre de “mensaje” y existen gran cantidad de ellos: cada vez que se pulsa el botón derecho del ratón, cuando se presiona una tecla del teclado, cuando se pinta la ventana, etc. Cada uno de los mensajes tiene un número único, y una constante para representar a ese número. Por ejemplo: WM_LBUTTONUP (el número 514) o WM_SYSKEYDOWN (el 260) son algunos de ellos.

Por ello, la programación basada en eventos encaja muy bien en los entornos gráficos, ya que cada vez que la aplicación reciba un mensaje del sistema operativo, podremos lanzar un evento al programador.
En entornos RAD, como Delphi, los eventos son funciones que se ejecutan solas, como por arte de magia, cada vez que ocurre un suceso especial.
A veces, como hemos dicho, el evento se ejecuta cuando nuestra aplicación recibe un mensaje del sistema operativo (que nos avisa de que algo está ocurriendo), y otras veces el evento se lanza cuando el propio Delphi nos quiere avisar de algo.

Por ejemplo: como todos sabemos, el evento OnClick de un botón se ejecuta cada vez que este se pulsa. Pero recordemos que hay varias formas de conseguir esto: haciendo clic sobre el propio botón, pulsando la barra espaciadora cuando tiene el foco, pulsando la tecla “Enter” cuando se trata del botón por defecto, o incluso tecleando la combinación “Alt” más la letra subrayada del texto del botón. Windows lanzará distintos mensajes dependiendo de lo que haya ocurrido: WM_LBUTTONUP, que corresponde a la acción de soltar el botón izquierdo del ratón, o bien WM_KEYUP si hemos utilizado el teclado.

En el momento de recibir el mensaje, Delphi interpretará por nosotros las distintas posibilidades, y lanza el evento OnClick cuando corresponda. De este modo, no tenemos que preocuparnos de lo que haya ocurrido (ha hecho clic, ha pulsado Enter...) sino que finalmente nuestro botón ha sido pulsado, por el método que sea, por lo que posiblemente, algo tendremos que hacer algo.

[editar]

Sé el primero en opinar


Cursos gratis relacionados con 'Creación de componentes VCL (II)'

En los últimos años, el desarrollo basado en componentes se ha convertido en una de... Más »
Completo curso acerca de los virus informáticos, historia, clasificación, protección...

Autor y licencia de 'Creación de componentes VCL (II)'


Curso gratis de José Manuel. Extraido de: http://www.lawebdejm.com CopyLeft
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.