Цитата Sidril:
Большое спасибо. вроде примерно понял.
Вы привели пример File Progress
Там также есть Detail и Gradual progress. Неплохо бы узнать чем они отличаются.
В моём установщике несколько компонентов, которые устанавливаются по желанию клиента. Т.е несколько секций в скрипте имеется... Как в этом случае сохранить адекватность продвижения прогресс бара, если заранее не известно будет ли клиент устанавливать тот или иной компонент или нет. Первая секция обязательна к установке остальные на выбор.
На примере двух секций.
читать дальше »
;__________________________________________________
Section "Ключевые составляющие" Sec1
SectionIn RO
RealProgress::FileProgress /NOUNLOAD 0
Sleep 300 ;[блок команд]
RealProgress::FileProgress /NOUNLOAD 20 ;установка прогресса на 20%.
Sleep 300 ;[блок команд]
RealProgress::FileProgress /NOUNLOAD 40
Sleep 300 ;[блок команд]
RealProgress::AddProgress /NOUNLOAD 60
Sleep 300 ;[блок команд]
RealProgress::AddProgress /NOUNLOAD 80
Sleep 300 ;[блок команд]
RealProgress::AddProgress /NOUNLOAD 100 ;установка прогресса на 100%.
SectionEnd
Section "Авторские обновления" Sec2
Sleep 300 ;[блок команд]
RealProgress::AddProgress /NOUNLOAD ??? ;какой параметр прогресса должен быть?
SectionEnd
;__________________________________________________
Какой параметр прогресса должен быть в случае если клиент захочет установить "Авторские обновления"? По скрипту выходит что после выполнения первой секции прогресс-бар будет на 100%, а установка не завершится, т.к пойдёт выполнения следующей секции. С другой стороны - если клиент не захочет устанавливать "Авторские обновления", то тогда прогресс 100 в первой секции правильный... Довольно сумбурная схема... Как бы так сделать чтобы волков накормить, и овец сохранить? »
|
Решил вот тоже побаловаться с этим плагинчиком для реального прогресса. По командам Вашего примера выходит, что на команде RealProgress::AddProgress /NOUNLOAD 60 прогресс уже будет на 100%, ибо:
Могу Вам сказать, что команда RealProgress::AddProgress /NOUNLOAD XX отвечает не за установление прогресса на определённом проценте, а за
добавление процентов прогресса.
Т.е Вы ставите скажем RealProgress::AddProgress /NOUNLOAD 20 (где 20 - прибавляемый процент). Далее ставите RealProgress::AddProgress /NOUNLOAD 40, прогресс-бар будет на уровне 60%, а не 40%, т.к стартовую величину задала предыдущая команда. 20+40=60.
Команда же RealProgress::FileProgress XX ориентируется на постепенное продвижение до заданного параметра (XX - процент продвижения до которого двигается прогресс бар). Т.е скажем вы установили RealProgress::FileProgress 20. В момент установки (в зависимости от ваших команд) идёт извлечение файла, пока идёт это извлечение - индикатор прогресса постепенно продвигается до 20%.
А за установление прогресса на определённом проценте отвечает команда RealProgress::SetProgress /NOUNLOAD 10 (где 10 - процент прогресса). На любом этапе установки Вы можете выставить эту команду и прогресс бар будет заполнен на указанный вами процент.
Рекомендую грамотно смешивать эти возможности.
Если продуманно подойти, то прогресс-бар будет максимально реальным.
Ну а автору плагина (Afrow UK) большой респект.