Московский Государственный Колледж Электромеханики и Информационных Технологий
Создание программы : «Будильник»
Группа: П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
Популярное: Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (431)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |