Кажется только из моей библиотеки можно создавать элементы управления прямо на графике без формы.
См. по ссылке в разделе "Этап 4 — создание графического интерфейса". Там ссылки на три статьи, из них первую можно не читать, третью тоже. Описание чекбокса во второй статье.
Код всех элементов управления независимый, можно только один класс чекбокса скопировать без проблем.
--
Можно и просто кнопку использовать, у нее два фиксированных положения: нажата/отжата.
Кажется только из моей библиотеки можно создавать элементы управления прямо на графике без формы.
См. по ссылке в разделе "Этап 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 } }
Вот вы, программисты, писать любите! :)
Спасибо за, так сказать, развёрнутый ответ (по факту, конечно же, готовый код).
Но необходимость в нём пока отпала, нет времени разбираться, возможно позже.
Поэтому, большое спасибо за потраченное время и ответ!
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день!
Чекбокс (как кнопка на графике) нужен для быстрого переключения параметра индикатора (вкл/выкл). Реально ли такое?