Область действия модуля
Область действия идентификаторов, описанных в интерфейсной секции модуля, подчиняется правилам области действия блока и распространяется на всех клиентов модуля. Другими словами, прог- раммы и модули, содержащие операторы uses (операторы использова- ния) имеют доступ к идентификаторам, которые описаны в интерфейс- ной части модулей, указанных в этих операторах uses.
Каждый модуль в операторе uses определяет свою область дейс- твия, которая охватывает остальные модули и программу в целом. Первый модуль в операторе uses представляет самую внешнюю область действия, а последний модуль представляет самую внутреннюю об- ласть действия. Это означает, что если два или более модулей со- держат описание одного и того же идентификатора, то при неуточ- ненном обращении к этому идентификатору будет выбран тот вариант, который был описан в последнем модуле в операторе uses. Однако, вы можете выбрать любой вариант этого идентификатора, указав уточненный идентификатор.
Идентификаторы встроенных констант, типов, переменных, про- цедур и функций Borland Pascal действуют, как если бы они были описаны в блоке, охватывающем все используемые модули и программу в целом. В действительности эти стандартные объекты описаны в мо- дуле System, который используется любой программой или модулем прежде любого модуля, указанного в операторе uses. Это означает, что любой модуль или программа могут переопределить стандартные идентификаторы, а обращение к ним может быть выполнено с помощью уточненного (составного) идентификатора, например, System.Integer или System.Writeln.