Рамка.отд
Главная     ◄Глагол     ◄Азбука     ◄Задачи на Глаголе     Примеры приложений ►   Среда разработки ►   Отладка программ ►   Отличия от Оберона ►   Отличия от Паскаля ►   Ассемблер ARM ►   Глагол для ARM ►   ? и Ответы
 
 glagol.png Программируем по-русски
 

Основная задача Глагола — дать человеку возможность воплощать свои мысли на языке, близком к его родному языку.

Издатель Глагола
 

 
(*~\Глагол\Отделы\Поле~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
(**)                        ОТДЕЛ Рамка;
(*============================================================================* 
 * НАЗНАЧЕНИЕ: размеры и местоположение для Поле и Надел
 *============================================================================*)
ВИД
  Доступ-=ДОСТУП К Вид;
  Вид-=НАБОР
    (* расположение на экране границ рамки *)
    вс-:ЦЕЛ;    (* верхняя строка *)
    лк-:ЦЕЛ;    (* левая колонка  *)
    нс-:ЦЕЛ;    (* нижняя строка  *)
    пк-:ЦЕЛ;    (* правая колонка *)
    (* размеры и положение относительно окружающего поля *)
    верх:ЦЕЛ;   (* при < 0 расстояние от нижней внешней границы поля до верхней строки *)
    лево:ЦЕЛ;   (* при < 0 расстояние от правой внешней границы поля до левой колонки *)
    строк:ЦЕЛ;  (* при <= 0 расстояние нижней границы поля до нижней строки *)
    колонок:ЦЕЛ;(* при <= 0 расстояние от правой границы поля до правой колонки *)
  КОН;

(******************************************************************************)
ЗАДАЧА Выставить-(рамка,поле:Доступ);
(* выставляет границы <рамка> на экране, учитывая положение окружающего <поле> *)
УКАЗ
  (* перевод левого верхнего угла *)
  ЕСЛИ рамка.верх < 0 ТО
    рамка.вс:=поле.нс+1+рамка.верх
  ИНАЧЕ
    рамка.вс:=поле.вс+рамка.верх
  КОН;
  ЕСЛИ рамка.лево < 0 ТО
    рамка.лк:=поле.пк+1+рамка.лево
  ИНАЧЕ
    рамка.лк:=поле.лк+рамка.лево
  КОН;
  (* перевод правого нижнего угла *)
  рамка.нс:=рамка.вс+рамка.строк-1;
  рамка.пк:=рамка.лк+рамка.колонок-1;
  ЕСЛИ рамка.строк <= 0 ТО
    рамка.нс:=поле.нс+рамка.строк
  КОН;
  ЕСЛИ рамка.колонок <= 0 ТО
    рамка.пк:=поле.пк+рамка.колонок
  КОН
КОН Выставить;

(******************************************************************************)
ЗАДАЧА Подготовить-(рамка:Доступ; верх,лево,строк,колонок:ЦЕЛ);
УКАЗ
  рамка.верх:=верх;
  рамка.лево:=лево; 
  рамка.строк:=строк;
  рамка.колонок:=колонок;
  (* если это положение относительно экрана *)
  рамка.вс:=верх;
  рамка.лк:=лево; 
  рамка.нс:=верх+строк-1;
  рамка.пк:=лево+колонок-1
КОН Подготовить;

КОН Рамка.

 
 


Вопросы, замечания и предложения высылайте на atimopheyev@yahoo.com

 
Главная     ◄Глагол     ◄Азбука     ◄Задачи на Глаголе     Примеры приложений ►   Среда разработки ►   Отладка программ ►   Отличия от Оберона ►   Отличия от Паскаля ►   Ассемблер ARM ►   Глагол для ARM ►   ? и Ответы