Поскольку третий символ аббревиатуры еще
очень быстром вводе.
Поскольку третий символ аббревиатуры еще не был помещен в буфер
клавиатуры, то для уничтожения первых двух символов, уже переданных в
буфер, требуются только два символа CHR(8) (BackSpace). Поскольку
KEYSEND() работает со скан-кодами, то каждый байт последовательности
должен быть дополнен символом CHR(0).
Обратите внимание на увеличение размера буфера клавиатуры командой
SET TYPEAHEAD:
CLEAR
cLastThree := ""
SET TYPEAHEAD TO 50
TRAPANYKEY("Trap_Key")
cTextVar := SPACE(5000)
@@ 00, 00 TO MAXROW(), MAXCOL(), DOUBLE
cTextVar := MEMOEDIT(cTextVar, 1, 1, MAXROW() - 1, MAXCOL() - 1)
TRAPANYKEY()
RETURN
PROCEDURE Trap_Key(nKey)
cLastThree := RIGHT(cLastThree, 2) + CHR(nKey)
DO CASE
CASE cLastThree == "иВ "
cLine := CHR(8) + CHR(8) + "искренне Ваш"
KEYSEND(CHARMIX(cLine, CHR(0)), .T.)
CASE cLastThree == "пВ "
cLine := CHR(8) + CHR(8) + "преданный Вам"
KEYSEND(CHARMIX(cLine, CHR(0)), .T.)
OTHERWISE
KEYSEND(12BIN(nKey), .T.)
ENDCASE
RETURN
See Also: INPUTMODE()
KEYSEND()
TRAPSHIFT()
TPAPINPUT()
Устанавливает процедуру отслеживания обращения к буферу клавиатуры.
------------------------------------------------------------------------------
Синтаксис
TRAPINPUT([<cProcedure>, [<lParameter>]]) --> cOldProcedure
Параметры
<cProcedure> - необязательный символьный параметр, задающий имя
процедуры, вызываемой при обращении к буферу клавиатуры в процессе
выполнения Clipper-команд или функций ввода. Если параметр опущен,
то восстанавливается исходный режим обращения к клавиатуре.