注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

珠海渔郎之电子网档

项目管理 + 程序开发 + Delphi + 电脑应用 + 数码 + 进化感悟

 
 
 

日志

 
 

判断按键序列  

2009-08-22 18:30:07|  分类: Delphi |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

判断按键序列


Copyright(C) 2003, Kingron


如何判断用户输入的一个序列是不是指一个指定的序列?例如如何监测用户输入了kingron这个序列?
可以采用下面的方法:
定义一个数组:
var
  CharBuf:array [1..7] of char;
然后在窗体的OnKeyPress中添加如下代码即可:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
var
  i:integer;
begin
  for i:=Low(Buf) to High(buf)-1 do
    CharBuf:=Charbuf[i+1];
  CharBuf[High(Buf)]:=Key;
  if CharBuf='kingron' then ShowMessage('OK!');
end;


如果要检测带功能键的,则可以利用ShortCut来做:
use Menus;


var
    CharBuf:array [1..7] of Word;


const
  /// ALT + KINGRON
  Keys : array[1..7] of Word=(32843, 32841, 32846, 32839, 32850, 32847, 32846);


procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  i:integer;
begin
  for i:=Low(CharBuf) to High(Charbuf)-1 do
    CharBuf:=Charbuf[i+1];
  CharBuf[High(CharBuf)]:=ShortCut(Key, Shift);
  if CompareMem(@CharBuf[1], @Keys[1], SizeOf(Keys)) then ShowMessage('OK!');
end;

  评论这张
 
阅读(118)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017