Página 1 de 1

TEF - Travar o teclado

Enviado: 31 Out 2005 15:22
por cainelli
Caros colegas,

Pesquisei no forum e não encontrei resposta.

Estou com problemas com as teclas CTRL+C. Quando uso estas teclas a tela do meu programa vai subindo e na última linha fica o ^C.
Não fecha o programa, mas da este detalhe, q acho q pode causar problemas na homologação.
Gostaria de saber se alguém passou por este problema e como resolveu.
Uso clip53 + Blinker 6 no Windows XP.

Gostaria ainda de pedir q alguém me envie a CT53.LIB E CTP53.LIB para q eu possa tentar usar o KbdDisable.

Marcello.

Enviado: 31 Out 2005 17:13
por Mlizander
Se eu não estou enganado, a tecla para abortar é Alt+C, não?
E para que o programa não finalize com Alt+C ou Ctrl+Break você deve usar a função setcancel(.F.), função que pertence à Clipper.lib.

Enviado: 31 Out 2005 21:41
por cainelli
O Alt+C eu já tratei com SetCancel(.F.).
O problema é o CTRL+C mesmo. Nos testes de pré homologação da Redecard tem este teste e no meu programa esta ficando o ^C nas últimas linhas da tela.

Enviado: 31 Out 2005 22:15
por Clipper
Elementar meu caro Cainelli

No inicio do programa coloque :
SET KEY 3 TO NADA()

E crie essa função :
FUNCTION NADA()
RETURN(.T.)

Até logo.

Marcelo

Enviado: 01 Nov 2005 09:01
por cainelli
:( Caro Clipper, não deu certo. Me parece q antes de passar pela função Nada() ele coloca o ^C na tela.

Vc não teria a CT53.LIB para me mandar ? Gostaria de tentar desabilitar o teclado com a KbdDisable.

Obrigado,

Marcello.

Enviado: 01 Nov 2005 09:16
por Clipper
Estranho.

Eu testei essa função e ela desabilitou o CTRL+C. Quando eu pressionava CTRL+C no programa ele saia, com a função em uso simplesmente ele não faz nada, eu não tenho a Clipper Tools para a versão 5.3, vou dar uma pesquisada para ver se acho.

Até logo.

Marcelo

Enviado: 01 Nov 2005 09:46
por Clipper
Pega a CLIPPER TOOLS para 5.3 aí...

http://spravki.net.ru/clipper/ca-clipper.htm

Até logo.

Marcelo

Enviado: 01 Nov 2005 11:39
por cainelli
Vou postar aqui como resolvi o problema, para consultas dos colegas:

kbddisable(.F.)
keyboard "."
do while inkey() # 0
ntempinho:=SECONDS()
DO while .T.
IF (seconds() - ntempinho) > 0.1
exit
endif
ENDDO
ntecla:=inkey()
enddo

Na verdade esta dica já estava no forum e foi dada pelo colega Carlos Bernardi Jr.

Deu certinho!

Obrigado a todos pela ajuda.

Marcello.