Подскажите, пожалуйста, текст кода а-ля checkbox для вставки в индикатор

 

Кажется только из моей библиотеки можно создавать элементы управления прямо на графике без формы.

См. по ссылке в разделе "Этап 4 — создание графического интерфейса". Там ссылки на три статьи, из них первую можно не читать, третью тоже. Описание чекбокса во второй статье. 

Код всех элементов управления независимый, можно только один класс чекбокса скопировать без проблем.

--

Можно и просто кнопку использовать, у нее два фиксированных положения: нажата/отжата.

 
Dmitry Fedoseev:

Кажется только из моей библиотеки можно создавать элементы управления прямо на графике без формы.

См. по ссылке в разделе "Этап 4 — создание графического интерфейса". Там ссылки на три статьи, из них первую можно не читать, третью, тоже, то есть описание чекбокса во второй статье. 

Код всех элементов управления независимый, можно только один класс чекбокса скопировать без проблем.

Простите, многабукаф, ниасилил... :(

Понятно, двумя строчками не отделаешься... Не силён я в программировании. Очень сложно для меня. Спасибо за ответ!

 
string obj_pref="CB_";
int FS=10;

void OnInit()
{ 
   ObjectCreate(ChartID(),obj_pref+"Show",OBJ_BUTTON,0,0,0); 
   ObjectSetInteger(ChartID(),obj_pref+"Show",OBJPROP_XDISTANCE,FS*6);
   ObjectSetInteger(ChartID(),obj_pref+"Show",OBJPROP_YDISTANCE,20);
   ObjectSetInteger(ChartID(),obj_pref+"Show",OBJPROP_XSIZE,int(FS*2));
   ObjectSetInteger(ChartID(),obj_pref+"Show",OBJPROP_YSIZE,FS*2);
   ObjectSetInteger(ChartID(),obj_pref+"Show",OBJPROP_CORNER,CORNER_RIGHT_UPPER);
   ObjectSetString (ChartID(),obj_pref+"Show",OBJPROP_TEXT,"");
   ObjectSetString (ChartID(),obj_pref+"Show",OBJPROP_FONT,"Arial");
   ObjectSetInteger(ChartID(),obj_pref+"Show",OBJPROP_FONTSIZE,FS);
   ObjectSetInteger(ChartID(),obj_pref+"Show",OBJPROP_COLOR,clrBlack);
   ObjectSetInteger(ChartID(),obj_pref+"Show",OBJPROP_BGCOLOR,clrWhite);
   ObjectSetInteger(ChartID(),obj_pref+"Show",OBJPROP_BORDER_COLOR,clrGray);
   ObjectSetInteger(ChartID(),obj_pref+"Show",OBJPROP_BACK,false);
   ObjectSetInteger(ChartID(),obj_pref+"Show",OBJPROP_STATE,false);
}

void OnDeinit(const int reason)
{
   ObjectsDeleteAll(0,obj_pref);
}

void OnChartEvent(const int id,         // идентификатор события  
                  const long& lparam,   // параметр события типа long
                  const double& dparam, // параметр события типа double
                  const string& sparam) // параметр события типа string
{
  //Можно так:
  //ObjectSetString (ChartID(),obj_pref+"Show",OBJPROP_TEXT,ObjectGetInteger(0,obj_pref+"Show",OBJPROP_STATE)?"V":"");
  if(ObjectGetInteger(0,obj_pref+"Show",OBJPROP_STATE))
   {
    ObjectSetString(0,obj_pref+"Show",OBJPROP_TEXT," V");
    ChartSetInteger(0,CHART_COLOR_BACKGROUND,clrWhite);//для примера, сменим цвет
   }
  else
   {
    ObjectSetString(0,obj_pref+"Show",OBJPROP_TEXT,"");
    ChartSetInteger(0,CHART_COLOR_BACKGROUND,clrBlack);//для примера, сменим цвет
   }
}

void start()
{
  if(ObjectGetInteger(0,obj_pref+"Show",OBJPROP_STATE))
   {
    //сценарий 1
   }
  else
   {
    //сценарий 2
   }
}
 
Igor Zakharov:

Вот вы, программисты, писать любите! :)

Спасибо за, так сказать, развёрнутый ответ (по факту, конечно же, готовый код).

Но необходимость в нём пока отпала, нет времени разбираться, возможно позже.

Поэтому, большое спасибо за потраченное время и ответ!

Причина обращения: