Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: George от 20 Мая 2018, 17:08:53

Название: Как добавить выражение в имеющиеся условия скрипта?
Отправлено: George от 20 Мая 2018, 17:08:53
Добрый день.

Подскажите, как дополнить скрипт, чтобы кроме цвета выдавалось сообщение?
(т.е. как туда пристроить процедуры 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;
Спасибо.
Название: Re: Как добавить выражение в имеющиеся условия скрипта ?
Отправлено: Simple-Scada от 20 Мая 2018, 22:17:09
Здравствуйте.
Если нужно выполнить несколько действий, то просто заключите их в 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;
Название: Re: Как добавить выражение в имеющиеся условия скрипта ?
Отправлено: George от 20 Мая 2018, 23:35:36
Вот это работает как часы... :
Код: (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.
   
В чем засада? Спасибо.
Название: Re: Как добавить выражение в имеющиеся условия скрипта ?
Отправлено: Simple_Scada от 20 Мая 2018, 23:51:55
Как мы уже написали в сообщении выше: если нужно выполнить несколько действий, то просто заключите их в 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.