Difference between revisions of "Студия/OnBeforeChange"

From SunFlurry wiki
Jump to: navigation, search
 
m (1 revision imported)
 
(No difference)

Latest revision as of 08:55, 7 February 2021

  OnBeforeChange (Визуальные события)
Применимость:Редактируемое поле, Поле со списком
Тип события:Прерывающее
Статус разработки: Реализована

Событие, возникающее до принятия нажатия клавиши (или комбинацию клавиш) элементом. Нажатие может быть проигнорировано, если событие возвратит соответствующий результат. Для табличных элементов используется событие OnKeyPress.

Аргументы

  • <Key (INT)> - Виртуальный код нажатой клавиши (см. документацию Windows, используются коды клавиш, типа VK_BACK и т.п.). Большинство цифровых или литерных клавиш имеет коды, совпадающие с кодами ASCII.
  • <Modifiers (INT)> - Модификаторы события. Битовая маска следующего содержания (статусы клавиш можно проверить также с помощью функции IsKeyComboActive‎‎):
    • бит 0: Нажата клавиша Shift
    • бит 1: Нажата клавиша Control
    • бит 2: Нажата клавиша Alt
  • <Result (INT)> - (возможен аргумент-переменная (ByRef)) Переменная результата может принимать значения:
    • 0 (по умолчанию) -- Принять нажатие.
    • 1 -- Отвергнуть нажатие (нажатие клавиши будет проигнорировано).

Примеры

//Пример события OnBeforeChange для отлова ввода цифр в поле редактирования
Result:=1;
If (Key>=Asc("0"))And(Key<=Asc("9")) Then
  If НажатаЦифра(Chr(Key)) Then
    Result:=0;
  EndIf;
Else
  //13 = VK_RETURN (Enter)
  If Key=13 Then
    If ПринятьКод() Then
      Result:=0;
    EndIf;
  EndIf;
EndIf;