Вниз
Скачать: CL | DM;

Событие в определенные моменты времени   Найти похожие ветки 

← →
0_o   (2006-09-30 20:09) [0]

Бодрого времени суток, Мастера.
Требуется вызывать событие в определенные моменты времени...
Пытался сделать через OnTimer типа:

if Time in MyTimes then ShowMessage("Ура!") ...

но вся соль в том, что не могу сделать MyTimes = set of TTime; и думаю врядли у мну это получится =), делать через массив (пробегать каждую секунду по не факт что маленькому массиву времен и сравнивать: if Time = TimesArry[i]) не хочется - думаю тормозить будет нехило...
Подскажите, plz, как можно это реализовать попроще и для системы и для меня =)


← →
Desdechado ©   (2006-09-30 20:17) [1]

Например, при задании какого-то времени срабатывания создавать таймер, у которого интервал срабатывания равен "Нужное время"-"время сейчас" и запускать его.
Сколько времен, столько таймеров. Каждому можно назначить свое событие (действие).

ЗЫ не уверен, что самый лучший, до легко реализуемый вариант.


← →
default ©   (2006-09-30 20:18) [2]

как у Вас эти моменты времени определяются?


← →
default ©   (2006-09-30 20:47) [3]

храни в массиве приращения времени в миллисекундах, держи глобальную переменную с текущим числом срабатываний события
и в таймере что-то типа
Timer1.Interval := DeltaTimes[EventCount];
Inc(EventCount);
и дальше код по отработке события в зависимости от номера его возникновения(если такая зависимость есть, иначе просто код обработки)


← →
Сергей М. ©   (2006-09-30 20:53) [4]


> Требуется вызывать событие


События не "вызываются", они возникают (или происходят).
Например, событие "сигнал таймера" (TTimer.OnTimer) возникает через равные промежутки времени.


← →
0_o   (2006-09-30 22:29) [5]


> default ©   (30.09.06 20:18) [2]
>
> как у Вас эти моменты времени определяются?

Хм... есть список с часами:минутами...
> События не "вызываются", они возникают (или происходят).


> Сергей М. ©   (30.09.06 20:53) [4]
> > Требуется вызывать событие
> События не "вызываются", они возникают (или происходят).
>

Ок, требутся совершить действие/вызвать процедуру/etc


← →
default ©   (2006-09-30 22:32) [6]

0_o   (30.09.06 22:29) [5]
см [3], вполне простой, понятный и рабочий вариант


← →
default ©   (2006-09-30 22:51) [7]

ну, например, мне надо чтобы событие сработало
в 13, 12 и в 16 часов текущего дня
берём часы в порядке возрастания: 12, 13, 16
допустим сейчас 10 часов того же дня,
тогда ставлю Timer1.Interval := (12-10)*60*60*1000;
когда таймер сработает ставим (13-12)*60*60*1000; и выполняем обработку
в следующее срабатывание таймера ставим (16-13)*60*60*1000;
и тд
в программный код нету сложности перевести


← →
0_o   (2006-10-01 11:54) [8]

Ок, большое спасибо!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.032 c
11-1132744014
igi
2005-11-23 14:06
2006.10.15
VMHSyntaxEdit как юзать?


6-1147754944
DelphiN!
2006-05-16 08:49
2006.10.15
Прикрепление атача к письму через компонент idSmtp 10х Индей


2-1159510933
vodvorezlaya
2006-09-29 10:22
2006.10.15
Как сделать закрытие формы по нажатию Esc?


3-1155705179
vodvorezlaya
2006-08-16 09:12
2006.10.15
Использование даты и времени


15-1158745989
Benchmark
2006-09-20 13:53
2006.10.15
Сколько выжимает ваш проц?




   Наверх