Московский Государственный Колледж Электромеханики и Информационных Технологий
Создание программы : «Будильник»
Группа: П1-10
Студент: Узеиров К.И
![]() |
Оглавление
Общие сведения
Словесный алгоритм программы
Листинг программы
Заключение
Список литературы
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