1. 窗体上全局 快捷键,首先设置keyprivew 属性为true.
procedure TFMzcfLr.FormKeyDown(Sender : TObject; var Key : Word;
  Shift : TShiftState);
begin
  if Key = 13 then            //当按下回车时 
    begin      
      if ActiveControl is TStringGrid then
        Exit;
      if ActiveControl is TDBGrid then
        Exit;
      if ActiveControl = EdtJbJma then
        Exit;
      if ActiveControl = EdtNling then
        Exit; 
      Key := 0;         //吃掉回车键 
      Perform(WM_NEXTDLGCTL, 0, 0);  //把光标定位到下个控件 。  
    end;
end;
具体这个:http://blog.sina.com.cn/s/blog_5c52ae1b0100lnwq.html
2. 过滤键值。
procedure TFMzcfLr.StringGrid1KeyPress(Sender : TObject; var Key : Char);
begin
  if StringGrid1.Col in [4] then
    if not (Key in [‘0‘..‘9‘, #8, #13]) then
      Key := #0;
  if StringGrid1.Col in [8] then
    if not (Key in [‘0‘..‘9‘, ‘.‘, #8, #13]) then
      Key := #0;
end;
原文:http://www.cnblogs.com/cnby/p/3995413.html