博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Host+DLL模式下快捷键的使用
阅读量:6331 次
发布时间:2019-06-22

本文共 1501 字,大约阅读时间需要 5 分钟。

 

   最近在做一个 Host+DLL 的插件系统,每个DLL模块都继承一个基类模块TBaseForm , 然后再基类模块里定义了增F1、删F2、改F3、查F4等功能,每个功能定义了一个快捷键,

在主程序这边通过PageControl来加载每个DLL模块,问题来了,当我打开多个模块时,按下 F1 时,系统调用的不是我当前激活的 TabSheet 模块,而是第一个打开的模块的新增

功能,原来快捷键被第一个模块注册后,后面打开的模块再注册就无效了。后来想到一个方法,就是再  TabSheet的 OnHide 事件里把当前模块的快捷键取消,在 onShow 事件里

再把当前模块的快捷键关联起来,经过测试成功!!!,以下是部分代码:

1 procedure TBaseForm.bidingshortcut;       //绑定快捷键 2 begin 3   al_new.ShortCut:=TextToShortCut('F5'); 4   al_edit.ShortCut:=TextToShortCut('F6'); 5   al_delete.ShortCut:=TextToShortCut('F7'); 6   al_refdata.ShortCut:=TextToShortCut('F8'); 7   al_query.ShortCut:=TextToShortCut('F3'); 8   al_report.ShortCut:=TextToShortCut('F2'); 9   al_export.ShortCut:=TextToShortCut('F10');10   al_import.ShortCut:=TextToShortCut('F4');11   al_gridset.ShortCut:=TextToShortCut('F9');12 end;13 14 procedure TBaseForm.unbidingshortcut;     //解除绑定快捷键15 begin16   al_new.ShortCut:=TextToShortCut('none');17   al_edit.ShortCut:=TextToShortCut('none');18   al_delete.ShortCut:=TextToShortCut('none');19   al_refdata.ShortCut:=TextToShortCut('none');20   al_query.ShortCut:=TextToShortCut('none');21   al_report.ShortCut:=TextToShortCut('none');22   al_export.ShortCut:=TextToShortCut('none');23   al_import.ShortCut:=TextToShortCut('none');24   al_gridset.ShortCut:=TextToShortCut('none');25 end;

然后在Host程序中的onHide和onShow分别调用unbidingshortcut和bidingshortcut即可。

这里有一个基类的转换过程,因为我事先在tabsheet的tag里保存了当前窗体,所以只要做以下转换:

TBaseForm(TabSheet.tag).bidingshourtcut 就可以了。

 

转载于:https://www.cnblogs.com/lpq21314/p/4114680.html

你可能感兴趣的文章
动画切换view布局
查看>>
spring注解
查看>>
crontab 执行环境变量的问题
查看>>
切图网——为您的设计寻找专业的网页切图服务
查看>>
<mvc:annotation-driven />注解意义
查看>>
resetlogs的作用
查看>>
有什么好的限速软
查看>>
Java高效读取大文件
查看>>
我的友情链接
查看>>
Netty源码分析:图解Pipeline、Handler、Context
查看>>
系统蜜罐opencanary部署
查看>>
CentOS通过yum安装php7.0
查看>>
【CentOS 7MySQL常用操作1】,更改root密码#180112
查看>>
【CentOS 7Tomcat配置1】,Tomcat介绍和安装jdk#180120
查看>>
Gamebryo实例学习之三CharacterAnimationDemo
查看>>
boost vs2005 安装
查看>>
mysql,SQL Server常用函数整理,以备不时之需
查看>>
如何落地TensorFlow on Kubernetes
查看>>
PMP笔记1
查看>>
适配器模式(数据库为例)
查看>>