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

Как сделать сообщение   Найти похожие ветки 

 
AlekseyB   (2008-09-17 08:41) [0]

Подскажите плиз...., как сделать так чтобы у меня выскакивало сообщение в нужный момент, т.е. надо сделать единожды, ежедневно, ежемесячно, ежегодно !!! Единожды и ежедневно впринципе вроде получилось, а вот как сделать ежемесячно и ежегодно ? Заранее спасибо !!!!


 
brother ©   (2008-09-17 08:50) [1]

> Единожды и ежедневно впринципе вроде получилось,

видимо кривой алгоритм, раз ежемесячно и ежегодно не получается ;)

Алгоритм: В таймере интервалами в час(может даже больше) делаем проверку текущей даты, месяца, года; далее сравниваем это с нашей записью, переменной или массивом в которых хранятся указанные дни месяцяца и года для сработки показа сообщений!
Если совпало - показываем сообщение...


 
han_malign ©   (2008-09-17 10:28) [2]


> В таймере интервалами в час

или TApplication.OnIdle

> далее сравниваем это с нашей записью

- проверяем, что нужная отсечка(и) времени поподает в полуинтервал (LastCheck, Now]
- если попало - выполняем событие(я), изменяем расписание в соответсвии с планом
- запоминаем время последней проверки(LastDayTime:= Now (запоминаем в файл/реестр на случай перезапука))

З.Ы. Если делать в OnIdle, чтобы не загружать процессор - необходимо "прореживать" проверки расписания - проверкой времени ближайшего запланированого события(Now >= MinEventTime), которое может быть временем реально запланированного события, шагом(MinEventTime = LastCheck+step) или их комбинацией...


 
Dennis I. Komarov ©   (2008-09-17 10:40) [3]

Сделай чтоб выскакивало сообщение и запускай его через Scheduler Windows - и тебя никто не убъет за постоянно висящий в память никому не нужный процесс...


 
Vlad Oshin ©   (2008-09-17 10:51) [4]

Время - суть дробное машинной число
Дробные машинные числа сравниваются не наравенство, а на попадение в интервал.
a=b ~ (a-b)<0.001


 
Правильный$Вася   (2008-09-17 10:55) [5]


> как сделать ежемесячно и ежегодно

а теперь объясни, что ты понимаешь под этим
ежемесячно - это раз в месяц, но когда именно?


 
clickmaker ©   (2008-09-17 11:26) [6]

> ежегодно ?

долго ждать придется, чтобы протестировать


 
KilkennyCat ©   (2008-09-17 11:39) [7]

главное - не выключить нечаянно комп.


 
brother ©   (2008-09-17 11:41) [8]

> долго ждать придется, чтобы протестировать

комп- машина времени ;)
переставляем системную дату, и мы в прошлом/настоящем/будущем)


 
Правильный$Вася   (2008-09-17 12:01) [9]


> переставляем системную дату

вот интересно порассуждать, какая же дельта во времени будет...
минута=год...



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

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



Память: 0.47 MB
Время: 0.009 c
15-1218174240
TUser
2008-08-08 09:44
2008.10.26
Объявлена дата запуска LHC


2-1221626515
AlekseyB
2008-09-17 08:41
2008.10.26
Как сделать сообщение


15-1220251028
Slider007
2008-09-01 10:37
2008.10.26
С днем рождения ! 1 сентября 2008 понедельник


2-1221546073
dmitry_12_08_73
2008-09-16 10:21
2008.10.26
Определение идентификатора потока


11-1194616932
tigra
2007-11-09 17:02
2008.10.26
таблицы...




   Наверх