delphi2010:按键 控制键 组合键的判断 响应
procedure TForm7.FormShortCut(var Msg: TWMKey; var Handled: Boolean); var aKey: TShortCut; aShift : TShiftState; i:integer; begin aShift:=KeyDataToShiftState(Msg.KeyData);
i:=msg.CharCode;
if (ssAlt in ashift)and (i=115) then halt;
end;
https://yq.aliyun.com/articles/527004
delphi2010:按键 控制键 组合键的判断 响应
技术小甜 2017-11-16 19:22:00 浏览105 评论0
摘要: 在delphi根据TshiftState值来判断用户按下Ctrl,shift,alt等键的方法 procedure TForm1.FormMouseDown(Sender:TObject; Button: TMouseButton;Shift:TShiftState; X, Y: Integer); begin if ssCtrl in shift thenShowMessage('ssCtrl'); shift 是一个集合变量。
在delphi根据TshiftState值来判断用户按下Ctrl,shift,alt等键的方法
procedure TForm1.FormMouseDown(Sender:TObject; Button: TMouseButton;
Shift:TShiftState; X, Y: Integer);
begin
if ssCtrl in shift then
ShowMessage('ssCtrl');
shift 是一个集合变量。type TShiftState = setof (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle,ssDouble);
Value Meaning
ssShift The Shift key is held down.
ssAlt The Alt key is held down.
ssCtrl The Ctrl key is held down.
ssLeft The left mouse button is held down.
ssRight The right mouse button is held down.
ssMiddle The middle mouse button is held down.
ssDouble The mouse was double-clicked.
delphi中如何响应键盘的组合键(如:ctrl k),
var Hot: boolean;
procecure form1.formkeydown(.....);
begin
if (key = VK_K) and (ssShift in shift) then
if hot then
begin
//处理ctrl kk
hot := false;
end
else hot := true
else
hot := false;
end;
可以设置快捷键,也可以在程序中设置,如上
set Form1.KeyPreview totrue.
procedure TForm1.FormKeyDown(Sender:TObject; var Key: Word;
Shift: TShiftState);
begin
if (ssCtrl in Shift) and (Char(Key) in ['K', 'k']) then
ShowMessage('Ctrl K');
end;
一般的onkeydown就可以了
最好是设置一个全局的热键,系统中的任何地方都可以响应到:
下面这个帖子里很多:看看,帮助很大:
delphi2010:按键 控制键 组合键的判断 响应的更多相关文章
- SendKeys发送组合键
使用: using System.Windows.Forms;//添加命名空间引用 { SendKeys.SendWait("{DOWN}"); ppt.ppt_sendkey(& ...
- 利用原生JS判断组合键
<script type="text/javascript"> var isAlt = 0; var isEnt = 0; document.onkeydown = f ...
- C#-判断Shift,Alt,Ctrl是否被按下,确定所按下的组合键
在创建接受用户击键的应用程序时,您还可能希望监视 SHIFT.ALT 和 CTRL 键等组合键.当一个组合键与其他键同时按下,或在单击鼠标的同时按下时,您的应用程序能够做出适当响应:字母 S 可能仅导 ...
- C#窗体模拟键盘按键(组合键)产生事件 ---- 通过keybd_event()函数
如何模拟键盘按键触发产生的事件,比如模拟按下Alt + F4 关闭当前程序,Ctrl+Shift 切换输入法等 可以通过win32api 键盘事件 keybd_event() 来实现 1.定义键盘按键 ...
- C#窗体如何通过keybd_event()函数模拟键盘按键(组合键)产生事件
如何模拟键盘按键触发产生的事件,比如模拟按下Alt + F4 关闭当前程序,Ctrl+Shift 切换输入法等 可以通过win32api 键盘事件 keybd_event() 来实现 1.定义键盘按键 ...
- [转]Delphi : keydown与keypress的区别,组合键
Shift 是一个集合变量. type TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDoubl ...
- Delphi : keydown与keypress的区别,组合键
Shift 是一个集合变量. type TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDoubl ...
- C# 如何捕获键盘按钮和组合键以及KeyPress/KeyDown事件之间的区别 (附KeyChar/KeyCode值)
1. 首先将窗口属性KeyPreview设为true,如果属性对话框中找不到,就直接在代码里添加: 2. 添加KeyPress / KeyDown事件: 1.KeyPress 和KeyDown .Ke ...
- Qt获取组合键
CTRL+Enter发送信息的实现 在现在的即时聊天程序中,一般都设置有快捷键来实现一些常用的功能,类似QQ可以用CTRL+Enter来实现信息的发送. 在QT4中,所有的事件都继承与QEvent这个 ...
随机推荐
- Vasya And The Matrix CodeForces - 1016D (思维+构造)
Now Vasya is taking an exam in mathematics. In order to get a good mark, Vasya needs to guess the ma ...
- Python核心技术与实战——十二|Python的比较与拷贝
我们在前面已经接触到了很多Python对象比较的例子,例如这样的 a = b = a == b 或者是将一个对象进行拷贝 l1 = [,,,,] l2 = l1 l3 = list(l1) 那么现在试 ...
- 502 bad gateway nginx 的错误的解决方案
总结 一般是php问题居多,也需要调整相应的nginx参数,最后也可能是mysql假死 nginx问题 查看日志中的报错error.log一般设置路径/usr/local/nginx/logs/ngi ...
- Shiro(二)
1 Shiro的授权 1.1 授权流程 1.2 授权方式 shiro支持三种方式的授权 1.2.1 编程式 通过编写if/else完成授权代码. if(subject.hasRole("ro ...
- 用Chrome 浏览器调试移动端网页 chrome://inspect/#devices
谷歌输入(chrome://inspect/#devices) 我使用的是小米(红米NOTE2 ),电脑是win 10 系统,以下几步就可以轻松使用浏览器内置的功能调试移动端网页了: 1. 手机开启调 ...
- 几道好玩的JS题目,看看你能答中几道。
1,for (var i = 0; i < 5; i++) { console.log(i); } 这几行代码会输出什么? 输出 0 1 2 3 4 2,for (var i = 0; i &l ...
- Cassandra 集群配置
集群机制 一致性哈希(数据一致性) Token Range Partitoner Gossip协议(流言,无中心获取领导者) 用于在环内节点之间传播状态信息 周期运行,每次在环中随机挑选一个对象节点, ...
- aspnet:MaxHttpCollectionKeys 不起作用
场景: vs2010 webform 表单域长度,在webconfig中加入该节点,有的项目起作用,有的项目无效,不知道是什么原因??
- node.js入门学习(二)MIME模块,request和response对象,demo之不同url请求不同html页面,页面包含图片、样式css等静态资源
一.构建http服务程序-根据不同请求做出不同响应 // 加载http模块 var http = require("http"); // 创建一个http服务对象 http.cre ...
- ELK结合logback
之前ELK的安装可以查看前面一篇博客 下面是我的logback的配置文件,通过logback的appender直接导入logstash <?xml version="1.0" ...