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

символьная строка, содержащая коды клавиш


------------------------------------------------------------------------------
 
  Синтаксис
 
    KEYREAD() --> cKeyValue
 
  Возвращаемое значение
 
    cKeyValue - символьная строка, содержащая коды клавиш из
    Clipper-буфера клавиатуры, уже прочитанные программой.
 
  Описание
 


    Функция возвращает строку кодов клавиш из буфера клавиатуры, которые
    уже были приняты прикладной программой, что позволяет выяснить
    необходимость повторения отдельных действий, выполнения или,
    наоборот, отмены некоторых функций и построения макропоследовательности
    кодов клавиш. Данная функция очень полезна и при поиске ошибок.
 
  Примечания
 
  . Коды всех клавиш, нажимаемых вслед за последним
    выполнением Clipper-команды SET TYPEAHEAD TO или вызовом функции
    KEYSEND(), помещаются в буфер клавиатуры. Символы, уже
    находящиеся в буфере, но еще не прочитанные Clipper-программой,
    игнорируются функцией KEYREAD(). Если буфер клавиатуры пуст,
    например, при запуске программы или после выполнения KEYSEND() или
    SET TYPEAHEAD TO, функция возвращает пустую строку.
 
  . В отличие от Clipper S'87, функция KEYREAD() для Clipper 5.01
    возвращает полный BIOS-код клавиши (см. поставляемый в составе CT II
    файл описаний NT2SCAN.CH). Если для уже существующей прикладной
    программы требуется совместимость по кодам клавиш, то в нее следует
    включить файл описаний NT250.CH. Кроме того, в файле NT2SCAN.CH
    содержится информация, касающаяся работы новых функций
    обслуживания клавиатуры.
 
  . Коды клавиш, записываемые командой KEYBOARD в Clipper-буфер
    клавиатуры, не распознаются функцией KEYREAD(). Для решения
    проблемы может быть предложено использование в программе
    директивы препроцессора:
 
       #command KEYBOARD(<c>) => KEYSEND(EXPAND(<c>), .F., .T.)
 
  . Вызов функции EXPAND() позволяет преобразовать строку
    однобайтовых INKEY-кодов клавиш в строку двухбайтовых

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