我有一個單位有很多的動作,一些動作有快捷方式,有些甚至有相同的快捷方式。這是因爲它們屬於應用程序中的不同模塊,並且它們不同時處於上下文中。有沒有辦法用快捷方式覆蓋先前註冊的操作?
現在我有一個全局非模態對話框(稱爲objectinspector),可以隨時隨地啓動。它有一些快捷方式與模塊中其他地方相同的動作。
所以我想暫時覆蓋當objectinspector處於活動狀態時共享相同快捷方式的操作,並在停用時釋放它。
我有這樣的代碼在objectinspectors OnActivate事件:
ClientActions.RegisterAction(ClientActions.actObjectInspectorNewWindow, ShowNewObject);
- ClientActions是包含行動單元。
- RegisterAction是一種將事件與操作關聯的方法。
- actObjectInspectorNewWindow是實際的操作。
- ShowNewObject是執行操作時應該調用的事件。
因此,對於每個模塊和無模式對話框,都有上述方法註冊的一些操作。當兩個操作共享相同的快捷方式時,問題就來了。當用戶按下快捷鍵時,首先註冊的動作似乎取勝並執行。 我首選執行了使用該快捷方式註冊動作的最後一個動作。
這怎麼辦?
問候
可以TAction.OnUpdate事件中使用快捷鍵使這種衝突可以得到解決? – 2009-10-23 17:50:27