Форум по Delphi программированию



Вернуться   Форум по Delphi программированию > Все о Delphi > Мультимедиа
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.05.2015, 09:10
Joker_32_67 Joker_32_67 вне форума
Прохожий
 
Регистрация: 09.05.2015
Адрес: Смоленск
Сообщения: 3
Версия Delphi: Delphi 6
Репутация: 10
Печаль Напоминания в ежедневнике

Помогите, пишу дипломную! нужно что бы при проверке даты и времени в базе, проигрывалась в это время музыка (напоминала о событии). Ничего не могу с этим сделать... Исходник прилагается:
Вложения
Тип файла: rar прога.rar (1.17 Мбайт, 11 просмотров)
Ответить с цитированием
  #2  
Старый 18.05.2015, 21:46
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,718
Репутация: 52347
По умолчанию

Решение, что называется "в лоб". Заведите таймер, который будет активироваться каждую минуту/час/день - как вам удобно и проверять наличие текущей даты, времени в таблице дел.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 19.05.2015, 11:07
Joker_32_67 Joker_32_67 вне форума
Прохожий
 
Регистрация: 09.05.2015
Адрес: Смоленск
Сообщения: 3
Версия Delphi: Delphi 6
Репутация: 10
По умолчанию

А можно для примера код посмотреть. потому что я в инете что не искал, всё ошибки. (переделывая под свой)
Ответить с цитированием
  #4  
Старый 19.05.2015, 20:31
lmikle lmikle сейчас на форуме
Модератор
 
Регистрация: 17.04.2008
Сообщения: 7,854
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, можно как-то так:
Запрос в 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  
Старый 19.05.2015, 21:54
Joker_32_67 Joker_32_67 вне форума
Прохожий
 
Регистрация: 09.05.2015
Адрес: Смоленск
Сообщения: 3
Версия Delphi: Delphi 6
Репутация: 10
По умолчанию

Ничего не понятно, но все равно спасибо :-) буду пытаться

Последний раз редактировалось Joker_32_67, 19.05.2015 в 21:56.
Ответить с цитированием
  #6  
Старый 19.05.2015, 23:04
lmikle lmikle сейчас на форуме
Модератор
 
Регистрация: 17.04.2008
Сообщения: 7,854
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну а чего непонятного? Запрос выбирает кол-во записей в отпределенном интервале по полю EVENT_TS (у тебя имя может быть другой, тут смысл в том, что в этом поле записано когда должно состояться некоторое событие).
Код Дельфи:
1. Останавливает таймер (мы не знаем сколько времени займет выполнение кода внутри таймера, что бы не запустить одновременно 2 копии останавливаем таймер)
2. Вычисляет интервал от -1 минуты до +10 минут от текущего времени (взял значения для примера)
3. Выполняет вышеуказанный запрос.
4. Анализирует результат запроса. Если что-то вернулось и это что-то больше 0, то нам надо проиграть звук, т.к. есть события в указанном интервале.
5. Закрываем запрос и запускаем таймер обратно.

n/(24*60) - числовое выражение n минут (24 часа по 60 минут). Это просто особенность типа TDateTime в Дельфи, можно пользоваться функциями из dateUtils, но я не помню их имена, соотв. написал таким образом.
Ответить с цитированием
  #7  
Старый 23.06.2015, 16:44
Andrey66 Andrey66 вне форума
Прохожий
 
Регистрация: 23.06.2015
Сообщения: 1
Версия Delphi: delphi 5
Репутация: 10
По умолчанию

Delphi 5, нужны два модуля - DateUtils.dcu(*.pas) и Type.dcu(*.pas). Давно не писал, да вот пришлось, заранее благодарен.
Ответить с цитированием
  #8  
Старый 23.06.2015, 17:06
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

в Delphi 5 нет таких модулей, возьми от 7
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:43.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2021

ВКонтакте   Facebook   Twitter   Ссылка на Telegram