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

к содержимому буфера клавиатуры, еще


    KEYBOARD или CT II-функцией KEYSEND().
 
    Использование KEYSEND() предпочтительней, т.к. позволяет добавлять
    символы к содержимому буфера клавиатуры, еще не обработанному
    прикладной программой.
 
    Внимание!
    Поскольку при нажатии клавиши ее код перенаправляется процедуре,
    указанной TRAPANYKEY(), то одновременно с этим нельзя организовать
    прерывание по нажатию клавиш средствами Clipper.
 
    Поскольку внутренние процедуры ввода не реентерабельны, то в
    вызываемой процедуре нельзя использовать Clipper-команды и функции


    ввода с клавиатуры типа GET/READ, PROMPT, ACCEPT, INKEY(0), MEMOEDIT()
    и т.п.
 
    Функция INPUTMODE(.T.) позволяет определить, какая из команд и функций
    ввода активна при входе в вызываемую процедуру.
 
  Примечания
 
  . Если заданная процедура отсутствует в выполняемой программе, то
    установка ее имени внутренними средствами CT II не осуществляется и
    сообщение об ошибке времени выполнения не формируется.  Формирование
    на этапе компоновки предупреждения об отсутствии процедуры можно
    обеспечить включением в текст программы Clipper-оператора
    EXTERNAL <список идентификаторов процедур>.
 
  . Передаваемые устанавливаемой процедуре коды клавиш должны в ней
    обрабатываться или транслироваться с помощью Clipper-команды KEYBOARD
    далее, иначе будет невозможен не только дальнейший ввод, но и даже
    прерывание выполнения программы нажатием комбинации клавиш <Alt><C>.
 
  . В отличие от Clipper-команды SET KEY TO рекурсивные входы
    блокируются.
 
  Примеры
 
  . Во время работы MEMOEDIT() для включения подстановки аббревиатур в
    процедуре обработки прерывания проверяются (по списку аббревиатур) три
    последних введенных символа. При сравнении с помощью KEYSEND() в буфер
    клавиатуры посылаются соответствующие фразы. Вызов KEYSEND() со
    значением .T. второго параметра позволяет избежать потерь даже при

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