C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Создание органайзера  (Прочитано 4090 раз)
evgen-20058
Участник


Сказали спасибо: +1/-0
Offline

Сообщений: 11


Создание органайзера
« : 25 Май 2011, 00:11:46 »

Помогите с моей проблемой....
имеется таблица с полем "время".
таблица создана при помощи MS Access.

таб. События(ADOevents)
0:Событие:Текстовый;
1:Описание:Текстовый;
2:Дата:Текстовый;
3:Время:Текстовый;
4:Напоминание:Текстовый;//т.е. за сколько минут напомнить

связей с этой таблицей нет...

Нужно организовать вывод сообщения при наступлении установленного времени суток.. что-то вроде поиска по полю..  весь обработчик прописывал в Timer
Использовал такой код

void __fastcall TForm5::Timer1Timer(TObject *Sender)
{AnsiString search;
DataMod->ADOevents->Filtered=false;
search="Время like '"+DateTimeToStr(Time())+"*'";
DataMod->ADOevents->Filter=search;
DataMod->ADOevents->Filtered=true;
}

и такой

void __fastcall TForm5::Timer1Timer(TObject *Sender)
{TLocateOptions Options;
Options if (DataMod->ADOevents->Locate("Время",DateTimeToStr(Time()),Options)==true){ShowMessage("Напоминание!");}
DBGrid1->SetFocus();
}


при наступлении нужного времени сообщение не выводится..... Помогите решить проблему....
Заранее благодарен....
« Последнее редактирование: 25 Май 2011, 20:29:58 от evgen-20058 » Записан
Tantos
А ты воспользовался поиском перед тем, как спросить?!
Давний друг


Сказали спасибо: +350/-28
Offline

Сообщений: 2181


Re: Создание органайзера
« Ответ #1 : 25 Май 2011, 15:51:58 »

Честно говоря, код какой-то мутный...
1. Timer1 по умолчанию запущен (Timer1->Enabled=true)?
2. С определенным периодом (Timer1->Interval) необходимо перебирать записи в БД на текущую дату, и проверять, не наступили ли уже заданные события
Записан
evgen-20058
Участник


Сказали спасибо: +1/-0
Offline

Сообщений: 11


Re: Создание органайзера
« Ответ #2 : 25 Май 2011, 17:48:17 »

1.да.
2.тоже верно.. смысл как в будильнике...наступает время и появляется сообщение...interval=1000, т.е. 1 сек...
Если с кодом чета не так, исправте или предложите альтернативный
Записан
Tantos
А ты воспользовался поиском перед тем, как спросить?!
Давний друг


Сказали спасибо: +350/-28
Offline

Сообщений: 2181


Re: Создание органайзера
« Ответ #3 : 25 Май 2011, 18:06:09 »

Больше данных предоставьте - скрипт создания таблицы с описаниями полей и название БД как минимум. Иначе получите псевдокод.
Записан
Tantos
А ты воспользовался поиском перед тем, как спросить?!
Давний друг


Сказали спасибо: +350/-28
Offline

Сообщений: 2181


Re: Создание органайзера
« Ответ #4 : 26 Май 2011, 12:33:31 »

Мда, а как же ключевое поле и дата/время напоминания? Откуда программа знает, от какой временной точки отсчитывать те самые "т.е. за сколько минут напомнить"?
Записан
Lilo
Участник


Сказали спасибо: +17/-6
Offline

Сообщений: 253


Re: Создание органайзера
« Ответ #5 : 26 Май 2011, 15:11:13 »

evgen-20058 вы хоть понимаете что вам пишут?
если у вас в базе одни текстовые поля даже для чисел, даты и времени то это не есть хорошо.
вам нужно базу привести в соответствие, а уж потом всё остальное...
Записан
evgen-20058
Участник


Сказали спасибо: +1/-0
Offline

Сообщений: 11


Re: Создание органайзера
« Ответ #6 : 28 Май 2011, 02:22:42 »

ТЕМА ЗАКРЫТА ПРОБЛЕМА РЕШЕНА
Записан
evgen-20058
Участник


Сказали спасибо: +1/-0
Offline

Сообщений: 11


Re: Создание органайзера
« Ответ #7 : 17 Июнь 2011, 01:17:28 »

пользуйтесь кому надо.....
//ВРЕМЯ ------>>>>>>
        AnsiString allTime, allData, allDataTime, h_, m_, s_, y_, mes_, d_;
        unsigned short int h, m, s, ms, y, mes, d ;

        TDateTime DT = Now();
        DecodeDate(DT,y,mes,d);
        DecodeTime(DT,h,m,s,ms);

// ФОРМАТИРОВАНИЕ ВРЕМЕНИ------>>>>>>
        if (h                 else{h_=IntToStr(h);}
        if (m                 else{m_=IntToStr(m);}
        if (s                 else{s_=IntToStr(s);}
// //ФОРМАТИРОВАНИЕ ДАТЫ---y,mes,d--------->>>>>>>>>>>
        if (mes                 else{mes_=IntToStr(mes);}
        if (d                 else{d_=IntToStr(d);}
//
//Вывод allDataTime
        allData=d_+"."+mes_+"."+IntToStr(y);
        allTime=h_+":"+m_+":"+s_;
        allDataTime=allData+" "+allTime;
//
//ФИЛЬТР
        AnsiString search;
        DataMod->ADOevents->Filtered=false;
        search="Время like '"+allDataTime+"*'";
        DataMod->ADOevents->Filter=search;
        DataMod->ADOevents->Filtered=true;

//ПРОВЕРКА УСЛОВИЯ И ЗАПОМИНАНИЕ ИНДЕКСНОГО ПОЛЯ
        AnsiString temp="";
        temp=DataMod->ADOevents->Fields->Fields[3]->AsString;
        if (temp!="") ShowMessage("В " + temp + " у Вас \n"+ DataMod->ADOevents->Fields->Fields[0]->AsString+".");
Записан
wowik9905
новенький


Сказали спасибо: +0/-0
Offline

Сообщений: 1


« Ответ #8 : 31 Май 2015, 18:45:26 »

Здравствуйте. А можно ли вас попросить скинуть сам проект? А то я так не могу разобраться
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.037 секунд. Запросов: 21.