AIMP Forum
AIMP for Windows => Ошибки и замечания / Bugs => Skin Editor, Skin Engine => Обработано / Processed => Topic started by: D2NP on April 15, 2019, 18:46:08
-
Есть скрипт, выполнение скрипта связано с Visible окна:
Script.Handler <-> NewForm.Visible
При открытии или скрытии окна скрипт выполняется два раза. Так и должно быть?
Если выполнение повесить на Visibility контейнера, то скрипт выполняется как и ожидалось один раз:
Script.Handler <-> Container.Visibility
пример прикрепил
-
Похоже, это особенность именно хендлеров, если вместо них использовать скрипт. счётчики, то всё нормально. Возможно, хендлеры на подобний биндинг не рассчитаны..
Меня другое смутило: как скрипт-движок позволяет такие вольности:
FindObject('TextDisplayEx1').Set('Template', FindObject('TextDisplayEx1').Get('Template')+1);
к строке прибавляется число!
-
к строке прибавляется число!
Кажется автоматически преобразует Variant -> Double, во всяком случае, если в Template строковое значение, то скрипт выдаст: Could not convert variant of type (UnicodeString) into type (Double)
-
Есть скрипт, выполнение скрипта связано с Visible окна:
Script.Handler <-> NewForm.Visible
При открытии или скрытии окна скрипт выполняется два раза. Так и должно быть?
Если выполнение повесить на Visibility контейнера, то скрипт выполняется как и ожидалось один раз:
Script.Handler <-> Container.Visibility
пример прикрепил
Да, это нормально. Скрипт срабатывает каждый раз, когда вызывается обновление связи. Не зависимо от того, поменялось ли реально значение или нет.
Счетчик работает потому, что он на своей стороне делает проверку на изменение значения.