Помогите доработать код советника. Хочу привязать активные кнопки на графике.

 

Есть функция которая создает кнопку и указывает цвет данной кнопки при нажатии и отжатии


ButtonCreate(0,"tralling",0,119,206,100,25,CORNER_RIGHT_UPPER,"Trailing","Thama",10,clrBlack,clrWhiteSmoke,clrWhite,False,False,False,true,100);

      

     if (ObjectGetInteger(0,"tralling",OBJPROP_STATE)==true)

         ObjectSetInteger(0,"tralling",OBJPROP_BGCOLOR,clrGreen);

         

     else

         ObjectSetInteger(0,"tralling",OBJPROP_BGCOLOR,clrRed);


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


input bool TrailingSL=true;


а при отжатии кнопки эта функция становилась 


input bool TrailingSL=false;


Пытаюсь делать так : 


if (ObjectGetInteger(0,"tralling",OBJPROP_STATE)==true)

{

  ObjectSetInteger(0,"tralling",OBJPROP_BGCOLOR,clrGreen);

  TrailingSL=true;

} else {

  TrailingSL=false;

  ObjectSetInteger(0,"tralling",OBJPROP_BGCOLOR,clrRed);

}



выдает ошибку 


'TrailingSL' - constant cannot be modified

 
Проблема заключается в том, что вы пытаетесь изменить значение переменной, которая была объявлена как константа. Чтобы решить эту проблему, вы должны изменить объявление переменной TrailingSL, убрав слово "const":

input bool TrailingSL=true;



input bool TrailingSL=true; // убрали const, чтобы переменную можно было менять

Если после этого ошибка сохраняется, возможно, что переменная TrailingSL объявлена в другом месте с ключевым словом "const". В таком случае, вам нужно найти это место и также изменить объявление переменной, как указано выше.
Причина обращения: