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

Обработчик ВВОД_ДАТЫ_ВРЕМЕНИ.после_изменения

Обработчик после_изменения позволяет выполнить отложенную обработку изменения значения.

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

Данное событие относится к спонтанным, для его отладки необходимо отключить соответствующую опцию в параметрах проекта.

ФУНКЦИЯ ЛОГИКА: <имя функции>(ПЕРЕМ ВВОД_ДАТЫ_ВРЕМЕНИ: ввод;
                              ЧИСЛО: прошло)

Параметры

ввод
Ссылка на редактор, в котором изменили значение.
прошло
Время в секундах, прошедшее с момента последнего изменения текста пользователем.

Возвращаемое значение

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

Замечание

Периодичность вызова обработчика может варьироваться из-за различных причин. Например, во время задержки была нажата кнопка и выполняются длительные вычисления. В этом случае, вызов обработчика после_изменения произойдет после окончания вычислений и возврата из обработчика нажатия кнопки.

Несмотря на отсутствие гарантий строгой периодичности вызова обработчика после_изменения, время, передаваемое в параметре прошло, отражает реальную задержку с момента последнего изменения. Это время, в общем случае, не будет кратно периоду 0.1 секунды и его не следует сравнивать на равенство с величиной желаемой задержки.

Пример

Следующий пример демонстрирует возможную реализацию обработчика после_изменения:

ФУНКЦИЯ ЛОГИКА: ОтложенноеИзменение(ПЕРЕМ ВВОД_ДАТЫ_ВРЕМЕНИ: ввод; ЧИСЛО: прошло)
  ЕСЛИ прошло > 3 ТО // ждем не менее 3-х секунд
    // здесь выполняем желаемую обработку...
    РЕЗУЛЬТАТ = ДА // дождались, хватит вызывать обработчик
  ИНАЧЕ
    РЕЗУЛЬТАТ = НЕТ // не дождались, продолжить вызовы обработчика
  КОНЕЦ_ЕСЛИ
КОНЕЦ_ФУНКЦИИ

См. также: