Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.005 c
2-1221795539
031178
2008-09-19 07:38
2008.10.26
Как объеденить 2 таблички в MS SQL


2-1221685699
Дмитрий С
2008-09-18 01:08
2008.10.26
AutoSize для Memo


2-1221563831
sD
2008-09-16 15:17
2008.10.26
Как произвести логическое уножение чисел


2-1221580076
Грек
2008-09-16 19:47
2008.10.26
Отловить клик по Subitems у ListView


1-1200983736
frostyland
2008-01-22 09:35
2008.10.26
Как программно скроллировать окно, чтобы сделать видимым контрол?





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