Советы по Delphi

         

Разница во времени


...я не знаю, когда вы выполняете TimeTaken.. Вы делали какую-нибудь паузу перед запуском TimeTaken после выполнения SetTimeStart? Если не делали, то удивительно, что tt=Now.. Я пробовал ваш код с несколькими незначительными изменениями... и я всегда получал разницу между Now и TimeStart. Но я объявляю tt как TDateTime, а не как Double, и использую событие OnTimer для запуска процедуры TimeTaken. Вы можете проверить это, запустив пример, приведенный ниже.

    {*******************************************************************
ФАЙЛ : TIMEEX.PAS ПРИМЕЧАНИЕ : Создайте форму, содержащую 1 TTimer и 6 TLabel. Установите событие OnTimer у TTimer на TForm.Timer1.Timer ********************************************************************} unit Time;

interface

uses

SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,

Forms, Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm) Timer1: TTimer; Label1: TLabel;           {Caption : 'Старт :'} Label2: TLabel; Label3: TLabel;           {Caption : 'Время : '} Label4: TLabel; Label5: TLabel;           {Caption : 'Истекшее время:'} Label6: TLabel; procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } TimeStart : TDateTime; public { Public declarations } end;
var
Form1: TForm1;
implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
TimeStart := Now; Label2.Caption := TimeToStr(Now); end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
tt : TDateTime; begin
Label4.Caption := TimeToStr(Now); tt:= Now - TimeStart; Label6.Caption:= TimeToStr(tt); end;

end.

[001413]



Содержание раздела