| 
| 
 | Вопрос # 178/ вопрос решён / | 
 |  Какой метод компонента Timer1 позволяет вывести время суток в часах, минутах и секундах? 
|  |   Вопрос задала: Суслова Елена Владимировна (статус: Посетитель)Вопрос отправлен: 28 ноября 2006, 21:05
 Состояние вопроса: решён, ответов: 4.
 |  Ответ #1. Отвечает эксперт: Виталий Лещенко Здравствуйте, Суслова Елена Владимировна!Компонент TTimer предназначен немного для других целей. Он никуда не выводит текущее время, он может лишь выполнять некоторое событие периодически с заданным интервалом.
 Для получения текущего времени смотрите в сторону фнкции time
 
|  | Ответ отправил: Виталий Лещенко (статус: 4-ый класс)Время отправки: 28 ноября 2006, 21:39
 Оценка за ответ: 5
 |  Ответ #2. Отвечает эксперт: Geron Здравствуйте, Суслова Елена Владимировна!Нужно по событию прохождения времени таймера.
 (создаем caption для вывода времени)
 время caption1.caption:=timetostr(now);
 даты caption2.caption:=datatostr(now);
 
|  | Ответ отправил: Geron (статус: 1-ый класс)Время отправки: 28 ноября 2006, 21:44
 Оценка за ответ: 5
 |  Ответ #3. Отвечает эксперт: Alex Van Glukhman Здравствуйте, Суслова Елена Владимировна!
 Компонент TTimer предназначен для упрощённого вызова функций WinAPI SetTimer и KillTimer для упрощения работы с Message WM_TIMER
 У этого компонента есть property Enabled которое напрямую связано со свойством  Interval.
 Enabled:=true активирует TTimer и он вызывает событие OnTimer через промежутки времени заданные свойством Interval.
 Если Ваша задача выставить время в часах минутах и секундах для срабатывания таймера, то задача решается. В момент установки свойства Enabled:=true компонента TTimer получить текущее время вызвав функцию Time()если интервал задаётся в пределах суток или Now() если интервал выходит за пределы суток.  От времени срабатывания таймера в формате TDateTime или TTime необходимо вычесть текущее время и результат пересчитать в миллисекундах которые далее присваиваются свойству Interval. Только в этом случае существует небольшая погрешность на время вычисления данного алгогритма процесором.
 
 Удачи!
 
|  | Ответ отправил: Alex Van Glukhman (статус: 7-ой класс)Время отправки: 28 ноября 2006, 22:05
 Оценка за ответ: 5
 |  Ответ #4. Отвечает эксперт: Alexander A. Gribanov Никакой. Для получение времени и/или даты в произвольном виде идеально подходит функция FormatDateTime. В вашем случае будет что-то типа:s:=FormatDateTime('hh:mm:ss',now); // s: string;
 
|  | Ответ отправил: Alexander A. Gribanov (статус: 2-ой класс)Время отправки: 29 ноября 2006, 15:07
 Оценка за ответ: 5
 |  
 Мини-форум вопросаВсего сообщений: 0. 31 января 2011, 19:17: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5) Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |