Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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

icq: 446843180
skype: phoenix_proger
По умолчанию

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

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

skype: Wicort
По умолчанию

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

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

Код:

функция батон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
Сообщений: 23,882
Репутация: 5228
По умолчанию

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

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

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

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

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

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

Тут все просто:
кидаешь на фому: 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,006
Репутация: 3402

icq: 446843180
skype: phoenix_proger
По умолчанию

Цитата:
Сообщение от 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)хранить число как строку не оптимально.
__________________
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


08:35.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru