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

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

Автор Тема: Свойство VariableEX  (Прочитано 2542 раз)

Серега

  • Старожил
  • ****
  • Сообщений: 285
    • Просмотр профиля
Свойство VariableEX
« : 29 Мая 2019, 14:47:23 »
В универсальном скрипте используется свойство VariableEX. Скрипт вызывается из события OnDataChange TM_Text объекта. Скрипт необходимо вызывать именно из события OnDataChange. При компиляции и сохранении проекта ошибок нет. При запуске проекта в Окне сервера Simple-Scada прописывается ошибка со ссылкой на строку со свойством VariableEX.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Re: Свойство VariableEX
« Ответ #1 : 29 Мая 2019, 15:01:43 »
Здравствуйте.

Цитировать
При запуске проекта в Окне сервера Simple-Scada прописывается ошибка со ссылкой на строку со свойством VariableEX.
Значит в скрипте точно есть ошибка или код допускает выполнение с ошибкой. Приведите код скрипта, мы укажем в чем именно проблема. Скорее всего она в том, что у какого-то объекта к которому привязан данный универсальный скрипт не назначена дополнительная переменная. Таким образом VariableEx равно nil (нулевой указатель) во время выполнения скрипта и при попытке работать с ним неизбежно будет выдана ошибка, т.к. нельзя обращаться к объектам по нулевым указателям. Поэтому обычно перед обращением проверяют, что указатель не является nil, например:
Код: (delphi)
begin
  if Sender.VariableEx <> nil then   // убедимся, что у объекта назначена доп. переменная
    Sender.VariableEx.Value := 10; 
end.
такой код будет работать без ошибок даже если у объекта Sender не выбрана доп. переменная.
« Изменён: 29 Мая 2019, 15:04:51 от Simple-Scada »