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

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


cp:obx-export

Различия

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

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

cp:obx-export [2020/01/02 15:29]
иван_денисов
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 e:=TestExport, sl:=StdLog; 
- 
-PROCEDURE Start*; 
-BEGIN 
-    sl.String(e.str);sl.Ln; 
-    e.str:='Петя Телевизоров'; (* <- эта строка недопустима!!! *) 
-    slReal(e.rVal);sl.Ln; 
-    e.rVal:=50.1; 
-    slReal(e.rVal);sl.Ln 
-END Start; 
-END TestImport. 
-^TestImport.Start 
-</code> 
- 
-В таком виде этот модуль скомпилировать невозможно. Присвоение строке запрещено. 
- 
-==== Важное замечание ==== 
- 
-В отличии от **FreePascal** (и многих других идеологически устаревших языков) в **Компонентном Паскале** всё, что не помечено на экспорт --- скрыто. Это выверенное решение и абсолютно логичное. Никому не понравится купленная в магазине микроволновка, у которой все провода висят наружу. 
-  
cp/obx-export.txt · Последнее изменение: 2020/10/29 07:08 (внешнее изменение)