Vcl.Controls.TWinControl.OnKeyPress
Delphi
property OnKeyPress: TKeyPressEvent read FOnKeyPress write FOnKeyPress;
C++
__property TKeyPressEvent OnKeyPress = {read=FOnKeyPress, write=FOnKeyPress};
Inhaltsverzeichnis
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
event | protected | Vcl.Controls.pas Vcl.Controls.hpp |
Vcl.Controls | TWinControl |
Beschreibung
Tritt auf, wenn eine Taste gedrückt wird.
Verwenden Sie die Ereignisbehandlungsroutine für OnKeyPress, um eine Aktion als Reaktion auf den Druck einer einzelnen Taste auszuführen.
Der Parameter Key in der Ereignisbehandlungsroutine für OnKeyPress hat den Typ Char. Deshalb registriert das OnKeyPress-Ereignis das ASCII-Zeichen der gedrückten Taste. Entspricht den Tasten keiner ASCII-Char-Wert (beispielsweise UMSCHALT oder F1), wird kein OnKeyPress-Ereignis generiert. Tastenkombinationen (beispielsweise UMSCHALT+A) generieren nur ein OnKeyPress-Ereignis (in diesem Beispiel generiert UMSCHALT+A den Wert "A" für Key, sofern die Feststelltaste nicht aktiviert ist). Verwenden Sie die Ereignisbehandlungsroutine für OnKeyDown oder OnKeyUp, um auf Nicht-ASCII-Tasten oder -Tastenkombinationen zu antworten.
Eine Anwendung erhält für alle Tasten, die vom Anwender gedrückt werden, Windows-WM_KEYDOWN-Botschaften. Diese Botschaften lösen das OnKeyDown-Ereignis indirekt aus. Wenn Sie den Parameter Key auf #0 setzen, wird die weitere Verarbeitung dieser Botschaft verhindert. Für Tasten, die Zeichen erzeugen, generiert Windows auch WM_CHAR-Botschaften. Zum Zeitpunkt, wenn Ihr OnKeyDown-Ereignis ausgelöst wird, befindet sich die WM_CHAR-Botschaft für die Taste bereits in der Botschaftswarteschlange. Das Setzen von Key auf 0 stoppt die Botschaft nicht, daher wird das OnKeyPress-Ereignis ausgelöst. Wenn Sie Key auf #0 setzen, wird OnKeyPress nur von den Tasten, die Zeichen haben, ausgelöst. Für Tasten die Zeichen repräsentieren, wird OnKeyPress immer noch ausgelöst.
Diese Art des Organisierens von Tastenverarbeitungen ist vorteilhaft. Quelltext, der sich nur mit Zeichen befasst (einschließlich Zeichen wie z.B. #13 für Wagenrücklaufzeichen, #3 für STRG-C usw.), soll in das OnKeyPress-Ereignis aufgenommen werden. Quelltext, der sich mit Tasten befasst, die keine Zeichen erzeugen, soll in das OnKeyDown-Ereignis aufgenommen werden.
OnKeyPress ist eine Ereignisbehandlungsroutine des Typs Vcl.Controls.TKeyPressEvent.
Siehe auch
Codebeispiele