В статье 📃Проведение лотерейного розыгрыша на Power Apps рассматривалось применение двойного таймера. Сейчас хотелось бы акцентировать внимание на применении таймера. Один из случаев, когда без него не обойтись, - это вынужденная эмуляция загрузки компонентов и их содержимого (особенно различных списков для компонентов, пользователей из Office365 и т.д.). Когда ваше Power APPS приложение достаточно "жирное", то прогрузка всех элементов в браузере требует времени. Эмуляция загрузки позволит создать вынужденную паузу, а для пользователя приложения это всего лишь пауза в виде наблюдения ползущей полоски прогресс-бара (progressbar
). Давайте правильно опишем переменные для таймера.
Задача решается достаточно просто. Сначала надо создать переменную boolean типа. Для примера пусть это будет vDelay
:
Set(vDelay,false)
Я обычно прописывал такую инициализацию в блок загрузки приложения - App
на событие OnStart
Далее, разместим 3 компонента для наглядности: Timer
, ProgressBar
, 2 кнопки Button
(Start, Stop). А теперь остается прописать свойства и методы. Для progressbar
Max выставляем значение равное желаемому времени эмуляции загрузки, скажем 5 сек. (значение 5000). Значение Duration
(длительность) для Timer
выставляем также 5000.
Далее для кнопки Start на OnSelect
указываем:
UpdateContext({vDelay:true})
А для кнопки Stop на OnSelect
указываем:
UpdateContext({vDelay:false})
Это минимум, который нужно сделать. Далее по желанию, чтобы по окончанию работы таймер скрыть ProgressBar
, то на свойство Visible
укажите переменную vDelay
. Тоже самое можно сделать с формой, выставив ей такое же свойство. А Timer
можно скрыть с экрана визуализации (Visible
в false
), т.к. этот компонент в нашем случае не нужен на формах приложения.
У Timer
есть свои дополнительные возможности для триггерных событий (например, OnTimerStart
, OnTimerEnd) где вы дополнительно можете что-то прописать в части каких-то реакций на активную фазу работы таймера.