Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Pascal и Delphi / Borland Pascal / Модули Borland Pascal /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Ссылки на описания модуля - Программирование от RIN.RU
Ссылки на описания модуля

Как только вы включили модуль в свою программу, все константы, типы данных, переменные, процедуры и функции, описанные в секции интерфейса этого модуля, становятся доступными для вашей программы. Например, допустим, имеется следующий модуль:


unit MyStuff;
interface
const
MyValue = 915;
type
MyStars = (Deneb,Antares,Betelgeuse);
var
MyWord : string[20];


procedure SetMyWord(Star : MyStars);
function TheAnswer : integer;
implementation
.
.
.
end.


Как можно видеть здесь в интерфейсной части модуля, та часть модуля, которая находится в интерфейсной секции, является видимой для вашей программы (и может ею использоваться). С учетом этого можно написать следующую программу:


program TestStuff;
uses MyStuff;
var
I : integer;
AStar : MyStars;
begin
Writeln(myValue);
AStar := Deneb;
SetMyWord(AStar);
Writeln(MyWord);
I := TheAnswer;
Writeln(I)
end.


После включения в программу оператора uses MyStuff вы можете ссылаться на все идентификаторы, описанные в интерфейсной секции модуля МyStuff (МyWord, МyValue и так далее). Однако, рассмотрим следующую ситуацию:


program TestStuff;
uses MyStuff;
const
MyValue = 22;
var
I : integer;
AStar : MyStars;


function TheAnswer : integer;
begin
TheAnswer := 1
end;


begin
Writeln(myValue);
AStar := Deneb;
SetMyWord(AStar);
Writeln(MyWord);
I := TheAnswer;
Writeln(I)
end.


В этой программе переопределяются некоторые из идентификаторов, описанных в МyStuff. Будучи скомпилированной и выполненной, эта программа будет использовать собственные определения для МyValue и ТheAnswer, поскольку они были описаны позднее, чем определения в МyStuff.


Вероятно, вам интересно знать, каким образом в такой ситуации можно ссылаться на идентификаторы в МyStuff. Для этого необходимо перед каждым идентификатором помещать имя МyStuff с точкой (.). Например, рассмотрим еще одну версию этой программы:


program TestStuff;
uses MyStuff;
const
MyValue = 22;
var
I : integer;
AStar : MyStars;


function TheAnswer : integer;
begin
TheAnswer := 1
end;


begin
Writeln(MyStuff.MyValue);
AStar := Deneb;
SetMyWord(AStar);
Writeln(MyWord);
I := MyStuff.TheAnswer
Writeln(I)
end.


Эта третья программа даст такие же ответы, что и первая, даже в том случае, если вы переопределите MyValue и TheAnswer. В действительности вы имели полное право написать первую программу следующим образом:


program TestStuff;
uses MyStuff;
var
I : integer;
AStar : MyStuff.MyStars;


begin
Writeln(MyStuff.MyValue);
AStar := My.Stuff.Deneb;
MyStuff.SetMyWord(AStar);
Writeln(My.Stuff.MyWord);
I := MyStuff.TheAnswer;
Writeln(I)
end.


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



 8  Комментарии к статье  8  Обсудить в форуме  8  Обсудить в чате

8  В тему

Что такое модуль?

Структура модуля

Как используются модули?

Оператор uses секции реализации

Создание ваших собственных модулей

Модули и большие программы

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь