gpt4 book ai didi

delphi - 暂停/中断作为键盘快捷键(Win32,*可能*特定于 Delphi)

转载 作者:行者123 更新时间:2023-12-03 15:18:51 27 4
gpt4 key购买 nike

是否无法使用键盘快捷键中的暂停/中断键?

我知道我可以响应暂停/中断键,例如

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_PAUSE then
ShowMessage('VK_PAUSE pressed');
end;

但是,我无法使用 TShortCut 属性响应 Pause/Break 键,例如在菜单项和操作列表中。对象检查器允许我输入 PauseShift + PauseCtrl + PauseAlt + PauseCtrl + Shift + Pause 等,所以很清楚识别暂停键。但是当我运行应用程序时,指定的快捷方式不会触发菜单项/操作。有已知的解决方法吗?

最佳答案

对于 D2007,一个快速的解决方法似乎是在运行时分配它;
Action1.ShortCut := VK_PAUSE;
出于某种原因,如果在设计时分配,VK_PAUSE (19) 似乎会转变为 VK_NUMLOCK (144)。

<小时/>在设计时分配快捷方式时,IDE 必须将字符串转换为快捷方式。问题是 TextToShortCut('Pause'); 返回 144 而不是 19。虽然我不确定我是否相信错误出在 Delphi;通过“暂停”,检索快捷方式会找到 menus.GetSpecialName 的路径,我认为不应该。


另一方面,虽然上述解决方法适用于“Alt”和“Shift”修饰符,但不适用于“Ctrl”修饰符。原因是,操作系统分配“Ctrl+Break”处理特殊代码:VK_CANCEL。要使用“Ctrl+Pause”作为快捷键,必须编写代码;

Action1.ShortCut := menus.Shortcut(VK_CANCEL, [ssCtrl]);

关于delphi - 暂停/中断作为键盘快捷键(Win32,*可能*特定于 Delphi),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3258210/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com