我只是使用了Delphi的TAction的SecondaryShortCuts-Feature。但是快捷方式是由字符串定义的,例如“ F5”或“ Shift + F5”。现在的问题是:在我的德语Windows上,该动作无法触发,因为按键“ Shift”在德语中被称为“ Umsch”!
这是否意味着在设计时,SecondaryShortCuts-Property完全没有用,因为没有人可以创建与此相关的国际应用程序?

我可以在运行时通过将VK_SHIFT转换为正确的名称来设置密钥。我通过GetKeyNameText进行了尝试,但这没有用,因为它给出了长格式“ Umschalt”而不是“ Umsch”。有人知道获取键名缩写形式的功能吗?

最佳答案

您可以尝试以下操作:从快捷方式生成快捷方式文本:

var
  s: TShortCut;
begin
  s := ShortCut(Ord('A'), [ssShift]);
  Action1.SecondaryShortCuts.Add(ShortCutToText(s));


顺便说一下,这些值由以下常数确定。你翻译过这些吗?如果是这样,您是否需要?

SmkcShift = 'Shift+';
SmkcCtrl = 'Ctrl+';
SmkcAlt = 'Alt+';

10-02 03:19