我有一个包含TDBGrid和TClientDatabase的表单。
我想允许使用UpArrow或DownArrow在数据库中导航,无论哪个控件都有焦点。
我设置了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不兼容的类型
我做错了什么?
答案 0 :(得分:2)
Key是Char,但VK_UP是整数常量。您必须在具有参数Key:Word
此外,箭头键不会生成OnKeyPress事件(它用于字母数字键)
来自帮助:导航键(Tab键,BackTab,箭头键等)不受KeyPreview影响,因为它们不会生成键盘事件