Acabei inventando teclas pras minhas telas, pros botões, mas... só funciona nas telas/botões.
Pra facilitar, inventei de F1 a F40, usando shift-F1, control-F1 e alt-F1.
Mas pra telas, isso é traduzido como texto "F11" por exemplo.
Até aí... tudo bem.
Mas pra tbrowse, isso tem que ser pelo Inkey(), e aí é que a coisa pega
Além da definição de teclas, existem o F11 e F12 que saem do padrão normal.
Será que vai ser uma má idéia remapear as teclas Fx ?
Usando Fx, shift-Fx, control-Fx, ALt-Fx, são 40 teclas, F1 é 28, e as demais -1 a -39
Basicamente seria remapear F11 e F12
As demais, seria só criar o #define
Inventar teclas Fx
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Inventar teclas Fx
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Inventar teclas Fx
É... o maior trabalho foi alterar uns 20 fontes, onde #include "josequintas.ch" vinha antes de #include "inkey.ch"
Um remapeamento no inkeyfilter
e outro no josequintas.ch
Onde vou usar isso?
Basicamente nos buttons, o usuário nem precisa saber que isso existe.
Digamos que agora posso colocar 39 buttons na tela, numerados de -2 a -39
E isso não dá conflito com as letras normais já existentes.
É que alterando os browses pra ADO, as letras servem como filtro, e não vou poder usar letras nos buttons.
A alternativa que encontrei foi essa, e facilita usar -2 a -39, e texto F1 a F40, ao invés de "shift-F1", "ctrl-F1", e "alt-F1".
Acabam sendo exceções mesmo só F11 e F12, que são teclas que no começo não existiam no teclado.
Um remapeamento no inkeyfilter
Código: Selecionar todos
CASE -40 /*K_F11*/ ; RETURN K_SH_F1
CASE -41 /*K_F12*/ ; RETURN K_SH_F2
Código: Selecionar todos
#ifdef K_F11
#undef K_F11
#endif
#ifdef K_F12
#undef K_F12
#endif
#define K_F11 K_SH_F1
#define K_F12 K_SH_F2
#define K_F13 K_SH_F3
#define K_F14 K_SH_F4
#define K_F15 K_SH_F5
#define K_F16 K_SH_F6
#define K_F17 K_SH_F7
#define K_F18 K_SH_F8
#define K_F19 K_SH_F9
#define K_F20 K_SH_F10
#define K_F21 K_CTRL_F1
#define K_F31 K_ALT_F1
Basicamente nos buttons, o usuário nem precisa saber que isso existe.
Digamos que agora posso colocar 39 buttons na tela, numerados de -2 a -39
E isso não dá conflito com as letras normais já existentes.
É que alterando os browses pra ADO, as letras servem como filtro, e não vou poder usar letras nos buttons.
A alternativa que encontrei foi essa, e facilita usar -2 a -39, e texto F1 a F40, ao invés de "shift-F1", "ctrl-F1", e "alt-F1".
Acabam sendo exceções mesmo só F11 e F12, que são teclas que no começo não existiam no teclado.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Inventar teclas Fx
Pra curiosidade, no uso que eu já fazia antes:
Pois é... até agora não era problema, e nem precisava saber do valor de Inkey
Código: Selecionar todos
IF pw_TemAcesso( "PJPPEDIDOFATURA" )
AAdd( oFrm:acMenuOptions, "<F3>Duplicata" )
ENDIF
IF pw_TemAcesso( "PJPPEDIDOCUPOM" )
AAdd( oFrm:acMenuOptions, "<F12>ReemiteC" )
ENDIF
IF pw_TemAcesso( "ADMPEDJUN" )
AAdd( oFrm:acMenuOptions, "<F14>Juntar" )
ENDIF
IF AppUserLevel() < 2
AAdd( oFrm:acMenuOptions, "<F16>Config" )
ENDIF
Código: Selecionar todos
METHOD UserFunction( lProcessou ) CLASS JPPEDIDOClass
LOCAL nIdPedido, oXmlPdf
nIdPedido := ::axKeyValue[ 1 ]
DO CASE
CASE ::cOpc == "J"; PJPPEDIDONFE( nIdPedido )
CASE ::cOpc == "O"; PJPREGUSO( "JPPEDIDO", nIdPedido )
CASE ::cOpc == "D"; ClonarPedido( @nIdPedido )
CASE ::cOpc == "F"; ::MostraFinanceiro()
CASE ::cOpc == "F3"; PJPPEDIDOFATURA( nIdPedido )
CASE ::cOpc == "F12"; PJPPEDIDOCUPOM( nIdPedido )
CASE ::cOpc == "F14"; ::JuntarPedido()
CASE ::cOpc == "F16"; ::GUIHide()
OTHERWISE
lProcessou := .F.
ENDCASE
RETURN lProcessou
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/