TeCLaS ascII
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
Curtidas 0
Respostas
Lordskinner
24/08/2003
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;
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;
GOSTEI 0
Cebikyn
24/08/2003
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´.
------------
OBS: Editei esta msg por ter causado um terrível mal entendido...
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...
GOSTEI 0
Joni
24/08/2003
só uma perguntinha, como se eh o codigo com duas teclas tipo Shift+A
Ctrl+Shift etc
Ctrl+Shift etc
GOSTEI 0
Cebikyn
24/08/2003
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).
GOSTEI 0
Lordskinner
24/08/2003
[size=18:cf28092652]Ao [u:cf28092652]cebikyn[/u:cf28092652], Desculpe por tentar ajudar[/size:cf28092652]
GOSTEI 0
Cebikyn
24/08/2003
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.
GOSTEI 0