Alegun, при таком коде будет потихоньку расползаться, т.к. TTimer точность имеет никакую. Я бы сделал примерно так:
Код:
type
TForm1 = class(TForm)
...
private
SystemInitTime : TDateTime;
MyInitTime : TDateTime;
end;
...
// Начинаем считать
procedure TForm1.Button1Click(Sender : TObject);
begin
MyInitTime := StrToTime(Edit1.Text);
SystemInitTime := Now;
Timer1.Enabled := True;
end;
// собс-но изменение значения
// вычисляем разницу системного времени между сейчас и началом отсчета и
// Добавляем ее к стартовому значению
procedure TForm1.Timer1Timer(Sender : TObject);
var
B : TDateTime;
begin
Timer1.Enabled := False;
Try
B := Now - SystemInitTime;
B := B + MyInitTime;
Edit1.Text := TimeToStr(B);
Finally
Timer1.Enabled := True;
End;
end;