Вниз
Скачать: 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
4-1198653645
Rav
2007-12-26 10:20
2008.10.26
Как опеределить язык GUI Windows!!! Не GetSystemDefaultLCID!!!


15-1219403756
tesseract
2008-08-22 15:15
2008.10.26
Футболочки :-) Чего-то вспомнилось.


15-1220290407
Dmitry S
2008-09-01 21:33
2008.10.26
Как правильно сохранить / восстановить Variant в stream?


11-1194554434
op_tim_i_st
2007-11-08 23:40
2008.10.26
ЬСЛ + Delphi 2007


2-1221664079
Dr. Genius
2008-09-17 19:07
2008.10.26
Гарантированное выключение ПК




   Наверх