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

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

Автор Тема: Функции внутри скриптов  (Прочитано 194 раз)

Серега

  • Постоялец
  • ***
  • Сообщений: 227
    • Просмотр профиля
Функции внутри скриптов
« : 10 Сентября 2024, 12:15:43 »
Добрый день!
Есть старый проект. Обновление до 14 версии планируется, но есть один вопросик.
Тип скрипта : по изменению переменной.
Текст скрипта :
Код: (delphi)
function picY(ymin:double; ymax:double; xmin:double; xmax:double; x:single) : single;
begin
  Result := ((ymax * (x - xmin)) / (xmax - xmin)) + ymin;
end;
begin
  Rectangle_1.Y := picY(517, 462, 0, 100, PositionObjectReal.Value);
end.
Вопрос : после обновлений ПО скады это работает? и корректно работает?
« Изменён: 10 Сентября 2024, 15:03:48 от Simple_Scada »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1247
    • Просмотр профиля
Re: Функции внутри скриптов
« Ответ #1 : 10 Сентября 2024, 21:09:16 »
Здравствуйте.

Да, будет работать также, как и в старой версии. Последний раз изменения в компилятор скриптов вносились в версии 2.3.4.7 (04 апреля 2019г.). Со всеми изменениями версий Simple-Scada можно ознакомится по ссылке. Для тестирования новых версий можно использовать бесплатные демо-версии.

При объявлении функции, параметры с одинаковым типом данных можно перечислить через запятую:
Код: (delphi)
function picY(ymin, ymax, xmin, xmax: double; x: single): single;
При работе со значением переменной рекомендуем всегда использовать явное приведение к нужному типу. Если в функцию нужно передать значение Single, то используйте свойство переменной AsSingle:
Код: (delphi)
Rectangle_1.Y := picY(517, 462, 0, 100, PositionObjectReal.AsSingle);

Серега

  • Постоялец
  • ***
  • Сообщений: 227
    • Просмотр профиля
Re: Функции внутри скриптов
« Ответ #2 : 11 Сентября 2024, 08:34:17 »
Ясно. Спасибо!