![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Пример: 
		
	
		
		
		
		
		
	
		
		
	
	
	Я самостоятельно в edit вбиваю нужное мне время и по нажатию на кнопку это время начинает идти самостоятельно. не используя системное время.!!  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Инкрементом. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
  | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Цитата: 
	
   А искать в интернет мне лень) | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Можно и чисто по-ламерски, последовательным преобразованием 
		
	
		
		
		
		
			
		
		
		
		
		
			Код: 
	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; Последний раз редактировалось Alegun, 21.06.2017 в 22:08.  | 
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
 
Daniil (22.06.2017)
  | ||
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 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; | 
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 Немного не так, есть время в edit1.Text:=(''TimeToStr(now) текущее время, время в edit1 отнимается или прибавляется к времени которое я указываю самостоятельно в edit2, получая ответ нужно начать отсчет от того времени которое получилось, нужно заставить те числа которые в ответе, продолжить идти. например:точное время 08:00:00- 01:00:00 отнимаю один час, получаем ответ в edit2=07:00:00 (вот как раз ответ и нужно заставить отсчитывать время дальше)  | 
| 
		 
			 
			#8  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
  | 
| 
		 
			 
			#9  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Стоп, заданиё: 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Цитата: 
	
  | 
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
 
Daniil (22.06.2017)
  | ||
| 
		 
			 
			#10  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
   и отсчет шел с нулей, в место нулей создал строковую переменную в которую записывался результат сложения действий с временем, переменную присвоил edit1!! Вообщем пример пригодился он рабочий!! СПАСИБО!! |