Key abfragen ohne OnKeyDown/Up/Press Events

Sieben
Beiträge: 202
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

Beitrag von Sieben »

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.

TBug
Beiträge: 177
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

Beitrag von TBug »

Aloxen hat geschrieben:
Sa 14. Jan 2023, 23:24
Geht FormKeyUp dann überhaupt?
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

Aloxen
Beiträge: 58
Registriert: Di 31. Mai 2022, 17:40

Re: Key abfragen ohne OnKeyDown/Up/Press Events

Beitrag von Aloxen »

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.

Aloxen
Beiträge: 58
Registriert: Di 31. Mai 2022, 17:40

Re: Key abfragen ohne OnKeyDown/Up/Press Events

Beitrag von Aloxen »

Die Property KeyPreview der Form auf true setzen.
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.
Vielen Dank

Antworten