![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Есть объект TTimer (таймер), соответственно время на таймере начинает капать с того момента, как
Код:
|
#2
|
||||
|
||||
![]() label1.caption:= timetostr(now);
|
#3
|
|||
|
|||
![]() Виноват, не пояснил: у меня таймер (Timer1) с интервалом 20 минут работает, поэтому ему на событие OnTime нельзя назначить, чтобы он собственное время работы в TimerLabel.Caption присваивал!
Сам только что допёр до такого способа: добавил на форму еще 1 таймер который уже работывает с интервалом в 1 секунду и, соответственно, на событие OnTimer я ему назначаю присвоение TimerLabel.Caption времени работы первого таймера. ![]() Код:
TimeToStr(Time) - этим мы выводим системное время, а мне нужно как-то время работы таймера1 с начала его запуска вывести. |
#4
|
|||
|
|||
![]() Сделай отсечку времени в момент начала работы таймера 1 и потом выводи разницу между запомненым и текущим временами.
Типа: Код:
|
#5
|
||||
|
||||
![]() TimeBegin := Now лучше задавать вместе с Timer1.Enble:= true
А для второго таймера - как lmikle сказал Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. Последний раз редактировалось Karsh, 25.03.2009 в 02:25. |
#6
|
|||
|
|||
![]() И опять же только что сам пришел к тому что надо вначале проги описать глобальную переменную StartTime типа TDateTime; присвоить ей системное время в момент включения первого таймера; В событии OnTimer второго таймера описать 2 переменные EndTime и ResultTime обе типа TDateTime; присвоить EndTime системное время на момент срабатывания второго таймера (т.е. каждую секунду); присвоить переменной ResultTime разницу: EndTime - StartTime, ну и естественно вывести всё это дело на нужный лейбл:
Код:
И тем не менее: Electronic_Arts,lmikle,Karsh спасибо! PS: Ночью мозг как-то тормозит (сначала спрашиваю а потом уже приходит в голову норм мысль и начинаю делать сам). |
#7
|
|||
|
|||
![]() Подскажите, а каким способом можно получить текущее системное время, переведённое в 24-часовой формат(подозреваю, что как-то с помощью функции FormatDateTime, но что-то не могу сообразить, как именно). И как сделать чтобы время работы таймера на капче лейбла выводилось выше 24-часов (не обнуляясь, в момент перехода с 24 на 0 часов).
|
#8
|
||||
|
||||
![]() Цитата:
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#9
|
|||
|
|||
![]() Цитата:
Знаю такой способ пока: проверять, если EndTime - StartTime = '00:00:00' то прибавлять к этому делу +24:00:00, но, думаю как-то это совсем "по-левому". |
#10
|
||||||||
|
||||||||
![]() Цитата:
Код:
Цитата:
Код:
_____________ P.S. Кстати, если посмотреть исходный код функции Now, то можно увидеть, что под Windows вызывается API-шная функция GetLocalTime, заполняющая структуру SYSTEMTIME с полями wHour, wMinute, wSecond и т.д. Так что если программа для Windows, то можно использовать прямо эту функцию, не пользуясь функцией Now: Код:
Последний раз редактировалось Nyctos Kasignete, 05.04.2009 в 18:39. |
#11
|
||||
|
||||
![]() Я такое делал, только у меня в обратную сторону к 00:00:00 считало, для вас адаптировал:
Код:
Код:
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#12
|
|||
|
|||
![]() Если кому интересно, привожу свой окончательный вариант
(Напомню, задача была поставлена следующая: отобразить время с момента включения таймера1 и динамически выводить его на лейбл1. Было реализованно следующим образом: добавляем таймер2 с interval = 1000 (1 сек), включаем этот таймер вместе с таймером1 и пишем ему в событие OnTimer: Код:
PS: В очередной раз, низкий поклон помогавшим! ![]() |