截取所有WM_KEYDOWN消息,然后再判断是按下哪个就是了!!
如下:procedure key_down(...);message WM_KEYDOWN
begin
  //判断
end;

解决方案 »

  1.   

    我想你的意思是屏蔽TAB键吧!
      

  2.   

    在KeyDown事件里
    begin
      if Key = VK_TAB then
      begin
        //你要干的事
      end;
    end;
      

  3.   

    可以用Application.OnMessage来拦截呀:
    先定义一个全局变量 NeedCatch:Boolean
    procedure TMainForm.AppMsg(var Msg:TMsg;var Handled:Boolean);
    begin
      if Msg.message=WM_KEYDOWN then
      begin
        if NeedCatch then
          Handled:=True;//拦截住
      end;
    end;
    procedure key_down(var Msg:TMessage);message WM_KEYDOWN
    begin
      NeedCatch:=False;
      if 条件满足 then
        NeedCatch:=true;
      inherited;
    end;
    procedure MainForm.FormCreate(Sender:TObject);
    begin
      Application.OnMessage:=AppMsg;
    end;