Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пояснительная записка 3 курс курсовой проект.doc
Скачиваний:
4
Добавлен:
05.05.2019
Размер:
1.4 Mб
Скачать

1.3 Рассмотрение аналоговых продуктов

ЧАСЫ РАДАР - часы с дополнительными функциями; поиск файлов, музыки, видео, изображений; управление лотками CD-дисководов; очистка списка недавно

использовавшихся документов. Автозагрузка программы "Часы Радар", полупрозрачность, "прилипание" к краям экрана, возможность смены значка программы в TrayBar.

Будильник с говорящими часами - после установки даты и времени требуется нажать на кнопку пуска - будильник заведен. Можно ввести комментарий. Затем кнопкой отправить будильник в трей. По истечении времени будильник выскочит на стол и будет трезвонить пока не нажмете кнопку останова.

Если время сигнала ожидается не скоро, то будильник можно закрыть - все значения запоминаются в INI файле.

Будильник может сообщать текущее время голосом через заданный интервал времени.

Установка интервала делается в настройках. Есть фиксированные значения: через 1, 5, 10, 30 мин и 1 час, а так же установка любого другого значения.

Голос, произносящий время (типа: три часа одна минута) можно выбирать (пока) из двух возможных.

В системе должен быть установлен кодек для проигрывания MP3.

Установка программы не требуется. Скачать Часы на рабочий стол. Говорящие часы.

AClock призван не только помочь, но еще и не навредить своим присутствием.

В данной версии реализовано:

1. Поддержка тем;

2. Настраиваемая прозрачность;

3. Прозрачность для мыши (при включенной опции кликать можно сквозь часы);

4. Опция «Всегда наверху»;

5. Автозапуск;

6. Тиканье;

7. Включение/выключение обычных стрелок (в редакторе настраивается 2 вида каждой стрелки);

8. Включение/выключение секундной стрелки;

9. Смена надписи;

10. Сохранение текущего состояния (тема, положения и т.д.);

11. Настройка для показа времени другого региона;

12. Добавлена возможность в темах отключать простые стрелки;

13. Добавлена возможность включать/выключать зависимость часовой стрелки от минутной;

14. Добавлена возможность маштабирования;

15. Добавлена возможность выбора хода секундной стрелки (обычный, реалистичный (с подергиванием), плавный);

16. Добавлен режим всегда снизу.

Изменения:

1.Заменены все стандартные темы;

Исправления:

1. Исправлен баг приводивший к утечке памяти;

2. Проведена оптимизации работы с памятью, теперь часики вместо 20Mb отъедают всего 400Kb. NEW!!!

В следующих версиях будет добавлено:

1. Будильник;

2. Возможность отображать время других временных зон.

Если Вам понравятся часы, но чего-то, по Вашему мнению, не хватает, напишите нам и мы обязательно добавим это в следующей версии.

В пакет входит:

1. Сами часики

2. Редактор тем

3. 5 Дополнительных тем.

2. Техническая часть

2.1 Функциональная спецификация

2.2 Технический проект

2.3 Отдельные алгоритмы и переменные

Пользователь задаёт время для оповещения, выбирает мелодию звонка и подтверждает операцию. Время пользователь будет выбирать в компоненте TimePicker, о чём его и предупреждает подсказка, а 2 другие операции можно реализовать в обработчике события OnClick кнопки AlarmBttn:

void __fastcall TMainForm::AlarmBttnClick(TObject *Sender)

{

do

{

if(AlarmOpenDialog->Execute()) // Если диалог открытия запущен

{

MediaPlayer->FileName=AlarmOpenDialog->FileName; // …выберем файл для воспроизведения медиаплейером.

}

if(MediaPlayer->FileName=="") Application->MessageBox("Вы должны выбрать мелодию для оповещения!", "Будильник", MB_OK+MB_ICONWARNING);

}

while(MediaPlayer->FileName=="");

iAlarmHours=StrToInt(FormatDateTime("h", TimePicker->Time));

iAlarmMinutes=StrToInt(FormatDateTime("n", TimePicker->Time));

MediaPlayer->Open();

bIsTimerOn=true; // Таймер будильника запущен.

}

FormatDateTime("h", TimePicker->Time): мы переводим время из свойства TimePicker->Time в «удобоваримую» форму в виде строки. После этого строку преобразуем в целое, воспользовавшись функцией StrToInt, и сохраняем

результат в переменных:

iAlarmHours=StrToInt(FormatDateTime("h", TimePicker->Time));

iAlarmMinutes=StrToInt(FormatDateTime("n", TimePicker->Time));

Теперь нагрузим работой наш бедный таймер, которому каждую секунду (если, конечно запущен будильник bIsTimerOn=true;), помимо отрисовки текущего времени, предстоит сравнивать его с заданным, чтобы решить, не пора ли врубить музыку:

void __fastcall TMainForm::TimerTimer(TObject *Sender)

{

TimePanel->Caption=TimeToStr(Time());

if(bIsTimerOn==true) // Если будильник включён

{

iHours=StrToInt(FormatDateTime("h", Time()));

iMinutes=StrToInt(FormatDateTime("n", Time())); // …получим текущее время

if((iHours==iAlarmHours) && (iMinutes>=iAlarmMinutes)) // …и если оно совпало с заданным пользователем…

{

MediaPlayer->Play(); // …играем!

}

if(MediaPlayer->Mode==mpPlaying) bIsTimerOn=false // Если медиаплейер уже играет, то будильник можно выключить.

}

}