Цитата:
Сообщение от
Lucky13
Так то два окна - progress и infolog, а то одно
И в самом деле...
И все-таки меня удивляют две вещи:
1. это конечно же общие таблицы.
2. то, что вы так настойчиво хотите сделать ОДНО окно.
Вы никогда не делали прогресс-бар где-то в нутрях расчетов? Т.е. есть общий процесс, который сам по себе отображает какой-то прогресс. А внутри каким-нибудь побочным классом делается расчет какой-нибудь циферки, который в свою очередь требует прогресс-бара.
Если будет ОДНО окно, то нужно протаскивать ссылку на него до самых внутренних методов и сторонних классов. А стандарт здорово облегчает жизнь. Достаточно создать новый прогресс, а стандарт сам прилепит к существующему окошку.
Неужели никогда не делали?
Ну, что-нибудь в виде
X++:
static void Job1(Args _args)
{
SysOperationProgress progress1;
SysOperationProgress progress2;
int i;
int total
;
progress1 = SysOperationProgress::newGeneral('','',100);
progress1.setText('Задача 1');
progress1.update(true); // принудительно заставляем показать окно
sleep(1000); // происходит какая-то длительная операция
progress1.setCount(100); // 100% :)
progress1.update(true); // принудительно заставляем показать окно
total = 100000;
progress2 = SysOperationProgress::newGeneral('','',total);
progress2.setText('Задача 2');
progress2.update(true); // принудительно заставляем показать окно
for(i=0; i<total; ++i)
{
progress2.incCount();
}
progress2.update(true); // принудительно заставляем показать окно
pause;
}
Только progress1 и progress2 находятся в разных методах и совершенно ничего не знают друг о друге...