Показать сообщение отдельно
Старый 21.10.2024, 12:19   #4  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,712 / 1201 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
progress.setTotal() - установка общего количества элементов. Можно это делать и в процессе работы

progress.setCount() - это установка количества выполненных шагов, если оно отлично от приращения 1 через progress.incCount(). Тоже бывает полезно

X++:
excelProgress.setTotal(totalRows, 2);  // Установить общее количество для полосы 2
excelProgress.setCount(0, 2);  // Установить количество пройденных шагов 0 для полосы 2
excelProgress.update(true);  // обновить картинку немедленно

while select inventTable
{
           excelProgress.setText(strFmt("Номенклатура %1", inventTable.ItemId));
           excelProgress.incCount(1,2);
}
Но, в общем случае, корректно изменить отображение оставшегося времени вряд ли получится. Это значение рассчитывается исходя из ранее выполненных шагов.

Ну, и так, для справки...

progress.update() - это обновление "картинки". Этот метод вызывается автоматически внутри метода incCount(), поэтому специально его вызывать не надо.

Обновление "картинки" делается с некоторой периодичностью, чтобы не тормозить процесс обработки. Но если "картинку" надо обновить "вот прям счаз", то вызывают метод update() с параметром true. В общем случае, такая необходимость возникает только при изменении настроек прогресса. Например, когда вызвали setTotal(). А внутри цикла это делать не надо.
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...