Инструменты пользователя

Инструменты сайта


cp:obx-export

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

cp:obx-export [2020/01/02 15:31]
иван_денисов
cp:obx-export [2020/10/29 07:08]
Строка 1: Строка 1:
-===== Экспортирование переменных и процедур ===== 
  
-Этот пример демонстрирует, как можно обратиться к переменным и процедурам одного модуля из другого. 
-Для демонстрации примера приведены два модуля. 
- 
-==== Модуль для экспорта ==== 
- 
-<code> 
-MODULE TestExport; 
-VAR 
-    str-:ARRAY 40 OF CHAR; 
-    rVal*: REAL; 
-BEGIN 
-    str:='Вася Пупкин'; 
-    rVal:=10.5 
-END Export. 
-</code> 
-В этом модуле определены две экспортируемые переменные: 
-  * str --- только для чтения (со знаком '-') 
-  * rVal --- на чтение и запись (со знаком '*') 
- 
-Если попытаться изменить **str** --- компилятор **Компонентного Паскаля** выведет маркер ошибки, нажав на который появится сообщение, что изменять эту переменную нельзя. 
- 
-==== Второй модуль ==== 
- 
-<code> 
-MODULE TestImport; 
- 
-IMPORT TestExport, Log; 
- 
-PROCEDURE Start*; 
-BEGIN 
-    Log.String(TestExport.str); Log.Ln; 
-    TestExport.str:='Петя Телевизоров'; (* <- эта строка недопустима!!! *) 
-    Log.Real(TestExport.rVal); Log.Ln; 
-    TestExport.rVal:=50.1; 
-    Log.Real(TestExport.rVal); Log.Ln 
-END Start; 
- 
-END TestImport. 
- 
-^TestImport.Start 
- 
-</code> 
- 
-В таком виде этот модуль скомпилировать невозможно. Присвоение строке запрещено. 
- 
-==== Важное замечание ==== 
- 
-В отличии от **FreePascal** (и многих других идеологически устаревших языков) в **Компонентном Паскале** всё, что не помечено на экспорт --- скрыто. Это выверенное решение и абсолютно логичное. Никому не понравится купленная в магазине микроволновка, у которой все провода висят наружу. 
-  
cp/obx-export.txt · Последнее изменение: 2020/10/29 07:08 (внешнее изменение)