Стандартный таймер
Значение стандартного таймера – целое 32-разрядное число миллисекунд. т.е. максимальное значение составляет (232 - 1) мс = t#49d17h02m47s295ms, после чего таймер начинает новый цикл отсчета с 0 (т.н. переполнение таймера). При переполнении разность timeN()-timeN-1() отрицательна (N – номер цикла, на котором возникло переполнение). Для корректного вычисления длины временного интервала (что требуется, например, при интегрировании) нужно использовать предварительный перевод значений функции time() в тип данных DWORD (см. Особенности битовых строк). Следующий код корректно вычисляет длительность цикла deltaT:
var deltaT, T_current, T_last:TIME; end_var
T_current:=time();
deltaT:=dword_to_time(time_to_dword(T_current)-time_to_dword(T_last));
T_last:=T_current;