Tecla ENTER sendo reconhecida como TAB

Delphi

Lógica de programação

07/11/2022

Olá, ao verificar o clique da tecla ENTER no meu sistema, em duas telas diferentes, ela interpreta o codigo ASCII de forma diferente.

Em uma das telas, ela é reconhecida como codigo 13, o q está correto.
Na outra tela, ela é reconhecida como codigo 9, que seria o codigo do TAB.

Estou utilizando a mesma função alias, segue a baixo dois exemplos de codigo que estou testando, em ambos os casos, a Key é reconhecida erroneamente por uma das telas

if Key = 13 then
begin
// codigo
end;

if Key = VK_RETURN then
begin
// codigo
end;


Utilizo Delphi Seattle
Ramboli

Ramboli

Curtidas 0

Melhor post

Raimundo Pereira

Raimundo Pereira

09/11/2022

Use a função:
function TForm1.Tecla_Pressionada(const Key: Integer): Boolean;
begin
Result:=GetKeyState(key) and 128>0 ;
end;


No evento do campo:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin

if Tecla_Pressionada(13) then
BEGIN
ShowMessage('Tecla Enter');
END;

if Tecla_Pressionada(9) then
BEGIN
Keybd_Event(13, 0, 0, 0); //Simula a Tecla enter
END;

GOSTEI 1

Mais Respostas

Raimundo Pereira

Raimundo Pereira

07/11/2022

if Key = #13 then //Aqui é usado para o evento da tecla enter no metodo onkeypress
begin
// codigo
end;

if Key = VK_RETURN then //Aqui é usado para o evento da *tecla enter* no metodo onkeydown
begin
// codigo
end;


if Key = #9 then //Aqui é usado para o evento da tecla TAB no metodo onkeypress
begin
// codigo
end;

if Key = VK_TAB then //Aqui é usado para o evento da *tecla TAB* no metodo onkeydown
begin
// codigo
end;
GOSTEI 1
POSTAR