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

Скрипты Simple-Scada

История: Примеры скриптов > Кнопки

Кнопка по двум переменным

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

Имеется кнопка "без фиксации", которая переключает режим работы механизма (переменная "Select", тип "Boolean"), а также меняет свой цвет в зависимости от состояния механизма (переменная "Sost", тип "Integer"). В основной переменной кнопки укажем "Select", а в дополнительной "Sost":

Далее создадим скрипт по событию "OnDataChangeEx" (изменилось значение доп. переменной):

Универсальный скрипт (можно применить к любой кнопке):

begin
  if Sender is TM_Button then    // проверяем, что Sender это кнопка
    with Sender as TM_Button do  // приводим Sender к типу "TM_Button"
      case VariableEx.AsInt of   // если значение доп. переменной кнопки равно
        0 : States[0].Color := clGray;  // изменить цвет на серый
        1 : States[0].Color := clGreen; // изменить цвет на зеленый 
        2 : States[0].Color := clRed;   // изменить цвет на красный    
      end;
end.

 

Теперь кнопка будет управлять значением переменной "Select" и менять свой цвет в зависимости от доп. переменной "Sost". Рассмотрим случай, когда необходимо брать состояния кнопки из битов доп. переменной:

begin
  if Sender is TM_Button then    // проверяем, что Sender это кнопка
    with Sender as TM_Button do  // приводим Sender к типу "TM_Button"
    {если нулевой бит доп. переменной равен True, то }
      if GetBit(VariableEx.Value, 0) = True then 
        States[0].Color := clGray   // изменить цвет на серый
      else                          // иначе…        
        States[0].Color := clGreen; // изменить цвет на зеленый     
end.

Этот скрипт также универсальный и его можно применить для любой кнопки.