我刚刚使用了Delphi的TAction的SecondaryShortCuts特性。但是快捷键是由字符串定义的,比如"F5“或"Shift+F5”。现在的问题是:在我的德语Windows上,该操作无法触发,因为键"Shift“在德语中称为"Umsch”!这是否意味着SecondaryShortCuts-属性在设计时完全无用,因为没有人可以创建在国际上使用它的应用程序?
我可以在运行时通过将VK_SHIFT转换为正确的名称来设置密钥。我通过GetKeyNameText尝试了一下,但这不起作用,因为它给出了长形式的"Umschalt“而不是"Umsch”。有人知道获取密钥名称缩写的函数吗?
发布于 2012-10-30 20:09:31
您可以尝试这样做:从快捷方式生成快捷方式文本:
var
s: TShortCut;
begin
s := ShortCut(Ord('A'), [ssShift]);
Action1.SecondaryShortCuts.Add(ShortCutToText(s));顺便说一句,这些值由以下常量决定。你翻译过那些吗?如果是这样,你需要这样做吗?:
SmkcShift = 'Shift+';
SmkcCtrl = 'Ctrl+';
SmkcAlt = 'Alt+';https://stackoverflow.com/questions/13138573
复制相似问题