大佬教程收集整理的这篇文章主要介绍了德尔福 – 检测同时按下3个键,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我怎么做的?
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftStatE); begin if Shift = [ssCtrl] then begin case Key of Ord('C'): if (GetKeyState(Ord('N')) and $80) = $80 then Showmessage('combo'); Ord('N'): if (GetKeyState(Ord('C')) and $80) = $80 then Showmessage('combo'); end; end; end;
但是,这也将检测例如N Ctrl C,这是一个不以Ctrl键开头的序列.如果这不符合有效的密钥组合,您可以借助标记保留一些密钥历史记录.以下应仅检测最初以Ctrl开头的序列:
type TForm1 = class(TForm) procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftStatE); procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftStatE); private FValidKeyCombo: Boolean; end; ... procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftStatE); begin if FValidKeyCombo and (Shift = [ssCtrl]) then case Key of Ord('C'): if (GetKeyState(Ord('N')) and $80) = $80 then Showmessage('combo'); Ord('N'): if (GetKeyState(Ord('C')) and $80) = $80 then Showmessage('combo'); end; FValidKeyCombo := (Shift = [ssCtrl]) and (Key in [Ord('C'),Ord('N')]); end; procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftStatE); begin FValidKeyCombo := false; end;
以上是大佬教程为你收集整理的德尔福 – 检测同时按下3个键全部内容,希望文章能够帮你解决德尔福 – 检测同时按下3个键所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。