ГЛАВА 7 - ДОСТУП К ЭКРАНУ И КЛАВИАТУРЕ
- Видеопроцедуры
- Видеофункции
- Процедуры клавиатуры
- ALIAS (установить альтернативный код клавиши)
- ASK (получить один символ)
- PRESS (поместить символ в буфер клавиатуры)
- SETKEYCODE (задать код клавиши)
- Функции клавиатуры
- ENTRY (возвращает введенное с клавиатуры)
- KEYBOARD (возвращает ожидающее нажатие на клавишу)
- KEYCODE (возвращает код клавиши завершения поля)
ВИДЕОПРОЦЕДУРЫ
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, PAINTM
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 (возвращает код цветового стиля)
MAKECOLOR(текст,фон)
текст | Целая константа, переменная или выражение в диапазоне 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-метки кодов
клавиш
Назад | Содержание | Вперед