Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Problem mit Zuweisung von ShortCuts mit Ziffern vom Numpad


Angelika D - Mi 29.06.22 12:29
Titel: Problem mit Zuweisung von ShortCuts mit Ziffern vom Numpad
Ich möchte zur Laufzeit ShortCuts zu Actions hinzufügen.
Beispiel "Strg+Alt+7" funktioniert, unterstützt aber nur die Ziffern oberhalb der Buchstaben auf der Tastatur, nicht die Ziffern des Numpads.

"Strg+Alt+Num 7" funktioniert jedoch überhaupt nicht. Das Event kommt nicht an.

Die Anwender möchten vorrangig das Numpad benutzen. Wie kann ich das umsetzen?


Th69 - Mi 29.06.22 13:28

Hallo und :welcome:,

ist denn die Num-Taste überhaupt aktiviert (also leuchtet die Diode)? Denn ohne diese werden ja die Cursor-Funktionen benutzt.
Ich habe es gerade bei mir in einen WinForms C#-Programm erfolgreich ausprobiert.


Angelika D - Mi 29.06.22 13:46

Ja die Tasten sind aktiv und funktionieren auch im Programm. Nur nicht als ShortCuts.


Th69 - Mi 29.06.22 13:55

Dann probiere mal, es zur Laufzeit direkt zu setzen (und nicht über den Text): Shortcut text for numeric keyboard [http://www.delphigroups.info/2/48/297114.html]

Delphi-Quelltext
1:
mnuItem.ShortCut := ShortCut(VK_NUMPAD7, [ssCtrl, ssAlt]);                    

(s.a. ShortCut [https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Menus.ShortCut])


Angelika D - Mi 29.06.22 14:34

Vielen Dank. So funktioniert es.

Allerdings funktioniert ShortCut(VK_NUMPAD7, [ssCtrl, ssShift]) nicht. Hierbei führt diese Tastenkombination zum Aufruf des Tastaturlayoutwechsels bei Windows. Ich versuche jetzt nur mit Strg+Alt-Kombinationen auszukommen.

Moderiert von user profile iconTh69: Delphi-Tags hinzugefügt


Th69 - Mi 29.06.22 22:56

Globale Shortcuts (s. Keyboard shortcuts in Windows [https://support.microsoft.com/en-us/windows/keyboard-shortcuts-in-windows-dcc61a57-8ff0-cffe-9796-cb9706c75eec]) haben Vorrang vor anwendungsspezifischen Shortcuts - wobei "Ctrl+Shift" schon eine sehr unglückliche Vorbelegung von Windows ist - ich habe den Tastaturwechsel aber auch bei mir deaktiviert (dies geht mit "Einstellungen"->"Zeit und Sprache"->"Sprache"->"Tastatur"->"Tastenkombination für Eingabesprachen": "Zwischen Eingabesprachen" wählen u. "Tastenkombination ändern..." aufrufen - puh, endlich geschafft ;- ).


Angelika D - Do 30.06.22 08:05

Vielen vielen Dank für die Superschnelle Hilfe. Das hat mir wirklich sehr geholfen.