NUM 3变长尾词,THOTKey设置VK_NEXT,Delphi编程有何玄机?
- 内容介绍
- 文章标签
- 相关推荐
本文共计281个文字,预计阅读时间需要2分钟。
一个简单的测试示例:按下Alt+Text键,执行TForm3.btnCopyClick过程;在第一个HotKey中按下PgDn键,显示Page Down。
一个非常简单的测试用例:alt text 17slon.com/krama/hotkey.png
procedure TForm3.btnCopyClick(Sender: TObject); begin HotKey2.HotKey := HotKey1.HotKey; end;
在第一个THOTKey中按“PgDn”键,显示“Page Down”.点击==>按钮和第二个THOTKey将显示“Num 3”.
如果按下修改器(Shift等),也会发生类似的事情.该行为也适用于PgUp,Home,End和Ins.
据我所见,这发生在Windows内部:(正确的虚拟代码(34)沿着HKM_SETHOTKEY消息发送.
有人知道一个很好的解决方法吗?目前,我得到的唯一想法是发送伪造的WM_KEYDOWN / WM_KEYUP消息,参数设置为VK_NEXT和MapVirtualKey(VK_NEXT),但这有点难看……
热键只是简单的THOTKeys:
object HotKey1: THotKey Left = 12 Top = 14 Width = 121 Height = 19 InvalidKeys = [] Modifiers = [] TabOrder = 0 end object HotKey2: THotKey Left = 194 Top = 14 Width = 121 Height = 19 InvalidKeys = [] Modifiers = [] TabOrder = 1 end object btnCopy: TButton Left = 143 Top = 14 Width = 42 Height = 19 Caption = '==>' TabOrder = 2 OnClick = btnCopyClick end hkExt修饰符很重要,也需要复制:
HotKey2.HotKey := HotKey1.HotKey; HotKey2.Modifiers := HotKey1.Modifiers;
本文共计281个文字,预计阅读时间需要2分钟。
一个简单的测试示例:按下Alt+Text键,执行TForm3.btnCopyClick过程;在第一个HotKey中按下PgDn键,显示Page Down。
一个非常简单的测试用例:alt text 17slon.com/krama/hotkey.png
procedure TForm3.btnCopyClick(Sender: TObject); begin HotKey2.HotKey := HotKey1.HotKey; end;
在第一个THOTKey中按“PgDn”键,显示“Page Down”.点击==>按钮和第二个THOTKey将显示“Num 3”.
如果按下修改器(Shift等),也会发生类似的事情.该行为也适用于PgUp,Home,End和Ins.
据我所见,这发生在Windows内部:(正确的虚拟代码(34)沿着HKM_SETHOTKEY消息发送.
有人知道一个很好的解决方法吗?目前,我得到的唯一想法是发送伪造的WM_KEYDOWN / WM_KEYUP消息,参数设置为VK_NEXT和MapVirtualKey(VK_NEXT),但这有点难看……
热键只是简单的THOTKeys:
object HotKey1: THotKey Left = 12 Top = 14 Width = 121 Height = 19 InvalidKeys = [] Modifiers = [] TabOrder = 0 end object HotKey2: THotKey Left = 194 Top = 14 Width = 121 Height = 19 InvalidKeys = [] Modifiers = [] TabOrder = 1 end object btnCopy: TButton Left = 143 Top = 14 Width = 42 Height = 19 Caption = '==>' TabOrder = 2 OnClick = btnCopyClick end hkExt修饰符很重要,也需要复制:
HotKey2.HotKey := HotKey1.HotKey; HotKey2.Modifiers := HotKey1.Modifiers;

