
Раздел 6. Структура программы
Delphi-программа состоит из одного или нескольких независимо компилируемых модулей.
Различают два вида модулей:
программный модуль;
модуль Unit.
Программный модуль определяет программу, получающую управление от операционной системы.
Модуль Unit имеет вспомогательный характер, используется для создания библиотек подпрограмм и может применяться лишь вместе с программным модулем.
6.1. Программный модуль
Программный модуль состоит из заголовка, Uses-части (предложения использования) и тела модуля (блока). Признаком конца модуля является точка.
Структуру программного модуля представляет рисунок 6.1.
Рисунок 6.1 – Синтаксическая
диаграмма
структуры
программного модуля
Заголовок программного модуля имеет вид, который иллюстрирует рисунок 6.2.
Заголовок программного модуля начинается служебным словом Program, за которым записывается имя, присваиваемое модулю. Заголовок программного модуля необязателен и может отсутствовать.
Рисунок 6.2 – Синтаксическая диаграмма заголовка программного модуля
Заголовок отделяется от Uses_части точкой с запятой (;).
После сведений о программе и разработчиках при необходимости размещаются глобальные опции и директивы компилятора. Например, следующая директива всегда включается в текст консольного приложения:
{$APPTYPE CONSOLE}
Предложение использования Uses определяет все модули Unit, которые будут использоваться в данной программе (как непосредственно используемые модули, так и модули, используемые этими модулями). Формат предложения использования представляет рисунок 6.3.
Рисунок 6.3 – Синтаксическая диаграмма предложения использования
Модули Unit могут быть стандартными и модулями, созданными программистом. В свою очередь стандартные модули делятся на две группы: системные модули и модули визуальных компонентов.
К системным модулям языка Delphi относятся модули System, SysUtils, ShareMem, Math. В них содержатся наиболее часто используемые в программах типы данных, константы, переменные, процедуры и функции.
Модуль Unit System подключается автоматически, в предложении Uses он не указывается. Он содержит встроенные процедуры и функции ввода-вывода, обработки строк, арифметические, динамического управления памятью, поддержку арифметики с ПТ и т.д. Содержащиеся в нем подпрограммы обеспечивают работу всех остальных модулей системы.
Модуль SysUtils подключается при написании программ, эмулирующих текстовый (консольный) режим.
Модуль ShareMem используется для управления памятью при работе с динамически загружаемой библиотекой. Он указывается в предложении Uses первым.
Модуль Math содержит высокопроизводительные подпрограммы для тригонометрических, логарифмических, статистических и финансовых вычислений.
Пример предложения использования:
Uses SysUtils, U1, Math;
Тело программного модуля (программный блок) состоит из раздела описаний (объявлений) и раздела операторов. Формат программного блока представляет рисунок 6.4.
Рисунок 6.4 – Синтаксическая диаграмма тела программного модуля
Раздел описаний следует вначале тела модуля. В языке Delphi предусмотрено пять видов объявлений (описаний):
В списке приведена стандартная последовательность разделов. В ранних версиях языка Паскаль разделы должны следовать друг за другом строго в этом порядке. В языке Delphi допускают произвольный порядок объявлений. Отдельные виды объявлений и соответствующие разделы в модуле могут отсутствовать (быть пустыми) – если отсутствуют соответствующие элементы. Каждый раздел может повторяться произвольное число раз.