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 类型不兼容
我做错了什么?
Key 是 Char,但 VK_UP 是整型常量。您必须在具有参数 Key:Word
的 KeyDown 事件处理程序中使用这些常量
此外,箭头键不会生成 OnKeyPress 事件(它用于字母数字键)
来自帮助:导航键(Tab、BackTab、箭头键等)不受 KeyPreview 的影响,因为它们不会生成键盘事件
我有一个带有 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 类型不兼容
我做错了什么?
Key 是 Char,但 VK_UP 是整型常量。您必须在具有参数
Key:Word
的 KeyDown 事件处理程序中使用这些常量
此外,箭头键不会生成 OnKeyPress 事件(它用于字母数字键)
来自帮助:导航键(Tab、BackTab、箭头键等)不受 KeyPreview 的影响,因为它们不会生成键盘事件