|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Напоминания в ежедневнике
Помогите, пишу дипломную! нужно что бы при проверке даты и времени в базе, проигрывалась в это время музыка (напоминала о событии). Ничего не могу с этим сделать... Исходник прилагается:
|
#2
|
||||
|
||||
Решение, что называется "в лоб". Заведите таймер, который будет активироваться каждую минуту/час/день - как вам удобно и проверять наличие текущей даты, времени в таблице дел.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
А можно для примера код посмотреть. потому что я в инете что не искал, всё ошибки. (переделывая под свой)
|
#4
|
|||
|
|||
Ну, можно как-то так:
Запрос в ADOQuery1 (подправишь имена таблицы и поля): Код:
SELECT COUNT(1) FROM Table WHERE Event_TS BETWEEN :ts_Start and :ts_end Код:
procedure TForm1.Timer1Timer(Sender : TObject); var ts_start, ts_end : TDateTime; begin Timer1.Enabled := False; Try // пусти интервал проверки -1..+10 минут ts_start := Now - 1/(24*60); ts_end := Now + 10/(24*60); ADOQuery1.Active := False; ADOQuery1.Params.ParamByName('ts_start').AsDateTime := ts_start; ADOQuery1.Params.ParamByName('ts_end').AsDateTime := ts_end; ADOQuery1.Active := True; If ADOQuery1.RecordCount > 0 Then If ADOQuery1.Fields[0].AsInteger > 0 Then PlaySound('zvuk.wav'); Finally ADOQuery1.Active := False; Timer1.Enabled := True; End; end; Ну вот как-то так. |
#5
|
|||
|
|||
Ничего не понятно, но все равно спасибо :-) буду пытаться
Последний раз редактировалось Joker_32_67, 19.05.2015 в 21:56. |
#6
|
|||
|
|||
Ну а чего непонятного? Запрос выбирает кол-во записей в отпределенном интервале по полю EVENT_TS (у тебя имя может быть другой, тут смысл в том, что в этом поле записано когда должно состояться некоторое событие).
Код Дельфи: 1. Останавливает таймер (мы не знаем сколько времени займет выполнение кода внутри таймера, что бы не запустить одновременно 2 копии останавливаем таймер) 2. Вычисляет интервал от -1 минуты до +10 минут от текущего времени (взял значения для примера) 3. Выполняет вышеуказанный запрос. 4. Анализирует результат запроса. Если что-то вернулось и это что-то больше 0, то нам надо проиграть звук, т.к. есть события в указанном интервале. 5. Закрываем запрос и запускаем таймер обратно. n/(24*60) - числовое выражение n минут (24 часа по 60 минут). Это просто особенность типа TDateTime в Дельфи, можно пользоваться функциями из dateUtils, но я не помню их имена, соотв. написал таким образом. |
#7
|
|||
|
|||
Delphi 5, нужны два модуля - DateUtils.dcu(*.pas) и Type.dcu(*.pas). Давно не писал, да вот пришлось, заранее благодарен.
|
#8
|
||||
|
||||
в Delphi 5 нет таких модулей, возьми от 7
Пишу программы за еду. __________________ |