Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.158 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

TTouchKeyboard im Kampf mit echten Tastaturen

  Alt 4. Jul 2017, 19:27
Die Windows-Bildschirmtastatur bekommt es mit wenn man auf einer echten Hardware-Tastatur Shift oder Capslock drückt. Das TTouchKeyboard in der VCL leider nicht. So kann es passieren dass man auf einer echten (oder virtuellen) Tastatur Capslock aktiviert und sich fortan wundert warum man in einer VCL-Anwendung auf dem TTouchkeyboard die Taste "4" drückt und ein "$" rauskommt.

Gibt es eine einfache Lösung hierfür? Das TTouchKeyboard bekommt z.B. den Wechsel des Tastaturlayouts (andere Sprache) völlig souverän mit und ändert sich, richtig cool. Ich kann diesen Neuaufbau forcieren indem ich der Tastatur eine CM_INPUTLANGCHANGE-Nachricht sende: TouchKeyboard1.Perform(CM_INPUTLANGCHANGE, WPARAM(0), LPARAM(0)); Meine Frage wäre: Wann?
  1. Mich mittels globalem Keyboard-Hook einklemmen und das jedes mal tun wenn jemand Shift oder Capslock drückt
  2. In irgendeinem KeyDown-Event auf jedem Formular/Frame das ein TTouchKeyboard hat
  3. Eine andere, elegante Möglichkeit
  Mit Zitat antworten Zitat