Задание2_Скорость_бега (Лабораторная работа №2), страница 2
Описание файла
Файл "Задание2_Скорость_бега" внутри архива находится в папке "Лабораторная работа №2". Документ из архива "Лабораторная работа №2", который расположен в категории "". Всё это находится в предмете "вычислительный практикум" из 3 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "вычислительный практикум" в общих файлах.
Онлайн просмотр документа "Задание2_Скорость_бега"
Текст 2 страницы из документа "Задание2_Скорость_бега"
Раздел реализации открывается словом implementation и содержит объявления локальных переменных, процедур и функций, поддерживающих работу формы.
Начинается раздел реализации директивой {$r *.dfm}, указывающей компилятору, что в процессе генерации выполняемого файла надо использовать описание формы. Описание формы находится в файле с расширением dfm, имя которого совпадает с именем модуля. Файл описания формы генерируется средой Delphi на основе внешнего вида формы.
За директивой {$R *.dfm} следуют процедуры обработки событий для формы и ее компонентов. Сюда же программист может поместить другие процедуры и функции.
Раздел инициализации позволяет выполнить инициализацию переменных модуля. Инструкции раздела инициализации располагаются после раздела реализации (описания всех процедур и функций) между begin и end. Если раздел инициализации не содержит инструкций (как в приведенном примере), то слово begin не указывается.
Следует отметить, что значительное количество инструкций модуля формирует Delphi. Например, Delphi, анализируя действия программиста по созданию формы, генерирует описание класса формы (после слова type).
Сохранение проекта
Проект — это набор файлов, используя которые компилятор создает исполняемый файл программы (ЕХЕ-файл). В простейшем случае проект состоит из файла описания проекта (DOF-файл), файла главного модуля (DPR-файл), файла ресурсов (RES-файл), файла описания формы (DFM-файл), файла модуля формы, в котором находятся основной код приложения, в том числе функции обработки событий на компонентах формы (PAS-файл), файл конфигурации (CFG-файл).
Так как проект представляет собой набор файлов, то рекомендуется для каждого проекта создавать отдельную папку. Чтобы сохранить проект, нужно из меню File выбрать команду Save Project As. Если проект еще ни разу не был сохранен, то Delphi сначала предложит сохранить модуль (содержимое окна редактора кода), поэтому на экране появится окно Save Unit1 As. В этом окне надо выбрать папку, предназначенную для файлов проекта, и ввести имя модуля. После нажатия кнопки Сохранить, появляется следующее окно, в котором необходимо ввести имя файла проекта.
Обратите внимание на то, что имена файлов модуля (pas-файл) и проекта (dpr-файл) должны быть разными. Имя генерируемого компилятором исполняемого файла совпадает с именем проекта. Поэтому файлу проекта следует присвоить такое имя, которое, по вашему мнению, должен иметь исполняемый файл программы, а файлу модуля — какое-либо другое имя, например, полученное путем добавления к имени файла проекта порядкового номера модуля.
Внесение изменений
После нескольких запусков программы Скорость бега возникает желание внести изменения в программу. Например, было бы неплохо, чтобы после ввода дистанции и нажатия клавиши <Enter> курсор переходил в поле Время. Или если бы в поля Дистанция и Время пользователь мог ввести только цифры.
Чтобы внести изменения в программу, нужно запустить Delphi и открыть соответствующий проект. Сделать это можно обычным способом, выбрав из меню File команду Open Project. Можно также воспользоваться командой Reopen из меню File. При выборе команды Reopen открывается список проектов, над которыми программист работал в последнее время.
Следует обратить внимание на то, что для добавления в программу процедуры обработки события нужно в окне Object Inspector выбрать компонент, для которого создается процедура, затем на вкладке Events выбрать событие и сделать двойной щелчок в поле имени процедуры. Delphi сформирует шаблон процедуры обработки события. После этого можно вводить инструкции, реализующие процедуру обработки.
В процедуре обработки события OnKeyPress параметр Key - символ, соответствующий нажатой клавише. Если символ недопустимый, то процедура должна заменить его на символ с кодом 0. В результате этого символ в поле редактирования не появится, и у пользователя создается впечатление, что программа не реагирует на нажатие клавиш.
Повторное использование функций и процедур
Разработав некоторую функцию, программист может использовать ее в другой программе, поместив текст этой функции в раздел implementation. Однако этот способ неудобен, т. к. приходится набирать текст функции заново или копировать его из текста другой программы.
Создание модуля
Delphi позволяет программисту поместить свои функции и процедуры в отдельный модуль, а затем использовать процедуры и функции модуля в своих программах, указав имя модуля в списке модулей, необходимых программе (инструкция uses).
Чтобы приступить к созданию модуля, нужно сначала закрыть окно формы и окно модуля формы (в ответ на вопрос о необходимости сохранения модуля следует выбрать No, т. е. модуль, соответствующий закрытой форме, сохранять не надо). Затем из меню File нужно выбрать команду New | Unit. В результате открывается окно редактора кода, в котором находится сформированный Delphi шаблон модуля. Его текст приведен в листинге 2.
Листинг 2. Шаблон модуля
unit Unitl;
interface
implementation
end.
Начинается модуль заголовком — инструкцией unit, в которой указано имя модуля. Во время сохранения модуля это имя будет автоматически заменено на имя, указанное программистом.
Слово interface отмечает раздел интерфейса модуля. В этот раздел программист должен поместить объявления находящихся в модуле процедур и функций, которые могут быть вызваны из других модулей, использующих данный.
В раздел implementation (реализация) нужно поместить процедуры и функции, объявленные в разделе interface.
В качестве примера в листинге 3 приведен модуль программиста, который содержит рассмотренные ранее функции IsInt и IsFloat.
Листинге 3. Модуль программиста
unit my_unit;
interface // объявления процедур и функций, доступных программам, // использующим этот модуль
function IsInt(ch : char) : Boolean;
//функция IsInt проверяет, является ли символ
// допустимым во время ввода целого числа
function IsFloat(ch : char; st: string) : Boolean;
// Функция IsFloat проверяет, является ли символ допустимым
// во время ввода дробного числа
// ch — очередной символ
// st — уже введенные символы
impelementation // реализация
function IsInt(ch : char) : Boolean;
begin
…
end;
function IsFloat(ch : char; st: string) : Boolean;
begin
…
end;
end.
Сохраняется модуль обычным образом, т. е. выбором из меню File команд Save. Вместе с тем, для модулей повторно используемых процедур и функций лучше создать отдельную папку, назвав ее, например, Units.
Использование модуля
Для того чтобы в программе могли применяться функции и процедуры модуля, программист должен добавить этот модуль к проекту и указать имя модуля в списке используемых модулей (обычно имя модуля программиста помещают в конец сформированного Delphi списка используемых модулей).
В разрабатываемой программе процедура обработки события onKeyPress
в полях ввода исходных данных обращается к функциям IsInt и IsFloat, которые находятся в модуле my_unit.pas, поэтому в список используемых модулей должно быть добавлено имя модуля my_unit.
После добавления имени модуля в список модулей, используемых приложением, сам модуль нужно добавить в проект. Для этого из меню Project надо выбрать команду Add to Project и в открывшемся диалоговом окне — имя файла модуля. В результате добавления модуля к проекту в окне редактора появится вкладка с текстом добавленного к проекту модуля.
После добавления модуля к проекту и включения его имени в список используемых модулей (инструкция uses) можно выполнить компиляцию программы.