Форум: "Начинающим";
Текущий архив: 2008.10.26;
Скачать: [xml.tar.bz2];
ВнизКак сделать сообщение Найти похожие ветки
← →
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 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.10.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c