delphi 中 实现 ctrl + A~Z 和 Alt + A~Z 组合键的拦截
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 中 实现 ctrl + A~Z 和 Alt + A~Z 组合键的拦截相关的知识,希望对你有一定的参考价值。
delhpi 中 PageControl 有个页面,页1,页2 ,中常有相同的快捷键。焦点再页2,的时候,按先快捷键,Alt + ...的时候,常常弹出页1的事件中。
procedure Tfrmddzl.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
VK_F2: begin
IF PG.ActivePage=TS1 THEN BEGIN
t1.OnClick(nil);
END;
IF PG.ActivePage=TS2 THEN BEGIN
IF TSB1.Enabled THEN TSB1.OnClick(nil);
END;
end;
end;
end;
用以上虚拟键盘,只能单个键值,拦截,怎样才能可以拦截组合键。谢谢!
判断这个shift的取值就可以了
TShiftState = set of (ssShift, ssAlt, ssCtrl,
ssLeft, ssRight, ssMiddle, ssDouble);
if (ssShift in Shift)and(key = vk_F2) then 就是按下了shift+F2本回答被提问者和网友采纳 参考技术B 当按下alt或ctrl键的时候 Shift值是不一样的,通过读取Shift的值和Key的值,可以判断组合键 参考技术C Shift: TShiftState 看一下帮助 参考技术D 如果想实现Ctrl + L
procedure TForm1.Memo4KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Shift = [ssCtrl]) and (Key = ord('L') ) then begin
SpeedButton44Click(Self);
end;
ctrl + z fg bg
[[email protected] ~]# jobs [1]+ Stopped vncviewer 192.168.1.17:5904 [[email protected] ~]# #ctrl + z [[email protected] ~]# bg 1 [1]+ vncviewer 192.168.1.17:5904 & [[email protected] ~]# jobs [1]+ Running vncviewer 192.168.1.17:5904 & [[email protected] ~]# #bg + 序列号 ----吊到后台运行 [[email protected] ~]# fg 1 vncviewer 192.168.1.17:5904 # fg + 序列号 ------->把程序调到前台
以上是关于delphi 中 实现 ctrl + A~Z 和 Alt + A~Z 组合键的拦截的主要内容,如果未能解决你的问题,请参考以下文章
Delphi XE3 Ctrl+Z 也可以撤消插入符号的移动