Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: Avtovazov от 27 Июня 2022, 09:50:48

Название: Скорость анимации
Отправлено: Avtovazov от 27 Июня 2022, 09:50:48
Добрый день
Подскажите пожалуйста, мне требуется сделать анимацию вентилятора по двум переменным. первая переменная разрешает анимацию или делает анимацию видимой с этим вроде как понятно
Код: (delphi)
begin
if Sender is TM_Object then      // проверяем, что Sender это объект
    with Sender as TM_Object do  // приводим Sender к типу "TM_Object"
      if AsInt = 1 then          // если значение переменной объекта = 1
        Visible := True          // показать объект
      else                       // иначе
        Visible := False;        // скрыть объект
end.                                 
,а вот вторая переменная должна регулировать скорость анимации, вторая переменная может принимать значения от 0...1000, соответственно хотелось бы задавать масштам скорости анимации, например переменная равна 200 ,скорость анимации 20, переменная 800 и скорость анимации 80.
Подскажите какой скрипт использовать, чтоб менялась скорость от переменной?
Название: Re: Скорость анимации
Отправлено: Simple Scada от 27 Июня 2022, 11:46:48
Здравствуйте.

Вторую переменную можно указать в качестве доп.переменной и на событие OnDataChangeEx написать скрипт:
Код: (delphi)
begin
  if Sender is TM_Image then   // проверяем, что Sender это изображение
    with Sender as TM_Image do // приводим Sender к типу "TM_Image"
      if VariableEx.AsInt > 0 then
        AnimSpeed := VariableEx.AsInt / 10   // запустить анимацию
      else                                   // иначе
        AnimSpeed := 0;                      // остановить анимацию
end.
Название: Re: Скорость анимации
Отправлено: Avtovazov от 27 Июня 2022, 11:56:32
А сделать изменяемой скорость анимации возможно, ну чтоб если значение переменной была допустим от 0 до 200 это скорость 10, если переменная от 201 до 400 это скорость анимации 20 и т.д. Это возможно сделать?
Название: Re: Скорость анимации
Отправлено: ART63 от 27 Июня 2022, 12:02:55
А сделать изменяемой скорость анимации возможно, ну чтоб если значение переменной была допустим от 0 до 200 это скорость 10, если переменная от 201 до 400 это скорость анимации 20 и т.д. Это возможно сделать?
Вместо IF используйте CASE
Код: (delphi)
begin
  if Sender is TM_Image then   // проверяем, что Sender это изображение
    with Sender as TM_Image do // приводим Sender к типу "TM_Image"
      case VariableEx.AsInt of
        0: AnimSpeed := 0;           // остановить анимацию
        1..200: AnimSpeed := 10;     // запустить анимацию
        201..400: AnimSpeed := 20;   // запустить анимацию
        // и т.д.
      end;
end.
Название: Re: Скорость анимации
Отправлено: Avtovazov от 27 Июня 2022, 15:10:01
Огромное спасибо