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

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

Автор Тема: Изменение ScaleMaximum по нажатию кнопки  (Прочитано 2262 раз)

Даниил

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Изменение ScaleMaximum по нажатию кнопки
« : 04 Августа 2016, 12:21:45 »
Добрый день, появилась такая задача:

по нажатию кнопки без фиксации изменять(увеличивать шкалу) шкалу временных трендов до определенного значения, затем сбрасывать на исходный.

Код
begin
scale1:= Trend1.ScaleMaximum;
 if Button1.States[0].Value = 1 then Trend1.ScaleMaximum :=Trend1.ScaleMaximum + 25;
 if  Trend1.ScaleMaximum >100 then Trend1.ScaleMaximum:=25;
end.

scale1-промежуточная переменная для вывода шкалы в поле для проверки работы скрипта типа Double.
Компилятор ругается на не соответствие типов данных "TM_Variable" и "Double", в руководстве по скриптам сказано, что ScaleMaximum "Double".

Подскажите пожалуйста в чем проблем?
« Изменён: 05 Января 2017, 17:58:59 от Simple_Scada »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 2996
    • Просмотр профиля
    • Simple-Scada
Re: Изменение ScaleMaximum по нажатию кнопки
« Ответ #1 : 04 Августа 2016, 15:15:06 »
Здравствуйте.

Дело в том, что scale1 это переменная и она имеет тип TM_Variable. А Trend1.ScaleMaximum это вещественное число типа Double, из-за этого возникает несоответствие типов. Правильно менять не саму переменную, а значение переменной, вот так:

Код
  Scale1.Value := Trend1.ScaleMaximum;