ЧАСТЬ 3

ИНФОРМАТИКА

Электронное учебно-методическое пособие

 

 
 

 

2.5.12. Структура модуля языка программирования Object Pascal

Среда программирования Delphi, как и любая другая среда программирования, содержит наборы стандартных подпрограмм и данных, позволяющих пользователю легко и быстро создавать приложения.

В каждой подпрограмме реализован (запрограммирован) какой-либо стандартный алгоритм, например, вычисления синуса угла, слияния строк либо создания стандартного окна Windows.

Все подпрограммы и данные, в зависимости от назначения, объединены в Delphi в стандартные модули (библиотеки).

Основными стандартными модулями Delphi являются System, SysUtils, Windows, Messages, Variants, Classes, Graphics, Controls, Forms, Dialogs.

Элементы любого модуля Delphi: типы, константы, переменные и подпрограммы – допускается использовать в программе или в других модулях, обращаясь к ним по имени (идентификатору).

Чтобы иметь доступ к элементам модуля, его необходимо подключить.

Для подключения имя модуля указывается в разделе Uses.

Для каждой формы проекта автоматически создаётся связанный с ней модуль. Объявление перечисленных выше стандартных модулей автоматически добавляется в шаблон Unit-модуля для любой формы проекта. Создавая приложение, мы автоматически получаем доступ к обширному инструменту управления формой, компонентами и пр.

Кроме модулей, связанных с формами, при программировании можно использовать и отдельные модули. Они добавляются в проект командой

File | New | Unit,

оформляются по обычным правилам языка Object Pascal и сохраняются в отдельных файлах.

В отдельном модуле можно размещать процедуры, функции, константы и переменные, общие для нескольких модулей проекта.

В отличие от программы, модуль не может быть автономно запущен на выполнение. Компилятор распознает модуль по его заголовку и создаёт в результате своей работы не исполняемый файл (.ехе), как для приложения, а файл модуля с расширением dcu.

Модуль состоит из заголовка, в котором после зарезервированного слова unit указывается имя модуля, и четырёх разделов, каждый из которых начинается своим зарезервированным словом: интерфейса (Interface), реализации (Implementation), инициализации (Initialization) и деинициализации (Finalization).


Общий вид структуры модуля:

Unit <Имя модуля>;

Interface // Раздел внешнего интерфейса

Uses <Список модулей>;

Const <Список констант>;

Type <Описание типов>;

Var <Объявление переменных>;

<Заголовки процедур>;

<Заголовки функций>;

Implementation // Раздел реализации

Uses <Список модулей>;

Const <Список констант>;

Туре <Описание типов>;

Var <Объявление переменных>;

<Описание процедур>;

<Описание функций>;

Initialization // Раздел инициализации

<Инструкции, выполняемые один раз при первом обращении к модулю>

Finalization // Раздел деинициализации

<Инструкции, выполняемые при любом завершении работы модуля>

end.

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

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


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

В раздел деинициализации (есть при наличии раздела инициализации, также является необязательным) включаются инструкции, выполняемые при завершении программы. Разделы деинициализации модулей выполняются в порядке, обратном порядку их перечисления в списке Uses основной программы.

 

 


© Сибирская государственная геодезическая академия (СГГА), 2011