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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2009, 15:19   #1
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию Запуск процедуры в конкретное время

Подскажите, пожалуйста...

Мне надо чтобы в определенное время (например 5 часов вечера) ежедневно создавался поток и выполнялось определенное действие..

Скажите, пожалуйста, как можно организовать его создание именно в определенное время?

У меня только одна идея, что сразу при запуске программы создавать поток, в нем каждую минуту проверять сколько времени и если 5 часов, то запускать выполнение дествия... Но получается, что оно постоянно будет грузить ресурсы...
yulia вне форума Ответить с цитированием
Старый 10.05.2009, 15:30   #2
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Можете сделать так:
Код:
Procedure TForm1.Timer1Timer(Sender: TObject);
Var
T: String;
Begin
T:=TimeToStr(Now);
If T='17:00:00' Then
Begin
//Создаёте поток и выполняете действия
End;
End;
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 10.05.2009, 15:33   #3
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию

Если я правильно понимаю, то таймер будет каждую, например, минуту проверять сколько времени... А это не будет останавливать основную работу проги?
yulia вне форума Ответить с цитированием
Старый 10.05.2009, 15:37   #4
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
А это не будет останавливать основную работу проги?
Нет. Ставите интервал таймера 1000ms и всё. Когда ваше время компьютера совпадёт с установленным, то выполнится действие. Таймер программу ничуть тормозить не будет.
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 10.05.2009, 15:40   #5
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию

Спасибо, буду пробовать.. ))
yulia вне форума Ответить с цитированием
Старый 10.05.2009, 15:50   #6
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию

Да.. не тормозит.. А скажите, пожалуйста, если я не буду создавать поток, а просто в таймере начну действия выполнять, это будет тормозить?
yulia вне форума Ответить с цитированием
Старый 10.05.2009, 16:03   #7
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
А скажите, пожалуйста, если я не буду создавать поток, а просто в таймере начну действия выполнять, это будет тормозить
Вы все действия, которые должны будут выполняться в определённое время можете поставить в таймер. Если вам поток нужно создать по времени, то его можете так же поставить туда. Вот это условие
Код:
If T='17:00:00' Then
Begin
//Создаёте поток и выполняете действия
End;
в данном случае выполнится только один раз, когда системное время будет 17:00:00. А на счёт будет ли прога тормозить, то это уже всё зависит от потока.
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 10.05.2009, 16:05   #8
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию

Да, я все поняла.. Мне поток нужен был только для того, чтобы не останавливать основную работу программы и как я понимаю, то с таймером можно и без него обойтись.. спасибо... ))
yulia вне форума Ответить с цитированием
Старый 08.12.2021, 09:24   #9
myz038
Новичок
Джуниор
 
Регистрация: 05.03.2019
Сообщений: 2
По умолчанию

Terran, День добрый а как правильно прописать на Timer1.
Чтоб Forma2 открывалась через определенный интервал примерно каждые 2часа.
А закрывалась через 10 мин.
Пример зашел в программу через 2 часа открылась форма 2, через 10 она закрылась, потом опять через 2 часа открылась и через 10 опять закрылась.и т.д.
myz038 вне форума Ответить с цитированием
Старый 08.12.2021, 11:25   #10
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,547
По умолчанию

Интервал таймера считается в миллисекундах. Посчитайте, сколько миллисекунд будет в 2-х часах и выставьте такой интервал срабатывания.
Arigato вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
определить время выполнения процедуры? Bezdar Microsoft Office Excel 4 20.01.2009 13:57
Как определить время работы процедуры или операции? Roof Общие вопросы Delphi 7 18.01.2009 21:56
Запуск процедуры из процедуры с дополнением 1sal1 Общие вопросы Delphi 3 06.10.2008 21:54
Время процедуры AngelOfDeath Общие вопросы Delphi 11 29.04.2008 15:26
Запуск процесса на время zetrix Win Api 1 19.11.2007 16:49