Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Paulo Henrique de Assis

[Resolvido] Tab Com função de Enter

Recommended Posts

Olá pessoal vi na internet muitas funções que você troca o tab pelo enter, e eu estou precisando de o Tab tenha a função do Enter, pois na minha aplicação eu uso o enter para iniciar as vendas, mas quando teclo o tab ele não executa a inicialização das vendas mas sim pula para o próximo edit!

 

att

 

Paulo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Sr Paulo.

 

No Deplhi, vi uma solução para isso, mas nao estou lembrado pois o TAB nao passa nem pelo KeyPress e KeyDown, entao eh complicado =/

 

- Tente fazer algo no evento OnExit do campo, é chato trabalho no OnExit mas pode ser uma alternativa fazendo todas as verificações necessarias.

- Tenta talvez no OnExit enviar um "#13" para o OnKeyPress ou Down do form (creio q você faça verificações num destes eventos quando pressionar enter)

- Outra solução, para evitar as famosas "gambiarras", é você fazer uma verificação no ultimo campo da tela, um botao salvar por exemplo. Ao clicar no botão, você pode setar o foco no campo onde deveria ter pressionado enter e exibir uma mensagem qualquer de informação ou ate mesmo, continuando o exemplo do botao salvar, incluir a rotina do "enter" no evento OnClick do botao, ou seja, se ele der enter no campo ou clicar no botao ele fará a mesma coisa.

 

Vou tentar fazer algo hoje mais a noite com mais calma e procurar algo, qualquer coisa posto aqui.

Mas saliento novamente que é meio complicado isso.

 

Abraço! se alguma delas suprir sua necessidade, posta ai o resultado/solução ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Sr Paulo.

 

No Deplhi, vi uma solução para isso, mas nao estou lembrado pois o TAB nao passa nem pelo KeyPress e KeyDown, entao eh complicado =/

 

- Tente fazer algo no evento OnExit do campo, é chato trabalho no OnExit mas pode ser uma alternativa fazendo todas as verificações necessarias.

- Tenta talvez no OnExit enviar um "#13" para o OnKeyPress ou Down do form (creio q você faça verificações num destes eventos quando pressionar enter)

- Outra solução, para evitar as famosas "gambiarras", é você fazer uma verificação no ultimo campo da tela, um botao salvar por exemplo. Ao clicar no botão, você pode setar o foco no campo onde deveria ter pressionado enter e exibir uma mensagem qualquer de informação ou ate mesmo, continuando o exemplo do botao salvar, incluir a rotina do "enter" no evento OnClick do botao, ou seja, se ele der enter no campo ou clicar no botao ele fará a mesma coisa.

 

Vou tentar fazer algo hoje mais a noite com mais calma e procurar algo, qualquer coisa posto aqui.

Mas saliento novamente que é meio complicado isso.

 

Abraço! se alguma delas suprir sua necessidade, posta ai o resultado/solução ;)

 

 

Muito obrigado Daniel!

 

Eu irei fazer alguns testes com relação as suas dicas! E outra , eu estava vendo aqui se eu conseguisse desabilitar o Tab apenas de um edit tb resolveria o meu caso! pois eu forçaria o cliente teclar enter! se você souber alguma rotina que faça isso irá ajudar muito!

 

Até mais!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou ver algo, qualquer coisa posto aqui

O dificil é que o TAB, creio eu, não é considerado um character tipo o ENTER ou qualquer outra tecla, pois basicamente a função dele (TAB) é só trocar/setar foco no proximo campo ou com Shift+Tab voltar o foco, nao sei como mas ele deve ser interpretado pelo SO como uma função não como uma tecla propriamente dita.

Caso eu esteja errado, me corrijam que essa tb é um incognita pra mim hehehehe

 

Mas que bom Paulo, tomara que de certo ai.

 

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

tenta fazer algo assim

 

procedure TForm1.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
begin
  if Msg.KeyData = 983041 then
//    function simular enter
end;

983041 é a tecla TAB sendo pressionada aqui

 

neste outro teste aparece uma mensagem informando que a tecla TAB foi pressionada

procedure TForm1.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
begin
  if Msg.KeyData = 983041 then
    ShowMessage('A tecla TAB foi pressionada.');
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

tenta fazer algo assim

 

procedure TForm1.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
begin
  if Msg.KeyData = 983041 then
//    function simular enter
end;

983041 é a tecla TAB sendo pressionada aqui

 

neste outro teste aparece uma mensagem informando que a tecla TAB foi pressionada

procedure TForm1.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
begin
  if Msg.KeyData = 983041 then
    ShowMessage('A tecla TAB foi pressionada.');
end;

 

 

 

 

 

Muito Obrigado , essa dica do Tab resolveu o meu problema! Com isso eu bloqueio o tab e forço a pessoa sempre usar o enter!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.