
Сообщение от
GoodLuck
Добрый день!
Есть главная визуализация Visualisation, на ней элемент Набор вкладок (3 вкладки, соответственно, на каждой по визуализации: Visu1, Visu2, Visu3). Переменная VisuElems.CURRENTVISU в любом случае, независимо от того, какая вкладка, принимает значение 'Visualisation'.
Существует ли способ из программы узнать, какая вкладка активна? Без использования переменной-переключателя.
Добрый день.
Для начала потребуется получить контекст клиента (pClientData) - см. этот пример:
https://ftp.owen.ru/CoDeSys3/21_Exam...projectarchive
После этого в программе:
Код:
VAR
itfFrameManager: VisuElems.VisuElemBase.IFrameManager;
aiCurrentFrameIndex: ARRAY [1..VISU_MAX_NUMBER_OF_CLIENTS] OF INT; // индексы текущих экранов фреймов для всех клиентов
END_VAR
itfFrameManager := VisuElems.VisuElemBase.g_VisuManager.GetFrameManager();
FOR := 1 TO VISU_MAX_NUMBER_OF_CLIENTS DO
aiCurrentFrameIndex[i] := itfFrameManager.GetSelectedVisu('MyVisu.MyFrameName', apClientData[i]);
// MyVisu - название экрана, на котором расположен фрейм
// MyFrameName - имя элемента, заданное в параметра фрейма (первый параметр в списке)
// apClienData - массив с контекстами клиентов
END_FOR
Если у вас используется VisuElems.CURRENTVISU - то контексты клиентов должны совпадать, так что достаточно работать с одним из них.