Controls.TWinControl.OnKeyDown

From Référence RAD Studio VCL
Jump to: navigation, search

Contents

Informations Delphi

De Controls.pas

	property OnKeyDown: TKeyEvent read FOnKeyDown write FOnKeyDown;


Unité : Controls

Type : événement

Visibilité : protected

Membre de : TWinControl

Informations C++

De Controls.hpp

	__property TKeyEvent OnKeyDown;


Unité : Controls

Type : propriété

Visibilité : protected

Membre de : TWinControl

Description

Se produit quand l'utilisateur appuie sur une touche alors que le contrôle détient la focalisation.


Le gestionnaire d'événement OnKeyDown permet d'effectuer un traitement spécifique quand une touche est enfoncée. Le gestionnaire OnKeyDown peut répondre aux touches du clavier, y compris les touches de fonction et les combinaisons avec les touches Maj, Alt et Ctrl ainsi qu'avec les boutons de la souris.

Remarque :  TCheckBox ne déclenche pas les événements OnKeyDown pour les touches fléchées.

Le TKeyEvent pointe sur une méthode gérant les événements du clavier.

Le paramètre Key indique la touche du clavier. Pour les touches non alphanumériques, utilisez un code de touche virtuel pour déterminer la touche enfoncée. Pour plus d'informations, voir Codes de touches virtuels.

Le paramètre Shift indique si les touches Maj, Alt or Ctrl sont combinées dans la frappe de touche.

Une application récupère les messages Windows WM_KEYDOWN de toutes les touches quand l'utilisateur appuie sur une touche. Ces messages déclenchent indirectement l'événement OnKeyDown. En définissant Key sur 0, vous empêchez tout traitement ultérieur de ce message. Mais pour les touches qui génèrent des caractères, Windows produit également le message WM_CHAR. Au moment du déclenchement de votre événement OnKeyDown, le message WM_CHAR de la touche sera déjà dans la file d'attente des messages. Comme la définition de Key sur 0 n'arrête pas sa livraison, l'événement OnKeyPress est déclenché. Vous devez définir Key sur #0 pour empêcher le contrôle d'intercepter le message WM_CHAR.

Cette méthode d'organisation du traitement des touches a des avantages. Le code ne prenant en charge que les caractères, y compris les caractères de contrôle comme #13 pour le retour chariot, #3 pour Ctrl-C et ainsi de suite, doit être placé dans l'événement OnKeyPress. Le code prenant en charge les touches qui ne génèrent pas de caractères doit être placé dans l'événement OnKeyDown.

Voir aussi

Exemples de code


Personal tools