Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Teclas Virtuais


DiabloX3

Pergunta

seguindo este raciocínio temos então:

#8 correponde a tecla "TAB"

Eu tinha visto isso já e iria procurar mais a respeito porque não sei o por que não funciona como explicado.

Sendo a tecla TAB = #8 então um keypress com [se key =#8 faça] deveria entrar nessa linha quando pressionado tab mas o delphi simplesmente ignora, como se não conhecesse. Imagino que o TAB não seria um Keypress e já que tocaram nesse assunto queria saber o porquê.

abraço

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Imagino que o TAB não seria um Keypress e já que tocaram nesse assunto queria saber o porquê.

O TAB e outras teclas fazem parte do Virtual keys ou chaves virtuais

vk_Tab = $09;

OBS: coloquei o valor da tecla TAB errado.... é o 9

o 8 é para a Tecla BACKSPACE

exemplo:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Label1.Caption :=  Format('O código da tecla pressionada é: %d', [Key]);

  if Key = VK_BACK then
    ShowMessage('A tecla Backspace foi pressionada');

  if Key = VK_SPACE then
    ShowMessage('A tecla Space foi pressionada');
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Label1.Caption :=  Format('O código da tecla pressionada é: %d', [Key]);

  if Key = VK_TAB then
    ShowMessage('A tecla TAB foi pressionada');
end;

Lista de teclas Virtuais

Voce pode usar o Valor Constante, Hexadecmal ou o valor Decimal da tecla ( Key )

http://www.arquivodecodigos.net/arquivo/re...as_virtuais.php

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Eu tinha testado no keydown também, esqueci de mencionar.

No cadastro de cliente, por exemplo, tanto no keydown como no keyup eu coloquei do jeito que você passsou, key = vk_tab mas quando a pressiono não executa o evento. Experimentei comentar o KeyPress para ver se não estava sobrescrevendo o evento e também tentei colocar key = $09 mas ambos os testes não entrou no debug e não deu o setfocus aonde eu queria.

Link para o comentário
Compartilhar em outros sites

  • 0
No cadastro de cliente, por exemplo, tanto no keydown como no keyup eu coloquei do jeito que você passsou, key = vk_tab mas quando a pressiono não executa o evento. Experimentei comentar o KeyPress para ver se não estava sobrescrevendo o evento e também tentei colocar key = $09 mas ambos os testes não entrou no debug e não deu o setfocus aonde eu queria.

O exemplo que te passei é para usar nos eventos do form, por isso a propriedade KeyPreview do form em que estar true;

No seu Cadastro de cliente voce tem que colocar esse código no componente onde estiver o foco

exemplo: se o foco estiver num componente Edit então voce terá que usar os eventos desse componente .. o evento keydown ou keyup do Edit

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Malz Jhonas, devia ter dito que já estava colocando o evento nos Edits

procedure Tfrm_cad_cli.edtCliNomeKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = VK_TAB then
    edtCliEnd.SetFocus;
end;

procedure Tfrm_cad_cli.edtCliNomeKeyPress(Sender: TObject; var Key: Char);
begin
if key =#13 then
begin
if rdg_tipo.ItemIndex = 0 then
edtRG.SetFocus;
if rdg_tipo.ItemIndex = 1 then
edtNomeFantasia.SetFocus;
end;
end;

Quando o foco está no edtNomeCli e aperto TAB ele não joga o foco pro edtCliEnd (nem entra no evento keydown, tentei com o keyup também)

Coloquei o KeyPress mas acredito que não tenha interferência.

Editado por DiabloX3
Link para o comentário
Compartilhar em outros sites

  • 0
Quando o foco está no edtNomeCli e aperto TAB ele não joga o foco pro edtCliEnd (nem entra no evento keydown, tentei com o keyup também)

Coloquei o KeyPress mas acredito que não tenha interferência.

A tecla TAB vai seguir a seguencia da propriedade TabOrder dos componente no Form antes de fazer o que esta querendo ... neste caso use o evento OnExit do Edit para setar o foco em outro componente

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...