Touche entrée [Résolu]

Messages postés
162
Date d'inscription
dimanche 19 novembre 2000
Dernière intervention
14 avril 2009
- 6 juin 2006 à 16:59 - Dernière réponse :
Messages postés
4304
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
9 mars 2018
- 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

Meilleure réponse
Messages postés
424
Date d'inscription
mardi 3 janvier 2006
Dernière intervention
26 novembre 2013
- 6 juin 2006 à 18:03
3
Merci
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 +

Merci ThWilliam 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de ThWilliam
Meilleure réponse
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Dernière intervention
5 juillet 2010
- 6 juin 2006 à 18:46
3
Merci
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 !

Merci ni69 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de ni69
Meilleure réponse
Messages postés
424
Date d'inscription
mardi 3 janvier 2006
Dernière intervention
26 novembre 2013
- 7 juin 2006 à 12:17
3
Merci
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...

Merci ThWilliam 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de ThWilliam
Meilleure réponse
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
- 7 juin 2006 à 14:12
3
Merci
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

Merci Cirec 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de Cirec
Meilleure réponse
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
- 7 juin 2006 à 14:45
3
Merci
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

Merci Cirec 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de Cirec
Meilleure réponse
Messages postés
4304
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
9 mars 2018
- 7 juin 2006 à 17:33
3
Merci
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;

Merci f0xi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de f0xi
Messages postés
162
Date d'inscription
dimanche 19 novembre 2000
Dernière intervention
14 avril 2009
- 6 juin 2006 à 19:04
0
Merci
Ok merci...

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

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


windows.VK_*
??
Commenter la réponse de flo160fr
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
- 6 juin 2006 à 23:49
0
Merci
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
Messages postés
162
Date d'inscription
dimanche 19 novembre 2000
Dernière intervention
14 avril 2009
- 7 juin 2006 à 10:39
0
Merci
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
Messages postés
162
Date d'inscription
dimanche 19 novembre 2000
Dernière intervention
14 avril 2009
- 7 juin 2006 à 10:50
0
Merci
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
Messages postés
162
Date d'inscription
dimanche 19 novembre 2000
Dernière intervention
14 avril 2009
- 7 juin 2006 à 12:40
0
Merci
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
Messages postés
162
Date d'inscription
dimanche 19 novembre 2000
Dernière intervention
14 avril 2009
- 7 juin 2006 à 13:30
0
Merci
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
Messages postés
162
Date d'inscription
dimanche 19 novembre 2000
Dernière intervention
14 avril 2009
- 7 juin 2006 à 13:30
0
Merci
et la touche 'imp écr syst"
merci
Commenter la réponse de flo160fr
Messages postés
162
Date d'inscription
dimanche 19 novembre 2000
Dernière intervention
14 avril 2009
- 7 juin 2006 à 16:45
0
Merci
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.