(*~\Глагол\Отделы\Оболочка\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
(**)                        ОТДЕЛ Положение;
(*============================================================================*
 * НАЗНАЧЕНИЕ: отрисовка положения указки на холсте
 * ПРИМЕЧАНИЕ: занимает 15 знакомест, не имеет своего цвета,
 *             отрисовывается только по требованию холста
 *============================================================================*)

ИСПОЛЬЗУЕТ 
(*           Глагол\               *)
  Надел   ИЗ "..\..\Отделы\Поле\",
  Поле    ИЗ "..\..\Отделы\Поле\",
  Холст   ИЗ "..\..\Отделы\Поле\",
(*           Глагол\               *)
  Текст   ИЗ "..\..\Отделы\Обмен\",
  Окно    ИЗ "..\..\Отделы\Обмен\",
  Ввод    ИЗ "..\..\Отделы\Обмен\";

ВИД
                          (* Положение.Доступ <- Надел.Доступ <- Рамка.Доступ *)
  Доступ- = ДОСТУП К Вид;
                          (* Положение.Вид    <- Надел.Вид    <- Рамка.Вид    *)
                     Вид- = НАБОР (Надел.Вид)
(*  расширяем пустым набором Положение.Вид опору Надел.Вид *)
                            КОН;

(*-----------------------------------------локальная ЗАДАЧА-------------------*)
ЗАДАЧА                                                       (*(Положение.Вид)*)
       Приём(наделД:Надел.Доступ;
           посылка+:Ввод.нПосылка); (* = Пустой.Вид; - абстрактный опорный набор *)
ПЕР
  положениеД:Положение.Доступ;
      холстД:Холст.Доступ;

  надпись:Надел.РядНадпись;
  вс,лк,
  нс,пк:ЦЕЛ;
УКАЗ                                                        (* преобразование
                  наделД                   из Надел.Доступ в
                         Положение.Доступ  <- Надел.Доступ <- Рамка.Доступ    *)
      положениеД:=наделД(Положение.Доступ);

  вс:=положениеД.вс;
  лк:=положениеД.лк;
  нс:=положениеД.нс;
  пк:=положениеД.пк;
                             (* анализ многоформия (полиморфизма) у <посылка> *)
  ДЛЯ      посылка ВИДА
  | Поле.нОтрисовка:
      Окно.ЦветнойПробел(вс,лк,нс,пк,Надел.цветОбычный)
  | Холст.нПосылка:
      холстД:=посылка.холстД;
      Текст.Из4хЦел("%c %d(%d):%d          ",       (* ширина: 3+5+1+5+1+3=18 *)
                    ВЦЕЛ(холстД.изменён),
                         холстД.указка.с+1,
                         холстД.пс+1,
                         холстД.указка.к+1,
                         надпись
                   );
      Окно.Цвет(вс,лк,нс,пк,Надел.цветОбычный);
      Окно.ЦепьЗнаков(вс,лк,нс,пк,надпись)
  ИНАЧЕ
  КОН             
КОН Приём;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~общедоступная ЗАДАЧА~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА                                                       (*(Положение.Вид)*)
       Создать-(вс,лк:ЦЕЛ):Положение.Доступ;
ПЕР
                    положениеД:Положение.Доступ;
УКАЗ
            СОЗДАТЬ(положениеД);
  Надел.Подготовить(положениеД,вс,лк,1,0,{},Приём);
  ВОЗВРАТ положениеД
КОН Создать;

КОН Положение.
