你可以在ONKEYUP或ONKEYDOWN抓就行了。

解决方案 »

  1.   

    你可以在ONKEYUP或ONKEYDOWN抓就行了(如果是控件的话)。否则要用上HOOK。我以前写过一些关于HOOK的你可以查一下。
      

  2.   

    先把Form的keyPreview设置为true.判断字母按键或enter按键:
    procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
    begin
      case key of
         #13: {用户按了enter以后程序的反应}      //#13代表Enter键
         'a': {用户按了a以后程序的反应};
         'b': {用户按了b以后程序的反应};
         'c': {用户按了c以后程序的反应};
         ...
      end;
    end;判断shift,alt,ctrl状态:procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
    if [ssShift] = shift then lblShowShift.Caption := 'shift被按下啦!';
    if [ssShift , ssAlt] = shift then lblshowshift.Caption := 'shift和alt同时被按下啦!';
    if [ssShift , ssAlt, ssCtrl] = shift then lblshowshift.Caption := 'shift和alt,还有Ctrl,都按下啦!';
    end;应该够清楚了吧?  :)
      

  3.   

    将Form的keypreview设为true ,在Form的onkeypress中写入代码就可以了
      

  4.   

    纠正,应该在OnKeyDown中响应,另回车可用VK_RETURN表示