Руководство разработчика

Обработка нажатия клавиш

Все элементы управления, кроме статических, поддерживают обработку нажатия клавиш. Для обработки команд с клавиатуры используется событие клавиша. Одним из параметров обработчика является строковый код нажатой клавиши из списка обрабатываемых клавиш. В случае если обработчик нажатия клавиши не задан или возвращает значение НЕТ, то вызывается обработчик события команда. Если обработчик клавиша возвращает значение ДА, то вызов события команда не происходит.

Обработчик клавиша также используется, если необходимо стандартную обработку клавиш заменить на пользовательскую.

В качетсве примера рассматривается обработка клавиши Del, вместо стандартного поведения - удаление одного символа в позиции каретки, реализовано удаление всего содержимого поля ввода.

Пример

ТИП Диалог_ОбработкаКлавиш(ДИАЛОГ)
[
  ПОДМЕНА ширина = 350;
  ПОДМЕНА высота = 300;
  ...
  РЕДАКТОР: Редактор1 = [ левый = 70,
                          верхний = 165,
                          ширина = 115,
                          высота = 20,
                          табиндекс = 2,
                          текст = "Содержание",
                          клавиша = {Редактор_Клавиша} 
                          ];
  ...
]

  ..

ФУНКЦИЯ ЛОГИКА: Диалог_ОбработкаКлавиш.Редактор_Клавиша(ПЕРЕМ РЕДАКТОР: редактор; СТРОКА: код)
  ЕСЛИ код = "Del" ТО
    редактор.текст = ""
    редактор.ОБНОВИТЬ
    РЕЗУЛЬТАТ = ДА // запретили стандартную обработку
  ИНАЧЕ
    РЕЗУЛЬТАТ = НЕТ
  КОНЕЦ_ЕСЛИ  
КОНЕЦ_ФУНКЦИИ

ВЫЧИСЛИТЬ
  ПЕРЕМ Диалог_ОбработкаКлавиш: д
  // д <- данные
  ЕСЛИ д.ПОКАЗАТЬ_МОДАЛЬНЫЙ <> "" ТО
    // д -> данные
 КОНЕЦ_ЕСЛИ
КОНЕЦ

См. также: