Delphi 如何使用向上箭头向下箭头进行导航

Delphi How to Use UpArrow DownArrow to navigate

我有一个带有 TDBGrid 和 TClientDatabase 的表单。

我想允许使用向上箭头或向下箭头在数据库中导航,无论哪个控件具有焦点。

我设置了 Form.KeyPreview := true

这是Form.OnKeyPress

procedure TfrmMain.FormKeyPress(Sender: TObject; var Key: Char); 
var Direction : Integer; 
begin    
   Direction := -1;    
   if Key = VK_UP then Direction := 1; {Previous}    
   if Key = VK_DOWN then Direction := 0; {Next}       
   if Direction <> -1 then    
   begin
      if Direction = 0 then cds1.Next else cds1.Prior;
      NextRecord; {Processes AfterScroll event}    
   end; 
end;

这给我一个错误 E2008 类型不兼容

我做错了什么?

  1. Key 是 Char,但 VK_UP 是整型常量。您必须在具有参数 Key:Word

  2. 的 KeyDown 事件处理程序中使用这些常量
  3. 此外,箭头键不会生成 OnKeyPress 事件(它用于字母数字键)

  4. 来自帮助:导航键(Tab、BackTab、箭头键等)不受 KeyPreview 的影响,因为它们不会生成键盘事件