1. 窗体上全局 快捷键,首先设置keyprivew 属性为true.
procedure TFMzcfLr.FormKeyDown(Sender : TObject; var Key : Word;
Shift : TShiftState);
begin
if Key = 13 then //当按下回车时
begin
if ActiveControl is TStringGrid then
Exit;
if ActiveControl is TDBGrid then
Exit;
if ActiveControl = EdtJbJma then
Exit;
if ActiveControl = EdtNling then
Exit;
Key := 0; //吃掉回车键
Perform(WM_NEXTDLGCTL, 0, 0); //把光标定位到下个控件 。
end;
end;
具体这个:http://blog.sina.com.cn/s/blog_5c52ae1b0100lnwq.html
2. 过滤键值。
procedure TFMzcfLr.StringGrid1KeyPress(Sender : TObject; var Key : Char);
begin
if StringGrid1.Col in [4] then
if not (Key in ['0'..'9', #8, #13]) then
Key := #0;
if StringGrid1.Col in [8] then
if not (Key in ['0'..'9', '.', #8, #13]) then
Key := #0;
end;
3. 在菜单上添加 全局的快捷键。
mainMenu 的shortCut 属性。