Московский Государственный Колледж Электромеханики и Информационных Технологий

Создание программы : «Будильник»

Группа: П1-10

Студент: Узеиров К.И

 
  Московский Государственный Колледж Электромеханики и Информационных Технологий - student2.ru

Оглавление

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

Словесный алгоритм программы

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

Заключение

Список литературы

1. Общие сведения

Delphi — язык программирования, который используется в одноимённой среде разработки. Сначала язык назывался Object Pascal. Начиная со среды разработки Delphi 7.0, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal.

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

Среди пользователей персональных компьютеров в настоящее время наиболее популярно семейство операционных систем Windows и, естественно, что тот, кто собирается программировать, стремится писать программы, которые будут работать в этих системах.

Несколько лет назад рядовому программисту оставалось только мечтать о создании собственных программ, работающих в среде Windows, т. к. единственным средством разработки был Borland C++ for Windows, явно ориентированный на профессионалов, обладающих серьезными знаниями и опытом.

Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую "быструю разработку", среди которых можно выделить Borland Delphi и Microsoft Visual Basic. В основе систем быстрой разработки (RAD-систем, Rapid Application Development — среда быстрой разработки приложений) лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть рутинной работы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий. Производительность программиста при использовании RAD-систем - фантастическая!

Delphi — это среда быстрой разработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi — строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal.

В настоящее время программистам стала доступна очередная версия пакета Delphi - Borland Delphi 7 Studio. Как и предыдущие версии, Borland Delphi 7 Studio позволяет создавать самые различные программы: от простейших однооконных приложений до программ управления распределенными базами. В состав пакета включены разнообразные утилиты, обеспечивающие работу с базами данных, XML-документами, создание справочной системы, решение других задач. Отличительной особенностью седьмой версии является поддержка технологии .NET.

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

unit Alarm_;

interface

uses

Windows, Messages, SysUtils, Variants, Classes,

Graphics, Controls, Forms, Dialogs, StdCtrls,

ExtCtrls, ComCtrls,

ShellAPI, // для доступа к Shell_NotifyIcon

DateUtils, MPlayer;

type

TForm1 = class(TForm)

Timer1: TTimer;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

UpDown1: TUpDown;

Label5: TLabel;

UpDown2: TUpDown;

Label6: TLabel;

Shape1: TShape;

Label7: TLabel;

Button1: TButton;

Shape2: TShape;

Label8: TLabel;

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

procedure FormCreate(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);

procedure UpDown2Click(Sender: TObject; Button: TUDBtnType);

procedure Button1Click(Sender: TObject);

// **** эти объявление вставлена сюда вручную

procedure CreateTrayIcon(n: integer; Tip: String);

procedure DeleteTrayIcon(n: integer);

procedure SetSound;

// ******************************************

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{ Имя wav файла, который должен находится

в системном каталоге Media, программа

берет из командной строки. Если параметр

не указан, будильник воспроизводит звук,

который находится в файле sound.wav,

который должен находится в том же

каталоге, что и выполняемый файл программы.

}

{$R *.dfm}

var

Hour,Min: word; // время на индикаторе

AlHour, AlMin: word; // будильник установлен на AlHour:AlMin

MediaPlayer : TMediaPlayer; // обеспечивает воспроизведение

// звукового сигнала

// начало работы программы

procedure TForm1.FormCreate(Sender: TObject);

begin

Hour := HourOf(Now);

Min := MinuteOf(Now);

Label1.Caption := IntToStr(Hour);

if Min < 10

then Label2.Caption := '0'+IntToStr(Min)

else Label2.Caption := IntToStr(Min);

// CreateTrayIcon(1); // поместить картинку на System Tray

SetSound; // загрузить wav-файл

end;

// завершение работы программы

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

begin

// удалить картинку с System Tray

DeleteTrayIcon(1);

end;

const

WM_MYTRAYNOTIFY = WM_USER + 123;

// помещает картинку на System Tray

procedure TForm1.CreateTrayIcon(n: integer; Tip: string);

var

nidata: TNotifyIconData;

begin

// заполним структуру nidata,

// поля которой определяют значок

// на System Tray

with nidata do

begin

cbSize := SizeOf(TNotifyIconData);

Wnd := Self.Handle; // окно (приложение), которое представляет значок

uId := n; // номер значка (одно приложение может разместить несколько значков)

uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP; // что надо сделать

uCallBackMessage := WM_MYTRAYNOTIFY;

hIcon := Application.Icon.Handle;

//szTip := 'Будильник';

StrPCopy(szTip,Tip); // копируем Ansi строку в nul terminater строку

end;

Shell_NotifyIcon(NIM_ADD, @nidata);

end;

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

procedure TForm1.DeleteTrayIcon(n: integer);

var

nidata: TNotifyIconData;

begin

// заполним структуру nidata,

// поля которой определяют значок

// на System Tray

with nidata do

begin

cbSize := SizeOf(TNotifyIconData);

Wnd := Self.Handle; // окно (приложение), которое представляет значок

uId := n; // номер значка (одно приложение может разместить несколько значков)

end;

Shell_NotifyIcon(NIM_DELETE, @nidata);

end;

// сигнал от таймера

procedure TForm1.Timer1Timer(Sender: TObject);

var

cHour,cMin: word;

begin

// получить текущее время

cHour := HourOf(Now);

cMin := MinuteOf(Now);

if Timer1.Tag = 0 // окно программы на экране

then begin

{ проверим, совпадает ли текущее время

с отображаемым на индикаторе }

if cHour <> Hour then

begin

Hour := cHour;

Label1.Caption := IntToStr(Hour);

end;

if cMin <> Min then

begin

Min := cMin;

if min <10

then Label2.Caption := '0' + IntToStr(Min)

else Label2.Caption := IntToStr(Min);

end;

// обеспечим мигание двоеточия

if Label3.Visible

then Label3.Visible := False

else label3.Visible := True;

end

else // окно программы скрыто, контролируем

// наступление момента подачи сигнала

if (cHour = AlHour) and (cMin = AlMin)

// сигнал !

then begin

Form1.Show;

Timer1.Tag := 0;

Timer1.Interval := 1000;

try

MediaPlayer.Play; // воспроизвести звуковой фрагмент

except

on EMCIDeviceError do ;

end;

end;

end;

// щелчок на UpDown1 изменяет

// время сигнала будильника - часы

procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);

begin

if UpDown1.Position < 10

then Label4.Caption := '0' + IntToStr(UpDown1.Position)

else Label4.Caption := IntToStr(UpDown1.Position);

end;

// щелчок на UpDown2 изменяет

// время сигнала будильника - минуты

procedure TForm1.UpDown2Click(Sender: TObject; Button: TUDBtnType);

begin

if UpDown2.Position < 10

then Label5.Caption := '0' + IntToStr(UpDown2.Position)

else Label5.Caption := IntToStr(UpDown2.Position);

end;

// щелчок на кнопке OK

procedure TForm1.Button1Click(Sender: TObject);

begin

// установить будильник

AlHour := UpDown1.Position;

AlMin := UpDown2.Position;

Timer1.Tag := 1;

CreateTrayIcon(1,'Будильник '+

Label4.Caption+':'+Label5.Caption); // поместить картинку на System Tray

Form1.Hide;

Timer1.Interval := 3000; // проверять каждые 3 секунды

end;

// определяет звук будильника

procedure TForm1.SetSound;

var

pWinDir: PChar; // указатель на nul terminated строку

sWinDir: String[80];

begin

// создадим компонент MediaPlayer

MediaPlayer := TMediaPlayer.Create(Form1);

MediaPlayer.ParentWindow := Form1.Handle;

MediaPlayer.Visible := False;

// Cтандартные wav-файлы находятся в каталоге Media,

// но где находится и как называется каталог, в который

// установлен Windows? Выясним это.

// Чтобы получить имя каталога Windows,

// воспользуемся API функцией GetWindowsDirectory.

// Строка, которая передается в API функцию,

// должна быть nul terminated строкой.

// Получить имя каталога Windows

GetMem(pWinDir,80); // выделить память для строки ';

GetWindowsDirectory(pWinDir,80); // получить каталог Windows

sWinDir := pWindir;

// открыть WAV-файл

if ParamStr(1) = ''

then MediaPlayer.FileName := 'Sound.MP3'

else MediaPlayer.FileName := sWinDir + '\media\' + ParamStr(1);

try

MediaPlayer.Open;

except

on EMCIDeviceError do ;

end;

end;

end.

Заключение

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

delphi программа алгоритм меню листинг

Список литературы

1. Вальвачев А.Н, Сурков К.А, Сурков Д.А, Четырько Ю. М. Программирование на языке Delphi. Учебное пособие. — 2005.

2. Культин Н.Б. Основы программирования в Delphi 7. СПБ: БХВ – Петербург 2002.

3. Архангельский А.Я. Программирование в Delphi 7 -М: ЗАО Издательство БИНОМ 2003.-768 с.

4. Кэнту М. Delphi 7: Для профессионалов

Размещено на Allbest.ru

Наши рекомендации