ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



 

Часть 12

	    ГЛАВА 7 - Доступ к экрану и клавиатуре

Видеопроцедуры.............................................. 7-1
     BLANK (очистить прямоугольник на экране)............... 7-1
     Коды цветовых стилей (видеоатрибуты)................... 7-2
     PAINT (закрасить прямоугольник на экране).............. 7-3
     SCROLL (прокрутить прямоугольную область экрана)....... 7-4
     SETBLINK (разрешить мигание)........................... 7-5
     SETCOLOR (установить видеоатрибуты).................... 7-5
     SETCURSOR (включить курсор)............................ 7-6
     SETGRAPHIC (установить графический режим).............. 7-7
     SETMOUSE (позиционировать курсор мышки)................ 7-8
     SETNOBLINK (запретить мигание)......................... 7-9
     SETTEXT (установить размер экрана в текстовом режиме).. 7-9
     SHOW (показать на экране).............................. 7-10
     TYPE (вывести строку на экран)......................... 7-11

Видеофункции................................................ 7-12
     BACKCOLOR (возвращает цвет фона)....................... 7-12
     COLOR (возвращает код цветового стиля)................. 7-13
     FORECOLOR (возвращает цвет текста)..................... 7-13
     GRAPHIC (возвращает текущий видеорежим)................ 7-14
     LOOK (считать символ(ы) с экрана)...................... 7-15
     MAKECOLOR (возвращает код цветового стиля)............. 7-16
     MOUSECOL (X-координата мышки).......................... 7-17
     MOUSEROW (Y-координата мышки).......................... 7-17

Процедуры клавиатуры........................................ 7-18
     ALIAS (установить альтернативный код клавиши).......... 7-18
     ASK (получить один символ)............................. 7-18
     PRESS (поместить символ в буфер клавиатуры)............ 7-19
     SETKEYCODE (задаьб код клавиши)........................ 7-19

Функции клавиатуры.......................................... 7-20
     ENTRY (возвращает введенное с клавиатуры).............. 7-20
     KEYBOARD (возвращает ожидающее нажатие на клавишу)..... 7-21
     KEYCODE (возвращает код клавиши завершения поля)....... 7-21


			ВИДЕОПРОЦЕДУРЫ

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
BLANK                         (очистить прямоугольник на экране)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             BLANK([строка][,столбец][,строк][,столбцов])
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

строка              Числовое значение или выражение, которое за-
                    дает строку для начального (верхнего левого)
		    угла. По умолчанию - 1.

строка              Числовое значение или выражение, которое за-
                    дает столбец для начального (верхнего  лево-
		    го) угла. По умолчанию - 1.

rows                Числовое значение или выражение, которое за-
                    дает число строк в прямоугольнике. По  умол-
                    чанию - вся высота экрана.

columns             Числовое значение или выражение, которое за-
                    дает число столбцов. По умолчанию - вся  ши-
                    рина экрана (структуры SCREEN).

BLANK удаляет  все символы  из прямоугольной  области на экране.
НО BLANK не очищает активные видеоатрибуты-цвета. Ранее  активи-
зированные  атрибуты  PAINT  структуры  SCREEN  и/или  оператора
SETCOLOR могут повлиять на цвета в прямоугольнике.

Пример:

    BLANK                              !Очистить весь экран

    BLANK(1,1,12,80)                   !Верхнюю половину экрана
    BLANK(1,41,12,40)                  !Верхнюю правую четверть

См. также: SETCOLOR, PAINT

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
  Коды Цветовых Стилей                           (видеоатрибуты)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН

Каждое знакоместо  в видеопамяти  состоит из  двух байт;  один -
данные (символ)  и второй  - видеоатрибуты.  Байт видеоатрибутов
содержит трехбитный цвет фона, бит мигания/яркости и четырехбит-
ный цвет переднего плана (текста). Эти биты скомпонованы в одно-
байтный код цветового стиля с возможными значениями 0..255,  ко-
торый задает  комбинацию цветов  фона/текста. Бит  мигания может
служить битом яркости фона при помощи процедуры SetNoBlink.  При
запрещенном мигании, для фона  можно использовать те же  16 цве-
тов, что и  для текста. Если  же мигание разрешено,  то для фона
можно использовать только 8  цветов, а остальные 8  будут приво-
дить к миганию текста. Код цветового стиля получается  сложением
значений фона и текста. В нижеследующей таблице приведены значе-
ния, используемые для создания кодов цветовых стилей.

			   Монохром

     Передний план                          Фон
Dec  Hex        Цвет              Dec  Hex        Цвет
ДДД  ДДД        ДДДД              ДДД  ДДД        ДДДД
0    0h         Черный            0    0h        Черный
1    1h         Белый Подчеркн.   16   10h       Черный
2    2h         Белый             32   20h       Черный
3    3h         Белый             48   30h       Черный
4    4h         Белый             64   40h       Черный
5    5h         Белый             80   50h       Черный
6    6h         Белый             96   60h       Черный
7    7h         Белый             112  70h       Белый
8    8h         Серый
9    9h         Ярко-Белый Подчеркн.  Добавь 128 (80h) к цвету
10   0Ah        Ярко-Белый            фона, чтобы получить ми-
11   0Bh        Ярко-Белый            гающий текст.
12   0Ch        Ярко-Белый
13   0Dh        Ярко-Белый
14   0Eh        Ярко-Белый
15   0Fh        Ярко-Белый

			    Цветной

     Передний план
Dec     Hex           Цвет
ДДД     ДДД           ДДДДДД
0       Oh            Черный
1       lh            голубой
2       2h            зеленый
3       3h            Салатный
4       4h            красный
5       5h            фиолетовый
6       6h            коричневый
7       7h            Белый
8       8h            Серый
9       9h            Светло-голубой
10      OAh           Светло-зеленый
11      OBh           Светло-Салатный
12      OCli          Светло-красный
13      ODh           Светло-фиолетовый
14      OEh           Желтый
15      OFh           Ярко-Белый

     Фон

Dec    Hex         Цвет (без мигания)        Цвет (с миганием)
ДДДД   ДДД         ДДДДДДДДДДДДДДДД          ДДДДДДДДДДДДДДДДДД
0      0h            Черный                     Черный
16     10h           голубой                    голубой
32     20h           зеленый                    зеленый
48     30h           Салатный                   Салатный
64     40h           красный                    красный
80     50h           фиолетовый                 фиолетовый
96     60h           коричневый                 коричневый
112    70h           Белый                      Белый
128    80h           Серый                      Черный
144    90h           Светло-голубой             голубой
160    0A0h          Светло-зеленый             зеленый
176    0B0h          Светло-Салатный            Салатный
192    0C0h          Светло-красный             красный
208    0D0h          Светло-фиолетовый          фиолетовый
224    0E0h          Желтый                     коричневый
240    0F0h          Ярко-Белый                 Белый

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
PAINT                        (закрасить прямоугольник на экране)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             PAINT([строка][,столбец][,строк][,столбцов])
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

строка              Числовое значение или выражение, которое за-
                    дает строку для начального (верхнего левого)
		    угла. По умолчанию - 1.

строка              Числовое значение или выражение, которое за-
                    дает столбец для начального (верхнего  лево-
		    го) угла. По умолчанию - 1.

rows                Числовое значение или выражение, которое за-
                    дает число строк в прямоугольнике. По  умол-
                    чанию - вся высота экрана.

columns             Числовое значение или выражение, которое за-
                    дает число столбцов. По умолчанию - вся  ши-
                    рина экрана (структуры SCREEN).

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

Пример:

    SETCOLOR(17h)                        !Белый на Голубом
    PAINT                                !Закрасить весь экран
    SETCOLOR(1Fh)                        !Ярко-Белый на голубом
    PAINT(1,5,1,65)                      !Подсветить заголовок

См. также: SETCOLOR

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
SCROLL                 (прокрутить прямоугольную область экрана)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
           SCROLL[строка][,столбец][,строк][,столбцов][,счетчик]
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

строка              Числовое значение или выражение, которое за-
                    дает начальную (верхнюю) строку. По  умолча-
                    нию - 1.

столбец             Числовое значение или выражение, которое за-
                    дает начальный (левый) столбец прямоугольни-
                    ка. По умолчанию - 1.

строк               Числовое значение или выражение, которое за-
                    дает число строк в прямоугольнике. По  умол-
                    чанию - вся выслта экрана (структуры SCREEN)

столбцов            Числовое значение или выражение, которое за-
                    дает число столбцов. По умолчанию - вся  ши-
                    рина экрана (структуры SCREEN).

счетчик             Позитивное или негативное значение или выра-
                    жение, которое задает на сколько строк  про-
                    крутить. Если  СЧЕТЧИК положителен,  то про-
                    крутка вверх,  если отрицательный,  то вниз.
                    По умолчанию СЧЕТЧИК=+1.

SCROLL перемещает символы  в прямоугольной области  экрана вверх
или вниз. По мере сдвига символов, СЧЕТЧИК строк удаляется свер-
ху (снизу) прямоугольника, и СЧЕТЧИК пустх строк создается внизу
(вверху). Параметры СТРОКА и СТОЛБЕЦ задают координаты  верхнего
левого угла  праямоугольника относительно  верхнего левого  угла
физического экрана; они НЕ ссылаются на верхний левый угол струк
туры SCREEN.

SCROLL НЕ изменяет активыне видеоатрибуты в прямоугольнике.  Ра-
нее  активные  атрибуты  оператора  PAINT в SCREEN-структуре или
оператора SETCOLOR могут повлиять на цвета в прямоугольнике. Хо-
тя символы сдвигаются, цвета раскраска прямоугольника НЕ меняет-
ся.

Пример:

    SCROLL(4,10,16,60,-1)             !Прорутка данных вниз

    LOOP  5  TIMES                    !Повторять 5 раз
      SCROLL                          !  пркрутить весь экран
    .                                 !Конец цикла

См. также: SETCOLOR, PAINT

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
SETBLINK                                     (разрешить мигание)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             SETBLINK
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

SETBLINK разрешает мигание. Если оно разрешено, то для фона мож-
но использовать только 8 цветов. Это нормальный режим работы, до
тех пор, пока мигание не запрещено процедурой SETNOBLINK.

Пример:


  SETNOBLINK            !Выключить мигание
  SHOW(1,15,CENTER('Ты ошибся, друже!',30))
  SETCOLOR(0EBh)        !  цвет - светло салатный на желтом
  PAINT(1,15,1,30)      !  закрасим область сообщения
  BEEP(0,200)           !Ждем 2 секунды
  SETBLINK              !  и делаем мигающий св.салатн. на кори
			!  чневом


См. также: SETNOBLINK, SETCOLOR, Коды Цветовых Стилей

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
SETCOLOR                              (установить видеоатрибуты)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             SETCOLOR(цвет)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

цвет                Числовое значение или выражение, которое за-
                    дает код цветового стиля. Допустимые  значе-
                    ния ЦВЕТа - 0..255.

SETCOLOR меняет байт выидеоатрибута для каждого символа, записы-
ваемого в видеопамятьь после  него. ЦВЕТ - точный  код цветового
стиля (это НЕ ссылка на внутренний массив, используемый в струк-
туре SCREEN парметром COLOR).

Если SETCOLOR использован без параметров, то символы, выводимые
на экран после такого SETCOLOR НЕ будут изменять цвет знакомест,
куда они выводятся.

Пример:

   SETCOLOR(0)                       !Черный на черном
   SETCOLOR(47h)                     !Белый на красном
   SETCOLOR                          !Оставить атрибуты без изм.

См. также: Коды Цветовых Стилей

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
SETCURSOR                                      (включить курсор)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             SETCURSOR([строка,столбец])
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

строка              Числовое  значение  или выражение,  задающее
                    строку на экране.

столбец             Числовое  значение  или выражение,  задающее
                    столбец на экране.

SETCURSOR показывает курсор в позиции заданной СТОЛБЦОМ и  СТРО-
КОЙ. Используется  для позиционированного  вывода на  устройство
"CON". SETCURSOR  указывает первую  строку и  столбец для вывода
оператором TYPE,  или оператором  PRINT, у  которого устройством
для вывода отчета является  "CON." Если параметры не  заданы, то
SETCURSOR гасит курсор.

Пример:

  SETCURSOR(2,5)           !Turn on the cursor at row 2 column 5
  SETCURSOR                !Turn off the cursor

См. также:    TYPE

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
SETGRAPHIC                        (установить графический режим)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             SETGRAPHIC(режим)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

режим               Целая константа или EQUATE,  задающая графи-
                    ческий видеорежим (EGA, VGA, SVGA).

SETGRAPHIC задает графический режим для SCREEN-структур с  атри-
бутом GRAPHIC. Графический режим определяется автоматически и не
не требует изменения, как правило. SETGRAPHIC перекрывает  режим
автоопределения режима для следующего открываемого SCREEN.  Раз-
решенные для РЕЖИМа значения:

Dec  Hex        Режим
ДДД  ДДД        ДДДДДДДД

90   5Ah        Текстовый
121  79h        EGA
89   59h        VGA
87   57h        SVGA

Если экран уже открыт как графический, SETGRAPHIC(90) не повлия-
ет  на  него.  Если  же  экран  ЕЩЕ  не  в  графическом  режиме,
SETGRAPHIC(90) принудительно вызовет  вывод следующих экранов  в
текстовом режиме, даже если у них установлен атрибут GRAPHIC.

Пример:

GraphScreen   SCREEN(25,80),GRAPHIC
                !описание структуры экрана
              .
  CODE
  SETGRAPHIC(90)     !Следующий экран принудительно в текст
  OPEN(GraphScreen)  !GraphScreen открыть в текстовом режиме

См. также: GRAPHIC

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
SETMOUSE                        (позиционирование курсора мышки)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             SETMOUSE([строка][,столбец])
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

строка              Целая константа,  переменная или  выражение,
                    задающее строку, в которую поместить  курсор
                    мышки. По умолчанию - ноль.

столбец             Целая константа,  переменная или  выражение,
                    задающее столбец, куда поместить курсор мыш-
                    ки. По умолчанию ноль.

SETMOUSE размещает курсор мышки на экране. Если СТРОКА и СТОЛБЕЦ
опущены, то SETMOUSE выключает курсор мышки. Если программа  со-
бирается использовать  мышь, то  по крайней  мере, один SETMOUSE
требуется (вероятно где-то ближе к началу программы).

В графическом режиме курсор мышки представляет стрелку, а в тек-
стовом - прямоугольный  блок (знакоместо), до  тех пор, пока  не
использованы операторы LOADSYMBOLS или USESYMBOLS.

Пример:

  SETMOUSE()                   !Выключить мышку
  SETMOUSE(1,1)                !Включить в верхнем левом углу

См. также: LOADSYMBOLS, USESYMBOLS

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
SETNOBLINK                                   (запретить мигание)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             SETNOBLINK
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

SETNOBLINK запрещает мигание на экране. Обычно, фон можно  раск-
расить в 8  цветов. При запрещенном  мигании, бит отвечающий  за
мигание может быть использован как бит яркости фона. Это  позво-
ляет использовать для фона те же 16 цветов, что и для текста.

Монохромные или CGA мониторы НЕ поддерживают запрещение мигания.
Таким образом, для SETNOBLINK нужен, как минимум, EGA.

Пример:

   SETNOBLINK                    !Выключить мигание
   SETCOLOR(OEh)                 !  установить черный на желтом
   PAINT                         !  и закрасить экран

См. также: SETBLINK, Коды Цветовых Стилей

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
SETTEXT            (установить размер экрана в текстовом режиме)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             SETTEXT(строк,столбцов)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

строк               Целая константа, переменная или   выражение,
                    задающее число строк на физическом экране  в
                    текстовом режиме.

столбцов            Целая константа,  переменная  или выражение,
                    задающее число столбцов на физическом экране
                    в текстовом режиме.

SETTEXT позволяет точно задать,  скажем, режим 43 или  50 строк.
Без применения SetText, текстовый режим остается таким же, каким
он был при запуске программы.

SETTEXT использует  метод наилучшего  размещения для  параметров
СТРОК и СТОЛБЦОВ. Видеоадаптер может поддерживать различные тек-
стовые режимы, так что,  в принципе, SETTEXT(200,200) может  до-
стичь максимально возможного разрешения в текстовом режиме.

Пример:

  R# = ROWS()                !Сохраняем текущие параметры экрана
  C# = COLS()                !R# - строки и C# - столбцы
  GraphicScreenProc          !Вызываем проц. с графическ.экраном
  SETTEXT(R#,C#)             !Возвращаемся к предыдущ. значениям

См. также: ROWS, COLS

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
SHOW                                        (показать на экране)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             SHOW([строка][,столбец],выражение[,формат])
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

строка              Числовое значение или выражение, которое за-
                    дает строку на экране, в которую будет выве-
		    дено  ВЫРАЖЕНИЕ.  По  умолчанию  - последняя
                    строка, в которой происходил вывод.

столбец             Числовое значение или выражение, которое  за
                    дает столбец, в который будет выведено ВЫРА-
                    ЖЕНИЕ. По умолчанию  - последний столбец,  в
                    который производился вывод.

выражение           Метка  переменной,  константы,  числовое или
                    строковое выражение.

формат              Шаблон формата  или метка   строки  (STRING)
                    описанной с форматом вывода (picture).

SHOW выводит переменные или выражения прямо на экран. Если выра-
жение слишком длинно, чтобы разместиться в строке, оно  усекает-
ся. Чтобы показать, что какие-то параметры пропущены,  требуются
запятые. То, что  выводит SHOW, затирает  то, что было  ранее на
экране.

Пример:

  SHOW(1,1,TODAY(),@D3)               !Показать дату
  SHOW(,,CLOCK(),@T3)                 !Показать время в том мес-
                                      !те, куда был последний
				      !вывод
  SHOW(1,80 - SIZE(Msg),Msg)          !Выровнять сообщение впра-
				      !во
  SHOW(25,1,'Жми кнопочку, и продолжим')!Вывод подсказки

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
TYPE                                   (вывести строку на экран)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             TYPE(строка)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

строка            Строковая константа, переменная или выражение.

TYPE выводит строку  на стандартное устройство  вывода (STDOUT).
Пока не определено иначе, в качестве STDOUT DOS использует  уст-
ройство CON. Строка появится на экране начиная с текущего  поло-
жения курсора.  Можно использовать  SETCURSOR, чтобы  разместить
курсор в нужном месте.

Устройство "CON" распознает  символы CR, LF,  TAB и BS.  Перевод
строки (LF) переводит курсор на  строку ниже текущей. LF на  по-
следней строке экрана приводит к прокрутке всего экрана вверх на
одну строку.

Пример:

    TYPE(Cus:Notes)           !Вывести поле примечаний

    SETCURSOR(1,25)           !Идем в самый низ экрана
    TYPE(@LF5)                ! и прокрутим вверх 5 строк

См. также: SETCURSOR, Элементы Управления Принтером

			 ВИДЕОФУНКЦИИ

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
BACKCOLOR                                 (возвращает цвет фона)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             BACKCOLOR(строка,столбец)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

строка              Числовое значение или выражение, которое за-
                    дает строку на экране.

столбец             Числовое значение или выражение, которое за-
                    дает столбец на экране.

BACKCOLOR возвращает цвет  фона для указанного  знакоместа. Воз-
вращаемое значение лежит  в диапазоне от  0 до 15  включительно,
что соответствует шестнадцати цветам переднего плана. Если пара-
метры выходят за допустимые пределы, то возвращается ноль.

В байте видеоатрибута фоновый цвет хранится в старшем ниббле  (4
бита). То есть, если значение, полученное от BackColor использо-
вано для порождения  кода цветового стиля,  то сначала его  надо
умножить на шестнадцать, и затем прибавить к нему значение цвета
для переднего плана.

Возвращаемый тип данных: BYTE

Пример:

  SETCOLOR(BACKCOLOR(1,1)+(FORECOLOR(1,1)*16)!Поменять цвета
  					     !местами
  SaveBack = BACKCOLOR(1,1)           !Сохранить цвет фона



См. также: SETCOLOR, FORECOLOR, MAKECOLOR, Коды Цветовых Стилей

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
COLOR                           (возвращает код цветового стиля)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             COLOR(строка,столбец)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Функция COLOR возвращает активный для знакоместа с  координатами
(СТРОКА,СТОЛБЕЦ) код цветового  стиля (комбинацию цветов  фона и
переднего плана).

Возвращаемый тип данных: BYTE

Пример:

  SaveColor = COLOR(1,1)              !Сохранить раскраску

См. также: BACKCOLOR, FORECOLOR, MAKECOLOR, Коды Цветовых Стилей

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
FORECOLOR                      (возвращает цвет переднего плана)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             FORECOLOR(строка,столбец)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

FORECOLOR возвращает цвет  текста для знакоместа  с координатами
(СТРОКА,СТОЛБЕЦ).  Возвращаемое значение лежит в диапазоне от  0
до 15 включительно.  Если параметры выходят за допустимые преде-
лы, то возвращается ноль.

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

Возвращаемый тип данных: BYTE

Пример:

 SETCOLOR(BACKCOLOR(1,1)+(FORECOLOR(1,1)*16))!Поменять цвета
					     !местами
 SaveFore = FORECOLOR(1,1)            !Сохранить цвет текста

См. также: SETCOLOR, BACKCOLOR, MAKECOLOR, Коды Цветовых Стилей


ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
GRAPHIC                          (возвращает текущий видеорежим)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             GRAPHIC(n)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

n                  Целочисленная константа, переменная или выра-
                   жение.

Функция GRAPHIC возвращает  байт, содержащий текущий  внутренний
видеорежим. В зависимости от режима, возвращается следующее:

Dec. Hex.       Режим
ДДД  ДДДД       ДДДД

90   5Ah        Текстовый
121  79h        EGA
89   59h        VGA
87   57h        SVGA

GRAPHIC(0) возвращает тип адаптера (EGA, VGA, SVGA) если текущий
экран открыт не в графическом режиме. GRAPHIC(1) возвращает одно
из приведенных выше значений для грфических режимов или 5Ah  для
текстового.

GRAPHIC(1) проверяет, не находится ли экран в графическом режиме
и, если так, то какой адаптер исползуется. GRAPHIC(0) обычно ис-
пользуется для определения типа адаптера дисплея перед открытием
экрана в графическом режиме.

Возвращаемый тип данных: Byte

Пример:

EGA        EQUATE(121)
VGA        EQUATE(89)
SVGA       EQUATE(87)

GraphScreen   SCREEN(25,80),GRAPHIC
              .
  CODE
  X# = GRAPHIC(0)
  IF X# = EGA OR X# = VGA OR X# = SVGA
    OPEN(GraphScreen)
    CASE GRAPHIC(1)
    OF  EGA
    OROF VGA
      SHOWIMAGE(1,1,25,80,'EGALOGO.PCX',1)
    OF SVGA
      SHOWIMAGE(1,1,25,80,'SVGALOGO.PCX',1)
  . .

См. также:     SETGRAPHIC


ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
LOOK                                (считать символ(ы) с экрана)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             LOOK(строка,столбец,шаблон)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

строка              Числовое значение или выражение, которое за-
                    дает Y-соординату для чтения. По умолчанию -
                    последняя строка, к оторой было обращение.

столбец             Числовое значение или выражение которое  за-
                    дает X-координату  первого символа,  который
                    надо  прочитать.  По  умолчанию  - последний
                    столбец, к которому было обращение.

шаблон              Шаблон формата или метка строки, описанной с
                    шаблоном  формата.  Шаблон  используется для
                    деформатирования прочитанного с экрана  зна-
		    чения в переменную. Длина шаблона определяет
                    количество столбцов, которые будут прочитаны
                    с экрана.

Функция LOOK считывает ASCII-коды символов с экрана, начиная  со
знакоместа, с координатами (СТРОКА,СТОЛБЕЦ). Если какие-то пара-
метры опущены,  то чтобы  это отметить,  требуются запятые. LOOK
работает одинаково как в текстовых, так и вграфических  режимах.
(SPA - интересно, а для русских букв в графике работает?)

Возвращаемый тип данных: STRING

Пример:

  PageNumber = LOOK(1,75,@N2)         !Получить номер страницы
  Cus:AccountNumber = LOOK(,,@NO5)    !Считать из последней выве
                                      ! денной позиции и помес-
                                      ! тить в номер лиц. счета
  LastName = LOOK(5,20,@S20)          !Считать имя

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
MAKECOLOR                       (возвращает код цветового стиля)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             MEKECOLOR(текст,фон)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

текст               Целая константа, переменная или выражение в
                    диапазоне 0..15, представляющая собой цвет
                    переднего плана (или текста).

фон                 Целая константа, переменная или выражение в
                    диапазоне 0..15, представляющая собой цвет
                    заднего плана (или фона).

MAKECOLOR возвращает код цветового стиля для заданной комбинации
цветов текста/фона.

Возвращаемый тип данных: BYTE

Пример:

   MAKECOLOR(7,0)        returns 7      White on Black
   MAKECOLOR(7,1)        returns 23     White on Blue

   ColorStyle = MAKECOLOR(7,1)    !Set ColorStyle variable to 23
   SETCOLOR(ColorStyle)           ! and use it to set the color


См. также: FORECOLOR, BACKCOLOR, COLOR, SETCOLOR,
	   Коды Цветовых Стилей

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
MOUSECOL                                    (X-координата мышки)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             MOUSECOL()
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

MOUSECOL  возвращает  баутовое  значение, соответствующее номеру
столбца, в котором находится курсор мышки на виртуальном экране.

Возвращаемый тип данных: BYTE

Пример:

  SaveMouseCol = MOUSECOL()          !Save mouse column position

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
MOUSEROW                                    (Y-координата мышки)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             MOUSEROW()
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

MOUSEROW  возвращает  баутовое  значение, соответствующее номеру
строки, в которой находится курсор мышки на виртуальном экране.

Возвращаемый тип данных: BYTE

Пример:

  SaveMouseRow = MOUSEROW()             !Save mouse row position

		     ПРОЦЕДУРЫ КЛАВИАТУРЫ

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ALIAS                    (установить альтернативный код клавиши)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             ALIAS([код,новый-код])
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

код                 Числовой код или EQUATE-метка кода клавиши.

новый-код           Числовой код или EQUATE-метка кода  клавиши.
                    Можно использовать неприсвоенные ранее коды.

ALIAS изменяет генерируемый  при нажатии клавиши  код. НОВЫЙ-КОД
не находится в таблице кодов  клавиш. Коды от 700 до  999 непри-
своены, и могут  быть использованы как  НОВЫЕ-КОДЫ. Практический
эффект от этого - возможность запретить реагировать на КОД, если
ваша программа не проверяет НОВЫЙ-КОД. Если оба параметра опуще-
ны, то ALIAS отменяет все переназначения клавиш.

Пример:

    ALIAS(F3Key,F1Key)              !Help теперь по F3
    ALIAS(F1Key,F3Key)              ! а нажатие F1 рассматрива-
    				    ! ется как нажатие F3

    ALIAS(256,999)                  !Обзовем по-другому клавишу
				    ! ESC
    ALIAS                           !Отменим все переназначения

См. также: Equate-коды клавиш

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ASK                                       (получить один символ)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             ASK
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

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

Пример:

    SHOW(25,1,'Жми кнопочку, и продолжим') !Показать сообщение и
    ASK                                   !ждать нажатия клавиши

    LOOP WHILE KEYBOARD()       !Опустошаем буфер клавиатуры
      ASK                       !  не обрабатывая нажатия клавиш
    .

См. также: ENTRY

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
PRESS                                    (поместить код в буфер)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             PRESS( ікод   і )
                    істрокаі
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

код            Числовая константа или EQUATE-метка кода клавиши.

string         Строковая константа, переменная или выражение.

PRESS имитирует нажатия на клавиши во внутреннем буфере  клавиа-
туры Клариона (а не буфере DOS). PRESS(КОД) помещает в буфер од-
но нажатие. PRESS(СТРОКА) помещает в буфер строку целиком. Стро-
ка заполняет буфер (статическую очередь), размер которого  огра-
ничен лишь доступной основной памятью. На каждое нажатие в стро-
ке отводится 32 байта, т.е теоретический максимум равен примерно
2500 символов в большинстве "нормальных" приложений.

Пример:

 IF Action = 'Add'!On the way into a memo field on an add record
   Cus:MemoField = FORMAT(TODAY(),@Dl) &' '& FORMAT(CLOCK(),@T4)
                  !Preload first line of memo with date and time
   PRESS(EnterKey)!  and position user on second line
 .

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
SETKEYCODE                                 (вернуть код клавиши)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             SETKEYCODE(код)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

код               Целая константа или EQUATE-метка кода клавиши.

SETKEYCODE заставляет функцию KEYCODE вернуть заданный КОД.  КОД
НЕ помещается в буфер клавиатуры.

Пример:

   SETKEYCODE(999)    !Заставляем KEYCODE вернуть 999

См. также: ALIAS, KEYCODE, Equate-коды клавиш

		      ФУНКЦИИ КЛАВИАТУРЫ

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ENTRY                                (принять ввод с клавиатуры)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             ENTRY(строка,столбец,шаблон)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

строка              Числовое значение или выражение, которое за-
                    дает строку, на которой производится ввод.

столбец             Числовое значение или выражение, которое за-
                    задает столбец, на котором производится ввод

шаблон              Шаблон формата или метка строки, описанной с
                    шаблоном формата. Параметр ШАБЛОН определяет
                    длину поля вормат ввода с клавиатуры в пере-
                    менную. Переменная показывается и редактиру-
                    ется в режиме реверсного отображения  (цвета
                    фона и текста меняются местами).

ENTRY читает нажатия клавиш  с клавиатуры. Программа ждет,  пока
редактирование  поля  не  завершится  клавишей  завершения  поля
(обычно  ENTER)  или  клавишей  взведенной  (через ALERT). ENTRY
устанавливает реверсные  цвета для  СТРОКИ и  СТОЛБЦА и включает
курсор на время редактирования поля.

Возвращаемый тип данных: STRING

Пример:

  Address = ENTRY(10,12,@S20)             !Ввести адрес
  City = ENTRY(11,12,@S12)                !Ввести город

См. также: ALERT

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
KEYBOARD               (возвращает ожидающее нажатие на клавишу)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             KEYBOARD()
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Функция KEYBOARD  возвращает первый  код из  хранящихся в буфере
клавиатуры  нажатий  на  клавиши.  Используется для определения,
есть ли нажатия, которые  надо обрабатывать операторами ASK  или
ACCEPT.

Возвращаемый тип данных: LONG

Пример:

  LOOP UNTIL KEYBOARD()               !Ждем любую клавишу
    ASK
    IF KEYCODE() = EscKey THEN BREAK. !Если ESC,то прервать цикл
  .

См. также: ASK, ACCEPT, Equate-коды клавиш

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
KEYCODE                 (возвращает код клавиши завершения поля)
НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
             KEYCODE()
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Функция KEYCODE возвращает код клавиши, которой завершилось  ре-
дактирование поля. Эта  функция работает только  для результатов
функции ENTRY и операторов ASK, SETKEYCODE или ACCEPT.

Возвращаемый тип данных: LONG

Пример:

    LOOP                                !Loop on the display
      ASK                               !  wait for a keystroke
      CASE KEYCODE()                    !Process the keystroke
      OF UpKey                          !  up arrow
        SCROLL(,,,,1)                   !    scroll up one row
        DO GetRecordUp                  !      and get a record
      OF DownKey                        !  down arrow
        SCROLL(,,,,-1)                  !    scroll down one row
        DO GetRecordDn                  !      and get a record
      OF EscKey                         !  esc key
        BREAK                           !    break the loop
    . .                                 !End case, end loop

См. также: ASK, ACCEPT, Equate-метки кодов клавиш


Яндекс цитирования