以下两种方式均无效:
//--------
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=9 then
    //...
end;//--------
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#9 then
    //...end;

解决方案 »

  1.   

    楼主如果想监视焦点的移开
    可以用exit消息就可以了
      

  2.   

    请问  Kshape([伟大的大伟!]) : 如何用exit消息呢? 是在onexit()中吗?  正是在onexit()中需要判断之前用户是按哪个键移开焦点的,它可能是 enter,tab,vk_down,vk_up,pagedown,page_up ,然后再对DBgrid中分别设置焦点.
      

  3.   

    procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if key = 9 then
      ShowMessage('a');
    end;呵呵,算了。是DBEDIT的~~~~呵呵
      

  4.   

    谢谢大侠 gemouzhi(gemouzhi) ,您的办法又有效. 节日快乐!
      

  5.   

    附带再问一个问题:
    我封封装 EDIT 时,如下写法却说"定义与先前的定义不一致",而在一个edit的实例中写 OnKeyUp 时,参数就是这个样子的:type
      TMyEdit = class(TEdit)
    protected
      procedure KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);override; //出错的行