Teclas aceleradoras en Dialogo

Teclas aceleradoras en Dialogo

Postby RodMG » Wed May 13, 2009 11:08 pm

Hola,

¿Existe alguna manera de asignar una tecla aceleradora a los controles GET y COMBOBOX? Por ahora, sólo me funciona con los CHECKBOX.


Saludos,


Rodolfo
RodMG
 
Posts: 33
Joined: Thu Jan 26, 2006 5:53 pm

Re: Teclas aceleradoras en Dialogo

Postby softruz » Thu May 14, 2009 7:20 am

Has probado utilizar Por ejemplo:

SetKey(VK_F2,{|| funcion()})

Un Saludo.
softruz
 
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

Re: Teclas aceleradoras en Dialogo

Postby RodMG » Thu May 14, 2009 7:30 pm

Hola, softruz.

Gracias por responder.

El asunto del SetKey lo tengo claro y funcionando muy bien. Lo que busco es, más bien, poder asignarle una leyenda a un control GET o COMBOBOX, la leyenda contendrá obviamente el "&" para indicar la tecla que será utilizada en conjunto con la tecla ALT para pasar el foco a ese control. Busco algo como lo que sucede hoy con los botones que, uan vez que le indicas cual va a ser la tecla aceleradora, pueder utilizar la tecla ALT + la letra aceleradora asignada y el foco pasa al botón (En el caso del botón además despara la acción, en el caso de los controles basta con pasar el foco al control indicado).

Saludos,


Rod.
RodMG
 
Posts: 33
Joined: Thu Jan 26, 2006 5:53 pm

Re: Teclas aceleradoras en Dialogo

Postby cmsoft » Fri May 15, 2009 11:30 pm

Hola Rodolfo:
No se si es tarde aun pero podrias probar con esto
Code: Select all  Expand view

oDlg:bKeyDown = { | nKey, nFlags | TeclaFunc(nKey,oGet) }

*******************************************************************************
** Acelerador de Teclas
STATIC FUNCTION TeclaFunc(nKey, oGet)
IF nkey = 120 && F9
   oGet[01]:SetFocus()
ENDIF
IF nKey = 114 && F3
   oGet[02]:SetFocus()
ENDIF
IF nKey = 119 && F8
   oGet[03]:SetFocus()
ENDIF
RETURN NIL
 

En este caso es con las teclas de funcion, pero podria ser con cualquier convinacion de teclas que te tire en nKey
Espero te sirva
User avatar
cmsoft
 
Posts: 1238
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Teclas aceleradoras en Dialogo

Postby RodMG » Sat May 16, 2009 2:07 pm

Hoa, cmsoft.


Gracias por responder. Sin embargo busco la forma más estandar (Como en los diálogos de opciones de Word o Excel), es decir utilizando la tecla ALT en combinación con la tecla aceleradora asignada a cada control. He intentado con oDlg:KeyDown y resulta que puedo detectar las teclas CONTROL y SHIFT utilizando GetKeyState( VK_CONTROL ) o GetKeyState( VK_SHITF ), pero no he podido detectar cuando se utiliza la tecla ALT.

Necesito poder llegar a cualquier control de un diálogo utilizando una combinación de teclas (ALT + Tecla-aceleradora), pero hasta ahora no he encontrado la forma.

Antonio, ¿Habrá alguna manera de lograr esto?


Saludos,


Rodolfo
RodMG
 
Posts: 33
Joined: Thu Jan 26, 2006 5:53 pm

Re: Teclas aceleradoras en Dialogo

Postby Alfredo Arteaga » Sat May 16, 2009 3:01 pm

Checa esto:

Code: Select all  Expand view

#include "FiveWin.ch"

function Main()

   LOCAL oDlg, lExit := .f., oBtn
   LOCAL cName:=Space(25), cFirst:=Space(25)

   DEFINE DIALOG oDlg FROM 5, 5 TO 15, 40 TITLE "A Dialog Box"

   @ 1, 2 SAY "&Name" OF oDlg
   @ 1, 4 GET cName OF oDlg
   @ 2, 2 SAY "&First" OF oDlg
   @ 2, 4 GET cFirst OF oDlg

   @ 3,  4 BUTTON "&Ok" OF oDlg SIZE 40, 12
   @ 3, 12 BUTTON oBtn PROMPT "&Cancel" OF oDlg SIZE 40, 12 ACTION ( lExit := .t., oDlg:End() )

   ACTIVATE DIALOG oDlg VALID lExit

return nil
 
User avatar
Alfredo Arteaga
 
Posts: 326
Joined: Sun Oct 09, 2005 5:22 pm
Location: Mexico

Re: Teclas aceleradoras en Dialogo

Postby RodMG » Sat May 16, 2009 5:09 pm

Hola, Alfredo.

Muchas gracias por la ayuda, hasta ahora no había necesitado de esto. En mi caso utilizo recursos por lo que, basado en tu ejemplo, fue suficiente cambiar el orden de los controles de tal forma que la etiqueta correspondiente a cada control este inmediatamente antes del control.

Muchas gracias por la ayuda, espero que pronto podamos vernos, platicar y, ya instalados, hasta recetarnos un tequilita en algúna hora-del-amigo que hay por tus rumbos, jejeje.

Saludos,


Rodolfo
RodMG
 
Posts: 33
Joined: Thu Jan 26, 2006 5:53 pm

Re: Teclas aceleradoras en Dialogo

Postby Alfredo Arteaga » Sun May 17, 2009 2:12 am

Asi es señor, solo hay que ordenar los controles.

Y si se trata de tequila, cualquier compromiso se suspende de inmediato!

Saludos.
User avatar
Alfredo Arteaga
 
Posts: 326
Joined: Sun Oct 09, 2005 5:22 pm
Location: Mexico


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 130 guests