ALT C - Pergunta antes de sair

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Alcir
Usuário Nível 1
Usuário Nível 1
Mensagens: 34
Registrado em: 17 Abr 2008 10:57
Localização: sao paulo

Mensagem por Alcir »

Maligno escreveu:Para testar. :)
Precisa testar mais então, porque CONTINUA SAINDO FORA COM CRTL+C

:-O :-O :-O
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Acho que você não entendeu Alcir. O teste que apresentei é apenas para demostrar que com INKEY(0) não adianta NADA colorcar a função que iria perguntar ao usuário se desejar sair ou não. Por outro lado, o Maligno disse que com o GET sim funciona. De todas formas aceitar que o usuário SAIA do sistema dessa forma... é um pouco RADICAL ao meu ver. O INKEY(0) foi para fazer uma pausa e ver se pressionando o Alt C iria aparecer a mensagem ao usuário e o ? LASTKEY() era para evidenciar o código dessas teclas combinadas.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Alcir
Usuário Nível 1
Usuário Nível 1
Mensagens: 34
Registrado em: 17 Abr 2008 10:57
Localização: sao paulo

Mensagem por Alcir »

Pablo César escreveu:Acho que você não entendeu Alcir. O teste que apresentei é apenas para demostrar que com INKEY(0) não adianta NADA colorcar a função que iria perguntar ao usuário se desejar sair ou não. Por outro lado, o Maligno disse que com o GET sim funciona. De todas formas aceitar que o usuário SAIA do sistema dessa forma... é um pouco RADICAL ao meu ver. O INKEY(0) foi para fazer uma pausa e ver se pressionando o Alt C iria aparecer a mensagem ao usuário e o ? LASTKEY() era para evidenciar o código dessas teclas combinadas.
Ahh ta, beleza.

E como fica com o GET ?

Abração
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Pelo teste que fiz, no GET funciona normalmente. Mas minha sugestão pro colega é que ele utilize outra combinação, como ALT+X, por exemplo, que, aliás, é utilizada por vários programas. Aí funciona.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Eu não sei por quê tanta importância a saída rápida ??? Eu por exemplo tenho como padrão, a saídas dos módulos e sub-sequentemente do sistema, designando a tecla ESC como saída. Nunca alguém reclamou disso.

É tão simples, nos GETs por exemplo após do READ, coloco:

Código: Selecionar todos

@ 12,02....
READ
IF LASTKEY()=27
   CLOSE ? // fecho o que está aberto
   FECHA() /* função que fecha apropriadamente todos os arquivos e elimina os arquivos temporários que estão pendentes */
   RETURN NIL
ENDIF
A teclas de atalhos deveriam obedecer um padrão, para que o usuário se acostume seja com as teclas de funções como as combinação de teclas. Ainda acho mais rápido dar um até dois ESC no caso. Mas tudo bem, sobre gosto não há nada escrito...

AO final das contas o Mario Isa não manifestou-se ainda de cómo resolveu.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

É que às vezes uma saída rápida é mais rápida. :)))
Imagina o sistema com várias janelas abertas. Eu acho chato ter que pressionar ESC várias pra sair. Uma saída rápida é mais confortável. Mas ALT+C eu nunca vi ser usado em outros programas. Agora ALT+X já foi padrão em vários programas DOS.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Alcir
Usuário Nível 1
Usuário Nível 1
Mensagens: 34
Registrado em: 17 Abr 2008 10:57
Localização: sao paulo

Mensagem por Alcir »

Ate agora, ainda nao consegui travar a saida pelo CTRL+C, se alguem souber, por favor, post para todos saberem. Abraços
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Você quer dizer ALT+C?
Se for mesmo CTR+C, é só fazer SETKEY(3,{||nil}).
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Desviar a função Ctrl C ? Para quê seria Alcir ? Você poder nos explicar ?. Pois tenha em consideração que as teclas combinadas Ctrl_C é o mesmo que pressionar o Page_Down e as teclas combinadas Ctrl_Scroll_Lock. O que poderia não ser conveniente para algumas situações de navegação num TBROWSE (por exemplo) ou numa edição com MEMOEDIT.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Verdade. Nem tinha reparado nos códigos. De qualquer forma, bloquear essa tecla é só meio caminho. Bloqueada, ela não aborta o programa, mas ainda pode botar um monte de sujeira na tela.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Alcir
Usuário Nível 1
Usuário Nível 1
Mensagens: 34
Registrado em: 17 Abr 2008 10:57
Localização: sao paulo

Mensagem por Alcir »

Maligno escreveu:Você quer dizer ALT+C?
Sim, eu errei, é ALT+C.
Maligno escreveu: Se for mesmo CTR+C, é só fazer SETKEY(3,{||nil}).
E se for ALT+C ?
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Mensagem por vagucs »

Quando está num GET, antes de processar a tecla, ele verifica se existe alguma rotina do usuario para ser executada com a combinação daquela tecla, isto acontece para todas as rotinas do clipper para controle de operação como esta, ex: achouce, menu to, get, dbedit, etc.

No caso de criar por exemplo, algo assim:

DO WHILE .T.
? INKEY(0)
ENDDO

O inkey nunca processaria a tecla, ele apenas retorna o valor, logo a chamado ao bloco de codigo da rotina você deveria programa ela.
Sem mais
Wagner Nunes
www.vagucs.com.br
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Alcir escreveu:E se for ALT+C ?
Mesma coisa, mudando o código da tecla: SETKEY(302,{||nil}), mas lembrando que, antes, precisa executar SetCancel(.F.), senão não funciona. Mas eu só vi funcionar no GET. Não em InKey().
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Responder