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

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

Автор Тема: Как добавить выражение в имеющиеся условия скрипта?  (Прочитано 2299 раз)

George

  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
Добрый день.

Подскажите, как дополнить скрипт, чтобы кроме цвета выдавалось сообщение?
(т.е. как туда пристроить процедуры Mess.Show (1), Mess.Show (2) и т.п. )

Код: (delphi)
with Sender as TM_Object do
  if VariableEx.AsBool then
    Color := clRed               // + сообщение
  else if AsBool then
    Color := clYellow            //  + сообщение
  else
    Color := clGreen;
Спасибо.
« Изменён: 26 Мая 2018, 10:35:37 от Simple-Scada »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Здравствуйте.
Если нужно выполнить несколько действий, то просто заключите их в begin...end. Например:
Код: (delphi)
with Sender as TM_Object do
  if VariableEx.AsBool then
  begin
    Color := clRed;
    // другие действия...
  end else
    if AsBool then
    begin
      Color := clYellow;
      // другие действия...
    end else
      Color := clGreen;
« Изменён: 26 Мая 2018, 10:35:46 от Simple-Scada »

George

  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
Вот это работает как часы... :
Код: (delphi)
begin
  if Sender is TM_Object then
    with Sender as TM_Object do
      if VariableEx.AsBool = false then
         Color := clRed
     else
      if AsBool = false then
           Color := clYellow
     else
           Color := clGreen
  end.
           
... а это не работает  :(

Код: (delphi)
begin
  if Sender is TM_Object then
    with Sender as TM_Object do
      if VariableEx.AsBool = false then
         Color := clRed;  Alarm_Win.ShowClient(GetClientName); PlayUserSound(GetClientName,'03281.ogg',True);
      end. else
      if AsBool = false then
           Color := clYellow; Warning_Win.ShowClient(GetClientName); PlayUserSound(GetClientName,'02072.ogg',True);
      end. else
           Color := clGreen;
  end.
   
В чем засада? Спасибо.
« Изменён: 26 Мая 2018, 10:36:06 от Simple-Scada »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1400
    • Просмотр профиля
Как мы уже написали в сообщении выше: если нужно выполнить несколько действий, то просто заключите их в begin...end. Правильный вариант Вашего скрипта:
Код: (delphi)
begin
  if Sender is TM_Object then
    with Sender as TM_Object do
      if VariableEx.AsBool = false then
      begin
        Color := clRed;
        Alarm_Win.ShowClient(GetClientName);
        PlayUserSound(GetClientName,'03281.ogg',True);
      end else
        if AsBool = false then
        begin
          Color := clYellow;
          Warning_Win.ShowClient(GetClientName);
          PlayUserSound(GetClientName,'02072.ogg',True);
        end else
          Color := clGreen;
  end.
« Изменён: 26 Мая 2018, 10:36:34 от Simple-Scada »