Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.15;
Скачать: 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 вся ветка

Текущий архив: 2006.10.15;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.044 c
15-1158941601
McSimm
2006-09-22 20:13
2006.10.15
Обновлённая документация на FastReport


15-1158689802
lookin
2006-09-19 22:16
2006.10.15
Много или надежно - что победит?


4-1148985286
Steep
2006-05-30 14:34
2006.10.15
CD/DVD привод


6-1147705710
rockman
2006-05-15 19:08
2006.10.15
порты в delphi


9-1137231598
grisme
2006-01-14 12:39
2006.10.15
DELPHIGFX





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский