команды SET KEY TO рекурсивные
EXTERNAL <список идентификаторов процедур>.
. В отличие от Clipper- команды SET KEY TO рекурсивные входы
блокируются.
Примеры
. Применение TRAPINPUT() для переноса символов из последовательного
порта в буфер клавиатуры. Приведенная демонстрационная процедура не
учитывает ряда реальных ситуаций, например, недостаточное количество
рабочей памяти для MEMOEDIT().
При попытках Clipper-программы получить информацию из буфера
клавиатуры символы, накопленные в буфере приема последовательного
порта, добавляются в буфер клавиатуры с помощью KEYSEND().
Коды, непосредственно введенные с клавиатуры перехватываются
процедурой, установленной TRAPANYKEY(), и сравниваются с величиной
255. Коды с меньшей величиной переадресуются в последовательный порт,
а остальные помещаются в буфер клавиатуры. При этом сохраняется
действие управляющих комбинаций клавиш, например, <Alt><C>:
CLEAR
nPort := 1
COM_OPEN(nPort, 1000)
CON_DTR(2, .T.)
COM_INIT(nPort, 1200, "N", 8, 1)
TRAPINPUT("Trap1")
TRAPANYKEY("Trap2")
cTextVar := SPACE(5000)
cTextVar := MEMOEDIT(cTextVar)
COM_CLOSE(nPort)
RETURN
PROCEDURE Trap1(a, b, c)
IF COM_COUNT(nPort) > 0
KEYSEND(CHARMIX(COM_READ(nPort), CHR(0)), .T.)
ENDIF
RETURN
PROCEDURE Trap2(nKey)
IF nKey <= 255
COM_SEND(nPort, CHR(nKey))
ELSE
KEYSEND(I2BIN(nKey), .T.)
ENDIF
RETURN
See Also: INPUTMODE()
KEYSEND()
TRAPANYKEY()
TRAPSHIFT()
TRAPSHIFT()
Устанавливает процедуру отслеживания нажатия управляющих клавиш.
------------------------------------------------------------------------------
Синтаксис