Показать сообщение отдельно
  #5  
Старый 21.06.2017, 21:29
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Можно и чисто по-ламерски, последовательным преобразованием
Код:
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;
Ответить с цитированием