Коллеги, добрый день!
Подскажите, пожалуйста, как можно открыть всплывающее окно когда некий тэг типа BOOL переходит из нуля в единицу? Что-то сам никак не раскопал...
Коллеги, добрый день!
Подскажите, пожалуйста, как можно открыть всплывающее окно когда некий тэг типа BOOL переходит из нуля в единицу? Что-то сам никак не раскопал...
Я сделал открытие всплывающего окна через механизм "Триггер окна", все работает. Но у этого механизма есть недостаток - чтобы он работал, должно быть открыто окно внутри которого прописан триггер. В моем случае я вовсе не уверен что всегда будет так. Поэтому прошу подсказать более универсальное решение
Последний раз редактировалось Hemann; 07.05.2023 в 10:54.
И еще прошу подсказать, как можно отслеживать состояние окна (открыто, закрыто)? Что-то событий "Открытие окна" и "Закрытие окна" я не нахожу...
Выделяете нужное окно: Легенда -> Вкладка 'События' -> Слева (+)
Спасибо! Только где тут события "Открытие окна" и "Закрытие окна" (или их аналоги)?
Для форума.png
Эти события есть в версии MS4D 1.3, в версии 1.3.1.31444 точно есть. По умолчанию они скрыты, добавляются ч/з "+".
Для форума.png
"Триггер окна" можно установить на главное окно, которое, обычно, открыто всегда. Если есть разграничение по ролям (например: диспетчер, оператор) и у каждой роли свое окно, и всплывающее окно необходимо для каждой роли, то "Триггер окна" нужно установить на каждое главное окно роли. Если есть окна, которые открываются в новой вкладке браузера, то также необходим этот триггер (при условии, что там нужно "Всплывающее окно"). И не забываем, что триггер необходимо сбросить, например, ч/з событие "Закрыть окно" или иным способом, в зависимости от логики.
Другие способы есть, но несколько сложнее, нужно использовать программу, которая в результате также реализует триггер. Например, вместо "Всплывающего окна" использовать обычное окно и управлять его видимостью ч/з параметр. Есть нюанс, у окна не будет "Drag-and-drop".
Спасибо! Но, опять же, есть еще нюанс. Если всплывающее окно открыто, а триггер сработает снова, то окно закрывается. И, соответственно, нужно как-то контролировать "открытость" окна. Уточню, что пока что разработку веду в версии 1.2. Ставил 1.3, долго плевался, и вынужден был вернуться на 1.2
Последний раз редактировалось Hemann; 10.05.2023 в 14:55.
Нет. Окно не закроется. Или у Вас условие такое? Триггер будет работать только на открытие "Всплывающего окна". Если некий тэг перешел в состояние 'True', то сработал триггер, открылось "Всплывающее окно". Если тэг перешел обратно в 'False', триггер сбросился, но окно при этом остается открытым. Даже, если тэг снова перейдет в 'True', а потом снова в 'False', окно также будет открытым, т.к. данный триггер работает только на открытие "Всплывающего окна". Закрыть окно можно ч/з другой триггер, программу, (х) в интерфейсе, отдельную кнопку. Но при закрытии окна необходимо учитывать состояние тэга. Если он в 'True', то по логике окно закрывать нельзя, иначе оно не откроется до следующего срабатывания триггера. Разумеется, если это необходимо по условию. В версии MS4D 1.2 событие клика на (х), т.е. обычное закрытие "Всплывающего окна", отследить нельзя, но можно отключить этот (х) в действиях "Открыть всплывающее окно" -> "Разрешить закрытие", установить 'False'. А на замену можно разместить в окне кнопку / текст / что-либо еще, повесить событие клика мыши, в действиях выбрать "Закрыть окно" и условие закрытия, при котором тэг находится в состоянии 'False'.
Может мы говорим о разных механизмах, но у меня повторное срабатывание триггера окна закрывает открытое. В прикреплении пробный проект, с которым я "играюсь". Кнопка "Управление_картинкой_1" пока отключена от открывания окон.