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
IsDialog
gibtTrue
zurück, wennKeyChar < ' '
oderShift
eine der Tasten STRG, ALT oder CMD ist. Das heißt, wenn die KombinationKeyChar
undShift
eine Steuerkombination - kein druckbares Zeichen - bezeichnet. Ansonsten wirdFalse
zurückgegeben. Das Zeichen' '
hat den ASCII-Wert$20
. ASCII-Werte kleiner als$20
geben Steuerkombinationen an. - Wenn IsDialogKey im Parameter
IsDialog
True
zurü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 = 0
undKeyChar = #0
und dann wird KeyDown beendet.
- Bei
Key = vkTab
setzt KeyDown den Fokus auf das nächste Steuerelement in der "Tabulatorreihenfolge" der Steuerelemente und dann wird KeyDown beendet. - Bei
Key <> 0
oderKeyChar <> #0
ruft 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.