GARANTIR DESCONTO

Fórum TeCLaS ascII #177135

24/08/2003

0

eu queria saber como posso capturar as teclas que são digitas pelo teclado, tipo quando teclarem a tecla ´R´ a conteca um evento e quando digitarem a tecla ´E´ outro, se vcs diverem a tabela ASCII, ja vai ser de grande ajuda.........


Joni

Joni

Responder

Posts

24/08/2003

Lordskinner

Cara, quanto ao código ASCII das teclas vc pode fazer o seguinte, cria um aplicativo e coloca um [u:d471e4561b]Label no form[/u:d471e4561b], dai passa a propriedade [u:d471e4561b]KeyPreview[/u:d471e4561b] do form para [u:d471e4561b]True[/u:d471e4561b], depois cria um evento [u:d471e4561b]OnKeyDown[/u:d471e4561b] no form e coloca a seguinte linha:

label1.caption:=format(´a tecla pressionada é ¬d´,[key]);

vai fica mais ou menos assim:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
label1.caption:=format(´O códig ASCII da tecla é ¬d´,[key]);
end;

dai roda o programa, quando vc apertar uma tecla, o label vai retornar o valor ascII da tecla.

Quanto a vc executar um evento quando vc apertar uma tecla, eu gosto de usar o OnKeyDown do form tbm, Tipo, tem um exemplo ai em baixo, da uma olhada:


procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
13:begin { O 13 É O CÓDIGO ASCII DA TECLA ENTER }
form1.Caption:=´A tecla ENTER foi pressionada´;
form1.color:=clblack;
end;
32:begin
form1.Caption:=´A tecla de Espaço foi pressionada´;
form1.color:=clwhite;
end;
end;
end;

{ Esta procedure opcional, só pra fazer voltar ao normal quando
soltar a tecla}


procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
13:begin { O 13 É O CÓDIGO ASCII DA TECLA ENTER }
form1.Caption:=´A tecla ENTER foi liberada´;
form1.color:=clbtnface;
end;
32:begin { O 32 É O CÓDIGO DA BARRA DE ESPAÇO }
form1.Caption:=´A tecla de Espaço foi liberada´;
form1.color:=clbtnface;
end;
end;
end;



Ufa, bem, é isso, qualquer coisa, me da um toque ok;


Responder

Gostei + 0

24/08/2003

Cebikyn

Eis um site que complementa a resposta do colega:

http://www.asciitable.com/

O site tem uma tabela ASCII completa, para usar no Delphi, pegue os valores da coluna ´Dec´.

se vcs diverem a tabela ASCII, ja vai ser de grande ajuda.........


------------
OBS: Editei esta msg por ter causado um terrível mal entendido...


Responder

Gostei + 0

24/08/2003

Joni

só uma perguntinha, como se eh o codigo com duas teclas tipo Shift+A
Ctrl+Shift etc


Responder

Gostei + 0

24/08/2003

Cebikyn

só uma perguntinha, como se eh o codigo com duas teclas tipo Shift+A Ctrl+Shift etc


Neste caso, deve-se verificar o [b:0125047acf]Shift[/b:0125047acf]:

if (ssAlt in Shift) and (Key = XX)  // ALT + XX
then
  ...


em que XX é o código ASCII da tecla desejada.

[b:0125047acf]ssAlt[/b:0125047acf] pode ser substituido por [b:0125047acf]ssShift[/b:0125047acf] (tecla Shift) ou [b:0125047acf]ssCtrl[/b:0125047acf] (tecla Ctrl).


Responder

Gostei + 0

24/08/2003

Lordskinner

[size=18:cf28092652]Ao [u:cf28092652]cebikyn[/u:cf28092652], Desculpe por tentar ajudar[/size:cf28092652]


Responder

Gostei + 0

26/08/2003

Cebikyn

Ao [u:e4d910a71a]cebikyn[/u:e4d910a71a], Desculpe por tentar ajudar


Opa, parece que fui mal compreendido, não disse que vc estava errado, muito menos que não ajudou, apenas sugeri um site, desculpem pelo mal entendido! Olhando melhor, vi que realmente [b:e4d910a71a]parece[/b:e4d910a71a] que estou te corrigindo, ou algo assim, mas eu apenas sugeri um site que [b:e4d910a71a]complementa[/b:e4d910a71a] a sua resposta, mas não substitui de maneira alguma a sua resposta, que estava muito bem elaborada e exemplificada. Mas de qualquer forma, desculpe pelo mal entendido. Vou editar a minha resposta anterior para eliminar o mal entendido.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar