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