【问题标题】:How to detect modifier keys in delphi?如何检测delphi中的修饰键?
【发布时间】:2014-04-13 04:47:43
【问题描述】:

如何检测两个或三个组合键被按下?

例如,当我按下“Shift + Ctrl + F1”时,如何在文本框的“onKeyDown”事件中检测到它?

【问题讨论】:

  • if (Shift = [ssCtrl]) and (Key = VK_F1) then DoSomething;
  • tnx 很多,但是按 'Shift+Alt+F1' 我该怎么办?我的意思是我的应用程序如何理解在 onKeyDown 或 onKeyUp 中按下 shift 和 alt?

标签: delphi


【解决方案1】:

OnKeyDownShift 参数是一个集合。它描述了所有修饰键的状态。像这样测试多个修饰键:

if (Shift*[ssShift,ssAlt,ssCtrl]) = [ssShift,ssCtrl] then
  ....

*Shift 中挑选出三个修饰键的状态。然后测试检查 shift 和 ctrl 是否关闭,但 alt 没有关闭。

此类按键通常最好由使用动作的ShortCut 属性的动作来处理。

【讨论】:

  • tnx 很多,最好的问候。
  • .. 或 Shift = [ssShift, ssCtrl],取决于要求。
  • @sertac 我认为你必须屏蔽非修饰符
  • @rojin 也许你想看看这个meta.stackexchange.com/questions/5234/…,看看你能不能接受你的问题的答案
猜你喜欢
  • 2011-08-10
  • 1970-01-01
  • 2015-01-16
  • 1970-01-01
  • 1970-01-01
  • 2010-09-13
  • 2021-12-22
  • 2011-03-07
相关资源
最近更新 更多