Página 1 de 1

Toolbar y aceleradores (ALT+xx)

Publicado: Mié Sep 13, 2006 9:59 am
por jose.luis
Hola,
Estoy mirando de implementar los aceleradores en los botones de las
buttonbars. Por lo que tengo entendido la idea será atrapar el evento
onkeydown del formulario que contiene la toolbar y, desde ahí, llamar a el
evento onclick del botón 'pulsado'. Entonces tengo algunas dudas:
a. ¿Hay alguna forma rápida de saber cuales son los aceleradores de
oToolbar:aButtons?
b. ¿Hay alguna convención respecto a la prioridad de los aceleradores cuando
existe el mismo en diferentes controles? p.e. el acelerador ALT+A está en el
menú del formulario y tambien en el botón de aceptar del mismo formulario.
c. ¿El evento OnKeyDown se dispara antes o después de los 'aceleradores
nativos de windows'?
Saludos y gracias,
José Luis Capel

Toolbar y aceleradores (ALT+xx)

Publicado: Vie Sep 15, 2006 11:05 am
por jfgimenez
José Luis,
> a. ¿Hay alguna forma rápida de saber cuales son los aceleradores de
> oToolbar:aButtons?
Directamente no. Tendrías que revisar todo el array aItems buscando
caracteres & dentro de sus propiedades cText.
> b. ¿Hay alguna convención respecto a la prioridad de los aceleradores
> cuando existe el mismo en diferentes controles? p.e. el acelerador ALT+A
> está en el menú del formulario y tambien en el botón de aceptar del mismo
> formulario.
Primero se disparan los aceleradores de los controles, y por último los del
menú.
> c. ¿El evento OnKeyDown se dispara antes o después de los 'aceleradores
> nativos de windows'?
Los mensajes que se disparan con los aceleradores no son WM_KEYDOWN y
WM_CHAR, sino WM_SYSKEYDOWN y WM_SYSCHAR, por lo tanto, OnKeyDown no se
dispara.
--
Un saludo,
José F. Giménez
http://www.xailer.com

Toolbar y aceleradores (ALT+xx)

Publicado: Vie Sep 15, 2006 11:48 am
por jose.luis
José,
Gracias por tu respuesta-
>
>> c. ¿El evento OnKeyDown se dispara antes o después de los 'aceleradores
>> nativos de windows'?
>
> Los mensajes que se disparan con los aceleradores no son WM_KEYDOWN y
> WM_CHAR, sino WM_SYSKEYDOWN y WM_SYSCHAR, por lo tanto, OnKeyDown no se
> dispara.
>
Entonces... si no entiendo mal, para capturar los aceleradores ¿debo
sobreescribir los métodos WMSYSKEYDOWN y WMSYSCHAR del formulario?
Saludos y gracias,
José Luis Capel

Toolbar y aceleradores (ALT+xx)

Publicado: Vie Sep 15, 2006 12:04 pm
por jfgimenez
José Luis,
> Entonces... si no entiendo mal, para capturar los aceleradores ¿debo
> sobreescribir los métodos WMSYSKEYDOWN y WMSYSCHAR del formulario?
Sí, pero ten cuidado al hacerlo. Deberás retornar 0 si procesas un
acelerador concreto, y deberás llamar al método Super en caso contrario para
que Xailer pueda seguir procesando las teclas.
--
Un saludo,
José F. Giménez
http://www.xailer.com