Клиппер 5. Справочник

Поскольку третий символ аббревиатуры еще


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

Содержание раздела