

Иногда требуется измерить время выполнения каких либо операций (участков кода) в среде Delphi. Я использую для этого нехитрый прием. Скажу сразу что подсмотрел код у одного разработчика и адаптировал его под свои цели, а потом решил сделать универсальную процедуру, для использования в разных приложениях.
Прежде всего необходимо написать и объявить следующую функцию:
function GetTimeInterval(TimeBegin, TimeEnd: TDateTime): string;
var
hour, min, sec, msec: word;
sh, sm, ss, sms: string;
begin
TimeBegin := TimeEnd - TimeBegin;
DecodeTime(TimeBegin, hour, min, sec, msec);
sh := IntToStr(hour);
sm := IntToStr(Min);
ss := IntToStr(Sec);
sms := IntToStr(MSec);
sh := copy('00', 1, 2 - length(sh)) + sh;
sm := copy('00', 1, 2 - length(sm)) + sm;
ss := copy('00', 1, 2 - length(ss)) + ss;
sms := copy('000', 1, 3 - length(sms)) + sms;
Result := sh + ':' + sm + ':' + ss + '.' + sms;
end;
Теперь, в том месте кода, где нам необходимо начать измерение времени вставляем — TimeBegin := Time, а в том, где это измерение необходимо закончить — TimeEnd := Time. Да, в той процедуре или функции, где необходимо измерять время, нужно объявить две переменные — TimeBegin, TimeEnd: TDateTime.
Примерно так:
procedure Название_вашей_процедуры(Sender: TObject);
var
//определяем переменные для измерения времени
TimeBegin, TimeEnd: TDateTime;
begin
TimeBegin := Time;
//здесь код, время выполнения которого необходимо измерить
TimeEnd := Time;
GetTimeInterval(TimeBegin, TimeEnd); {вернет время в строковом формате, которое можно
вывести на форму, сохранить итп. Формат вывода думаю без труда сможете настроить под себя}
end;
Данный способ конечно не претендует на сверхоригинальность, но гораздо более точнее простого таймера Delphi. При желании можно создать класс, определить свойства и методы и пользоваться.