Описание
Скрипт вызывается каждый раз, когда была выполнена задержка, запущенная функцией RunDelay. Имеет параметр DelayEventData, который содержит данные задержки и обладает свойствами типа TM_DelayEventData.
Пример 1:
Пусть нужно изменить текст в компоненте "Text1" через 3 секунды после нажатия на кнопку. Для решения задачи на событие OnClick кнопки напишем следующий код:
begin
RunDelay(3000, 1); // запускаем задержку на 3 сек. и отмечаем её тегом = 1
end.
Теперь создадим новый скрипт с типом события "Выполнена задержка" и следующим кодом:
begin
// если выполнена задержка с тегом = 1
if DelayEventData.Tag = 1 then
Text1.Text := 'Прошло 3 секунды с момента нажатия на кнопку!';
end.
Пример 2:
Добавим дополнительное условие в первый пример: пусть в проекте имеется Boolean переменная vrResetDelay, при изменении значения которой, запущенная задержка должна отмениться. Для решения задачи создадим новую внутреннюю переменную (к примеру, с именем vrDelayID) и типом данных Integer, в которой будет храниться ID задержки.
Запустим задержку и сохраним ее ID в переменную vrDelayID:
begin
vrDelayID.Value := RunDelay(3000, 1); // запускаем задержку на 3 сек. и отмечаем её тегом = 1
end.
Код скрипта с типом события "Выполнена задержка" останется тем же:
begin
// если выполнена задержка с тегом = 1
if DelayEventData.Tag = 1 then
Text1.Text := 'Прошло 3 секунды с момента нажатия на кнопку!';
end.
В скрипте по изменению переменной vrResetDelay проверяем требуемые условия и при необходимости удаляем задержку:
begin
// если переменная равна True, то удаляем задержку
if Variable.AsBool then
begin
RemoveDelay(vrDelayID.AsInt);
Text1.Text := 'Задержка удалена';
end;
end.