如题!
解决方案 »
- 两个问题?
- MDIform的问题
- 请问 在DELPHI WORD 表格 如何插入一行
- dll理解的问题!
- 连接数据库的登陆窗口
- 各位兄弟,怎样制作特效窗口?
- fomr2.ShowModal出现cannot make a visible window modal错误,但fomr2.Show则正常,为什么?
- 请问有谁用过水晶软件(crystalreport)?
- 请问Delphi可以用来编视频方面的东西吗?怎么入手?请大家帮帮我!
- 送分,存储格式怎样实现
- RAVE报表分组打印时,若有一序号列,要使每组的序号从1开始记数,应该怎么做
- 为了去掉listview的横向滚动条,我把lstAlarm.Columns[0]的属性设置了autosize,但是加数据不刷新
放置一个TActionList控件
在该控件中添加一个TAction
将其ShortCut属性设置为Ctrl+S
将Button的Action属性指定为添加的TAction
事件在Action.OnExecute中写
菜单项也可以指向Action
用Action控制权限、显示最方便。
object Form1: TForm1
KeyPreview = True
OnKeyDown = FormKeyDown
endprocedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
Ord('S'): if ssCtrl in Shift then Button1.Click;
end;
end;
要么用ActionList来写。
单个当前激活窗体操作比较可靠,但是,如果是多个当前激活的东西,就麻烦了。比如:窗体上有多个frame,每个frame都有保存按钮,每个都是Ctrl+S,就不好处理了。但是都有点问题。我以前遇到过,后来处理起来问题多多,就放弃了,直接用加速键方式来处理了。