Delphi 如何修改ShortcutToText函数以返回不同的numpad键结果?

Delphi 如何修改ShortcutToText函数以返回不同的numpad键结果?,delphi,delphi-7,Delphi,Delphi 7,函数(在Delphi7中)返回与Ctrl+Numpad 1相同的快捷键结果,如Ctrl+1 如何修改此函数以返回numpad键的不同结果?numpad数字键的虚拟键代码为VK\u NUMPAD0。。VK_NUMPAD9如MSDN中所述: 序数值为$60$69。VCL.菜单功能ShortcutToText不区分$30$39(正常数字键)和numpad数字键 编写这样的函数应该很简单 @TLama已经向您展示了如何改变这一点: $60..$69:Name:=Chr(WordRec(快捷方式).Lo

函数(在Delphi7中)返回与Ctrl+Numpad 1相同的快捷键结果,如Ctrl+1


如何修改此函数以返回numpad键的不同结果?

numpad数字键的虚拟键代码为
VK\u NUMPAD0。。VK_NUMPAD9
如MSDN中所述:

序数值为
$60$69
VCL.菜单
功能
ShortcutToText
不区分
$30$39
(正常数字键)和numpad数字键

编写这样的函数应该很简单

@TLama已经向您展示了如何改变这一点:

$60..$69:Name:=Chr(WordRec(快捷方式).Lo-$60+Ord('0')

为此:


$60..$69:Name:='Num'+Chr(WordRec(快捷方式).Lo-$60+Ord('0')

numpad数字键的虚拟键代码为
VK\u NUMPAD0。。VK_NUMPAD9
如MSDN中所述:

序数值为
$60$69
VCL.菜单
功能
ShortcutToText
不区分
$30$39
(正常数字键)和numpad数字键

编写这样的函数应该很简单

@TLama已经向您展示了如何改变这一点:

$60..$69:Name:=Chr(WordRec(快捷方式).Lo-$60+Ord('0')

为此:


$60..$69:Name:='Num'+Chr(WordRec(快捷方式).Lo-$60+Ord('0')

然后使用
ShortcutToText
函数并修改其行
$60..$69:Name:=Chr(WordRec(ShortCut).Lo-$60+Ord('0')
类似于
$60..$69:Name:=Chr(WordRec(快捷方式).Lo-$60+'Num'+Ord('0')
然后使用
ShortcutToText
函数并修改其行
$60..$69:Name:=Chr(WordRec(ShortCut).Lo-$60+Ord('0')
类似于
$60..$69:Name:=Chr(WordRec(快捷方式).Lo-$60+'Num'+Ord('0')请注意,您可能需要修改
TextToShortCut
,因为除非您修改VCL源代码,否则“菜单”中的菜单将不会使用您修改的
ShortCutToText
版本。这是真的,如果您希望它以两种方式工作,您还必须使用自定义的
TextToShortCut
。请注意,您可能需要修改
TextToShortCut
,因为“菜单”中的一个不会使用修改后的
ShortCutToText
版本,除非您修改VCL源代码。这是事实,如果您希望它以两种方式工作,您还必须使用自定义
TextToShortcut