Windows Ribbon Framework для Delphi

Я использую Windows Ribbon Framework для Delphi. В документации говорится, что команда TAB относится к классу команд типа TUICommandAnchor и что "эти классы команд не предоставляют никаких дополнительных свойств или событий базовому классу TUICommand". Тем не менее, я увидел, что TUICommandAnchor имеет свойство [TUICommandAnchor].TActionLink.Action, которое является таким же, как и для TUICommandAction, и служит для информирования имени функции обратного вызова, вызываемой при нажатии на нее. Я создал Action и ввел имя события в свойство TActionLink.Action, и он не работал. Кто-нибудь знает, есть ли какое-либо событие, которое запускается при нажатии вкладки на ленте?

С уважением.

1 ответ

Решение

К сожалению, Windows Ribbon Framework API очень щадит то, что он предоставляет приложению.

Например, вы не можете программно читать заголовки кнопок ленты, используя свойство "Заголовок" из абстрактного базового класса. С другой стороны, он без проблем устанавливает эти свойства из вашего приложения. Из того, что я испытал до сих пор, это похоже на события. Вы не узнаете, что вкладка изменилась, так как соответствующий интерфейсный метод IUICommandHandler::Execute никогда не выполняется API. Это связано не с реализацией Delphi, а с самим API.

В статье MSDN о вкладках также ничего не говорится о методе execute:

http://msdn.microsoft.com/en-us/library/windows/desktop/dd940507(v=vs.85).aspx

В конце я думаю, что нет никакого чистого способа или, по крайней мере, никакого способа напрямую использовать API для получения уведомлений о событиях смены вкладок.

Другие вопросы по тегам