Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
записка будильника.docx
Скачиваний:
4
Добавлен:
02.09.2019
Размер:
480.28 Кб
Скачать

1.2 Входная оперативная информация

Входной информацией является:

  1. Любая текстовая информация, используемая в качестве текста напоминания.

  2. Звуковые файлы в форматах .mp3, .wav.

  3. Информация в виде определенного момента времени, для установки напоминаний.

  4. Информация в виде значений цветовой гаммы и насыщенности цвета формы.

  5. Исходные числовые значения для вычисления с помощью встроенного калькулятора.

    1. Постоянная информация задачи

Постоянная информация представлена в виде одной таблицы базы данных, реализованной по технологии ADO. Таблица содержит следующие поля:

  1. Номер записи

  2. Дата

  3. Время

  4. Событие

  5. Действие

База данных хранит в себе записи действий пользователя.

1.4 Выходная информация

Выходной информацией является:

1) Текстовая информация, используямая в качестве сообщения пользователю.

2) Звуковые сигналы.

3) Числовые значения, как результат вычислений с помощью встроенного калькулятора.

2 Объектно - ориентированный анализ задачи

2.1 Описание задачи в ключевых абстракциях предметной облости

2.2 Описание интерфейса классов

3 Описание программы

3.1 Общие сведения

Программа представляет собой многофункциональный музыкальный

будильник. Она позволяет выводить определенный текст в качестве напоминания и сопровождать его звуковым сигналом. Программа позволяет сохранять действия пользователя в базу данных и позволяет просмотреть их с сортировкой по разным полям. Кроме того в программу встроены:

  1. Калькулятор

  2. Экранная лупа

  3. Секундомер

Для разработки программы использовался язык программирования С++ и среда программирования С++ Builder. Программа не имеет сферы использования, поэтому может применяться на домашних и офисных персональных компьютерах.

3.2 Функциональное назначение

3.3 Описание логической структуры

Логическая структура программы представлена в виде базы данных на основе технологии ADO. База данных состоит из одной таблицы, которая состоит из следующих полей:

  1. Номер записи

  2. Дата

  3. Время

  4. Событие

  5. Действие

3.4 Используемые технические средства

В процессе разработки программы была использована ЭВМ со следующими характеристиками:

- CPU Intel Core 2 Quad Q6600 2.4МГц/2*4МБ/1066МГц

- Gigabyte GA-X48-DS4

- HDD Seagate/Maxtor SATAII 500Gb 7200rpm, 32mb cache

- DDRII 2x1024, 1388MHz

- Sapphire PCI-E <ATI Radeon x4850> 512mb DDR3

3.5 Вызов и загрузка

Перед началом работы с программой необходимо проверить соответствие аппаратных и программных средств вашего компьютера вышеуказанным. Далее необходимо запустить программу с помощью файла часы.exe

3.6 Входные данные

4 Описание программы

Первый модуль программы (Unit 1) содержит следующие процедуры:

-procedure TForm1.FormCreate(Sender: TObject). Процедура инициализирует форму, подготавливает строку состояния и таймер отсчета времени.

- procedure TForm1.Vector(x0,y0: integer; a, l: integer). Процедура вычерчивает вектор заданной длинны из точки (x0,y0);

- procedure TForm1.DrawClock. Процедура рисует стрелки аналоговых часов.

- procedure TForm1.FormPaint(Sender: TObject). Процедура рисует циферблат и начальные стрелки аналоговых часов.

- procedure TForm1.Timer1Timer(Sender: TObject). Процедура рисует текущие положения стрелок аналоговых часов.

- procedure TForm1.FormActivate(Sender: TObject). Процедура скрывает формы 2, 3, 4, 5, 6.

- procedure TForm1.N5Click(Sender: TObject). Процедура выводит на экран форму два.

- procedure TForm1.Timer2Timer(Sender: TObject). Процедура выводит в метки label1 и label2 системное время.

- procedure TForm1.SpeedButton1Click(Sender: TObject). Процедура останавливает воспроизведение медиаплейера mp1 (form 3).

- procedure TForm1.SpeedButton7Click(Sender: TObject). Процедура закрывает программу.

- procedure TForm1.Timer3Timer(Sender: TObject). Процедура регулирует видимость компонентов button1 и groupbox2.

- procedure TForm1.Button1Click(Sender: TObject). Процедура присваивает пустоту к свойству FileName компонена mp1.

- procedure TForm1.SpeedButton8Click(Sender: TObject). Процедура выводит на экран шестую форму.

- procedure TForm1.N21Click(Sender: TObject). Процедура выводит на экран пятую форму.

- procedure TForm1.N18Click(Sender: TObject). Процедура выводит на экран третью форму.

- procedure TForm1.SpeedButton5Click(Sender: TObject). Процедура активизирует компонент Timer2.

- procedure TForm1.SpeedButton5Click(Sender: TObject). Процедура дезактивирует компонент Timer2.

- procedure TForm1.SpeedButton10Click(Sender: TObject). Процедура выводит пятую форму на экран.

- procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction). Процедура закрывает все формы призакрытии первой формы.

- procedure TForm1.SpeedButton2Click(Sender: TObject). Процедура выводит на экран третью форму.

- procedure TForm1.SpeedButton4Click(Sender: TObject). Процедура дезактивирует компонент Timer2.

Второй модуль программы (Unit 2) процедур и функций не содержит.

Третий модуль программы (Unit 3) содержит следующие процедуры:

- procedure TForm3.Timer3Timer(Sender: TObject) содержит следующие процедуры:

-procedure TForm3.Timer3Timer(Sender: TObject). Процедура воспроизводит заданный звуковой файл через компонент mp1 при совпадении значений: label1 формы один и label5, label2 формы один и label7 одновременно.

- procedure TForm3.tb1Change(Sender: TObject). Процедура выставляет значения компонента label5 в зависимости от свойства Position компонента tb1.

- procedure TForm3.tb2Change(Sender: TObject). Процедура выставляет значение компонента label7 в зависимости от свойства Position компонента tb2.

- procedure TForm3.Timer1Timer(Sender: TObject). Процедура переносит значения компонентов Label1 и Label2 формы один в значение компонентов Label1 и Label3 соответственно и в значения компонентов Label10 и Label12 соответственно.

- procedure TForm3.SpeedButton1Click(Sender: TObject). Процедура скрывает форму три.

- procedure TForm3.SpeedButton2Click(Sender: TObject). Процедура активирует компонент Timer3.

Четвёртый модуль программы (Unit 4) содержит следующие процедуры:

- procedure TForm4.Button1Click(Sender: TObject). Процедура скрывает форму четыре и останавливает воспроизведение компонента mp1 (Form 4)

Пятый модуль программы (Unit 5) содержит следующие процедуры:

- procedure TForm5.Timer2Timer(Sender: TObject). Процедура воспроизводит заданный звуковой файл через компонент mp1 при совпадении значений: label1 формы один и label8, label2 формы один и label9 одновременно.

- procedure TForm5.TrackBar1Change(Sender: TObject). Процедура выставляет значение компонента Label8 в зависимости от значения свойства Position компонента Label8.

- procedure TForm5.TrackBar2Change(Sender: TObject). Процедура выставляет значение компонента Label8 в зависимости от значения свойства Position компонента TrackBar2.

- procedure TForm5.SpeedButton4Click(Sender: TObject). Активирует компонент Timer2.

Шестой модуль программы (Unit 6) содержит следующие процедуры:

- procedure TForm6.SpeedButton1Click(Sender: TObject). Процедура копирует значение свойства FileName компонента OpenDialog1 в значение свойства Items компонента Combobox1.

- procedure TForm6.SpeedButton3Click(Sender: TObject). Процедура копирует значение свойства Text компонента Combobox1 в значение свойства FileName компонента mp1 и даёт команду воспроизведения компоненту mp1.

- procedure TForm6.SpeedButton4Click(Sender: TObject). Процедура останавливает воспроизведеие компонента mp1.

- procedure TForm6.SpeedButton2Click(Sender: TObject). Процедура копирует значение свойства Text компонента Combobox1 в значение свойства FileName компонента Mp1(form 3).

Седьмой модуль программы (Unit 7) содержит следующие процедуры:

- procedure TForm7.Timer1Timer(Sender: TObject). Процедура скрывает седьмую форму и выводит на экран первую форму.

5 Руководство оператора

Назначение программы:

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

Необходимые условия функционирования программы:

Для корректной работы программы необходим компьютер с монитором и мышкой.

Минимальные системные требования:

Операционная система – Windows XP, 2000, 98.

CPU – 1000 MHz;

Оперативная память – 256 MB;

HDD – не менее 1 MB свободного места.

Выполнение программы:

1) Перед началом работы с программой необходимо проверить соответствие аппаратных и программных средств вашего компьютера вышеуказанным.

2) Запустить программу с помощью файла часы.exe.

3) Если запуск произошел успешно, то на экране вы увидите следующее окно:

Рисунок 4 – Главное окно программы

4) Необходимо задать мелодию напоминания. Для этого необходимо выбрать пункт главного меню «Мелодии» и в открывшимся списке выбрать пункт «Выбор мелодии» либо нажатием кнопки с изображением папки. После чего на экране появится следующее окно:

Рисунок 5 – Выбор мелодии

5) Для выбора мелодии из директории необходимо нажать кнопку с изображением папки. После чего на экране появится стандартное окно открытия файла. В этом окне необходимо выбрать звуковой файл в формате mp3 или wav, который будет использоваться в качестве звукового сопровождения напоминания, и нажать кнопку «Открыть». После этого выбранную мелодию можно будет прослушать, нажав кнопку «Прослушать». Чтобы назначить выбранную мелодию в качестве музыкального сопровождения напоминания необходимо нажать кнопку «Задать мел.».

6) Если действия, перечисленные в пункте 5, выполнены верно то на экране появится сообщение:

Рисунок 6 – Сообщение пользователю

И в окне «Время» появится панель с названием выбранного звукового файла. Рядом с панелью находится кнопка с крестиком, при нажатии которой выбранная мелодия удаляется и для работы напоминания необходимо снова проделать пункты четыре и пять.

Рисунок 7 – Мелодия напоминания

7) Необходимо задать время напоминания. Программа способна обрабатывать два, независимых друг от друга, напоминания. Ниже описана настройка одного напоминания, так как настройка второго производится аналогично.

8) Необходимо выбрать пункт главного меню «Будильник», «будильник 1» («Будильник 2» для второго напоминания), «Настройка». После чего на экране появится следующее окно:

Рисунок 8 – Окно настройки будильника

Необходимое время напоминания устанавливается при помочи ползунков: верхний устанавливает часы, нижний устанавливает минуты. В графе «Сообщение будильника» можно ввести текст, который появится на экране во время напоминания (вводить необязательно). После выполнения необходимых настроек нужно нажать кнопку «Включить будильник».

9) Если действия, перечисленные в пункте восемь, выполнены правильно, то на экране появится окно «Время», и в нижней его части появится надпись, информирующая о том что будильник включен.

Рисунок 9 – Время срабатывания напоминания

10) В окне «Время» представлены кнопки дублирующие пункты главного меню «Будильник».

В ходе работы с программой пользователь может увидеть следующие сообщения:

Рисунок 10 – Сообщение пользователю

- Сообщение говорит о там, что мелодия успешно принята в качестве музыкального сопровождения напоминанию.

Рисунок 11 – Сообщение пользователю

- Сообщение говорит о том, что не задана мелодия для напоминания. Следует выбрать мелодию.

Рисунок 12 – Сообщение пользователю

- Сообщение говорит о том, что не настроено время напоминания. Следует настроить время напоминания.

Заключение

В данном курсовом проекте я представил программу, выполняющую функции электронного будильника. Я постарался выполнить программу так, чтобы в ней сочетались и интуитивно понятный интерфейс, и нужная функциональность.

Так же возможна последующее усовершенствование программы: дороботка алгоритма вывода системного времени в виде аналоговых часов, добавление настроек размеров и цвета форм, возможность просмотра информации о выбранных звуковых файлах и многое другое.

Приложение А

Листинг программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, ComCtrls, XPMan, MPlayer, Menus, StdCtrls, Buttons,

jpeg;

type

TForm1 = class(TForm)

Timer1: TTimer;

Splitter1: TSplitter;

Bevel1: TBevel;

DateTimePicker2: TDateTimePicker;

XPManifest1: TXPManifest;

MainMenu1: TMainMenu;

N3: TMenuItem;

N11: TMenuItem;

N12: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

Timer2: TTimer;

N6: TMenuItem;

N8: TMenuItem;

SpeedButton1: TSpeedButton;

Image1: TImage;

SpeedButton6: TSpeedButton;

SpeedButton7: TSpeedButton;

SpeedButton8: TSpeedButton;

N10: TMenuItem;

GroupBox2: TGroupBox;

Label4: TLabel;

Timer3: TTimer;

Button1: TButton;

StatusBar1: TStatusBar;

GroupBox3: TGroupBox;

SpeedButton3: TSpeedButton;

SpeedButton4: TSpeedButton;

Label5: TLabel;

Label6: TLabel;

GroupBox4: TGroupBox;

SpeedButton5: TSpeedButton;

SpeedButton9: TSpeedButton;

Label7: TLabel;

Label8: TLabel;

SpeedButton2: TSpeedButton;

SpeedButton10: TSpeedButton;

N1: TMenuItem;

N2: TMenuItem;

N7: TMenuItem;

N9: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

Shape1: TShape;

Label1: TLabel;

Label3: TLabel;

Label2: TLabel;

Label9: TLabel;

procedure FormCreate(Sender: TObject);

procedure FormPaint(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure Vector(x0,y0,a,l: integer);

procedure DrawClock;

procedure FormActivate(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure Timer2Timer(Sender: TObject);

procedure SpeedButton1Click(Sender: TObject);

procedure SpeedButton7Click(Sender: TObject);

procedure Timer3Timer(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure SpeedButton8Click(Sender: TObject);

procedure N21Click(Sender: TObject);

procedure N18Click(Sender: TObject);

procedure SpeedButton5Click(Sender: TObject);

procedure SpeedButton9Click(Sender: TObject);

procedure SpeedButton10Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure SpeedButton2Click(Sender: TObject);

procedure SpeedButton4Click(Sender: TObject);

procedure SpeedButton3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

uses

DateUtils, Unit2, Unit3, Unit4, Unit5, Unit6, Unit7;

const

R = 50;// радиус циферблата часов

var

x0,y0: integer; // центр циферблата

ahr,amin,asec: integer; // положение стрелок (угол)

procedure TForm1.FormCreate(Sender: TObject);

var

t: TDateTime;

begin

statusbar1.Panels.Items[0].Width:=form1.Width div 2;

statusbar1.Panels.Items[1].Width:=form1.Width div 2;

StatusBar1.Panels.Items[0].Text:='Будильник выключен';

StatusBar1.Panels.Items[1].Text:='Будильник выключен';

x0 := R+40 ;

y0 := R+40 ;

t := Now();

// положение стрелок

ahr := 90 - HourOf(t)*30-(MinuteOf(Today)div 12)*6;

amin := 90 - MinuteOf(t)*6;

asec := 90 - SecondOf(Today)*6;

Timer1.Interval := 1000;

Timer1.Enabled := True; // пуск таймера

end;

procedure TForm1.Vector(x0,y0: integer; a, l: integer);

const

GRAD = 0.0174532;

var

x,y: integer; // координаты конца вектора

begin

Canvas.MoveTo(x0,y0);

x := Round(x0 + l*cos(a*GRAD));

y := Round(y0 - l*sin(a*GRAD));

Canvas.LineTo(x,y);

end;

procedure TForm1.DrawClock;

var

t: TDateTime;

begin

// стереть изображение стрелок

Canvas.Pen.Color := clBtnFace;

Canvas.Pen.Width :=4;

// часовую

Vector(x0,y0, ahr, R-20);

// минутную

Vector(x0,y0, amin, R-15);

// секундную

Vector(x0,y0, asec, R-7);

t := Now();

// новое положение стрелок

ahr := 90 - HourOf(t)*30-(MinuteOf(t)div 12)*6;

amin := 90 - MinuteOf(t)*6;

asec := 90 - SecondOf(t)*6;

// нарисовать стрелки

// часовая стрелка

Canvas.Pen.Width := 3;

Canvas.Pen.Color := clBlack;

Vector(x0,y0, ahr, R-20);

// минутная стрелка

Canvas.Pen.Width := 2;

Canvas.Pen.Color := clBlack;

Vector(x0,y0, amin, R-15);

// секундная стрелка

Canvas.Pen.Width := 1;

Canvas.Pen.Color := clRed;

Vector(x0,y0, asec, R-7);

end;

procedure TForm1.FormPaint(Sender: TObject);

var

x,y: integer; // координаты маркера на циферблате

a: integer; // угол между OX и прямой (x0,yo) (x,y)

h: integer; // метка часовой риски

bs: TBrushStyle; // стиль кисти

pc: TColor; // цвет карандаша

pw: integer; // ширина карандаша

begin

bs := Canvas.Brush.Style;

pc := Canvas.Pen.Color;

pw := Canvas.Pen.Width;

Canvas.Brush.Style := bsClear;

Canvas.Pen.Width := 1;

Canvas.Pen.Color := clBlack;

a:=0;

h:=3;

// циферблат

while a < 360 do

begin

x:=x0+Round( R * cos(a*2*pi/360));

y:=x0-Round( R * sin(a*2*pi/360));

Canvas.MoveTo(x,y);

if (a mod 30) = 0 then

begin

Canvas.Ellipse(x-2,y-2,x+3,y+3);

// цифры по большему радиусу

x:=x0+Round( (R+15) * cos(a*2*pi/360));

y:=x0-Round( (R+15) * sin(a*2*pi/360));

Canvas.TextOut(x-5,y-7,IntToStr(h));

dec(h);

if h = 0 then h:=12;

end

else Canvas.Ellipse(x-1,y-1,x+1,y+1);

a:=a+6; // 1 минута - 6 градусов

end;

// восстановить карандаш кисть

Canvas.Brush.Style := bs;

Canvas.Pen.Width := pw;

Canvas.Pen.Color := pc;

DrawClock;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

DrawClock;

end;

procedure TForm1.FormActivate(Sender: TObject);

begin

form2.Hide;

form3.Hide;

form4.Hide;

form5.Hide;

form6.Hide;

end;

procedure TForm1.N5Click(Sender: TObject);

begin

form2.show;

end;

//Снисает системное время

procedure TForm1.Timer2Timer(Sender: TObject);

var

minut, chas:word;

begin

chas:= hourof(now);

minut:=minuteof(now);

label1.Caption:=inttostr(chas);

label2.Caption:=inttostr(minut);

if minut<10 then

label2.Caption:='0' + inttostr(minut)

else label2.Caption:= inttostr (minut);

end;

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

if form3.mp1.FileName<>'' then

form3.mp1.Stop;

end;

procedure TForm1.SpeedButton7Click(Sender: TObject);

begin

close;

form7.Close;

form6.Close;

form5.Close;

form4.Close;

form3.Close;

form2.Close;

end;

//Скрывает панель с выбранной мелодией есле мелодия не выбрана

procedure TForm1.Timer3Timer(Sender: TObject);

begin

if form3.mp1.FileName<>''

then

begin

button1.Visible:=true;

groupbox2.Visible:=true;

end

else

begin

groupbox2.Visible:=false;

button1.Visible:=false;

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

form3.mp1.FileName:='';

button1.Visible:=false;

end;

procedure TForm1.SpeedButton8Click(Sender: TObject);

begin

form6.Show;

end;

procedure TForm1.N21Click(Sender: TObject);

begin

form5.Show;

end;

procedure TForm1.N18Click(Sender: TObject);

begin

form3.Show;

end;

//Запускает таймер для проверки на совпадение значений меток времени на главной и пятой формах

procedure TForm1.SpeedButton5Click(Sender: TObject);

begin

if form3.mp1.FileName<>'' then

begin

StatusBar1.Panels.Items[1].Text:='Будильник включен-'+ form5.label8.Caption + ':' + form5.label9.Caption;

form5.Timer2.Enabled:=true;

end

else

begin

showmessage('не задана мелодия');

form6.Show;

showmessage('не задано время звонка');

form3.Show;

end;

end;

procedure TForm1.SpeedButton9Click(Sender: TObject);

begin

StatusBar1.Panels.Items[1].Text:='Будильник выключен';

form5.Timer2.Enabled:=false;

end;

procedure TForm1.SpeedButton10Click(Sender: TObject);

begin

form5.Show;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

form7.Close;

form6.Close;

form5.Close;

form4.Close;

form3.Close;

form2.Close;

end;

procedure TForm1.SpeedButton2Click(Sender: TObject);

begin

form3.Show;

end;

procedure TForm1.SpeedButton4Click(Sender: TObject);

begin

StatusBar1.Panels.Items[0].Text:='Будильник выключен';

form3.Timer3.Enabled:=false;

end;

//Запускает таймер для проверки на совпадение значений меток времени на главной и третьей формах

procedure TForm1.SpeedButton3Click(Sender: TObject);

begin

if form3.mp1.FileName<>'' then

begin

StatusBar1.Panels.Items[0].Text:='Будильник включен-'+ form3.label5.Caption + ':' + form3.label7.Caption;

form3.Timer3.Enabled:=true;

end

else

begin

showmessage('не задана мелодия');

form6.Show;

showmessage('не задано время звонка');

form3.Show;

end;

end;

end.

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, MPlayer, StdCtrls, jpeg, ExtCtrls;

Type

TForm2 = class(TForm)

Image1: TImage;

Memo1: TMemo;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Private

{ Private declarations }

Public

{ Public declarations }

end;

var

Form2: TForm2;

Implementation

{$R *.dfm}

end.

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, MPlayer, ComCtrls, Buttons, ExtCtrls, jpeg;

type

TForm3 = class(TForm)

Panel1: TPanel;

Shape2: TShape;

Label6: TLabel;

Label5: TLabel;

Label7: TLabel;

GroupBox1: TGroupBox;

Edit3: TEdit;

tb1: TTrackBar;

tb2: TTrackBar;

mp1: TMediaPlayer;

Timer3: TTimer;

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Timer1: TTimer;

SpeedButton1: TSpeedButton;

GroupBox2: TGroupBox;

SpeedButton2: TSpeedButton;

procedure Timer3Timer(Sender: TObject);

procedure tb1Change(Sender: TObject);

procedure tb2Change(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure SpeedButton1Click(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

uses Unit1, Unit4, Unit6, Unit5;

{$R *.dfm}

//Проверяет совпадает ли системное время с установленным напоминанием

procedure TForm3.Timer3Timer(Sender: TObject);

var

m,m1,c,c1:integer;

begin

c:=strtoint(form1.label1.caption);

m:=strtoint(form1.label2.Caption);

c1:=strtoint(label5.Caption);

m1:=strtoint(label7.Caption);

if (c=c1) and (m=m1) then

begin

timer3.Enabled:=false;

mp1.Stop;

mp1.Previous;

mp1.Play;

if edit3.Text<>'' then

begin

form4.show;

form4.label1.caption:=edit3.Text;

form4.caption:=inttostr(c) + ':' + inttostr(m);

end;

end;

end;

//Для установки значения часов

procedure TForm3.tb1Change(Sender: TObject);

var

p:integer;

begin

p:=tb1.Position;

if p<10 then

label5.Caption:='0' + inttostr (p)

else

label5.Caption:=inttostr (p);

end;

//Для установки значения минут

procedure TForm3.tb2Change(Sender: TObject);

var

p1:integer;

begin

p1:=tb2.Position;

if p1<10 then

label7.Caption:='0' + inttostr (p1)

else

label7.Caption:=inttostr (p1);

end;

//Снимает системное время

procedure TForm3.Timer1Timer(Sender: TObject);

begin

label1.Caption := form1.Label1.Caption;

label3.Caption := form1.Label2.Caption;

form5.label10.Caption := form1.Label1.Caption;

form5.label12.Caption := form1.Label2.Caption;

end;

procedure TForm3.SpeedButton1Click(Sender: TObject);

begin

form3.Hide;

end;

procedure TForm3.SpeedButton2Click(Sender: TObject);

begin

if mp1.FileName=''

then

begin

showmessage ('Не задана мелодия!');

form6.show ;

end

else

begin

timer3.Enabled := true;

form3.Hide;

form1.StatusBar1.Panels.Items[0].Text:='Будильник включен-'+ label5.Caption + ':' + label7.Caption;

end;

end;

end.

unit Unit4;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls, ComCtrls, Buttons;

type

TForm4 = class(TForm)

Label1: TLabel;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

implementation

uses Unit1, Unit3;

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject);

begin

form4.Hide;

form3.mp1.stop;

end

end.

unit Unit5;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, CheckLst, MPlayer, Buttons, ExtCtrls, ComCtrls, jpeg;

type

TForm5 = class(TForm)

Panel2: TPanel;

Shape1: TShape;

Label4: TLabel;

Label8: TLabel;

Label9: TLabel;

Image2: TImage;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

SpeedButton3: TSpeedButton;

GroupBox3: TGroupBox;

Edit1: TEdit;

TrackBar1: TTrackBar;

TrackBar2: TTrackBar;

GroupBox4: TGroupBox;

SpeedButton4: TSpeedButton;

Timer2: TTimer;

procedure Timer2Timer(Sender: TObject);

procedure TrackBar1Change(Sender: TObject);

procedure TrackBar2Change(Sender: TObject);

procedure SpeedButton4Click(Sender: TObject);

procedure SpeedButton3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

uses Unit1, Unit4, Unit6, Unit3;

{$R *.dfm}

procedure TForm5.Timer2Timer(Sender: TObject);

var

m,m1,c,c1:integer;

begin

c:=strtoint(form1.label1.caption);

m:=strtoint(form1.label2.Caption);

c1:=strtoint(label8.Caption);

m1:=strtoint(label9.Caption);

if (c=c1) and (m=m1) then

begin

timer2.Enabled:=false;

form3.mp1.Stop;

form3.mp1.Previous;

form3.mp1.Play;

if edit1.Text<>'' then

begin

form4.show;

form4.label1.caption:=edit1.Text;

form4.caption:=inttostr(c) + ':' + inttostr(m);

end;

end;

end;

procedure TForm5.TrackBar1Change(Sender: TObject);

var

p:integer;

begin

p:=TrackBar1.Position;

if p<10 then

label8.Caption:='0' + inttostr (p)

else

label8.Caption:=inttostr (p);

end;

procedure TForm5.TrackBar2Change(Sender: TObject);

var

p1:integer;

begin

p1:=trackbar2.Position;

if p1<10 then

label9.Caption:='0' + inttostr (p1)

else

label9.Caption:=inttostr (p1);

end;

procedure TForm5.SpeedButton4Click(Sender: TObject);

begin

if form3.mp1.FileName=''

then

begin

showmessage ('Не задана мелодия!');

form6.show ;

end

else

begin

timer2.Enabled := true;

form5.Hide;

form1.StatusBar1.Panels.Items[1].Text:='Будильник включен-'+label8.Caption + ':' +label9.Caption;

end;

end;

procedure TForm5.SpeedButton3Click(Sender: TObject);

begin

form5.Hide;

end;

end.

unit Unit6;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Buttons, StdCtrls, MPlayer, ExtCtrls;

type

TForm6 = class(TForm)

ComboBox1: TComboBox;

SpeedButton1: TSpeedButton;

OpenDialog1: TOpenDialog;

GroupBox1: TGroupBox;

SpeedButton2: TSpeedButton;

GroupBox2: TGroupBox;

SpeedButton3: TSpeedButton;

GroupBox3: TGroupBox;

SpeedButton4: TSpeedButton;

MediaPlayer1: TMediaPlayer;

procedure SpeedButton1Click(Sender: TObject);

procedure SpeedButton3Click(Sender: TObject);

procedure SpeedButton4Click(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject)

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form6: TForm6;

implementation

uses Unit3, Unit1, Unit5;

{$R *.dfm}

//Открытие мелодий из директории

procedure TForm6.SpeedButton1Click(Sender: TObject);

begin

If OpenDialog1.Execute and FileExists(OpenDialog1.FileName) then

combobox1.Text:=opendialog1.FileName;

combobox1.Items.Add(OpenDialog1.FileName);

end;

//Прослушивание открытой мелодии

procedure TForm6.SpeedButton3Click(Sender: TObject);

begin

if combobox1.Text<>'' then

begin

MediaPlayer1.FileName:=combobox1.Text;

MediaPlayer1.Open;

MediaPlayer1.Play;

end

else

showmessage('Не выбрана мелодия из директории')

end;

//Остановка прослушиваемой мелодии

procedure TForm6.SpeedButton4Click(Sender: TObject);

begin

if combobox1.Text<>'' then

begin

MediaPlayer1.Stop;

MediaPlayer1.AutoOpen:=false;

end;

end;

//Использовать выбранную мелодию

procedure TForm6.SpeedButton2Click(Sender: TObject);

begin

if combobox1.Text<>''

then

begin

form1.label4.caption:=extractfilename(combobox1.Text);

form3.mp1.filename:=form6.ComboBox1.text;

MediaPlayer1.Close;

form3.mp1.open;

showmessage('Мелодия задана');

form6.Hide;

end

else

showmessage('Не выбрана мелодия из каталога');

end

end.

unit Unit7;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, Gauges, jpeg;

type

TForm7 = class(TForm)

Image1: TImage;

g1: TGauge;

Timer1: TTimer;

procedure Timer1Timer(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form7: TForm7;

implementation

uses Unit1, Unit2;

{$R *.dfm}

// Статус "загрузки"

procedure TForm7.Timer1Timer(Sender: TObject);

begin

g1.Progress:= g1.Progress+3;

if g1.Progress=100 then

begin

timer1.Enabled:=false;

form7.Hide;

form1.Show;

end;

end;

end.