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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2006, 17:24   #1
micaell
Пользователь
 
Аватар для micaell
 
Регистрация: 01.12.2006
Сообщений: 32
Счастье Как создать событие(которое выполняется в определённое время)

Помогите сделать так чтобы процедура выполнялась в определённое время каждого дня!
La iniciativa, control, respeto - las prioridades del vencedor.
micaell вне форума Ответить с цитированием
Старый 12.12.2006, 17:27   #2
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

Ставишь на таймер:

Код:
if FormatDateTime('hh:mm:ss',now) = 'xx:xx:xx' then
...
Где 'xx:xx:xx' время в формате ЧЧ:ММ:СС
ICQ: 5311314
[SIGPIC][/SIGPIC]
AVer вне форума Ответить с цитированием
Старый 13.12.2006, 11:28   #3
Prowler
Форумчанин
 
Регистрация: 30.11.2006
Сообщений: 128
По умолчанию

Мне таймером не нравится пользоваться.
Можно так попробовать:

var
hand:Thandle;
.......
hand:=CreateEvent(nil,true,false,'e v');
while {чё-нить bool}
do
begin
.......//Проверяем время и что нибудь делаем....
whaitForSingleObject(hand,1000);//Задержка на 1 секунду...
end;

Можно запихнуть ето в отдельный поток и пусть работает...
Удачи!
nosce te ipsumj...
Prowler вне форума Ответить с цитированием
Старый 13.12.2006, 18:18   #4
Сильванович Михаил
Студент
Форумчанин
 
Регистрация: 10.11.2006
Сообщений: 196
По умолчанию

Ставим на таймер проверку даты, таймер, я думаю не рационально использовать часто, поэтому Interval:=36000000, если дата нужная нам, то убиваем этот таймер и запускаем таймер с Interval:=1000, где будет проверяться время: если время нужное, то выполняем какие-то действия:

uses Windows,Messages;

var
...
Event1,Event2: integer;

.....

procedure OnTimer2;
begin
if {сюда ставим проверку времени} then
begin
{ что-нибудь делаем }
KillTimer(Event2);
end;
end;

procedure OnTimer1;
begin
if {сюда ставим проверку даты} then
begin
SetTimer(Wnd,Event2,1000,@OnTimer2) ;
KillTimer(Event1);
end;
end;

begin
...
SetTimer(Wnd,Event1,36000000,@OnTim er1)
...
end.
Visita Interiorem Terrae Rectificando Operae Lapidem...
Сильванович Михаил вне форума Ответить с цитированием
Старый 13.12.2006, 18:33   #5
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Забудте про таймер, проц грузить незачем... Лучше создать событие-пустышку и всё (Prowler писал код - выше смотрите)
zetrix вне форума Ответить с цитированием
Старый 13.12.2006, 18:35   #6
Сильванович Михаил
Студент
Форумчанин
 
Регистрация: 10.11.2006
Сообщений: 196
По умолчанию

Интересно, как сильно грузит CPU таймер с интервалом в 36000000?
Visita Interiorem Terrae Rectificando Operae Lapidem...
Сильванович Михаил вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CGI приложение, выполняется на удалённом ПК N!ckeL Работа с сетью в Delphi 2 25.07.2008 09:23
Web Не выполняется CGI Sweta Помощь студентам 6 20.05.2008 09:44
Количество оперативной памяти которое занимает программа werser Помощь студентам 1 03.02.2008 02:22
Не выполняется запрос в SQL ivp88 БД в Delphi 5 17.01.2008 10:30
Почему не выполняется запрос? chingiz БД в Delphi 2 27.05.2007 21:56