Добрый день!
Среда проблемы - Astra Linux SE 1.4, ГИС Оператор 11.13.3.
Для pantask-задачи создаю и использую свою панель с кнопками. Как и положено, при обращении в EnableAction определяется активность каждой кнопки с учётом своего внутреннего состояния; чтобы было понятнее - есть флаг доступности некоего сервера, при наличии которого ряд действий, привязанных к кнопкам, становится доступным.
Нюанс в том, что этот флаг появляется асинхронно, при получении ответа от сервера, а активность кнопок запрашивается ГИСом при перерисовке окна либо при различных пользовательских действиях.
Как следствие, получается некрасивый эффект - задача запускается с неактивными по-умолчанию кнопками (что и логично, т.к. доступность сервера не определена). Далее в какой-то момент асинхронно появляется информация о доступности сервера, выставляется соответствующий флаг, используемый в EnableAction, но пока пользователь что-нибудь не сделает (сдвинет окно ГИС, ткнёт в карту или в меню), кнопки остаются неактивными (т.к. ГИС не обращается в EnableAction). Пользователь, естественно, необходимости таких телодвижений не рад.
Отсюда, собственно, вопрос - как можно программно (без участия пользователя) из pantask-задачи в нужный момент актуализировать активность кнопок своей панели?
Да, чтобы не тратить время на обсуждение моей реализации EnableAction - после того, как пользователь что-нибудь пошевелил и состояние кнопок на экране актуализировалось, последующие переключения состояний, управляемые действиями пользователя, проходят без каких-либо проблем; механизм был давно опробован и обкатан ещё на МСВС. Проблема возникла именно при появлении внешних асинхронных управляющих сигналов.