FMX.Forms.TCommonCustomForm.KeyDown
Delphi
procedure KeyDown(var Key: Word; var KeyChar: System.WideChar; Shift: TShiftState); virtual;
C++
virtual void __fastcall KeyDown(System::Word &Key, System::WideChar &KeyChar, System::Classes::TShiftState Shift);
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
procedure function |
public | FMX.Forms.pas FMX.Forms.hpp |
FMX.Forms | TCommonCustomForm |
Description
Est exécutée lorsqu'une touche est enfoncée alors que cette fiche détient la focalisation d'entrée.
Dans le framework FireMonkey, KeyDown est la méthode principale permettant de traiter l'appui de touches dans les fiches. KeyDown est exécutée chaque fois qu'une touche est enfoncée, lorsque cette fiche détient la focalisation d'entrée. KeyDown est utilisée en interne : pour activer des menus et des actions et pour que les requêtes TAB bouclent sur les contrôles enfant de cette fiche. Les éditeurs peuvent utiliser KeyDown pour ajouter des symboles dans un texte en cours d'édition.
Vous pouvez redéfinir KeyDown pour ajouter un traitement de touche supplémentaire dans les sous-classes.
KeyDown comprend les paramètres suivants :
Paramètres | Description |
---|---|
|
Représente le code de balayage de la touche du clavier enfoncée ou L'unité UITypes définit les touches virtuelles fournissant les constantes symboliques des codes de balayage des touches du clavier. Les codes de balayage physique de la même touche peuvent différer selon les plates-formes (Windows ou iOS). Sous le framework FireMonkey, les unités spécifiques à la plate-forme (par exemple FMX.Platform.Mac.pas) doivent traduire les codes de balayage natifs (iOS pour l'unité FMX.Platform.Mac.pas) dans les codes Windows correspondants définis dans l'unité UITypes. En conséquence, les valeurs du code de balayage de
Les touches des chiffres et des lettres -- indépendamment de la langue d'entrée sélectionnée et de la casse des touches alphabétiques -- ont des valeurs correspondant aux symboles ' Si Les combinaisons de paramètres |
|
Représente le caractère enfoncé (chiffre) ou Si une combinaison de touches enfoncée peut être gérée comme un caractère ou un chiffre imprimable, alors |
|
Détermine l'état des touches CTRL, ALT, MAJ et CMD (seulement pour Mac) au moment où vous appuyez sur la touche. |
KeyDown traite les touches enfoncées selon l'algorithme suivant :
- KeyDown appelle d'abord IsDialogKey avec les mêmes paramètres que ceux spécifiés pour KeyDown. Le paramètre
IsDialog
renvoieTrue
siKeyChar < ' '
ou siShift
est l'une des touches CTRL, ALT ou CMD. C'est-à-dire si la combinaisonKeyChar
etShift
identifie une combinaison de contrôle, et non un caractère imprimable. Sinon, elle renvoieFalse
. Le caractère' '
a la valeur ASCII$20
. Les valeurs ASCII inférieures à$20
identifient les combinaisons de contrôle. - Si IsDialogKey renvoie
True
dans le paramètreIsDialog
, la combinaison de touches enfoncée est transmise, dans l'ordre suivant, à tous les contrôles enfant, menus et listes d'actions de la fiche jusqu'à ce que cette combinaison de touches soit traitée :- Au contrôle détenant la focalisation.
- Au menu contextuel du contrôle détenant la focalisation.
- A tous les autres menus et menus contextuels de la fiche.
- A tous les autres contrôles (ne détenant pas la focalisation) de la fiche.
- Aux listes d'actions de la fiche et à tous les composants enfant auxquels sont assignés des éléments de listes d'actions.
- Aux menus et aux listes d'actions de toutes les autres fiches.
- Si la combinaison de touches enfoncée a été traitée lors d'une des étapes précédentes, alors KeyDown définit
Key = 0
etKeyChar = #0
, et se termine.
- Si
Key = vkTab
, alors KeyDown déplace la focalisation sur le contrôle suivant dans "l'ordre de tabulation" des contrôles et se termine. - Si
Key <> 0
ouKeyChar <> #0
, alors KeyDown appelle la méthode KeyDown du contrôle détenant la focalisation, puis appelle le gestionnaire d'événement OnKeyDown de la fiche, si un tel gestionnaire est assigné. - Dans le bloc finally, KeyDown stocke la date et l'heure en cours dans les propriétés LastKeyPress et LastUserActive de l'application en cours.