Key abfragen ohne OnKeyDown/Up/Press Events
-
- Beiträge: 289
- Registriert: Mo 24. Aug 2020, 14:16
- OS, Lazarus, FPC: Ubuntu Xenial 32, Lazarus 2.2.0, FPC 3.2.2
- CPU-Target: i386
Re: Key abfragen ohne OnKeyDown/Up/Press Events
Ich habe diesen Thread bislang nicht verfolgt, wundere mich aber, dass es offenbar noch keinen Hinweis auf TCustomForm.KeyPreview gegeben hat. Ändert es etwas, wenn du das auf True setzt? Ansonsten gehen die Keys tatsächlich immer nur direkt an das Control, das gerade den Fokus hat und die Key-Events des Forms werden nicht ausgelöst.
-
- Beiträge: 178
- Registriert: Mi 2. Sep 2015, 11:09
- OS, Lazarus, FPC: Lazaurus 2.2.4 FPC 3.2.2
- CPU-Target: Windows 32/64bit
Re: Key abfragen ohne OnKeyDown/Up/Press Events
Die Property KeyPreview der Form auf true setzen.
Allows the form to intercept keystrokes in child controls.
KeyPreview is a Boolean property which controls whether the form can intercept key strokes from child controls.
When KeyPreview is set to True, the form is allowed to receive KeyDown, KeyUp and KeyPress events before they are received / applied to the ActiveControl in the form. The default value for the property is False.
KeyPreview is used in the implementation of key handling methods in TWinControl. KeyPreview is often enabled for modal dialogs to allow the parent form to handle specific interactions with the user.
Package
LCLBase
Re: Key abfragen ohne OnKeyDown/Up/Press Events
Falls es noch jemanden interessiert:
Mein Fehler war nicht der Loop oder Processmessages, FormKeyUp funktioniert auch, wenn man mit der Maus über anderen Objekten ist. FormKeyUp scheint jedoch nicht mehr zu funktionieren, sobald ein TabStop auf einem Objekt liegt(Auch wenn dieser invisible:=false ist). In meinem Fall hatte ich zum experimentieren mit Menus einen Button auf dem Form platziert und obwohl der ogc Context alles verdeckt hat, hatte der Button trotzdem noch den TabStop. Deaktiviert man den TabStop funktioniert es wieder.
Mein Fehler war nicht der Loop oder Processmessages, FormKeyUp funktioniert auch, wenn man mit der Maus über anderen Objekten ist. FormKeyUp scheint jedoch nicht mehr zu funktionieren, sobald ein TabStop auf einem Objekt liegt(Auch wenn dieser invisible:=false ist). In meinem Fall hatte ich zum experimentieren mit Menus einen Button auf dem Form platziert und obwohl der ogc Context alles verdeckt hat, hatte der Button trotzdem noch den TabStop. Deaktiviert man den TabStop funktioniert es wieder.
Re: Key abfragen ohne OnKeyDown/Up/Press Events
Vielen Dank das wars. Nachdem ich die Tabstops von den Buttons entfernt hatte ging es zwar mit dem Anzeigen, sobald man jedoch auf einen geklickt hat, war eben der Fokus jetzt auf dem Button und nicht mehr auf dem Form. KeyPreview schreitet da ein.Die Property KeyPreview der Form auf true setzen.
Vielen Dank