Главная страница
    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
2-1159302430
aleko
2006-09-27 00:27
2006.10.15
прокрутка DBGrid колесом мыши


3-1155717915
GrBob
2006-08-16 12:45
2006.10.15
FieldName в DBexpress и ADO


15-1158668942
vidiv
2006-09-19 16:29
2006.10.15
Приготовление блюд в микроволновке


15-1159162480
Ega23
2006-09-25 09:34
2006.10.15
С Днём рождения! 24 сентября


2-1159340524
Alex_C
2006-09-27 11:02
2006.10.15
Пытаюсь рисовать на канве RichEdit. Не получается.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский