05.12.2001, 14:09 | #1 |
Administrator
|
<h3>HB_Tutorial_LongOperation - форма и класс для работы с длительными операциями</h3><h4>Описание</h4>Проект HB_LongOperation служит основой для создания пользовательских интерфейсов для работы с продолжительными операциями, такими как поиск, например. При этом операция делится на кусочки, "кванты", которые пооследовательно выполняются. Выполнение операции можно приостановить, продолджить или прекратить. Доступна статистика.<h4>Состав проекта</h4>Проект содержит две формы и класс.
<b>Класс HB_LongOperation</b> Класс содержит в себе методы для обработки интерфейса и выполнения работы. Методы GetPercent, GetPerfoance, GetTimeEstimation, GetTimeTotal, GetTimeWork предоставляют информацию о текущих настройках выполнения работы и о размере выполненного задания. Методы onStart, onStop, onPause, onResume должны вызываться из интерфейсной формы при нажатии соответствующих кнопок. <b>Формы HB_LongOperationForm и HB_LongOperationFormLight</b> <center></center> Эти формы являются примерами использования класса HB_LongOperation. Форма HB_LongOperationFormLight - самый простой пример. В форме HB_LongOperationForm показано использование всех возможностей класса HB_LongOperation. Для работы с калссом формы содержат методы Task_Start, Task_Resume, Task_Stop, Task_Done, Task_Work, Task_Update, в которых должны содержаться инструкции, относящиеся к выполнению работы. <center></center> Детально назначение всех методов описано в комментариях в их коде. <p align = right><i><a href = "mailto:roman@happybaby.ru">Роман Кошелев</a></i></p> |
|
26.04.2002, 14:23 | #2 |
Продавец игрушек
|
Вторая версия.
Добавлены кое-какие поля и статус-строка.
Пример использования: http://www.axforum.info/forums/showt...=&threadid=700
__________________
С уважением, Роман Кошелев. |
|
27.04.2006, 12:06 | #3 |
Участник
|
Не обонвляется прогресс при большом uptime'е машины
Цитата:
Сообщение от Роман Кошелев
Добавлены кое-какие поля и статус-строка.
Единственная фигня, с которой я столкнулся, - это обновление информации о ходе работы. Фигня кроется в методе HB_LongOperation::UpdateInterface() X++: private void UpdateInterface(boolean bUpdateCtrls=true) { int curTime = WinApi::getTickCount(); // ... if (curTime-prevTime>100) { form.task (#TaskUpdate); prevTime = curTime; } } |
|