ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

VK_F4 e s tem o mesmo valor char

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
viniciusalvess
Novato
Novato


Registrado: Domingo, 31 de Março de 2013
Mensagens: 6

MensagemEnviada: Qua Jan 29, 2014 10:28 pm    Assunto: VK_F4 e s tem o mesmo valor char Responder com Citação

Olá , estou com dúvida de como filtro os caracteres digitados no teclado deixando passar somente o VK_F4 e não deixar passar o 's' , ambas tem o mesmo valor na tabela ascii , e não esotu compreendendo muito bem como fazer , grato.

Editado pela última vez por viniciusalvess em Qui Jan 30, 2014 2:27 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9100
Localização: Sinop-MT

MensagemEnviada: Qui Jan 30, 2014 8:54 am    Assunto: Responder com Citação

onde vc programou? onKeyDown? OnKeyPress? evento do form? evento de alg componente? vc zerou a tecla apos processa-la?
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
viniciusalvess
Novato
Novato


Registrado: Domingo, 31 de Março de 2013
Mensagens: 6

MensagemEnviada: Qui Jan 30, 2014 9:43 am    Assunto: Responder com Citação

Está no evento keypress de um TEdit

Código:

procedure TForm1.edtIdProdutoKeyPress(Sender: TObject; var Key: Char);
begin
  If not( key in['0'..'9',',','*',#8 ,#13,#113,#114,#115,#27] ) then
    key:=#0;
end;


de acordo com a tabela ascii os caracteres [q r s] tem os respectivos valores 113,114,115 o que é igual aos valores das constantes VK_F2 ,VK_F3,VK_F4 , no teste acima acaba que tanto as teclas qrs e as teclas f2 f3 f4 passam no evento do tedit, gostaria que somente passasse os eventos das teclas f2 f3 f4.

fiz o mesmo teste no onkeydown do edit , onde o parametro key é um word mesmo assim não tivesse sucesso.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
GustavoToyota
Profissional
Profissional


Registrado: Domingo, 9 de Outubro de 2011
Mensagens: 605
Localização: Sorocaba - SP

MensagemEnviada: Qui Jan 30, 2014 10:23 am    Assunto: Responder com Citação

Você está entendendo errado.
Os valores que você comentou (q[113] r[114] s[115]) são valores ASCII, ou seja, texto. Não são Virtual Keys ou teclas pressionáveis.
Se você quer testar o pressionamento dessas teclas use os eventos OnKeyDown e OnKeyUp e os valores Q[81] R[82] e S[83], que são tanto valores ASCII quanto Virtual Keys.
Lembrando: o evento OnKeyPress tem a função de manipular o resultado do envio de um caractere ASCII (texto), ou seja, um VK_F4 não passa por ele porque não é um valor ASCII.


Abraços.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
viniciusalvess
Novato
Novato


Registrado: Domingo, 31 de Março de 2013
Mensagens: 6

MensagemEnviada: Qui Jan 30, 2014 10:35 am    Assunto: Responder com Citação

GustavoToyota escreveu:
Você está entendendo errado.
Os valores que você comentou (q[113] r[114] s[115]) são valores ASCII, ou seja, texto. Não são Virtual Keys ou teclas pressionáveis.
Se você quer testar o pressionamento dessas teclas use os eventos OnKeyDown e OnKeyUp e os valores Q[81] R[82] e S[83], que são tanto valores ASCII quanto Virtual Keys.
Lembrando: o evento OnKeyPress tem a função de manipular o resultado do envio de um caractere ASCII (texto), ou seja, um VK_F4 não passa por ele porque não é um valor ASCII.


Abraços.


não . Eu gostaria de testar o pressionamento das teclas F2,F3,F4 os valores 81,82,83 são para as letras q r s porém maiúsculas os valores dessas letras minúsculas são q[113] r[114] s[115] o que são correspondentes aos valores das constantes VK_F2, VK_F3, VK_F4.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
GustavoToyota
Profissional
Profissional


Registrado: Domingo, 9 de Outubro de 2011
Mensagens: 605
Localização: Sorocaba - SP

MensagemEnviada: Qui Jan 30, 2014 10:56 am    Assunto: Responder com Citação

viniciusalvess escreveu:
não . Eu gostaria de testar o pressionamento das teclas F2,F3,F4 os valores 81,82,83 são para as letras q r s porém maiúsculas os valores dessas letras minúsculas são q[113] r[114] s[115] o que são correspondentes aos valores das constantes VK_F2, VK_F3, VK_F4.

É só testar elas nos eventos OnKeyUp ou OnKeyDown, pois elas não vão passar pelo evento OnKeyPress por não serem valores ASCII, mas sim teclas.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
viniciusalvess
Novato
Novato


Registrado: Domingo, 31 de Março de 2013
Mensagens: 6

MensagemEnviada: Qui Jan 30, 2014 2:13 pm    Assunto: Responder com Citação

Código:

procedure TForm1.edtIdProdutoKeyDown(Sender: TObject; var Key:Word;Shift: TShiftState);

begin

  If not( key in[VK_NUMPAD0 .. VK_NUMPAD9,VK_DECIMAL,VK_MULTIPLY,VK_BACK ,VK_RETURN,VK_F2,VK_F3,VK_F4,VK_ESCAPE] ) then
    begin
      key := 0;
      exit;
    end;


não sei o valor para atribuir no key , mas mesmo assim está passando os demais caracteres.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB