读书人

RZHotKeyEdit组件相关有关问题

发布时间: 2012-09-01 09:33:03 作者: rapoo

RZHotKeyEdit组件相关问题。
如何使得RZHotKeyEdit组件能够只输入单独的Ctrl呢?而不是Ctrl+字母

如何取得RZHotKeyEdit中的内容呢?
譬如,设置某功能的快捷键,用户按下ctrl键后,RZHotKeyEdit中显示Ctrl字样,然后保存到数据库,保存时如何取得RZHotKeyEdit中的内容啊?

[解决办法]
可以从RZHotKeyEdit的HotKey属性得到,这个属性值的类型是word
[解决办法]
Modifiers是组合键的
[解决办法]
RZHotKeyEdit是不能只设置成Ctrl键的

RZHotKeyEdit的HotKey属性值的类型是Word型,比如说Ctrl+C就是16451,你设置HotKey = 16451的话,在RZHotKeyEdit显示的就是Ctrl+C
[解决办法]

Delphi(Pascal) code
1.不能单独的Ctrl/Shift/Alt键(不过可以做出这效果来,自己研究吧)2.既然想知道值与hotkey值转换,那就简单的解释一下,先看这三个组合键值定义(16进制):scShift = $2000;scCtrl = $4000;scAlt = $8000;这3个的值是2倍的关系,即10进制分别表示为8192,16384,32768加上键盘上的字母和数字(或其它符号键),自己查一下ASCII码吧比如A是65,就可以组合成hotkey值了,即8192+65=8257就是Shift+A反之任意给一个LongInt值,经过下面这个算法的运算,就得出它的hotkey值(比如16452,结果是Ctrl+D)这是源码,不知道楼主能否看的懂(一些与运算而已):procedure TCustomHotKey.ShortCutToHotKey(Value: TShortCut);begin  FHotKey := Value and not (scShift + scCtrl + scAlt);  FModifiers := [];  if Value and scShift <> 0 then Include(FModifiers, hkShift);  if Value and scCtrl <> 0 then Include(FModifiers, hkCtrl);  if Value and scAlt <> 0 then Include(FModifiers, hkAlt);end; 

读书人网 >.NET

热点推荐