Страницы: 1
RSS
Ribbon CustomUI не находит callBack функцию, Странное(?) поведение Ribbon CustomUI: теряются callBack функции, если активирована другая книга
 
Уже вторая "особенность" в поведении callBack функций Ribbon CustomUI.
Первую описывал здесь и до сих пор не нашел решения.

Вторая такая: если функция, вызываемая кнопкой в ленте через onAction, делает активной любую другую книгу, то после выполнения этой функции "теряются" все callBack функции, описанные в Ribbon CustomUI. В частности теряются getVisible для кнопок, что приводит к сообщениям типа "Не удается выполнить макрос такой-то. Возможно, этот макрос отсутствует в текущей книге, либо все макросы отключены", после чего, разумеется, все кнопки из кастомной ленты в моей книге пропадают. То есть похоже, что интерпретатор пытается искать коллбэки в активной книге, а не в той, которая содержит кастомную вкладку с кнопками и из которой вызывалась функция onAction.

Да, я могу в конце функции вызвать ThisWorkbook.Activate, но мне нужно после ее выполнения показать сообщение и сделать активной именно ту книгу, которая только что была создана. Пока не придумал ничего лучшего, кроме как вызывать активацию новой книги по таймеру через секунду, например, чтобы кнопки успели отрисоваться. Но это какой-то убогий способ.
Другие варианты обхода есть?
Изменено: dhead - 10.06.2024 11:45:12
 
Цитата
dhead написал:
а не в той, которая содержит кастомную вкладку с кнопками
то есть эта вкладка не в надстройке?
 
nilske, есть вкладка с idQ в надстройке и книга с вкладкой с таким же idQ. Так сделано, чтобы уникальные группы контролов каждой книги добавлялись в одну общую вкладку.
Книга со своей уникальной кнопкой из этой вкладки запускает процедуру, которая создает новую книгу. В ней, разумеется, нет никаких кастомных элементов. Все нужные коллбэки содержатся в той книге, из которой вызвана процедура по onActiion. На них есть ссылки в CustomUI той же книги. Но интерпретатор ищет эти коллбэки в книге активной и пришибает кнопки в книге вызывающей:)
 
dhead, может быть загвоздка в пространствах имён?
 
nilske,
Цитата
nilske написал:
может быть загвоздка в  пространствах имён ?
Какая? Всё всегда работает, как задумано, за исключением случая, описанного выше. Без активации новой книги (в которой вообще нет кастомной ленты) ничего не слетает -- вкладки и контролы всегда добавляются куда надо и работают, как им и положено.
Изменено: dhead - 10.06.2024 13:34:48
Страницы: 1
Наверх