Помогите новичку

 

Здравствуйте! 

Подскажите, пожалуйста, как в MQL4 вывести на график поле ввода, в котором можно поставить/удалить галочку. И чтобы информация о наличии/отсутствии галочки могла быть считана советником. Спасибо!

 
twin2010:

Здравствуйте! 

Подскажите, пожалуйста, как в MQL4 вывести на график поле ввода, в котором можно поставить/удалить галочку. И чтобы информация о наличии/отсутствии галочки могла быть считана советником. Спасибо!

Если нужна только одна кнопка в двух состояниях, то OBJ_BUTTON подойдет.

Если более сложное что-то то вот с этого начните:

https://www.mql5.com/ru/articles/2125

или со справки к языку. А дальше или готовое используйте или свое решение пишите. 

Графические интерфейсы I: Подготовка структуры библиотеки (Глава 1)
Графические интерфейсы I: Подготовка структуры библиотеки (Глава 1)
  • 2015.12.10
  • Anatoli Kazharski
  • www.mql5.com
С этой статьи я начинаю еще одну серию, относящуюся к разработке графических интерфейсов. На текущий момент нет ни одной библиотеки кода, которая позволяла бы легко и быстро создавать качественные графические интерфейсы в MQL-приложениях. Я имею в виду графические интерфейсы, к которым мы все привыкли в известных операционных системах.
 

Спасибо! Да, нужно только 2 состояния. Но, я не понял, как использовать OBJ_BUTTON, чтобы ставить галочку

А можно сюда скопировать кусок кода, чтобы рисовало, как на моем рисунке?

 
У кнопки нет галочки, у не два состояния: нажата, отжата. 
 
Я это понимаю. Но мне нужно ставить/убирать галочку. Можно сюда скопировать кусок кода, чтобы рисовало, как на моем рисунке?
 

Эксперт

#property strict

int OnInit()
  {

   int x=100,y=50;

   ObjectCreate(0,"cb1",OBJ_LABEL,0,0,0);
   ObjectSetString(0,"cb1",OBJPROP_FONT,"Wingdings");
   ObjectSetInteger(0,"cb1",OBJPROP_FONTSIZE,20);   
   ObjectSetString(0,"cb1",OBJPROP_TEXT,CharToString(110));
   ObjectSetInteger(0,"cb1",OBJPROP_COLOR,clrSilver);      
   ObjectSetInteger(0,"cb1",OBJPROP_SELECTABLE,false);    
   ObjectSetInteger(0,"cb1",OBJPROP_XDISTANCE,x);
   ObjectSetInteger(0,"cb1",OBJPROP_YDISTANCE,y);   
   
     
   ObjectCreate(0,"cb2",OBJ_LABEL,0,0,0);
   ObjectSetString(0,"cb2",OBJPROP_FONT,"Wingdings");
   ObjectSetInteger(0,"cb2",OBJPROP_FONTSIZE,16);   
   ObjectSetString(0,"cb2",OBJPROP_TEXT,CharToString(252));
   ObjectSetInteger(0,"cb2",OBJPROP_COLOR,clrBlack);  
   ObjectSetInteger(0,"cb2",OBJPROP_SELECTABLE,false);     
   ObjectSetInteger(0,"cb2",OBJPROP_SELECTABLE,false);      
   ObjectSetInteger(0,"cb2",OBJPROP_XDISTANCE,x+1);
   ObjectSetInteger(0,"cb2",OBJPROP_YDISTANCE,y+5);   
   return(INIT_SUCCEEDED);
}

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {

   if(id==CHARTEVENT_OBJECT_CLICK){
      if(sparam=="cb1" || sparam=="cb2"){
         if(ObjectGetString(0,"cb2",OBJPROP_TEXT)==""){
            ObjectSetString(0,"cb2",OBJPROP_TEXT,CharToString(252));   
            Comment("on");
         }
         else{
            ObjectSetString(0,"cb2",OBJPROP_TEXT,"");   
            Comment("off");
         }
      }
   }
   
   
  }
 
Огромное спасибо!
Причина обращения: