Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#25

AW: Ctrl-# funktioniert nicht (immer)

  Alt 16. Aug 2020, 13:03
Danke!

Wir konnten mit Hilfe eines engagierten Embarcadero-Mitarbeiters bisher Folgendes feststellen:
  1. Der Befehl lässt sich bei US-Layout nur mit Ctrl+/ ausführen. Das wird dort auch im Menü als Shortcut angezeigt.
  2. Das Verhalten unterscheidet sich dort: Die Tastenkombination rückt eine Zeile weiter, der Menübefehl nicht.
  3. Mit German-Layout wird Strg+# als ShortCut im Menü angezeigt.
  4. Die Funktion lässt sowohl bei Tastendruck als auch beim Menü-Befehl die Zeile unverändert.
  5. Auch im German-Layout funktioniert Strg+/ (NumPad), dies auch wie bei US mit Zeilenänderung.
  6. Die Taste / bzw. ? im US-Layout entspricht dem virtuellen Key Code VK_OEM_2 .
  7. Im German-Layout entspricht VK_OEM_2 der Taste # bzw. ' .
  8. Die Taste / (DIV) im NumPad entspricht dem Code VK_DIVIDE , sowohl im US- als auch im German-Layout.
  9. Je nach in der IDE ausgewählter Tastaturbelegung wird CTRL+/ und CTRL+DIV dort bereits abgefangen.
  10. Dadurch wird im US-Layout der Menü-ShortCut nie erreicht und die haben somit auch nicht das Problem im Titel dieses Threads.

Es gibt also eigentlich zwei Ursachen:

a) Irgendetwas blockiert den Strg+# ShortCut des Menüs - vermutlich ein Disablen der Action, was beim Anzeigen des Menüs wieder neutralisiert wird.
b) Die ausgewählte Tastaturbelegung registriert nicht CTRL+VK_OEM_2 , sondern versucht das über den Character / , was im German-Layout aber nicht klappt.

Würde die IDE also bei der Tastaturbelegung nicht ein ShortCut(Ord('/'), [ssCtrl]) verwenden, sondern ein ShortCut(VK_OEM_2, [ssCtrl]) wäre b) schon mal gelöst und damit das Problem auch nicht mehr existent.

Vermutlich ist a) aber auch verantwortlich für eine Reihe anderer Probleme.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat