如题!
解决方案 »
- delphi7 如何实现txt文件转换成excel文件~
- 请问如何获取CPU序列号?紧急!!我看了很多例子,还是不行!
- 各位老大,帮帮忙!,高分相送
- 求問FastReport中check控件的用法
- 怎样得到一个目录下所有的文件个数?并且遍历它?
- 设置断点调试时,鼠标放在变量上却看不到变量的值了?怎么办,急问,多谢回复
- 关于嵌套ClientDataSet的问题,
- 向各位高手请教,请问如何实现DBGrid支持鼠标滚轴的功能!
- 双机互连双绞线怎么连水晶头那是1那是8(直接用双绞线连)
- windows的系统高手们,怎么让程序在msconfig中看不出来???
- 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,就不好处理了。但是都有点问题。我以前遇到过,后来处理起来问题多多,就放弃了,直接用加速键方式来处理了。