|
03.10.2020, 07:59 | #1 |
Участник
|
Изменил код с учетом добавленного метода getCount и стало по другому (!):
X++: { Counter currRow; Counter strFrom = 1, strTo = 4; RunbaseProgress progress = new RunbaseProgress(); #AviFiles void progressUpdate() { str percent = strFmt("%1%", decRound((progress.getCount() / progress.getTotal()) * 100, 2)); progress.setText(strfmt("@SYS66083", progress.getCount(), progress.getTotal(), percent)); progress.incCount(); } ; progress.setCaption("Импорт"); progress.setAnimation(#AviUpdate); progress.setTotal(strTo - strFrom + 1); startLengthyOperation(); for (currRow = strFrom; currRow <= strTo; currRow++) { progressUpdate(); sleep(2000); } endLengthyOperation(); } С этим кодом теперь хотя бы показывает корректно полоску прогресс бара: Т.е. 1 - 25%, 2 - 50%, 3 - 75%. 4 шаг не показывает. Похоже тут ничего поделать нельзя. Последний раз редактировалось oleggy; 03.10.2020 в 09:21. |
|
03.10.2020, 11:55 | #2 |
Участник
|
Цитата:
Если не получается написать метод который вам посоветовал mazzy в пункте 5, то вам проще что-нить убрать - или setText или полоску движка. Я, в случае если хочу в прогрессе уведомить о начале этапа многоэтапной обработки(ну предположим обработка по месяцам) - не стесняюсь, пишу update(true). Если у вас такой же случай, то тоже пишите. А если итераций сотни+, то никто не заметить в движке возможную мелкую несогласованность) |
|