|
Программируем по-русски
|
Основная задача Глагола — дать человеку возможность воплощать свои мысли на языке, близком к его родному языку. Издатель Глагола
|
(*~\Глагол\Отделы\Поле~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*) (**) ОТДЕЛ Строки; (*============================================================================* * НАЗНАЧЕНИЕ: строки для памятки *============================================================================*) ИСПОЛЬЗУЕТ Надел, Поле, Памятка, Вывод ИЗ "..\Обмен\", Ввод ИЗ "..\Обмен\"; ВИД Доступ-=ДОСТУП К Вид; Вид-=НАБОР(Надел.Вид) памятка :Памятка.Доступ; (* строки памятки: *) последняя:ЦЕЛ; верхняя :ЦЕЛ; текущая- :ЦЕЛ; КОН; (******************************************************************************) ЗАДАЧА Отрисовка(строки:Доступ); ПЕР памятка:Памятка.Доступ; лк,пк,вс,нс:ЦЕЛ; цвет:ЗНАК; со:ЦЕЛ; (* строка отображения *) строка:ЦЕЛ; (* памятки *) УКАЗ лк:=строки.лк; пк:=строки.пк; вс:=строки.вс; нс:=строки.нс; памятка:=строки.памятка; строка:=строки.верхняя; ОТ со:=вс+1 ДО нс-1 ВЫП ЕСЛИ строка = строки.текущая ТО цвет:=Надел.цОтметкиСтроки ИНАЧЕ цвет:=Надел.цСтроки КОН; Вывод.ЦветнойПробел(со,лк,со,пк,цвет); Вывод.ВПрямоуг(со,лк+1,со,пк-1,памятка.строки[строка]^); УВЕЛИЧИТЬ(строка) КОН; Вывод.ЦветнойПробел(вс,лк,вс,пк,Надел.цСтроки); Вывод.ЦветнойПробел(нс,лк,нс,пк,Надел.цСтроки); Вывод.Рамка1(вс,лк,нс,пк) КОН Отрисовка; (******************************************************************************) ЗАДАЧА Приём(надел:Надел.Доступ; посылка+:Ввод.Посылка); ПЕР строки:Доступ; УКАЗ строки:=надел(Доступ); ДЛЯ посылка ВИДА | Поле.Отрисовка: Отрисовка(строки) | Ввод.ОтМышки: ЕСЛИ посылка.события = {} ТО (* просто нажали мышку *) строки.текущая:=строки.верхняя+посылка.с-1; Отрисовка(строки) КОН | Ввод.ОтКлавиш: ВЫБРАТЬ посылка.код ИЗ | 25H,26H: (* <-,^ *) ЕСЛИ строки.текущая > 0 ТО УМЕНЬШИТЬ(строки.текущая); ЕСЛИ строки.текущая < строки.верхняя ТО строки.верхняя:=строки.текущая КОН; Отрисовка(строки) КОН | 27H,28H: (* ->,V *) ЕСЛИ строки.текущая < строки.последняя ТО УВЕЛИЧИТЬ(строки.текущая); ЕСЛИ строки.текущая > строки.верхняя+строки.нс-строки.вс-2 ТО строки.верхняя:=строки.текущая-строки.нс+строки.вс+2 КОН; Отрисовка(строки) КОН ИНАЧЕ КОН ИНАЧЕ КОН КОН Приём; (******************************************************************************) ЗАДАЧА Создать-(верх,лево,строк,колонок:ЦЕЛ; памятка:Памятка.Доступ):Доступ; ПЕР строки:Доступ; УКАЗ СОЗДАТЬ(строки); Надел.Подготовить(строки,верх,лево,строк,колонок,{Надел.прВыбираемый},Приём); строки.памятка:=памятка; строки.последняя:=памятка.строк-1; ВОЗВРАТ строки КОН Создать; КОН Строки. |
▲ Вопросы, замечания и предложения высылайте на atimopheyev@yahoo.com
|
|