一个模块考试的模块
在一Form上有Label,Edit及Memo,要求不管焦点在哪?
只要激活这个窗口,就能响应小键盘的数字键,
屏蔽其它按键只需要用户选择答案序号,也就是使用小键盘的数字键
对于其它键不做响应,屏蔽掉钩子吗?
还有其它方法吗?

解决方案 »

  1.   

    在输入框的keypress事件中将小键盘上的按键定义在里面就可以了
      

  2.   

    windows的虚拟键定义: 
     VK_NUMPAD1 = 97;
      {$EXTERNALSYM VK_NUMPAD2}
      VK_NUMPAD2 = 98;
      {$EXTERNALSYM VK_NUMPAD3}
      VK_NUMPAD3 = 99;
      {$EXTERNALSYM VK_NUMPAD4}
      VK_NUMPAD4 = 100;
      {$EXTERNALSYM VK_NUMPAD5}
      VK_NUMPAD5 = 101;
      {$EXTERNALSYM VK_NUMPAD6}
      VK_NUMPAD6 = 102;
      {$EXTERNALSYM VK_NUMPAD7}
      VK_NUMPAD7 = 103;
      {$EXTERNALSYM VK_NUMPAD8}
      VK_NUMPAD8 = 104;
      {$EXTERNALSYM VK_NUMPAD9}
      VK_NUMPAD9 = 105;判断如果是上面定义以内的就相应,否则不相应
      

  3.   

    是一个模拟考试的模块,只允许小键盘操作重点说明一下:***不管焦点在什么地方(也可能在Memo上,而且不止一个),
    只响应小键盘,并将输入数字显示在一个edit框中***,我不想对每个控件都设OnKeyPress事件
      

  4.   

    就写form的OnKeyPress事件就可以了 其他的控件的OnKeyPress都指向这个事件
      

  5.   

    hook 难在 控件的识别上 因为可能有edit memo richedit...
      

  6.   

    delphi_xizhousheng(西周生) 方法快!
      

  7.   

    谢谢各位,使用delphi_xizhousheng(西周生) 的方法