Создание условного "Пожалуйста, подождите..." Окно сообщения
В следующем примере показано, как создать окно условного сообщения, которое отображается и предупреждает пользователя о том, что фоновая задача по-прежнему выполняется всякий раз, когда пользователь преждевременно активирует отображаемый элемент управления.
В примере также показано, как spawnWaitDialog ControlEvent обычно можно использовать для защиты элемента управления, который запускает действие, зависящее от завершения фоновой задачи.
В этом примере в процессе установки для пользователя отображается диалоговое окно выбора , содержащее три элемента управления с кнопками "Установить сейчас", "Далее" и "Стоимость диска ". Однако установщик также выполняет задачу затрат на дисковое пространство в фоновом режиме при отображении этого диалогового окна. Автор хочет защитить эти кнопки от активации и хочет, чтобы окно сообщения "Подождите", если пользователь нажимает любую из кнопок до завершения затрат. Автор также хочет, чтобы это окно сообщения содержало кнопку Отмена и исчезало сразу после завершения фоновой задачи.
Отображение диалогового окна с запросом на ожидание завершения затрат на фоновый диск
- Используйте возможности разработки установщика, чтобы добавить новое модальное диалоговое окно с именем WaitForCosting в таблицу Dialog. В диалоговом окне должна отображаться текстовая строка с текстом "Подождите, пока затраты на дисковое пространство будут завершены".
- Добавьте в это диалоговое окно один элемент управления "Кнопка" с меткой "Отмена", создав его в таблице Control.
- Свяжите кнопку Отмена нажатия с действием ControlEvent, которое закрывает диалоговое окно WaitForCosting путем создания endDialog ControlEvent в таблице ControlEvent. Задайте для аргумента события EndDialog Control значение Exit.
- Свяжите элемент управления SpawnWaitDialogEvent с существующими элементами управления "Установить сейчас", "Далее" и "Стоимость диска", отображаемыми в диалоговом окне выбора. Задайте аргумент этого элемента ControlEvent в таблице ControlEvent как диалоговое окно WaitForCosting и задайте выражение в столбце Условие таблицы следующим образом: CostingComplete =1.