Руководство по языку B.Pascal 7

       

Совместное использование описаний


Можно модифицировать процедуру WriteXY таким образом, чтобы она воспринимала дополнительный параметр, задающий прямоугольное окно на экране:

procedure WriteXY(SomeWindow : WindRec; X, Y : integer; Message : string);

procedure ShowError(Somewindow : WindRec; ErrMsg : string);

Нужно учитывать, что две процедуры находятся в разных моду- лях. Даже если вы описываете WindData в интерфейсной секции одно- го модуля, то нет такого допустимого способа, с помощью которого это описание могло бы быть доступно в другом модуле. Решение сос- тоит в том, чтобы описать третий модуль, в котором содержится только определение записи WindRec:

unit WindData; interface

type WindRec = record X1, Y1, X2, Y2 : integer; ForeColor, BackColor : byte; Active : boolean; end; implementation end.

В добавление к тому, что модификация кода процедур WriteXY и ShowError позволяет использовать новый параметр, в интерфейсной секции модулей Display и Error теперь может использоваться WindData. Это допустимо, так как модуль WindData не зависит от своего оператора uses, а модули Display и Error ссылаются друг на друга только в соответствующих секциях реализации.

Взаимозависимые модули могут быть полезны в отдельных ситуа- циях, но использовать их надо аккуратно. Если вы будете применять их так, где это не требуется, программу станет сложней обслужи- вать, и она будет больше подвержена ошибкам.



Содержание раздела