In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Toolbar y aceleradores (ALT+xx)

Foro de Xailer profesional en español
Responder
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

Toolbar y aceleradores (ALT+xx)

Mensaje 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
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Toolbar y aceleradores (ALT+xx)

Mensaje 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
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

Toolbar y aceleradores (ALT+xx)

Mensaje 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
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Toolbar y aceleradores (ALT+xx)

Mensaje 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
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Responder