Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2011, 15:37   #1
kotaina
Пользователь
 
Регистрация: 02.02.2011
Сообщений: 20
Счастье Как сделать таймер в Delphi?

Кто-нибудь знает как сделать таймер в Delphi?
kotaina вне форума Ответить с цитированием
Старый 23.06.2011, 15:44   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

есть компонент TTimer.
или что вы под таймером подразумеваете?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.06.2011, 15:48   #3
kotaina
Пользователь
 
Регистрация: 02.02.2011
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
есть компонент TTimer.
или что вы под таймером подразумеваете?
Я имею ввиду самый обычный отсчёт времени до нуля.
kotaina вне форума Ответить с цитированием
Старый 23.06.2011, 16:13   #4
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

а погуглить?
Например, так
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Старый 23.06.2011, 16:49   #5
Sna1L
Форумчанин
 
Аватар для Sna1L
 
Регистрация: 15.03.2011
Сообщений: 272
По умолчанию

Можно сделать так: два таймера.
Один ведет отсчет, а другой раз в секунду записывает время.

Код:
функция батон1.клик
бла-бла
timer1.interval:=strtoint(edit1.text);
timer2.interval:=1000;
timer1.enabled:=true;
timer2.enabled:=true;
x:=timer1.interval div 1000;//секунды
end;

функция timer2timer
бла-бла
label1.caption:=inttostr(x);
dec(x);
end;
Цитата:
Сообщение от Wicort Посмотреть сообщение
а погуглить?
Например, так
оффтоп.
кстати мой таймер проще :D

Последний раз редактировалось Stilet; 17.07.2013 в 08:15.
Sna1L вне форума Ответить с цитированием
Старый 23.06.2011, 16:56   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Можно сделать так: два таймера.
Один ведет отсчет, а другой раз в секунду записывает время.
Тогда уже три: А третий раз в секунду запускает 1-й и останавливает!
Должен же кто-то следить за этими двумя контролами!

Ну, если серьёзно, тут ОДНОГО таймера более чем достаточно.
Он и считает и время записывает и ещё что надо делать - будет делать...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.06.2011, 17:05   #7
Sna1L
Форумчанин
 
Аватар для Sna1L
 
Регистрация: 15.03.2011
Сообщений: 272
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Тогда уже три: А третий раз в секунду запускает 1-й и останавливает!
Должен же кто-то следить за этими двумя контролами!

Ну, если серьёзно, тут ОДНОГО таймера более чем достаточно.
Он и считает и время записывает и ещё что надо делать - будет делать...
с одним правильней, с двумя(по-моему) наглядней, а три - это жадность. Хотя кому как

Последний раз редактировалось Sna1L; 23.06.2011 в 17:10.
Sna1L вне форума Ответить с цитированием
Старый 24.06.2011, 10:32   #8
tsar_
Форумчанин
 
Аватар для tsar_
 
Регистрация: 06.01.2011
Сообщений: 369
По умолчанию

Также учитывайте, что компонент Timer отсчитывает время приближенно. Это можно увидеть, если оставить его поработать на длительное время и сравнить его показания с часами. В этом случае лучше привязываться, скажем, к часикам BIOS. Если же вас точность не интересует или отмеряете малые промежутки времени - один таймер выше крыши.
Программирую по необходимости
tsar_ вне форума Ответить с цитированием
Старый 16.07.2013, 23:14   #9
prosto me
Новичок
Джуниор
 
Регистрация: 16.07.2013
Сообщений: 1
По умолчанию

Тут все просто:
кидаешь на фому: 2label,1timer...И пишешь на таймере:
Код:
r:string;
begin
os:=strtoint(label1.caption);
dec(os);
label1.caption:=inttostr(os);
h:=os div 3600;
os:=os-h*3600;
m:=os div 60;
s:=os mod 60;
r:='time: [ ';
if h<10 then r:=r+'0'+inttostr(h)
else r:=r+inttostr(h);
r:=r+' : ';
if m<10 then r:=r+'0'+inttostr(m)
else r:=r+inttostr(m);
r:=r+' : ';
if s<10 then r:=r+'0'+inttostr(s)
else r:=r+inttostr(s);
r:=r+' ]';
label2.caption:=r;
if os=1 then begin
timer1.enabled:=false;
//тут пишешь свои действия, когда закончится. //время
end;
end;

...Делаешь label1 невидимым и пишешь в него целое количество секунд, например если твой таймер нужен на 1 час, в label1 пишешь 3600, а все время до конца будет отображаться в label2...

Последний раз редактировалось Stilet; 17.07.2013 в 08:18.
prosto me вне форума Ответить с цитированием
Старый 16.07.2013, 23:23   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от prosto me Посмотреть сообщение
Тут все просто:
кидаешь на фому: 2label,1timer...И пишешь на таймере:
var s,m,h,os:integer;
r:string;
begin
os:=strtoint(label1.caption);
dec(os);
label1.caption:=inttostr(os);
h:=os div 3600;
os:=os-h*3600;
m:=os div 60;
s:=os mod 60;
r:='time: [ ';
if h<10 then r:=r+'0'+inttostr(h)
else r:=r+inttostr(h);
r:=r+' : ';
if m<10 then r:=r+'0'+inttostr(m)
else r:=r+inttostr(m);
r:=r+' : ';
if s<10 then r:=r+'0'+inttostr(s)
else r:=r+inttostr(s);
r:=r+' ]';
label2.caption:=r;
if os=1 then begin
timer1.enabled:=false;
//тут пишешь свои действия, когда закончится. //время
end;
end;


...Делаешь label1 невидимым и пишешь в него целое количество секунд, например если твой таймер нужен на 1 час, в label1 пишешь 3600, а все время до конца будет отображаться в label2...
1)теме два года.
2)хранить число как строку не оптимально.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать? таймер, формы SIlvercross Общие вопросы Delphi 2 20.12.2010 19:35
Сделать таймер из Label и Timer fezilk25 Общие вопросы Delphi 12 20.11.2010 00:53
Сделать таймер bookkc Помощь студентам 4 16.10.2010 19:57
Как сделать сетку в Delphi? -HunteR- Общие вопросы Delphi 2 14.02.2009 17:25
Как сделать что-бы Таймер срабатывал только один раз? Greg Компоненты Delphi 11 16.12.2006 01:25