Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Работа с временем


Автор: Гость_DiMa 27.6.2005, 14:29
Привет всем, у меня вопрос .Как каждую секунду отнимать от времени в формате hh:mm:ss
по одной секунде и выводить то, что получилось на экран в том же формате (hh:mm:ss).
Учитывая то, что если секунд будет < 0, то, соответственно от mm отнимается 1, а ss
присваивается 59 (то же самое с часами и минутами)

Автор: Albinos_x 27.6.2005, 14:42
смотри FAQ, работа со временем

Автор: Poseidon 27.6.2005, 17:05
Цитата(Albinos_x @ 27.6.2005, 14:42)
смотри FAQ, работа со временем
http://forum.vingrad.ru/index.php?act=module&module=vingradfaq§ion=576


Цитата
Как каждую секунду отнимать от времени в формате hh:mm:ss
по одной секунде и выводить то, что получилось на экран в том же формате
Если хочешь делать это каждую секунду, то без таймера (TTimer, вкладка System) не обойтись.
Ставишь Enabled у таймера в False и пишешь.
Код
{...}
var
  Form1: TForm1;
  STime: TTime; // начальное время

{...}

procedure TForm1.Button1Click(Sender: TObject);
begin
STime:= StrToTime('12:00:00'); // присваиваем начальное значение
Timer1.Enabled:= True; // запускаем таймер
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
STime:= STime - StrToTime('00:00:01'); // отнимаем секунду
Form1.Canvas.TextOut(10,10, TimeToStr(Stime)); // выводим результат
end;
Как видно на форме должн быть TTutton и TTimer.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)