如何实现数据浏览的快捷键?(50分)

  • 主题发起人 主题发起人 oceanwave
  • 开始时间 开始时间
O

oceanwave

Unregistered / Unconfirmed
GUEST, unregistred user!
为方便数据录入,我想在数据操作窗体中,大部分用键盘操作就能完全,比如CTRL+N相当
于NEXT,CTRL+F相当于FIRST……
 
在数据操作窗口中捕获键盘输入就行了。
ONKEYDOWN事件
 
能不能给一段代码?谢谢!
 
嗨,用Action吧,很轻松的!
 
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (shift=[ssCTRL]) and (key=VK_N) then
begin
table1.Next;
key:='';
end;

end;
 
to xygz:
1、你的代码在我这会运行出错,
2、我的数据窗体承载的是主从表结构的,我要的是在数据操作窗体为当前窗体的情况下,
能够得到响应,而你的KeyDown事件是在DBGRID下的,对我来说DBGRID只是子表,我的控
件焦点不会一直在DBGRID上。谢谢
 
在你的form上捕获keydown事件就可以了,注意,设置form的keypreview为true就可以了。
上面的老兄的代码更改一下就可以了。
 
倒!
如楼上所说;或者如action所说用action
 
在OnKeyDown 事件中写如下程序即可
Case KEY Of
VK_F2 : btAppendClick(Self); // F2 : 新增
VK_F4 : btEditClick(Self); // F4 : 修改 ;
VK_F3 : btDeleteClick(self); // F3 : 删除
vk_F5 : btLocateUpClick(Self); //F5 :查询
$55 : if (Shift = [ssCtrl]) then BtnCancelClick(Self); // ^U : 取消
$57 : if (Shift = [ssCtrl]) then btConfirmClick(Self); // ^W : 储存
VK_ESCAPE: begin // ESC : 离开
KEY := 0;
btCloseClick(Self);
end;
VK_RETURN:
end;
 
请问ACTION怎么用,谢谢
 
在窗体上面放置一个TActionList,双击它,New一个Action,指定它的快捷键为Ctrl+N,然后双击这个Action
在其中写代码:Tabel1.Next,其他的类似。OK?
 
多谢大家,给分了:)
 
多人接受答案了。
 
多人接受答案了。
 
后退
顶部