Tecla DEL não funciona no harbour

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Tecla DEL não funciona no harbour

Mensagem por alxsts »

Olá!

GDPR

GDPR
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Tecla DEL não funciona no harbour

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Tecla DEL não funciona no harbour

Mensagem 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.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Tecla DEL não funciona no harbour

Mensagem 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.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Tecla DEL não funciona no harbour

Mensagem 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
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/
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Tecla DEL não funciona no harbour

Mensagem 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.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Tecla DEL não funciona no harbour

Mensagem por JoséQuintas »

teclado.jpg

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.
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/
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Tecla DEL não funciona no harbour

Mensagem por Toledo »

Amigos, no link abaixo tem como testar cada tecla pressionada:

https://www.w3.org/2002/09/tests/keys-cancel2.html

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Tecla DEL não funciona no harbour

Mensagem por JoséQuintas »

prompt.png
Texto completo no Harbour, agradecimentos ao Viktor:

https://harbour.github.io/doc/clc53.html#menu-to-cmd

Como dá pra ver, só iniciais mesmo.
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/
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Tecla DEL não funciona no harbour

Mensagem 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
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Tecla DEL não funciona no harbour

Mensagem 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.
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/
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Tecla DEL não funciona no harbour

Mensagem 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.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Responder