Видеопроцедуры.............................................. 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-метки кодов клавиш
Знаете ли Вы, что аспектно-ориентированное сборочное программирование - это разновидность сборочного программирования, основанная на сборке полнофункциональных приложений из многоаспектных компонентов, инкапсулирующих различные варианты реализации.