OLA AMIGOS...
VOU TENTAR ESPLICAR DA MELHOR FORMA POSSIVE, E O SEGUINTE:
TENHO UM PRG QUE E UMA PESQUISA DE VENDAS QUE MOSTRO NA TELA E COLOCO UMA MENSAGEM PARA O CLIENTE SE ELE QUISER IMPRIMIR SO TECLAR A LETRA I, ONDE USO O COMANDO:
SET KEY 73 TO IMPR_VENDA
E EM OUTRA PESQUISA DE PRODUTOS EU USE DA MESMA FORMA MUDANDO SOMENTE A FUNCAO A CHAMAR:
SET KEY 73 TO IMPR_PROD
ATE AI TUDO BELEZA....
MAS CRIEI AGORA UM FUNCAO QUE USO EM TODO O PROGRAMA ONDE USO PARA LIBERAR VENDAS PEDINDO O USUARIO E A SENHA COLOCANDO NO INICIO DO PROGRAMA QUE E A TECLA F12:
SET KEY -41 TO LIBERA
E O PROBLEMA ACONTECE QUANDO O CLIENTE ESTA EM UMAS DAS PESQUISAS QUE DEI O EXEMPLO ACIMA E APERTA O F12 PARA CHAMAR A FUNCAO LIBERA() ENTAO PEDE O NOME DO USUARIO E QUANDO O NOME DO USUARIO TEM A LETRA I O SISTEMA IMPRIME A PESQUISA SENDO QUE EU QUERIA DIGITAR EX: APARECIDO, QUANDO TECLO I ABRE PRA IMPRIMIR.
O QUE EU QUERO E O SEGUINTE, DESABILITAR A LETA I, MAS GUARDANDO QUAL ERA A SUA FUNCAO ANTERIORMENTE PARA ABILITAR NOVAMENTE QUAND SAIR DA FUNCAO LIBERA DO F12.
ESPERO TER FEITO COMPRENDER....
ATENCIOSAMENTE
ROBSON
duvida sobre comando Set Key to....help..
Moderador: Moderadores
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Robson, você pode usar a função SETKEY() para desabilitar a função temporariamente, tipo assim:
Abraços,
Código: Selecionar todos
PROC LIBERA()
tecla_i=SETKEY(73,{||faznada()})
... aqui você coloca a sua função LIBERA...
SETKEY(73,tecla_i)
RETU
PROC faznada()
RETU
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
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
Obrigado Toledo....
Muito obrigado toledo....e´ isso mesmo que estava procurando....
Testei e Ficou Joia....Valeu
T+
ROBSON
Testei e Ficou Joia....Valeu
T+
ROBSON
-
diogenes_varela
- Usuário Nível 3

- Mensagens: 206
- Registrado em: 04 Nov 2006 19:33
- Localização: Brasília - DF
Facilitando as coisas:
PROC LIBERA()
SET KEY 73 TO
... aqui você coloca a sua função LIBERA...
SET KEY 73 TO LIBERA
RETU
O SET KEY TO (sem argumentos) no início da procedure LIBERA anula a chamada automática da função. Isso evita a criação de uma procedure desnecessária. Depois é só retorná-la no final.
PROC LIBERA()
SET KEY 73 TO
... aqui você coloca a sua função LIBERA...
SET KEY 73 TO LIBERA
RETU
O SET KEY TO (sem argumentos) no início da procedure LIBERA anula a chamada automática da função. Isso evita a criação de uma procedure desnecessária. Depois é só retorná-la no final.
Os computadores não sabem o que fazem. Nós, na maioria das vezes, também não...
E disse ao Programador: "Todos os teus programas terão erros e irás corrigi-los até ao fim dos teus dias". Gen. 1:9
E disse ao Programador: "Todos os teus programas terão erros e irás corrigi-los até ao fim dos teus dias". Gen. 1:9
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Diogenes, o problema do Robson é que ele tem uma função (IMPR_VENDA) que é acionada através da letra I (73), a qual ele não quer que seja executada de dentro da função LIBERA. Então usando o exemplo que eu passei, ele vai conseguir desabilitar temporariamente a letra I e só habilitar quando estiver saindo da função LIBERA.
Abraços,
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
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
Tive que colocar o SET KEY TO...mas ficou Joia.
Entao diogenes_varela...O MAIOR PROBLEMA E QUE TENHO QUE USAR A LERTA I NA FUNCAO LIBERA() ONDE O TEM UM GET PEDINDO O NOME DO USUARIO E SE O NOME DELE FOR POR EXEMPLO: APARECIDO
QUANDO ELE APERTAVA A LETRA I IMPRIMIR E NAO SAIA O I ENTAO O QUE EU QUERIA ERA GUARDAR O NOME DA FUNCAO QUE A TECLA 73(I) ESTAVA ANTERIORMENTE PARA QUANDO SAIR DO LIBERA ATIVAR NOVAMENTE.
FIZ ASSIM
Functiona LIBERA()
I_Funcao:=SetKey(73,{|| Faz_Nada()}) //So pra guardar a Funcao Anterior
Set Key To //Tirar a funcao do I para o Cliente poder Digitar a Letra I
funcao Libera......com get onde pego o nome do usuario...Etc...
SetKey(73,I_Funcao)
Return
Valeu.....T+ Pessoal
ROBSON
QUANDO ELE APERTAVA A LETRA I IMPRIMIR E NAO SAIA O I ENTAO O QUE EU QUERIA ERA GUARDAR O NOME DA FUNCAO QUE A TECLA 73(I) ESTAVA ANTERIORMENTE PARA QUANDO SAIR DO LIBERA ATIVAR NOVAMENTE.
FIZ ASSIM
Functiona LIBERA()
I_Funcao:=SetKey(73,{|| Faz_Nada()}) //So pra guardar a Funcao Anterior
Set Key To //Tirar a funcao do I para o Cliente poder Digitar a Letra I
funcao Libera......com get onde pego o nome do usuario...Etc...
SetKey(73,I_Funcao)
Return
Valeu.....T+ Pessoal
ROBSON
-
diogenes_varela
- Usuário Nível 3

- Mensagens: 206
- Registrado em: 04 Nov 2006 19:33
- Localização: Brasília - DF
Todas as dicas passadas por vocês estão corretíssimas... Como tive problemas com códigos muito grandes, só tentei eliminar uma procedure.
Os computadores não sabem o que fazem. Nós, na maioria das vezes, também não...
E disse ao Programador: "Todos os teus programas terão erros e irás corrigi-los até ao fim dos teus dias". Gen. 1:9
E disse ao Programador: "Todos os teus programas terão erros e irás corrigi-los até ao fim dos teus dias". Gen. 1:9