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

3.Руководство программиста.

Пакет Delphi предназначен для создания больших программ, которые неудобно размещать в одном файле. В связи с этим программа формируется из нескольких файлов. Любая программа в Delphi состоит из файла проекта (файл с расширением dpr) и одного или нескольких модулей (файлы с расширением pas). Каждый из таких файлов описывает программную единицу Object Pascal.

Файл проекта представляет собой программу, написанную на языке Object Pascal и предназначенную для обработки компилятором. Эта программа автоматически создается Delphi.

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

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

Проект данной работы состоит из трёх форм:

  • Главной формы, на котором расположено поле вставки воспроизведения текста.

  • Форма с справочной информацией

  • Форма с историей программы

Таблица 1. – Используемые формы и модули.

Название

Описание

Размер

Unit1.pas

Главный модуль

4,56 КБ

Unit2.pas

Модуль справки

354 байт

Unit3.pas

Модуль истории приложения

507 байт

Unit1.dfm

Главная форма

210 КБ

Unit2.dfm

Форма справки

3,17 КБ

Unit3.dfm

Форма истории приложения

822 байт

Project1.dpr

Файл проекта

379 байт

Project1.res

Файл ресурсов

5,15 КБ

Основной частью программы является файл с расширением dpr. При компиляции программы Delphi создает файлы с расширениями pas, dfm и dcu для каждого модуля: pas – файл содержит копию текста из окна кода программы, в файле с расширением dfm хранится описание содержимого окна программы, а в dcu-файле – результат преобразования в машинные инструкции текста из обоих файлов. Файлы dcu создаются компилятором и дают необходимую базу для работы компоновщика, который преобразует их в единый загружаемый файл с расширением exe.

Главный модуль содержит следующие программные элементы:

  • Класс формы TForm1.

  • Обработчики событий:

procedure SpeedButton1Click(Sender: TObject); // Кнопка, воспроизводящая текст

procedure FormCreate(Sender: TObject); //задание начальных параметров

procedure Timer1Timer(Sender: TObject); // начало и завершение воспроизведения текста

procedure TrackBar1Change(Sender: TObject); // скорость воспроизведения звука

procedure TrackBar2Change(Sender: TObject); //громкость воспроизведения звука

procedure N6Click(Sender: TObject); // пункт меню «Справка»

procedure N5Click(Sender: TObject);// пункт меню «История прослушивания»

procedure N3Click(Sender: TObject); // пункт меню «Загрузить»

procedure N2Click(Sender: TObject); // пункт меню «Выход»

procedure N4Click(Sender: TObject); // пункт меню «Сохранить»

Модуль справки содержит следующие программные элементы:

  • Класс формы TForm2;

Модуль истории прослушивания содержит следующие программные элементы:

  • Класс формы TForm3;

  • Обработчики событий:

procedure Button1Click(Sender: TObject); // очистка поля истории

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

Рассмотрим глобальные переменные в приложении OS Windows «Программе чтения текста- Читалке» :

St :string - предназначена для работы со строковым значением в поле Edit1 на Form1 и Memo1 на Form3

Stream:cardinal - значения потока размер которого не гарантируется.

i :integer- значение счетчика

sp:integer- позиция TrackBar1 скорости воспроизведения звука

vv: integer – позиция TrackBar2 громкости воспроизведения звука

Рассмотрим локальные переменные программы:

f: File – переменная хранения логического файла

4. Руководство пользователя

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

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

Системные требования:

  1. ОС Windows XP\Vista.

  2. Объем занимаемой оперативной памяти 639 КБ

  3. На HDD запускаемый файл с расширением exe занимает 524 КБ

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

Для деинсталляции достаточно лишь удалить файл расширением .exe с диска.

После запуска программы открывается окно главной формы (рис.23).

Рис.23 – Form1

Для использования приложения необходимо ввести текст в поле (рис.24) и нажать на кнопку «Воспроизведение» (рис.25).

Рис.24 – Поле ввода текста

Рис.25 – Кнопка «Воспроизведение текста»

Пользователю предоставляется возможность изменить громкость и скорость воспроизведения звука, переместив ползунок с нужными параметрами.(рис.26)

Рис.26 – Ползунки изменения громкости и скорости воспроизведения

Нажав клавишу «Меню» в левом верхнем углу пользователь имеет возможность сохранить текущее состояние приложения (Сtrl+A), загрузить ранее сохранённый файл(Ctrl+B) и выйти из приложения(Ctrl+C).

Также пользователь может просмотреть краткую справку о программе, нажав в верхнем меню колонку «Справка» или с помощью горящих клавиш Ctrl+F (рис.27)

Рис.27 Меню «Справка»

Справка имеет вид нового окна с кратким описанием программы, списком горячих клавиш и информации о создателе программы(рис.28)

Рис.28 – Окно справки

При нажатии клавиши в верхнем Меню «История прослушивания» или горячих клавиш Ctrl+E откроется новое окно с текстами, которые пользователь воспроизводил ранее. Также имеется возможность очистить окно истории, нажав клавишу «Очистить историю» (рис.29)

Рис.29 – Окно «История прослушивания»

Заключение

В процессе выполнения курсовой работы было разработано приложение ОС Windows «Программа для чтения текста – читалка » в среде программирования Borland Delphi.

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

Список использованных источников

  1. Архангельский А.Я. Object Pascal в Delphi. – Изд. Бином, СПб, 2002г.

  2. Архангельский А.Я. Delphi 6.0. Справочное пособие. – Бином, СПб, 2001г.

  3. Фаронов В.В. Delphi. Программирование на языке высокого уровня. – Питер, СПб, 2005г.

  4. Справочная система среды Delphi.

Приложение A.

(обязательное)

Текст программы

1.Модуль Unit1. Pas // модуль главного окна приложения

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, Buttons, bass, ComCtrls, Menus;

type

TForm1 = class(TForm)

Timer1: TTimer;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

Panel1: TPanel;

Label1: TLabel;

Label2: TLabel;

TrackBar1: TTrackBar;

TrackBar2: TTrackBar;

Label4: TLabel;

Panel2: TPanel;

Edit1: TEdit;

SpeedButton1: TSpeedButton;

Label3: TLabel;

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

procedure SpeedButton1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure TrackBar1Change(Sender: TObject);

procedure TrackBar2Change(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

St:string;

Stream:cardinal;

i ,sp,vv:integer;

s:string;

implementation

uses Unit2, Unit3;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

i:=0; //обнуляем счётчик

if BASS_Init(-1, 4410, 0, handle, nil) = false then //загружаем поток с параметрами, указанными производителем библиотеки

ShowMessage('Поток не инициализирован');

Bass_SetVolume(0.5); //объем звука

TrackBar2.Position:=50; // устанавливаем первоначальное положение ползунка

end;

procedure TForm1.N2Click(Sender: TObject);

begin

Bass_StreamFree(Stream); //Очищаем поток и выходим

Close;

end;

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

Bass_StreamFree(Stream);//очищаем поток

Timer1.Enabled:=true;

I:=0;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

st:=AnsiLowerCase(edit1.Text);// AnsiLowerCase преобразует всё в нижний регистр чтобы различий между введенными символами в верхнем и нижнем регистрах

if Stream=0 then begin // Stream это воспроизводимый поток и если он равен 0 ничего больше не воспроизводиться, и можно воспроизводить следующий

if i<>Length(st)then //проверяем длину строки

Inc(i); // увеличиваем счетчик i на единицу до тех пор, пока I не будет равна длине строки

Stream:=BASS_StreamCreateFile(False, Pchar(st[i]+'.mp3'), 0, 0, BASS_UNICODE);//Создаём звуковой поток Stream c определённой записью из локального файла (False, Pchar(st[i]+'.mp3'), 0, 0, BASS_UNICODE)= (справка отключена, название файла который воспроизводится,смещение,длина,кодировка)

BASS_ChannelPlay(Stream, true);// Начать проигрывать звук с записью Stream

Stream:=0;

end;

if i=Length(st)then //если воспроизвели все буквы

Timer1.Enabled:=false;//воспроизвели звук остонавливаем таймер

If Timer1.Enabled=false then Form3.Memo1.Lines.Add(st); // сохранение воспроизведений на форме 3

end;

procedure TForm1.TrackBar1Change(Sender: TObject);

begin

Timer1.Interval:=TrackBar1.Position*10; //присваиваем интервалу таймера позицию TrackBar1 умноженную на 10 для соответствия

Label2.caption:=IntToStr(TrackBar1.Position*10); // так как у TrackBar1 min значение 0 а max 100, умножаем позицию на 10, чтобы для удобства показывалось большое значение

end;

procedure TForm1.TrackBar2Change(Sender: TObject);

begin

Bass_SetVolume(TrackBar2.Position/100);

end;

procedure TForm1.N6Click(Sender: TObject); // показать справку о программе

begin

Form2.Show;

end;

procedure TForm1.N5Click(Sender: TObject); //показать историю прослушенного текста

begin

Form3.Show;

end;

procedure TForm1.N3Click(Sender: TObject); //загрузка игры

var

f: File;

begin

if OpenDialog1.Execute then

s:=OpenDialog1.FileName ;

AssignFile(f,s);

{$I-} Reset(f,1); {$I+}

if IOResult <> 0 then begin

Application.MessageBox('Ошибка чтения файла или файл отсутствует!'+#13+'Создайте схему ДТП!','Ошибка',mb_ok);

Exit;

end;

BlockRead(f,st,sizeof(st));

BlockRead(f,sp,Sizeof(sp));

BlockRead(f,vv,Sizeof(vv));

CloseFile(f);

Form1.Edit1.Text:=st;

TrackBar1.Position:=sp;

TrackBar2.Position:=vv;

end;

procedure TForm1.N4Click(Sender: TObject); //сохранение игры

var

f: File;

begin

if SaveDialog1.Execute then begin

if FileExists(SaveDialog1.FileName) then

if Application.MessageBox('Такой файл уже существует. Перезаписать?','Вопрос',mb_YesNo) <> 6 then Exit;

AssignFile(f,SaveDialog1.FileName+'.sav');

{$I-} ReWrite(f,1); {$I+}

if IOResult <> 0 then begin

Application.MessageBox('Ошибка записи файла!','Ошибка',mb_ok);

Exit;

end;

BlockWrite(f,st,SizeOf(st));

sp:=TrackBar1.Position; //переменная отвечающая за позицию скорости воспроизведения

vv:=TrackBar2.Position; //переменная отвечающая за позицию громкости

BlockWrite(f,sp,SizeOf(sp));

BlockWrite(f,vv,SizeOf(vv));

CloseFile(f);

end;

end;

end.

2. Модуль Unit2. Pas // модуль справки

unit Unit2;

interface

uses

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

Dialogs, StdCtrls;

type

TForm2 = class(TForm)

Memo1: TMemo;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}

end.

  1. Модуль Unit3. Pas // модуль истории прослушивания

unit Unit3;

interface

uses

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

Dialogs, StdCtrls;

Type

TForm3 = class(TForm)

Memo1: TMemo;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);

begin

Form3.Memo1.Clear;

end;

end.