...я не знаю, когда вы выполняете 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]