delphi 中 实现 ctrl + A~Z 和 Alt + A~Z 组合键的拦截

delhpi中PageControl有个页面,页1,页2,中常有相同的快捷键。焦点再页2,的时候,按先快捷键,Alt+...的时候,常常弹出页1的事件中。procedur... 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;

用以上虚拟键盘,只能单个键值,拦截,怎样才能可以拦截组合键。谢谢!
展开
 我来答
TheFiend
2010-08-04 · TA获得超过625个赞
知道大有可为答主
回答量:1346
采纳率:0%
帮助的人:1214万
展开全部
Shift: TShiftState
判断这个shift的取值就可以了

TShiftState = set of (ssShift, ssAlt, ssCtrl,
ssLeft, ssRight, ssMiddle, ssDouble);

if (ssShift in Shift)and(key = vk_F2) then 就是按下了shift+F2
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjl1234567
2010-08-02 · 超过27用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:0
展开全部
当按下alt或ctrl键的时候 Shift值是不一样的,通过读取Shift的值和Key的值,可以判断组合键
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
warmwormn
2010-08-05 · TA获得超过737个赞
知道小有建树答主
回答量:1694
采纳率:0%
帮助的人:1337万
展开全部
Shift: TShiftState 看一下帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
redboy136
2021-04-24
知道答主
回答量:7
采纳率:0%
帮助的人:5739
展开全部
如果想实现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;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式