Главная страница
    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.069 c
15-1158864411
Cyrax
2006-09-21 22:46
2006.10.15
Проблемы при работе с Photoshop


3-1155627561
Death
2006-08-15 11:39
2006.10.15
Создание индексов в THalcyonDataSet


2-1159354453
mfender
2006-09-27 14:54
2006.10.15
Прелотвращение работы методов в Design Time


3-1155470796
Anonimus001
2006-08-13 16:06
2006.10.15
Базы данных


8-1142771948
GuAV
2006-03-19 15:39
2006.10.15
Анимация перемещения картинки.





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