Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: Серега от 29 Мая 2019, 14:47:23

Название: Свойство VariableEX
Отправлено: Серега от 29 Мая 2019, 14:47:23
В универсальном скрипте используется свойство VariableEX. Скрипт вызывается из события OnDataChange TM_Text объекта. Скрипт необходимо вызывать именно из события OnDataChange. При компиляции и сохранении проекта ошибок нет. При запуске проекта в Окне сервера Simple-Scada прописывается ошибка со ссылкой на строку со свойством VariableEX.
Название: Re: Свойство VariableEX
Отправлено: Simple-Scada от 29 Мая 2019, 15:01:43
Здравствуйте.

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