Tastatuereignis für Basic-Dialog abfangen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Stephan
********
Beiträge: 10550
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Tastatuereignis für Basic-Dialog abfangen

Beitrag von Stephan » So, 17.06.2018 12:44

Hallo,

ich habe einen Basic-Dialog mit einigen Textfeldern, Labelfeldern und Schaltflächen. Ich möchte wenn der Dialog sichtbar ist auf den Tastendruck auf die Taste "F5" reagieren, egal welches der Steuerelemente auf dem Dialog gerade den Fokus hat.

Gibt es dafür eine Lösung?
(natürlich ist mir klar das ich das Ereignis an alle einzelnen Steuerelemente binden könnte, was nur recht aufwändig einzurichten ist)

Bei mir funktioniert weder die Ereigniszuweisung für das Ereignis "Taste gedrückt" des Dialogs noch das explizite Registrieren eines Key-Listeners für den Dialog, weil Beides voraussetzt das der Dialog zum Zeitpunkt des Drückens von "F5" den Fokus haben muss, jedoch hat der Dialog ja eigentlich nie den Fokus weil der immer auf irgendeinem Textfeld (ggf. auch auf einer Schaltfläche) ist.



Gruß
Stephan

Benutzeravatar
Faol
***
Beiträge: 76
Registriert: Di, 26.01.2016 21:18

Re: Tastatuereignis für Basic-Dialog abfangen

Beitrag von Faol » Di, 19.06.2018 12:16

Hallo Stephan,

in der Beispieldatei befindet sich ein Makro und ein Dialog,
welcher per Keylistener auf Taste F5 reagiert.
Dialog mit KeyListener F5.odt
(12.94 KiB) 45-mal heruntergeladen
Ich hoffe es entspricht Deinem Wunsch.

Gruß
Faol
⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒⇒
Win.10 Prof. (x64) • AOO 4.1.5
⇐⇐⇐⇐⇐⇐⇐⇐⇐⇐⇐⇐⇐⇐⇐⇐⇐⇐⇐

Stephan
********
Beiträge: 10550
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Tastatuereignis für Basic-Dialog abfangen

Beitrag von Stephan » Di, 26.06.2018 21:46

Leider entspricht das nicht meinem Wunsch, denn es funktioniert ja nur wenn der Listener für alle vorhandenen Felder registriert würde, was ich ausdrücklich vermeiden wollte.
Das Dein Beispiel trotzdem funktioniert ist doch nur deshalb so weil nur ein Feld vorhanden ist.


Gruß
Stephan

Antworten