Показать сообщение отдельно
Старый 27.04.2006, 12:06   #3  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 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;
    }
}
и заключается фигня в том, что возвращаемое значение DWORD GetTickCount() преобразуется в int (со знаком), в частности, на моей рабочей станции с uptime'ом чуть меньше месяца это значение получается равным -1786893875, а prevTime в самом начале работы равен 0, т.е. заведомо больше curTime в данной ситуации. Как следствие, form.task (#TaskUpdate) в этом методе при таких обстоятельствах никогда не вызывается, только градусник ползет...