Touche entrée [Résolu]

flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 6 juin 2006 à 16:59 - Dernière réponse : f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention
- 7 juin 2006 à 17:33
Bonjour,

Je voudrai connaitre le numéro du caractere qui correspond à la touche <Entrée> (sous la forme $xx) et si possible un moyen de connaitres les caracteres des autres touches spéciales...

Merci
Afficher la suite 

Votre réponse

16 réponses

ThWilliam 424 Messages postés mardi 3 janvier 2006Date d'inscription 26 novembre 2013 Dernière intervention - 6 juin 2006 à 18:03
+3
Utile
Salut,

Enter = 13 
Pour connaître les autres caractères, tu mets sur une form un label, tu crées un évenement Form1.OnKeyDown  : Label1.Caption:= IntToStr(Key);
et tu frappes...
Pour avoir la valeur en hexa tu fais : Label1.Caption:= IntToHex(Key,8).

A +
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ThWilliam
ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention - 6 juin 2006 à 18:46
+3
Utile
ou sinon, plus simple, vas sur ce site (à mettre dans tes favoris, ça peut toujours être utile !) :
http://www.commentcamarche.net/base/ascii.php3

@+
Nico {www.ni69.info}


N'oubliez pas de cliquer sur Réponse Acceptée lorsque la réponse vous convient !
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ni69
ThWilliam 424 Messages postés mardi 3 janvier 2006Date d'inscription 26 novembre 2013 Dernière intervention - 7 juin 2006 à 12:17
+3
Utile
Ctrl+H : dans un composant d'édition (TEdit...) : ça marche.
F1..F2, fin, tab, insert : pas de problèmes pour retrouver leur valeur.
Pour savoir si les touches Ctrl, Shift et Alt ont été enfoncées : dans un événement OnKeyDown c'est très facile : 
      if (ssCtrl in Shift) and (key = VK_F5)  then...  //tu récupères ainsi un Ctrl + F5
sinon, tu dois jongler avec la réception d'un message clavier et employer des fonctions Windows comme GetKeyState...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ThWilliam
Cirec 4221 Messages postés vendredi 23 juillet 2004Date d'inscription 11 mai 2018 Dernière intervention - 7 juin 2006 à 14:12
+3
Utile
Salut,

Essaye ce bout de code:

type
  TForm1 = class (TForm)
    Label1: TLabel;
  private
    { Déclarations privées }
    Procedure WMKey(Var Msg : TWMKeyDown);Message  WM_KEYDown;
  public
    { Déclarations publiques }
  end;



var

  Form1: TForm1;



implementation




{$R *.dfm}





{ TForm1 }




procedure TForm1.WMKey(var Msg: TWMKeyDown);
Var   KeyName: Array[0..255] of char;
begin
   GetKeyNameText(Msg.KeyData , KeyName, SizeOf(KeyName));
   Label1.Caption : = Format('Touche : %s Code : %d', [KeyName, Msg.CharCode]);
end;



end.














@+
Cirec
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Cirec
Cirec 4221 Messages postés vendredi 23 juillet 2004Date d'inscription 11 mai 2018 Dernière intervention - 7 juin 2006 à 14:45
+3
Utile
Et pour plus d'informations sur les touches pressées il faut utiliser un KeyboardHook en local et la toutes les touches sont détectées avec en plus d'autres données comme :
Touche Standard où Étendue
Alt pressé où non
Touche pressée, relâchée, maintenue
















@+
Cirec
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Cirec
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 7 juin 2006 à 17:33
+3
Utile
petite fonction magique sans hook ... avec detection Caps, Scroll, Pause, Num lock ect...
correction et distinction des rshift, lshift, rctrl, lctrl, ralt, alt-gr, touches de fonctions, bouttons de souris ect...

a utiliser comme suis par exemple  :

procedure TForm1.KeyPress(Sender : TObject; Key : char);
var BSKeys : TByteSet;
begin
  KeyboardState(BSKeys);
  if VK_???in BSKeys then windows.beep(440,5);
     // si BSKeys contient la touche
VK_??? on fait un beep







  if [VK_??,VK_??,VK_??]<= BSKeys then


windows.beep(880,5);





     // si BSKeys contient l'ensemble de touches


[VK_??,VK_??,VK_??] on fait un beep







  if


[VK_??,VK_??,VK_??]
= BSKeys then

windows.beep(1760,5);




     // si BSKeys ne contient que les touches

[VK_??,VK_??,VK_??] on fait un beep




end;

{ ----------------------- }

type
  TByteSet = Set of byte;

procedure KeyboardState(var KeysSet :  TByteSet);
var K : byte;
begin
  // reset Keys set
 
KeysSet
:= [];

  { Get persistent keys }
  // caps lock
  if GetKeyState(144) = 1 then
KeysSet
:=
KeysSet
+ [144];
  // scroll lock
  if GetKeyState(145) = 1 then
KeysSet
:=
KeysSet
+ [145];
  // Num lock
  if GetKeyState(20)  = 1 then
KeysSet
:=
KeysSet
+ [20];
  // pause
  if GetKeyState(19)  = 1 then
KeysSet
:=
KeysSet
+ [19];

  { Get pushed keys }
  for K := 0 to 255 do
      if windows.GetAsyncKeyState(K) < 0 then begin
        
KeysSet
:=
KeysSet
+ [K];
         case K of
           // correction of Ctrl, Alt, Shift
           17,16,18 :
KeysSet
:=
KeysSet
- [K];
           // correction of AltGr
           165      :
KeysSet
:=
KeysSet

- [162];
         end;
      end;
end;
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de f0xi
flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 6 juin 2006 à 19:04
0
Utile
Ok merci...

(13 = $D)
Commenter la réponse de flo160fr
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 6 juin 2006 à 20:58
0
Utile
windows.VK_*

et tu les aurat toutes.
Commenter la réponse de f0xi
flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 6 juin 2006 à 21:35
0
Utile
ma question va peut etre semblé bete, mai c'est quoi


windows.VK_*
??
Commenter la réponse de flo160fr
Cirec 4221 Messages postés vendredi 23 juillet 2004Date d'inscription 11 mai 2018 Dernière intervention - 6 juin 2006 à 23:49
0
Utile
Salut,
Windows.VK_*  veut dire

Dans l'unité Windows son déclarés sous formes de Constantes :

  {$EXTERNALSYM VK_RETURN}
  VK_RETURN = 13;
  {$EXTERNALSYM VK_SHIFT}
  VK_SHIFT = $10;
  {$EXTERNALSYM VK_CONTROL}
  VK_CONTROL = 17;

etc.

@+
Cirec
Commenter la réponse de Cirec
flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 7 juin 2006 à 10:39
0
Utile
justement, coment on fait pour savoir si les touche ctrl,  shift,  alt,  alt gr,  suppr,  F1..F2,  fin,  tab,  insert,  ->,  <-,... ont été appuyés ? parcque j'ai pas réussi a récupéré de caractères pour elles...
Commenter la réponse de flo160fr
flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 7 juin 2006 à 10:50
0
Utile
et aussi, je voudrai savoir pourquoi quand je fait ctrl+h c'est le meme caractere que retours arrière, mais il n'efface rien,
et ctrl+p donne $10 alors que si 'appuye sur shift il se passe rien...

(désolé de poser autant de question ^^')
Commenter la réponse de flo160fr
flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 7 juin 2006 à 12:40
0
Utile
Je vien de comprendre d'ou venai mon problème de capture de touche...
Les touches comme F5, Ctrl, .... &co ne son pas capturer avec l'événement on keyPress mais que avec  KeyDown ou KeyUp...

Merci pour tout à tous
Commenter la réponse de flo160fr
flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 7 juin 2006 à 13:30
0
Utile
Encore une dernière question (et apres c'est fini promis)
j'arriva pas a capturer l'appuie sur la touche "Tabulation"
et je voudrai savoir comment on fait pour diférencier ctrl gauche/droit       alt gauche/droit        entrée pav.num et entrée normal...
Commenter la réponse de flo160fr
flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 7 juin 2006 à 13:30
0
Utile
et la touche 'imp écr syst"
merci
Commenter la réponse de flo160fr
flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 7 juin 2006 à 16:45
0
Utile
Bon pour les autres pommés comme moi,  j'ai fait cette petite source :
http://www.delphifr.com/codes/RECUPERE-TOUCHES-TAPES-CLAVIER_38004.aspx
Commenter la réponse de flo160fr

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.