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);
Eigenschaften
| Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet | 
|---|---|---|---|---|
| procedure function | public | FMX.Forms.pas FMX.Forms.hpp | FMX.Forms | TCommonCustomForm | 
Beschreibung
Wird beim Drücken einer Taste ausgeführt, während dieses Formular den Eingabefokus hat.
Im FireMonkey-Framework ist KeyDown die Hauptmethode zum Verarbeiten von Tasten in Formularen. KeyDown wird immer beim Drücken einer Taste ausgeführt, wenn dieses Formular den Eingabefokus hat. KeyDown wird intern zum Aktivieren der Menüs und Aktionen und zum Behandeln der TAB-Anforderungen verwendet, um die untergeordneten Steuerelemente dieses Formulars zu durchlaufen. Editoren können KeyDown verwenden, um einem bearbeiteten Text Symbole hinzufügen.
KeyDown kann überschrieben werden, um eine weitere Behandlung für Tasten in Unterklassen bereitzustellen.
Für KeyDown sind die folgenden Parameter verfügbar:
| Parameter | Beschreibung | 
|---|---|
| 
 | Ist der Scancode der gedrückten Tastaturtaste oder  Die Unit UITypes definiert virtuelle Tasten und stellt symbolische Konstanten für Scancodes der Tastaturtasten bereit. Physische Scancodes derselben Taste können auf verschiedenen Plattformen (Windows oder iOS) unterschiedlich sein. Im FireMonkey-Framework sollten plattformspezifische Units (iOS für die Unit FMX.Platform.Mac.pas) native Mac-Scancodes in die entsprechenden in der Unit UITypes definierten Windows-Codes übersetzen. Deshalb werden die Scancode-Werte von  
 Tasten mit Ziffern und Buchstaben – unabhängig von der ausgewählten Eingabesprache und der Groß-/Kleinschreibung der alphabetischen Tasten – enthalten Werte, die den " Wenn  Kombinationen der Parameter  | 
| 
 | Ist das gedrückte Zeichen (Ziffer) oder  Wenn eine gedrückte Tastenkombination als druckbares Zeichen oder Ziffer behandelt werden kann, ist  | 
| 
 | Gibt den Status der Tasten STRG, ALT, UMSCHALT und CMD (nur Mac) an, wenn Sie eine beliebige Taste drücken. | 
KeyDown verarbeitet gedrückte Tasten entsprechend dem folgenden Algorithmus:
- KeyDown ruft zuerst IsDialogKey mit den für KeyDown angegebenen Parametern auf. Der Parameter IsDialoggibtTruezurück, wennKeyChar < ' 'oderShifteine der Tasten STRG, ALT oder CMD ist. Das heißt, wenn die KombinationKeyCharundShifteine Steuerkombination - kein druckbares Zeichen - bezeichnet. Ansonsten wirdFalsezurückgegeben. Das Zeichen' 'hat den ASCII-Wert$20. ASCII-Werte kleiner als$20geben Steuerkombinationen an.
- Wenn IsDialogKey im Parameter IsDialogTruezurückgibt, wird die gedrückte Tastenkombination an alle untergeordneten Steuerelemente, Menüs und Aktionslisten im Formular in der folgenden Reihenfolge übergeben, bis diese Tastenkombination verarbeitet wurde:- An das Steuerelement, das den Fokus hat.
- An das Kontextmenü des Steuerelements, das den Fokus hat.
- An alle anderen Menüs und Kontextmenüs im Formular.
- An alle anderen Steuerelemente (ohne Fokus) im Formular.
- An Aktionslisten im Formular und in allen untergeordneten Komponenten mit zugewiesenen Aktionslisten-Elementen.
- An Menüs und Aktionslisten in allen anderen Formularen.
- Wenn die gedrückte Tastenkombination in vorherigen Schritten verarbeitet wurde, setzt KeyDown Key = 0undKeyChar = #0und dann wird KeyDown beendet.
 
- Bei Key = vkTabsetzt KeyDown den Fokus auf das nächste Steuerelement in der "Tabulatorreihenfolge" der Steuerelemente und dann wird KeyDown beendet.
- Bei Key <> 0oderKeyChar <> #0ruft KeyDown die Methode KeyDown des Steuerelements mit dem Fokus und dann die Ereignisbehandlungsroutine OnKeyDown des Formulars auf, sofern eine zugewiesen ist.
- Im finally-Abschnitt speichert KeyDown das aktuelle Datum und die aktuelle Uhrzeit in den Eigenschaften LastKeyPress und LastUserActive der aktuellen Anwendung.