В МРВ в пункте главного меню "Вид" есть подпункт "Всплывающие экраны". Что это за всплывающие экрны и как их создать? В проекте нужны дополнительные экраны свойств для управления насосами, клапанами, и.т.д. Я создал дополнительные слои, которые отображаются и скрываются нажатием на соответствующие кнопки. Эти слои как раз и создержат все элементы для управления объектами. Может при помощи всплывающий экранов это можно сделать изящнее?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Всплывающий экран - это экран, отображаемый в отдельном индивидуальном окне поверх основного экрана МРВ.
Posted by DreamWeaver (Участник № / Member № 1485) on :
А можно ли его закрыть при помощи ЭУ, который находится непосредственно на этом всплывающем экране? Нужно, чтобы по нажатию на кнопку "Закрыть", этот всплывающий экран закрывался.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Смотрите в справочной системе описание канала класса CALL с параметром Screen.
Posted by DreamWeaver (Участник № / Member № 1485) on :
Если записать в канал CALL значение 1, то экран исчезнет, но небольшая проблема заключается в том, что отображение/скрытие экрана происходит по пересчету канала, поэтому после нажатия кнопки "Закрыть" до фактического скрытия экрана проходит минимум 0,5 секунды, а иногда и 2 секунды. Можно ли это как-то побороть?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Только увеличив скорость пересчета данного канала.
Posted by DreamWeaver (Участник № / Member № 1485) on :
А какая максимальная она может быть? У меня в настройках канала стоит в поле "Единица измерения" - Цикл. Но цикл равен 550 мсек. Какую единицу измерения нужно поставить, чтобы канал пересчитывался как можно быстрее? Может "быстрый?"
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Нет, "быстрый" не надо. Уменьшайте цикл узла. Думаю, что 200 мс - вполне будет нормально для системы в целом. Хотя странно, что у Вас такие большие задержки при закрытии окна - обычно даже на 550 мс закрытие происходит очень быстро!
Posted by DreamWeaver (Участник № / Member № 1485) on :
Поставил 200 мс, но нельзя сказать что скрытие всплывающего окна стало происходить с меньшей задержкой (инога адоходит до секунды). При этом следуется отметить, что если отображать всплывающий экран также при помощи отсылки в канал значения 2, то также присутствует задержка в 1 секунду. Но если отображать при помощи "JumpToScreen", то экран отображается действительно мгновенно.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
У Вас посылка значения по нажатию или по отжатию производится?
Posted by DreamWeaver (Участник № / Member № 1485) on :
По нажатию конечно же
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Попробуйте каналу, вызывающему данный экран, выставить значение пересчета 1 сек.
Posted by Soyuz (Участник № / Member № 2028) on :
Здравствуйте. Стоит задача, грубо говоря, не разрешать показывать один всплывающий_экран_1, если виден всплывающий_экран_2, и наоборот. Так вот вопрос: можно ли както узнать виден ли экран?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Нет, узнать этого нельзя. Отображать только один всплывающий экран не получится. Можно попробывать сделать нечто подобное с помощью ГЭ "Ссылка на экран".
Posted by Вадик (Участник № / Member № 2963) on :
Вопрос следующий. В проэкте есть основной кадр (экран) и по нажатию на находящимся на нем кнопкам появляются всплывающие экраны. Можна ли сделать так дабы при открытом всплывающем экране основной был неактивен (недоступен для нажатий по элементах которые на нем расположены)
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Всплывающее окно для того и создано, чтобы иметь быстрый доступ к другим экраном. В Вашем случае можно при нажатии кнопки скрывать элементы управления (реализуется с помощью видимости слоев). Но в таком случае придется выполнять лишнее действие, чтобы элементы появились обратно.
Posted by Вадик (Участник № / Member № 2963) on :
Может я не правельно выразился что мне нужно. Можно расмотреть пример: при нажатии на ГЭ Кнопа выводится окно подтверждения, если это окно активно, то другие элементы приложения недоступны, именно так я хочу сделать с экранами.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Мы Вас поняли, но сделать этого не можем. Поэтому предложили альтернативный вариант.
Posted by Вадик (Участник № / Member № 2963) on :
благодарю за ответ
Posted by SerchenyaN (Участник № / Member № 2877) on :
У нас в узле NLL задействовано около 90 всплывающих экранов. Для всех экранов свойство "Показывать всплыв. окно при запуске" выставлено в False. При старте проекта резко начинает расти количество объектов GDI, используемых в данный момент rtcc.exe, и как только оно достигает 10000 (это является ограничением Windows), проект вываливается с ошибкой, так и не запустившись до конца. При этом пробовали ещё несколько раз запускать тот же узел на том же компьютере, и один раз он запустился, выдалась ошибка "Insufficient GDI_objects" и "Insufficient memory", но ТМ работал. Каким образом можно избежать пикового значения GDI и добиться нормального старта rtm кроме как удалением 20-30 всплывающих экранов?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Можно увеличить количество GDI, соответсвующая инструкция Вам передана.