FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Teclas aceleradoras en Dialogo
Posts: 33
Joined: Thu Jan 26, 2006 05:53 PM
Teclas aceleradoras en Dialogo
Posted: 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

Posts: 485
Joined: Fri Feb 09, 2007 10:34 AM
Re: Teclas aceleradoras en Dialogo
Posted: Thu May 14, 2009 07:20 AM

Has probado utilizar Por ejemplo:

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

Un Saludo.

Posts: 33
Joined: Thu Jan 26, 2006 05:53 PM
Re: Teclas aceleradoras en Dialogo
Posted: Thu May 14, 2009 07: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.

Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Teclas aceleradoras en Dialogo
Posted: Fri May 15, 2009 11:30 PM
Hola Rodolfo:
No se si es tarde aun pero podrias probar con esto
Code (fw): Select all Collapse
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
Posts: 33
Joined: Thu Jan 26, 2006 05:53 PM
Re: Teclas aceleradoras en Dialogo
Posted: Sat May 16, 2009 02: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

Posts: 326
Joined: Sun Oct 09, 2005 05:22 PM
Re: Teclas aceleradoras en Dialogo
Posted: Sat May 16, 2009 03:01 PM
Checa esto:

Code (fw): Select all Collapse
#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
Posts: 33
Joined: Thu Jan 26, 2006 05:53 PM
Re: Teclas aceleradoras en Dialogo
Posted: Sat May 16, 2009 05: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

Posts: 326
Joined: Sun Oct 09, 2005 05:22 PM
Re: Teclas aceleradoras en Dialogo
Posted: Sun May 17, 2009 02: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.

Continue the discussion