4

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

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

4

1 回答 1

5

你可以试试这个:从快捷方式生成快捷方式文本:

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

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

SmkcShift = 'Shift+';
SmkcCtrl = 'Ctrl+';
SmkcAlt = 'Alt+';
于 2012-10-30T12:09:30.723 回答