Uses CRT, My_modul;
Взаимное использование модулей
Модули могут обращаться друг к другу косвенно или рекурсивно.
При косвенном использовании модулей один из них использует другой:
Unit A; Unit B;
Interface Interface
Uses B; .....
End.
End.
Пусть в головной программе используется только модуль A:
Uses CRT, A;
В этом случае нет необходимости указывать и модуль B:
Uses CRT, A, B;
При рекурсивном использовании модулей они взаимно обращаются друг к другу:
Unit A; Unit B;
Interface Interface
Uses B; Uses A;
....... .......
End. End.
Если какой-нибудь из них подключить к программе:
Uses CRT, A;
то будет зафиксирована ошибка:
Error 68: Circular Unit Reference (A)
Взаимное использование возможно, если модули подключить из раздела реализации:
Unit A; Unit B;
Interface Interface
....... .......
Implementation Implementation
Uses B; Uses A;
....... .......
End. End.
Особенности выполнения инициирующих разделов
Если в модуле имеется инициирующий раздел, то его операторы выполняются до операторов программы, к которой данный модуль подключен. Если несколько модулей с инициирующими разделами:
Unit A; Unit B;
Interface Interface
Const x = 1; Const x = 2; x - глобальная
Implementation Implementation переменная
End. End.
подключены к программе:
Program Primer;
Uses WinCRT, A, B;
Begin
ClrScr;
WriteLn('x=', x);
End.
то они выполняются в порядке подключения, и одноименной переменной будет присвоено последнее значение. На экран будет выведено:
x=2
Последним подключен модуль B, в котором глобальная x = 2.
Изменим порядок подключения:
Дата добавления: 2015-08-08; просмотров: 603;