Меню сайта
Мини-чат
Чтобы добавить сообщение, необходимо авторизоваться.
Главная » Статьи » Не стандартные примеры на Delphi » Алгоритмы

Переменная времени

Используйте переменную типа TDateTime.


    procedure TForm1.XXXXXXXClick(Sender: TObject);
var StartTime, EndTime, ElapsedTime :TDateTime;
begin
StartTime := Now;
{Здесь поместите свой код}
EndTime := Now;
ElapsedTime := EndTime - StartTime;
Label1.Caption := TimeToStr(ElapsedTime);
end;

{теперь все это в памяти, но в нашем случае это хорошее место. }
var
before,
after,
elapsed : TDateTime;
Ehour, Emin, Esec, Emsec : WORD;
...

before := now;

some_process();

after := now;
elapsed := after - before;

decodetime(elapsed, Ehour, Emin, Esec, Emsec);

теперь Ehour:Emin:Esec.Emsec будет содержать истекшее время.

Это то, что я хотел. fStartWhen содержит дату/время начала процесса. (fStartWhen := NOW). OneSecond - константа, определенная как 1/24/3600. (Да, эта программа может выполняться для нескольких дней. Но даже самый быстрый P5 может не справиться с большим количеством данных!)


    PROCEDURE        TformDBLoad.UpdateTime;
VAR        Delta        :TDateTime

BEGIN
fLastUpdate := NOW
IF ABS( fStartWhen - fLastUpdate ) < OneSecond THEN EXIT
Delta := fLastUpdate - fStartWhen
doElapsedTime.Caption := FORMAT( '%1. дней из %s',
[INT(Delta),FORMATDATETIME('hh:nn:ss', FRAC(Delta))] )
END
Категория: Алгоритмы | Добавил: DelphiAiX (28.04.2012)
Просмотров: 559 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]