Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Скорость анимации  (Прочитано 787 раз)

Avtovazov

  • Новичок
  • *
  • Сообщений: 25
    • Просмотр профиля
Скорость анимации
« : 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.
Подскажите какой скрипт использовать, чтоб менялась скорость от переменной?
« Изменён: 27 Июня 2022, 10:50:20 от Simple Scada »

Simple Scada

  • Глобальный модератор
  • *****
  • Сообщений: 166
    • Просмотр профиля
    • Simple-Scada
Re: Скорость анимации
« Ответ #1 : 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.

Avtovazov

  • Новичок
  • *
  • Сообщений: 25
    • Просмотр профиля
Re: Скорость анимации
« Ответ #2 : 27 Июня 2022, 11:56:32 »
А сделать изменяемой скорость анимации возможно, ну чтоб если значение переменной была допустим от 0 до 200 это скорость 10, если переменная от 201 до 400 это скорость анимации 20 и т.д. Это возможно сделать?
« Изменён: 27 Июня 2022, 11:57:17 от Simple-Scada »

ART63

  • Постоялец
  • ***
  • Сообщений: 149
    • Просмотр профиля
Re: Скорость анимации
« Ответ #3 : 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.
« Изменён: 27 Июня 2022, 15:20:30 от Simple-Scada »

Avtovazov

  • Новичок
  • *
  • Сообщений: 25
    • Просмотр профиля
Re: Скорость анимации
« Ответ #4 : 27 Июня 2022, 15:10:01 »
Огромное спасибо
« Изменён: 27 Июня 2022, 15:19:41 от Simple-Scada »