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

Скрипты Simple-Scada

История: Примеры скриптов > Сокращение кода

Универсальный скрипт для разных объектов

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

Рассмотрим случай, когда нужно изменять уникальные свойства разных объектов в одном универсальном скрипте. Для этого используем универсальный объект "Sender".

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

begin
  { условия для изображения }
  if Sender is TM_Image then          // проверяем, что Sender это изображение
    with Sender as TM_Image do        // приводим Sender к типу "TM_Image"
        if AsInt > 0 then
          AnimSpeed := 16             // запустить анимацию
        else                          // иначе
          AnimSpeed := 0;             // остановить анимацию
 
  { условия для поля }
  if Sender is TM_Field then          // проверяем, что Sender это поле
    with Sender as TM_Field do        // приводим Sender к типу "TM_Field"
      case AsInt of                   // если значение переменной поля равно:
        1..3: BorderColor := clRed;   // 1..3 - изменить цвет рамки поля на красный
        4   : BorderColor := clGreen; // 4 - изменить цвет рамки поля на зеленый
        5   : FontColor   := $FFFF00// 5 - изменить цвет шрифта поля на желтый
        6   : FontAlpha   := 100;     // 6 - изменить прозрачность шрифта поля
      end;
 
  { условия для уровня }
  if Sender is TM_Level then          // проверяем, что Sender это уровень
    with Sender as TM_Level do        // приводим Sender к типу "TM_Level"
        if AsInt < 50 then
          BackgroundColor := clRed    // изменить цвет фона уровня на красный
        else                          // иначе
          BackgroundColor := clGreen; // изменить цвет фона уровня на зеленый
end.

Такой скрипт можно применить для любых объектов "Изображение", "Поле" или "Уровень":

для "Изображения" - будет запускаться/останавливаться анимация

для "Поля" - будет меняться цвет рамки, шрифт и прозрачность

для "Уровня" - будет меняться цвет фона