Можно и чисто по-ламерски, последовательным преобразованием
Код:
function itm(ds: string): string;
var
hour, min, sec: integer;
begin
hour:= StrToInt(ds[1] + ds[2]);
min:= StrToInt(ds[4] + ds[5]);
sec:= StrToInt(ds[7] + ds[8]) + 1;
if sec > 59 then
begin
sec:= 0;
Inc(min);
end;
if min > 59 then
begin
min:= 0;
Inc(hour);
end;
if hour > 23 then hour:= 0;
Result:= FormatDateTime('hh:mm:ss', EncodeTime(hour, min, sec, 0));
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Edit1.Text:= itm(Edit1.Text);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:= '00:00:00';
Timer1.Interval:= 1000;
Timer1.Enabled:= true;
end;
З.Ы. Читал топик по-диагонали, не учёл сути вопроса, если через TimeToStr, то тогда можно так
Код:
var
tm: TDateTime;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
tm:= tm + 1/(24*3600);
Edit1.Text:= TimeToStr(tm);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:= '0:00:00';
tm:= StrToTime(Edit1.Text);
Timer1.Interval:= 1000;
Timer1.Enabled:= true;
end;