Página 2 de 2
Tecla DEL não funciona no harbour
Enviado: 25 Jul 2018 23:52
por alxsts
Tecla DEL não funciona no harbour
Enviado: 27 Jul 2018 11:06
por Itamar M. Lins Jr.
Ola!
Provado por a + b que esse povo ".com" que vendem serviços do [x]Harbour, são todos sangue sugas do ".org"
Nenhum deles fazem nada, só ficam copiando, usando e vendendo trabalhos de duas ou três pessoas... Przmek, Viktor...
Saudações,
Itamar M. Lins Jr.
Tecla DEL não funciona no harbour
Enviado: 28 Jul 2018 19:42
por rochinha
Amiguinhos,
Nem li as outras respostas, mas pude notar que o código não estava testando o DEL:
Código: Selecionar todos
Case nOpcao = 0
...
Case !LastKey() = 7
...
otherwise
[b]@ 24,00 say "Pressionou tecla DEL"[/b]
aFiles[nOpcao] = StrTran(aFiles[nOpcao],'','ú')
Alert(aFiles[nOpcao]+" - "+"Tecla Del")
EndCase
otherwise=em outro caso, por outro lado...
Você não está especificando o DEL, simplesmente está, ahhhhhh, qualquer tecla faz um DEL.
Já encontrei vários arquivos .CH com código de teclas que tem definições diferentes de código. Pra mim o DEL se resolve com o código 46.
Sempre que necessário ao estipular uma tecla para uma função, devemos usar o LastKey() para devolver o código associado, que pode ser levemente diferente do Clipper ao Harbour.
Tecla DEL não funciona no harbour
Enviado: 28 Jul 2018 20:09
por JoséQuintas
rochinha escreveu:Pra mim o DEL se resolve com o código 46.
Sinto muito mas viajou.... rs
O teclado numérico pode ser DEL mas também pode ser ponto (.) se o numérico estiver ligado.
Faço isso no meu aplicativo, pra funcionar com teclado ligado ou desligado.
E o código Ascii do ponto é..... 46, seria a tecla DEL com o numérico ligado, mas desde que seja a DEL do teclado numérico.
Tecla DEL não funciona no harbour
Enviado: 28 Jul 2018 20:13
por JoséQuintas
Mas aproveitando....
Melhor esquecer tanto o prompt quanto a tecla DEL.
Se vai marcar registros.... porque DEL?
Melhor usar espaço, por exemplo, e já aproveita a rotina pra muitas outras coisas.
Até porque, só vai confirmar se é pra excluir mesmo depois, então estaria só marcando mesmo, e o DEL fica esquisito, e até perigoso, porque o usuário pode se acostumar a teclar DEL e sair apagando tudo..... rs
Tecla DEL não funciona no harbour
Enviado: 29 Jul 2018 14:30
por rochinha
Amiguinhos,
E o código Ascii do ponto é..... 46, seria a tecla DEL com o numérico ligado, mas desde que seja a DEL do teclado numérico.
Numérico ligado:
ponto devolve - 194
virgula devolve - 46(meu DEL)
delete devolve - 46
Numérico desligado:
ponto devolve - 194
virgula devolve - 110(meu DEL)
delete devolve - 46
Teclado Bright 106 teclas. Tenho a tecla DEL no teclado numérico e DELETE no extras.
Tecla DEL não funciona no harbour
Enviado: 29 Jul 2018 14:52
por JoséQuintas
Ok corrigindo:
Isso que está junto com a tecla DEL é uma vírgula.
Mas.... uso configurado como Estados Unidos Internacional, e nele é ponto.
O resultado é....
Numérico desligado... DEL retorna 7, código do DEL
Numérico ligado em teclado EUA... DEL retorna 46, código do "."
Numérico ligado em teclado PTBR... DEL retorna 44, código da ","
O PROMPT:
- Ou movimenta com setas
- Ou digita a inicial das palavras
DEL, ponto, vírgula, talvez só se encaixem se forem inicial de alguma das palavras do PROMPT.
Se o XHarbour faz diferente... é porque o PROMPT dele não está no padrão.
"Talvez".... usando um SET KEY 7 TO Rotina, e modificar nessa rotina, mas só vai complicar, porque dependeria de uma varíavel PRIVATE pra ficar visível. nessa rotina, o que vai tornar tudo perigoso.
"Talvez".... SET KEY 7 TO __KeyBoard( Chr(13) )... mas também só vai complicar a rotina.
E como eu disse, acostumar o usuário a marcar usando DEL, é ele achar que pode digitar DEL no aplicativo inteiro quando quiser marcar alguma coisa.
Tecla DEL não funciona no harbour
Enviado: 29 Jul 2018 16:27
por Toledo
Amigos, no link abaixo tem como testar cada tecla pressionada:
https://www.w3.org/2002/09/tests/keys-cancel2.html
Abraços,
Tecla DEL não funciona no harbour
Enviado: 29 Jul 2018 16:37
por JoséQuintas
Texto completo no Harbour, agradecimentos ao Viktor:
https://harbour.github.io/doc/clc53.html#menu-to-cmd
Como dá pra ver, só iniciais mesmo.
Tecla DEL não funciona no harbour
Enviado: 30 Jul 2018 01:34
por rochinha
Amiguinhos,
JoséQuintas
Ai complica, se o teclado estiver para EUA ou PTBR modifica o resultado, como saber o que o teclado está obdecendo?
O Set Language do Harbour poderia interferir ou fixar nestes resultados?
Toledo
Show-de-bola o site. :)Pos
Tecla DEL não funciona no harbour
Enviado: 30 Jul 2018 02:38
por JoséQuintas
rochinha escreveu:Ai complica, se o teclado estiver para EUA ou PTBR modifica o resultado, como saber o que o teclado está obdecendo?O Set Language do Harbour poderia interferir ou fixar nestes resultados?
Quer mesmo saber?
Nem a bost. do Windows 10 gosta disso.
Tenho que trocar pra EUA Internacional várias vezes por dia.
Vou acabar tendo que importar um teclado dos EUA só pro Windows 10 parar de ficar atrapalhando.
Tecla DEL não funciona no harbour
Enviado: 30 Jul 2018 20:05
por rochinha
Amiguinhos,
Alguns clientes meus me reclamavam que as vezes algumas teclas do meu PDV paravam de funcionar e eu ficava perdendo os cabelos pra saber o porque.
Neste t[opico muito se falou sobre idioma de teclado e diferen;as nos retornos de teclas o que fez com que a pulga atras da orelha me pentelhasse.
Fui atras de um meio de contornar isto e cheguei at[e aqui?
Código: Selecionar todos
#define HKL_PREV 0
#define HKL_NEXT 1
#define KLF_ACTIVATE 0x00000001
#define KLF_NOTELLSHELL 0x00000080
#define KLF_REPLACELANG 0x00000010
#define KLF_SUBSTITUTE_OK 0x00000002
#define KLF_REORDER 0x00000008
#define KLF_RESET 0x40000000
#define KLF_SETFORPROCESS 0x00000100
#define KLF_SHIFTLOCK 0x00010000
Function main()
IF MY_GETKEYBOARDLAYOUT()=68551702 // Verifica se esta com layout para Portugues
// EN - Ingles (Estados Unidos)
MY_LOADKEYBOARDLAYOUT( "00000409", KLF_ACTIVATE )
// RU - Russo (Russia)
//MY_LOADKEYBOARDLAYOUT( "00000419", KLF_ACTIVATE )
// BE - Bielo-Russo (Belarus)
//MY_LOADKEYBOARDLAYOUT( "00000423", KLF_ACTIVATE )
?"Teste"
ENDIF
return
#pragma BEGINDUMP
#include <windows.h>
#include <hbapi.h>
HB_FUNC( MY_GETKEYBOARDLAYOUT )
{
hb_retnl( (LONG) GetKeyboardLayout( ( long ) hb_parc( 1 ) ) ) ;
}
HB_FUNC( MY_LOADKEYBOARDLAYOUT )
{
hb_retnl( (LONG) LoadKeyboardLayout( hb_parc(1), hb_parni(2) ) ) ;
}
#pragma ENDDUMP
O interessante é que notei que o teclado pode se comportar com diferentes layouts ao mesmo tempo em diferentes telas abertas no momento, ou seja, um prompt do DOS pode estar em portugues mas uma aba do ChRome pode estar em inglês.
Com o teste acima, consegui mudar a quente o layout dentro do prompt.