控制键盘事件,在keyup或者keydown里
一秒钟只能按下某个键5次是怎么做的???
请高手们指点下

解决方案 »

  1.   

    //参考如下代码
      private
        { Private declarations }
        FKeyDownCount: Integer;  // 按下的次数
        FKeyTickCount: Longword; // 最后一次按下的时间procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if GetTickCount - FKeyTickCount > 1000 then // 两次按键的时间已经大于1秒
      begin
        FKeyDownCount := 1; // 从1次开始计算
        FKeyTickCount := GetTickCount; // 记录本次按下的时间
      end else
      begin
        if FKeyDownCount >= 5 then
        begin
          Key := 0; // 取消按键
          Exit; // 如果1秒钟内按键次数多于5次
        end;
        Inc(FKeyDownCount);
      end;
      Memo1.Lines.Add(TimeToStr(Time) + '=' + IntToStr(Key)); // 输出用
    end;