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

Скрипты Simple-Scada

В Simple-Scada все скрипты можно разделить на два типа: простые и универсальные.

Ознакомиться с примерами различных универсальных скриптов можно в разделе "Примеры скриптов", а также в Demo-проекте.

Простой скрипт

Простой скрипт - это скрипт, в котором используется обращение к объекту по имени этого объекта. Допустим, в проекте имеется изображение с именем "Image1". Простой скрипт будет выглядеть так:

begin
  Image1.Visible := True;   // показать изображение "Image1".
  Image1.AnimSpeed := 10;   // запустить анимацию изображения "Image1".
end.

Недостаток простых скриптов в том, что они всегда работают с каким-то конкретным объектом и если в проекте будет 100 изображений, с которыми нужно работать через скрипты, то необходимо будет написать 100 скриптов. Поэтому, следует всегда стараться использовать универсальные скрипты, тогда не нужно будет писать отдельный скрипт для каждого объекта, что значительно ускорит разработку проекта, а также повысит его быстродействие.

Универсальный скрипт

Универсальный скрипт - это скрипт, в котором к объектам не обращаются напрямую по имени. Вместо имени используется универсальный объект "Sender" - это какой-то (заранее неизвестный) объект, который вызвал скрипт, т.е. это может быть изображение, или текст, или фигура, или поле и т.д. Поэтому Sender имеет общий тип данных "TM_Control". Т.е. тип, который включает только свойства класса "TM_Control". Именно эти свойства будут доступны при обращении через Sender. Чтобы получить доступ к другим свойствам, Sender необходимо явно привести к нужному типу. Также, следует не забывать выполнить проверку и убедиться, что Sender действительно является нужным нам типом.

Преобразуем простой скрипт описанный выше в универсальный. Он примет такой вид:

begin
  Sender.Visible := True;             // показать объект, который вызвал этот скрипт.
  if Sender is TM_Image then          // проверяем, что скрипт вызван изображением (TM_Image).
    TM_Image(Sender).AnimSpeed := 10// запустить анимацию изображения, которое вызвало этот скрипт.
end.

Такой скрипт подойдет для разных объектов. Например, его можно назначить объекту "Уровень" и объекту "Изображение". "Уровень" он просто покажет,  а "Изображение" покажет и выставит скорость анимации равной 10.