Структура проекта
Листинг В4. Модуль программы Скорость бега.
unit vrun1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCTRLs; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Button1: TButton; Button2: TButton; procedure ButtonlClick(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} // нажатие кнопки Вычислить procedure TForm1.ButtonlClick'(Sender: TObject); var dist: integer; // дистанция, метров t: real; // время как дробное число min: integer; // время, минуты sek: integer; // время, секунды v: real; // скорость begin // получить исходные данные из полей ввода dist: = StrToInt(Edit1.Text); t: = StrToFloat(Edit2.Text); // предварительные преобразования min: = Trunc(t); // кол-во минут – это целая часть числа t sek: = Trunc(t*100) mod 100; // кол-во секунд – это дробная часть // числа t // вычисление v: = (dist/1000) / ((min*60 + sek)/3600); // вывод результата label4.Caption: = 'Дистанция: '+ Edit1.Text + ' м' + #13 + 'Время: ' + IntToStr(min) + ' мин ' + IntToStr(sek) + ' сек ' + #13 + 'Скорость: ' + FloatToStrF(v,ffFixed,4.2) + км/час'; end; // нажатие кнопки Завершить procedure TForm1.Button2Click(Sender: TObject) begin Form1.Close; end; end.
Начинается модуль словом unit, за которым следует имя модуля. Именно это имя упоминается в списке используемых модулей в инструкции uses главного модуля приложения, текст которого приведен в листинге ВЗ.
Модуль состоит из следующих разделов:
- интерфейса;
- реализации;
- инициализации.
Раздел интерфейса (начинается словом interface) сообщает компилятору, какая часть модуля является доступной для других модулей программы. В этом разделе перечислены (после слова uses) библиотечные модули, используемые данным модулем. Также здесь находится сформированное Delphi описание формы, которое следует за словом type.
Раздел реализации открывается словом implementation и содержит объявления локальных переменных, процедур и функций, поддерживающих работу формы.
Начинается раздел реализации директивой {$R *.DFM}, указывающей компилятору, что в процессе генерации выполняемого файла надо использовать описание формы. Описание формы находится в файле с расширением .dfm, имя которого совпадает с именем модуля. Файл описания формы генерируется средой Delphi на основе внешнего вида формы.
За директивой {$R *.DFM} следуют процедуры обработки событий для формы и ее компонентов. Сюда же программист может поместить другие процедуры и функции.
Раздел инициализации позволяет выполнить инициализацию переменных модуля. Инструкции раздела инициализации располагаются после раздела реализации (описания всех процедур и функций) между begin и end. Если раздел инициализации не содержит инструкций (как в приведенном примере), то слово begin не указывается.
Следует отметить, что значительное количество инструкций модуля формирует Delphi. Например, Delphi, анализируя действия программиста по созданию формы, генерирует описание класса формы (после слова type). В приведенном примере инструкции, набранные программистом, выделены фоном. Очевидно, что Delphi выполнила значительную часть работы по составлению текста программы.