Fórum Interceptar o pressionamento da tecla TAB - Urgente #204142
04/01/2004
0
PessoALL,
Tenho algumas validações de campos no evento keypress de um edit.
Quando é teclado enter as validações são acionadas.
Eu preciso saber se há alguma forma de fazer com que a tecla TAB não
passe para o próximo componente ativo, antes de fazer as validações que são acionadas no enter.
Já tentei TODOS os eventos de teclado para o componente e não funciona. (o KeyPreview do form está true).
Eu vi uns exemplos na internet, utilizando o TMsg mas não entendi como
funciona, se alguém puder me ajudar nesse abacaxi.
Tenho algumas validações de campos no evento keypress de um edit.
Quando é teclado enter as validações são acionadas.
Eu preciso saber se há alguma forma de fazer com que a tecla TAB não
passe para o próximo componente ativo, antes de fazer as validações que são acionadas no enter.
Já tentei TODOS os eventos de teclado para o componente e não funciona. (o KeyPreview do form está true).
Eu vi uns exemplos na internet, utilizando o TMsg mas não entendi como
funciona, se alguém puder me ajudar nesse abacaxi.
Dirceualves
Curtir tópico
+ 0
Responder
Post mais votado
05/01/2004
Olá d novo Dirceu
Testei no evento OnKeyUp, e... deu certo! :)
Veja só:
Lembrete: a propriedade KeyPreview setada como true não influi em nada no pressionar da tecla TAB (segundo a ajuda do próprio Delphi, ela não gera eventos d teclado).
Sucesso
Testei no evento OnKeyUp, e... deu certo! :)
Veja só:
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_TAB then ShowMessage(´Tecla TAB´); end;
Lembrete: a propriedade KeyPreview setada como true não influi em nada no pressionar da tecla TAB (segundo a ajuda do próprio Delphi, ela não gera eventos d teclado).
Sucesso
Tnaires
Responder
Gostei + 1
Mais Posts
05/01/2004
Tnaires
Caro Dirceu:
Tentei o seguinte código:
O interessante é q ele só funciona qdo eu pressiono CTRL + TAB... Se pressionar TAB sozinho ele não dá certo.
Tentei o seguinte código:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_TAB then ShowMessage(´Tecla TAB´); end;
O interessante é q ele só funciona qdo eu pressiono CTRL + TAB... Se pressionar TAB sozinho ele não dá certo.
Responder
Gostei + 0
27/11/2020
Ramboli
Olá d novo Dirceu
Testei no evento OnKeyUp, e... deu certo! :)
Veja só:
[code:1:a0c40618aa]
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_TAB then
ShowMessage(´Tecla TAB´);
end;
[/code:1:a0c40618aa]
Lembrete: a propriedade KeyPreview setada como true não influi em nada no pressionar da tecla TAB (segundo a ajuda do próprio Delphi, ela não gera eventos d teclado).
Sucesso
Testei no evento OnKeyUp, e... deu certo! :)
Veja só:
[code:1:a0c40618aa]
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_TAB then
ShowMessage(´Tecla TAB´);
end;
[/code:1:a0c40618aa]
Lembrete: a propriedade KeyPreview setada como true não influi em nada no pressionar da tecla TAB (segundo a ajuda do próprio Delphi, ela não gera eventos d teclado).
Sucesso
procedure TfTeste.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
conta : Extended;
begin
conta := 0;
if Key = VK_TAB then
begin
while conta = 0 do
begin
if not (query.State in [dsEdit,dsInsert]) then
begin
query.append;
end
else
begin
conta :=1;
exit;
end;
end;
end;
end;fiz isto, pode ajudar, ele verifica se a query esta aberta editando ou inserindo algo, caso nao esteja ele abre, caso esteja ele ignora a parte de dar append na query graças ao while, é um code bem simples, provavelmente voces ja devem ter aperfeiçoado isto, abraço
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)