Пожалуйста, включите JavaScript для просмотра этого сайта.

Скрипты Simple-Scada

История: Типы событий > Другие

Выполнена задержка

Пред. Вверх След. Еще

Описание

Скрипт вызывается каждый раз, когда была выполнена задержка, запущенная функцией RunDelay. Имеет параметр DelayEventData, который содержит данные задержки и обладает свойствами типа TM_DelayEventData.

Пример 1:

Пусть нужно изменить текст в компоненте "Text1" через 3 секунды после нажатия на кнопку. Для решения задачи на событие OnClick кнопки напишем следующий код:

begin
  RunDelay(30001);  // запускаем задержку на 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(30001);  // запускаем задержку на 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.