Código en Delphi 6, válido para Delphi for win32 y CodeGear RAD Studio (Delphi win32)
Home
Download
Documentos
Links
Historial
Correo

MultiCatchEvent


Este componente 'no visual' captura todos/parte de los mensajes que reciben un conjunto de los controles que contenga el form pero no impide que los controles respondan al mensaje, sino que salta justo antes o después de que éstos respondan.

Hay que tener cuidado con lo que se programa en el evento OnCatchEvent porque saltará cada vez que los controles que le señalemos reciban mensajes (y pueden ser cientos, por ejemplo movimientos del ratón).

Propiedades:

Controls : Colección de controles de los que capturar los mensajes.
MessageCatched : Conjunto de los posibles Mensajes que se capturarán :

Valor propiedad Mensaje Windows
mtAny (Todos los mensajes incluso los que no aparecen en esta lista)
mtSetFocus WM_SETFOCUS
mtKillFocus WM_KILLFOCUS
mtSetText WM_SETTEXT
mtGetText WM_GETTEXT
mtKeyDown WM_KEYDOWN
mtKeyUp WM_KEYUP
mtChar WM_CHAR
mtPaste WM_PASTE
mtCut WM_CUT
mtCopy WM_COPY
mtClear WM_CLEAR
mtHScroll WM_HSCROLL
mtVScroll WM_VSCROLL
mtMouseWheel WM_MOUSEWHEEL
mtLButtonDown WM_LBUTTONDOWN
mtLButtonUp WM_LBUTTONUP
mtLButtonDblClk WM_LBUTTONDBLCLK
mtRButtonDown WM_RBUTTONDOWN
mtRButtonUp WM_RBUTTONUP
mtRButtonDblClk WM_RBUTTONDBLCLK
mtMButtonDown WM_MBUTTONDOWN
mtMButtonUp WM_MBUTTONUP
mtMButtonDblClk WM_MBUTTONDBLCLK
mtMove WM_MOVE
mtMouseEnter CM_MOUSEENTER
mtMouseLeave CM_MOUSELEAVE
mtMouseMove WM_MOUSEMOVE
mtPaint WM_PAINT

  Catch : OnCatchEvent salta antes o después de que el control responda al mensaje. Si pone el valor de la propiedad a cBefore, el código del evento OnCatchEvent no debe provocar nuevos mensajes en el control:

cBefore Salta antes.
cAfter Salta después.

Eventos :

OnCatchEvent : Salta cada vez que los controles reciben un mensaje (cualquie mensaje o de los de la propiedad MessageCatched) y se ejecuta antes o después de que éstos hayan respondido al mensaje.

Ejemplo