Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.038 c
15-1158852923
S@sha
2006-09-21 19:35
2006.10.15
Шпион


15-1158845961
oldman
2006-09-21 17:39
2006.10.15
А вот если Вы все такие умные, почему Вы строем не ходите?


15-1158757271
DelphiLexx
2006-09-20 17:01
2006.10.15
Структура будущей проги


15-1158649192
IceBeerg
2006-09-19 10:59
2006.10.15
Удаление папки без имени


2-1159218849
Black_Jack
2006-09-26 01:14
2006.10.15
Ошибка при вызове GetWindowsDirectory...





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