国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Host+DLL模式下快捷鍵的使用

2019-11-15 01:56:17
字體:
來源:轉載
供稿:網友
Host+DLL模式下快捷鍵的使用

最近在做一個 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 就可以了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岚皋县| 会东县| 怀来县| 和田县| 固阳县| 三明市| 金平| 余姚市| 甘孜县| 托克托县| 司法| 长治县| 汶上县| 宜宾县| 北京市| 平江县| 双峰县| 德化县| 台安县| 云林县| 新乐市| 贵州省| 会昌县| 枣强县| 呼图壁县| 衡南县| 大荔县| 义乌市| 秭归县| 楚雄市| 南郑县| 西乌珠穆沁旗| 嘉黎县| 秦皇岛市| 望江县| 罗城| 上饶县| 西贡区| 繁昌县| 宕昌县| 北票市|