Set Key

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

fjokiller
Usuário Nível 1
Usuário Nível 1
Mensagens: 16
Registrado em: 15 Ago 2007 21:11
Localização: fortaleza

Set Key

Mensagem por fjokiller »

Galera talvez minha pergunta seja idiota mas tou precisando de uma resposta...

Estou usando o SET KEY para quando o usuario pressionar CTRL + O abrir uma tela com umas opcoes..até ai eu consigo, o problema é q se o CAPS LOCK estiver aceso não funciona... isso é normal?
Ademir
Usuário Nível 3
Usuário Nível 3
Mensagens: 170
Registrado em: 31 Jul 2007 16:28
Localização: Porto Ferreira-SP

Mensagem por Ademir »

Bom dia !

Uso o F10. O comando é set key -9 to <nome da função>. Vc deve utilizar para CTRL+O set key 15 to <nome da função>. É pra funcionar. Se não funcionar, me avisa que eu faço um teste aqui ok ?
fjokiller
Usuário Nível 1
Usuário Nível 1
Mensagens: 16
Registrado em: 15 Ago 2007 21:11
Localização: fortaleza

Mensagem por fjokiller »

Funciona, o problema é q é dependente do CAPS LOCK.. qdo ele está acesso não funciona...é algo assim CTRL + o (minusculo) funciona e se for CTRL + O (maiusculo ) não funciona, entendeu
Ademir
Usuário Nível 3
Usuário Nível 3
Mensagens: 170
Registrado em: 31 Jul 2007 16:28
Localização: Porto Ferreira-SP

Mensagem por Ademir »

Fjokiller, testei aqui e funcionou ligado ou desligado. O problema aí deve ser outro... pode postar a função que aciona as opções ?
ederxc
Usuário Nível 4
Usuário Nível 4
Mensagens: 619
Registrado em: 15 Set 2006 08:40
Localização: Pedreira -SP-

Mensagem por ederxc »

fjokiller escreveu:Funciona, o problema é q é dependente do CAPS LOCK.. qdo ele está acesso não funciona...é algo assim CTRL + o (minusculo) funciona e se for CTRL + O (maiusculo ) não funciona, entendeu

Então , a letra ("O "maiscula tem um valor ) quanto a minuscula tem outro valor , voce pode fazer um set key para chamar tanto com minusculo quanto com maiuscolo AGORA com control precinado tem outro valor que no caso é 15

SET KEY 15 to saivoando


obs: acabei de testar e funciona tanto com capslook acionado ou não
C:\Xharbour\Xdev\Fw\VSX
fjokiller
Usuário Nível 1
Usuário Nível 1
Mensagens: 16
Registrado em: 15 Ago 2007 21:11
Localização: fortaleza

Mensagem por fjokiller »

cara qdo tá pressionado nem chama a funcao, ele simplesmente digita a letra O...talvez o problema seja pq estou usando o flagship e acessando o sistema via ssh, será?
ederxc
Usuário Nível 4
Usuário Nível 4
Mensagens: 619
Registrado em: 15 Set 2006 08:40
Localização: Pedreira -SP-

Mensagem por ederxc »

fjokiller escreveu:cara qdo tá pressionado nem chama a funcao, ele simplesmente digita a letra O...talvez o problema seja pq estou usando o flagship e acessando o sistema via ssh, será?

Bom nesse caso ja não sei dizer...
C:\Xharbour\Xdev\Fw\VSX
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

fjokiller escreveu:cara qdo tá pressionado nem chama a funcao, ele simplesmente digita a letra O...talvez o problema seja pq estou usando o flagship e acessando o sistema via ssh, será?
Post como vc esta usando SET KEY..
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
fjokiller
Usuário Nível 1
Usuário Nível 1
Mensagens: 16
Registrado em: 15 Ago 2007 21:11
Localização: fortaleza

Mensagem por fjokiller »

Cara estou usando normal..SET KEY 15 to Funcao, mas só funciona se o caps lock tiver desabilitado...

Mas como disse eu estou usando o Flagship, acesso uma maquina linux de uma maquina win XP usando o programa CygWin
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

fjokiller, inclua as seguintes linhas em algum lugar do seu programa:

Código: Selecionar todos

clear
do whil .t.
  inkey(0)
  @10,10 SAY lastkey() // MOSTRA O VALOR DA ULTIMA TECLA
  if lastkey()=27 // cai fora
     quit
  endi
endd
Isto vai fazer mostrar o valor da última tecla pressionada, aí vc pode saber o que está sendo retornado com CRTL O. Talvez o seu teclado esteja com problemas, porque CRTL O, com CAPS LOCK ON ou OFF, dá sempre 15.
fjokiller
Usuário Nível 1
Usuário Nível 1
Mensagens: 16
Registrado em: 15 Ago 2007 21:11
Localização: fortaleza

Mensagem por fjokiller »

cara tinha feito isso e deu o valor do O dai coloquei Set Key para essa tecla tambem, mas qdo vou digitar O maiusculo ele chama a funcao... mas só para chamar qdo for pressionado CTRL+O ou CTRL+o
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

O problema aí deve ser outro... pode postar a função que aciona as opções ?
Cara, repetindo a sugestão (acima) do Ademir: que tal vc postar o seu programa, só da parte que se refere a este assunto?
fjokiller
Usuário Nível 1
Usuário Nível 1
Mensagens: 16
Registrado em: 15 Ago 2007 21:11
Localização: fortaleza

Mensagem por fjokiller »

Eolo escreveu:
O problema aí deve ser outro... pode postar a função que aciona as opções ?
Cara, repetindo a sugestão (acima) do Ademir: que tal vc postar o seu programa, só da parte que se refere a este assunto?
ai vai

Coloco isso no inicio da chamada da funcao de cadastro de clientes

SET KEY K_CTRL_O TO OUTRAOPCAO


abaixo é a função outraopcao

FUNCTION OutraOpcao()
mColor := SetColor()
SAVE SCREEN TO mTELA

Private vEscolha[06]

vEscolha[ 01 ] := "Historico"
vEscolha[ 02 ] := "Recebimento"
vEscolha[ 03 ] := "Inativos"
vEscolha[ 04 ] := "Relatorios"
vEscolha[ 05 ] := "Mala Direta"
vEscolha[ 06 ] := "Endereco Entrega"

DO WHILE .T.
SET COLOR TO "N/bg, bg+/b,,, w/n"
@ 07, 29 CLEAR TO 15, 46
@ 07, 29, 15, 46 BOX B_SINGLE RAISED
mEscolha := Achoice( 08, 30, 14, 45, vEscolha,,,,,,," CENTRO DE OPCOES " )
SetColor( mColor )
IF LASTKEY() = 27
EXIT
ENDIF
IF mEscolha = 6
DispEndEnt()
ENDIF
ENDDO
RESTORE SCREEN FROM mTELA
RETURN

Quando pressionado ctrl_o ele chama a função q apresenta um achoice com outras opcoes sobre o cliente
mas só chama a função se o CAPS tiver desabilitado, tentei tanto usando o cygwin qto usando VNC e dá no mesmo...
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Cara, copiei o seu código pra dentro de um programa meu (incluindo o #include "inkey.ch") e rodou normal: o ACHOICE abre com CRTL O, com CAPS LOCK ON ou OFF... Faz o seguinte: tenta rodar eliminando o INCLUDE. Quem sabe ele está se desentendendo com o CYGWIN...

Ao invés de:
#include "inkey.ch"
set key K_CTRL_O to OUTRAOPCAO

faça
set key 15 to OUTRAOPCAO

Eu, particulamente, não uso o INCLUDE, prefiro ir direto no ponto, usando os números das teclas (no NG vc acha a tabela com todos os números das teclas).

Aliás, vc faz set key K_CTRL_O e, logo abaixo, faz if lastkey()=27... Se é pra usar o INCLUDE, porque não K_ESC ao invés de 27?
fjokiller
Usuário Nível 1
Usuário Nível 1
Mensagens: 16
Registrado em: 15 Ago 2007 21:11
Localização: fortaleza

Mensagem por fjokiller »

Eolo escreveu:Cara, copiei o seu código pra dentro de um programa meu (incluindo o #include "inkey.ch") e rodou normal: o ACHOICE abre com CRTL O, com CAPS LOCK ON ou OFF... Faz o seguinte: tenta rodar eliminando o INCLUDE. Quem sabe ele está se desentendendo com o CYGWIN...

Ao invés de:
#include "inkey.ch"
set key K_CTRL_O to OUTRAOPCAO

faça
set key 15 to OUTRAOPCAO

Eu, particulamente, não uso o INCLUDE, prefiro ir direto no ponto, usando os números das teclas (no NG vc acha a tabela com todos os números das teclas).

Aliás, vc faz set key K_CTRL_O e, logo abaixo, faz if lastkey()=27... Se é pra usar o INCLUDE, porque não K_ESC ao invés de 27?
cara já tinha usado o 15..acho q é o cygwin...vlw vou testar em outra maquina pra ver se num é meu teclado...
Responder