У меня есть юнит с большим количеством действий, у некоторых действий есть ярлыки, а у некоторых даже такой же ярлык. Это связано с тем, что они принадлежат разным модулям в приложениях и не находятся в контексте одновременно.
Теперь у меня есть глобальное немодальное диалоговое окно (называемое objectinspector), которое можно запустить в любое время в любом месте. У него есть некоторые действия с ярлыками, которые совпадают с другими местами в модулях.
Поэтому я хочу временно переопределить те действия, которые имеют одинаковые ярлыки, когда объектинспектор активен, и отменить его при деактивации.
У меня есть этот код в событии OnActivate objectinspectors:
ClientActions.RegisterAction(ClientActions.actObjectInspectorNewWindow, ShowNewObject);
- ClientActions - это блок, содержащий действия.
- RegisterAction - это метод, который связывает событие с действием.
- actObjectInspectorNewWindow - это фактическое действие.
- ShowNewObject - это событие, которое должно вызываться при выполнении действия.
Таким образом, для каждого модуля и немодального диалога есть пара действий, которые регистрируются вышеуказанным методом. Проблема возникает, когда 2 действия имеют один и тот же ярлык. Кажется, что действия, которые сначала регистрируются, выигрывают и выполняются, когда пользователь нажимает на ярлык.
Я предпочел, чтобы последнее действие, которое регистрирует действие с этим ярлыком, было выполнено.
Как это можно сделать?
Привет