keypriview:=true;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
  var mm:boolean;
  begin
mm:=form1.ActiveControl is TDBGrid;
if (key=13 )and mm then
begin
dbgrid1.SelectedIndex:=dbgrid1.SelectedIndex-1;
end;
end;

解决方案 »

  1.   

    key=13好像不對吧,看看這個
    unit Keydefs;interfaceuses WinTypes;const
      MaxKeys = 24;
      ControlKey = '^';
      AltKey = '@';
      ShiftKey = '~';
      KeyGroupOpen = '{';
      KeyGroupClose = '}';type
      TKeyString = String[7];  TKeyDef = record
        Key: TKeyString;
        vkCode: Byte;
      end;const
      KeyDefArray : array[1..MaxKeys] of TKeyDef = (
        (Key: 'F1';     vkCode: vk_F1),
        (Key: 'F2';     vkCode: vk_F2),
        (Key: 'F3';     vkCode: vk_F3),
        (Key: 'F4';     vkCode: vk_F4),
        (Key: 'F5';     vkCode: vk_F5),
        (Key: 'F6';     vkCode: vk_F6),
        (Key: 'F7';     vkCode: vk_F7),
        (Key: 'F8';     vkCode: vk_F8),
        (Key: 'F9';     vkCode: vk_F9),
        (Key: 'F10';    vkCode: vk_F10),
        (Key: 'F11';    vkCode: vk_F11),
        (Key: 'F12';    vkCode: vk_F12),
        (Key: 'INSERT'; vkCode: vk_Insert),
        (Key: 'DELETE'; vkCode: vk_Delete),
        (Key: 'HOME';   vkCode: vk_Home),
        (Key: 'END';    vkCode: vk_End),
        (Key: 'PGUP';   vkCode: vk_Prior),
        (Key: 'PGDN';   vkCode: vk_Next),
        (Key: 'TAB';    vkCode: vk_Tab),
        (Key: 'ENTER';  vkCode: vk_Return),
        (Key: 'BKSP';   vkCode: vk_Back),
        (Key: 'PRTSC';  vkCode: vk_SnapShot),
        (Key: 'SHIFT';  vkCode: vk_Shift),
        (Key: 'ESCAPE'; vkCode: vk_Escape));
    function FindKeyInArray(Key: TKeyString; var Code: Byte): Boolean;implementation
    uses SysUtils;
    function FindKeyInArray(Key: TKeyString; var Code: Byte): Boolean;
    { function searches array for token passed in Key, and returns the }
    { virtual key code in Code. }
    var
      i: word;
    begin
      Result := False;
      for i := Low(KeyDefArray) to High(KeyDefArray) do
        if UpperCase(Key) = KeyDefArray[i].Key then begin
          Code := KeyDefArray[i].vkCode;
          Result := True;
          Break;
        end;
    end;end.
    很有用的
    結合dbgrid1.SelectedIndex:=dbgrid1.SelectedIndex-1;這個你還不能實現我才不信