Структура файла проекта
Файл проекта представляет собой программу, написанную на языке Object Pascal и предназначенную для обработки компилятором. Эта программа автоматически создается и изменяется, и очень редко возникает необходимость изменять этот файл вручную.
Синтаксически программа состоит из:
1. заголовка,
2. списка подключаемых к программе модулей (может отсутствовать),
3. программного блока (описательной и исполнительной части).
program <имя программы>; //Заголовок программы uses <имя>, ..., <имя>; //Подключение модулей {$<директивы>} //Директивы компилятора const ...; //Константы type ...; //Типы данныхvar ...; //Переменные procedure <имя>; begin ... end; //Процедуры function <имя>; begin ... end; //Функции begin <операторы>end. |
Заголовок программы
Заголовок программы должен совпадать с именем программного файла. Он формируется автоматически при сохранении файла на диске и его не следует изменять вручную. Например:
Program Console; |
Одним заголовком сказать можно немного, поэтому для подробного рассказа о назначении программы, нюансах алгоритма и других вещах применяют комментарий.
После сведений о программе и разработчиках принято размещать директивы компилятора. Например, следующая директива всегда включается в текст консольного приложения:
{$APPTYPE CONSOLE} |
Подключение модулей
Секция подключения модулей предназначена для встраивания в программу стандартных и разработанных вами библиотек подпрограмм и классов. Эта секция состоит из зарезервированного слова uses и списка имен подключаемых библиотечных модулей.
Uses SysUtils; |
С момента подключения все ресурсы модуля (типы данных, константы, переменные, процедуры и функции) становятся доступны программисту.
Программный блок
По своей сути блок— это программа в целом или логически обособленная часть программы, содержащая описательную часть и исполнительную часть. Приведите примеры видов блоков, которые уже знаете.
1. Любая секция в программном блоке кроме тела программы может отсутствовать.
2. Секции описания констант, типов данных, переменных, процедур и функций могут встречаться в программе любое количество раз и следовать в произвольном порядке.
3. Все описания должны быть сделаны до того, как они будут использованы.
Тело программы является исполнительной частью блока. Именно из него вызываются описанные выше процедуры и функции. Тело программы начинается зарезервированным словом begin (начало), далее следуют операторы языка, отделенные друг от друга точкой с запятой. Завершает тело программы зарезервированное словоend (конец) с точкой.
Begin Application.Initialize; Application.CreateForm(TfmExample, fmExample); Application.Run; end. |
Сочетание end со следующей за ней точкой называется терминатором программной единицы: как только в тексте программы встретится такой терминатор, компилятор прекращает анализ программы и игнорирует оставшуюся часть текста.
Структура модуля
Логически обособленные группы процедур и функций чрезвычайно удобно объединять в специализированные библиотеки — модули. Каждый модуль – это отдельный файл, содержащий исходный код и имеющий расширение .pas. Каждый модуль редактируется и компилируется отдельно.
Каждый модуль заканчивается зарезервированным словомend (конец) с точкой.
Приведем общую структуру программного модуля.
Модуль состоит из:
- заголовка,
- секция интерфейса,
- секция реализации,
- секция инициализации (может отсутствовать),
- секция завершения (может отсутствовать).
unit <имя модуля>; //Заголовок модуля {$<директивы>} //Директивы компилятора interface //Интерфейсная часть uses <имя>, ..., <имя>; //Подключение модулей const ... ; //Константы type ... ; //Типы данныхvar ... ; //Переменные procedure <имя> (<параметры>); //Заголовки процедур function <имя> (<параметры>): <тип>; //Заголовки функций implementation //Часть реализации uses <имя>, ..., <имя>; //Подключение модулей const ... ; //Константы type ... ; //Типы данных var ... ; //Переменные procedure <имя>; begin ... end; //Реализация процедур function <имя>; begin ... end; //Реализация функций initialization <операторы> //Код инициализацииfinalization <операторы> //Код завершенияend. |
После слова unit записывается имя модуля. Оно должно совпадать с именем файла, в котором находится исходный текст модуля. Например, если файл называется MathLib.pas, то модуль должен иметь имя MathLib. Заголовок модуля формируется автоматически при сохранении файла на диске, поэтому его не следует изменять вручную. Чтобы дать модулю другой заголовок, просто сохраните его на диске под другим именем.
В секции interface описываются глобальныеданные, процедуры и функции, доступные для использования в основной программе и других модулях.
В секции implementation реализуется программный код глобальных процедур и функций и описываются локальныеданные, процедуры и функции, недоступные основной программе и другим модулям.
Секция initialization является необязательной. Она состоит из операторов и выполняется автоматически непосредственно перед запуском основной программы. Блоки инициализации подключенных к программе модулей выполняются в том порядке, в котором они упоминаются в секции uses.
Секция finalization тоже является необязательной. Она состоит из операторов и выполняется автоматически непосредственно после завершения основной программы. Блоки завершения подключенных к программе модулей выполняются в порядке, обратном порядку подключения модулей в секции uses.
Если модуль не нуждается в инициализации и завершении, секции initialization и finalization можно опустить.
Дата добавления: 2016-02-09; просмотров: 658;