文档章节

TMainMenu 类[五] - 快捷键的记录方式

涂孟超
 涂孟超
发布于 2014/09/26 15:36
字数 381
阅读 1
收藏 0
点赞 0
评论 0
我们从 Form 的源码中看到, 指定的快捷键是一个数字, 譬如 Ctrl+A, 对应着数字: 16449
其实这是一个 Word 类型的数字; 快捷键的参数是 TShortCut 类型的, 它定义在 Classes 单元的第92行(Delphi 2007):
TShortCut = Low(Word)..High(Word);

Menus 单元有两个函数: TextToShortCut、ShortCutToText, 可以互相转换它们.
var
  w: Word;
  s: string;
begin
  w := TextToShortCut('Ctrl+A');
  ShowMessage(IntToStr(w)); {16449}

  s := ShortCutToText(16449);
  ShowMessage(s);           {Ctrl+A}
end;

 
 
 
 
 

 

 

  
它是根据什么原理用一个数字记下了一个字符串的呢? 我没有深究, 只是根据已知数据猜了一下.
Word 是双字节, 有一个高字节、一个低字节.
高字节用来储存辅助键, 就是 Shift、Ctrl、Alt 和它们的组合; 低字节储存单键对应的键值.
对组合键的键值, Delphi 规定如下:

辅助键
Shift $20
Ctrl $40
Shift+Ctrl $60
Alt $80
Shift+Alt $A0
Ctrl+Alt $C0
Shift+Ctrl+Alt  $E0 

譬如: 16449, 用十六进制表示是: $4041; 高字节 $40 表示 Ctrl, 低字节 $41 表示字母 A.


既然如此, 不用它的转换函数, 我们自己也可以转换了:
var
  w: Word;
  h,l: Byte;
begin
  w := 16449;
  h := Hi(w); {获取高字节}
  l := Lo(w); {获取低字节}
  ShowMessage(IntToHex(h,2)); {40}
  ShowMessage(IntToHex(l,2)); {41}
end;

 
 
 
 
 

 

 

  
不过, 我在整理 所有可用的快捷键列表时, 碰见了太多重复值(就是一个快捷键对应着好多个数值), 还不知是什么原理.

本文转载自:http://www.cnblogs.com/del/archive/2008/02/05/1064911.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2004
码字总数 14107
作品 0
深圳
程序员
Eclipse:应该掌握的快捷键

打游戏你要不会快捷键,那估计是个菜鸟,在使用任何IDE工具时,你要不会一些常用快捷键,那你也一定不是这个工具的高手。每个IDE都会使用到快捷键来提高我们的效率,本篇介绍一下Eclipse的快...

test042 ⋅ 2013/03/07 ⋅ 1

Eclipse常用快捷键及快捷键功能失效时的解决方案

当Eclipse快捷键功能,或者使用菜单时都无效。例如:搜索引用(快捷键Ctrl+Shift+G)无效; 解决方案:转换WorkSpace,或者删除WorkSpace目录下的.metadata文件夹,重启Eclipse,重新设置。 ...

BraveShine ⋅ 2015/03/30 ⋅ 2

Eclipse快捷键功能

Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率。Eclipse中有如下一些和编辑相关的快捷键。   1.【ALT+/】   此快捷键为用户编辑的好帮手,能为用户提供内容...

为梦而来 ⋅ 2014/02/08 ⋅ 0

Mac环境下Eclipse常用快捷键

一、Command类 Command+1 快速修复 Command+d 删除当前行 Command+Option+↓ 复制当前行到下一行 Command+Option+↑ 复制当前行到上一行 Command+← 移动光标至当前行的行首 Command+→ 移动...

孟飞阳 ⋅ 2016/07/29 ⋅ 0

【持续更新】Eclipse使用教程

是目前使用最为广泛的Java IDE,本文记录一些常用功能。 1 常用快捷键 ctrl + d:删除选中行 alt+?或alt+/:自动补全代码 ctrl+1:弹出错误修复 ctrl+o:快速outline视图 ctrl+e:快速切换选...

yuanlaijike ⋅ 2017/11/29 ⋅ 0

myeclipse快捷键帮你快速开发java程序

Eclipse 常用快捷键 Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率。Eclipse中有如下一些和编辑相关的快捷键。 1. 【ALT+/】 此快捷键为用户编辑的好帮手,能为...

WangPerry ⋅ 2013/01/26 ⋅ 0

MAC下Eclipse的常用快捷键

开发环境切换到Mac下后原来Window下的快捷键很大一部分是不相容的,习惯了快捷键的生活忽然哪天快捷键不起作用了,跟着的就是开发效率明显降低,频繁录入错误的快捷键让Eclipse都不知道你想要...

辣妈程序媛 ⋅ 03/02 ⋅ 0

动画讲解 Eclipse 常用快捷键

Eclipse有强大的编辑功能, 工欲善其事,必先利其器, 掌握Eclipse快捷键,可以大大提高工作效率。小坦克我花了一整天时间, 精选了一些常用的快捷键操作,并且精心录制了动画, 让你一看就会...

鉴客 ⋅ 2014/10/16 ⋅ 25

Python IDLE快捷键一览

编辑状态时: Ctrl + [ 、Ctrl + ] 缩进代码 Alt+3 Alt+4 注释、取消注释代码行 Alt+5 Alt+6 切换缩进方式 空格<=>Tab Alt+/ 单词完成,只要文中出现过,就可以帮你自动补齐。多按几次可以循环...

若虚道人 ⋅ 2014/06/19 ⋅ 0

Eclipse之相关快捷键

Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率。Eclipse中有如下一些和编辑相关的快捷键。 1.【ALT+/】 此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,...

postdep ⋅ 2014/11/27 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring | IOC AOP 注解 简单使用

写在前面的话 很久没更新笔记了,有人会抱怨:小冯啊,你是不是在偷懒啊,没有学习了。老哥,真的冤枉:我觉得我自己很菜,还在努力学习呢,正在学习Vue.js做管理系统呢。即便这样,我还是不...

Wenyi_Feng ⋅ 今天 ⋅ 0

博客迁移到 https://www.jianshu.com/u/aa501451a235

博客迁移到 https://www.jianshu.com/u/aa501451a235 本博客不再更新

为为02 ⋅ 今天 ⋅ 0

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

存储,对比私有云和公有云的不同

导读 说起公共存储,很难不与后网络公司时代的选择性外包联系起来,但尽管如此,它还是具备着简单和固有的可用性。公共存储的名字听起来也缺乏专有性,很像是把东西直接堆放在那里而不会得到...

问题终结者 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部