Не отображается bmp картинка в режиме визуализации.

 

В обычном режиме эксперт работает нормально! Объект BMP_label отображается на графике.

 

При запуске в тестере в режиме визуализации объект создается, но никакие атрибуты не меняются. Каждый раз возвращается ошибка 4202 (объект не существует)

Хотя на гафике в списке объектов bmp_label присутствует.

 

Подскажите, как рисовать  bmp картинке в режиме визуализации.

Очень необходимо для маркета, так как все триал версии работают только на тестере.

 

Код для проверки.   (вам нужен файл картинка в той же папке что и советник)


#property version   "1.00"

#property strict


#resource "80-20b.bmp"; // Имя файла для режима On

//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

void OnTick()

  {

//---

   string name="qwe";

   long   chart_id=ChartID();

   if(ObjectFind(chart_id,name)!=-1)ObjectDelete(name);

   if(!ObjectCreate(name,OBJ_BITMAP_LABEL,0,1,1))Print(name+" Error Create OBJ_BITMAP_LABEL : ",GetLastError());

   ResetLastError();

   if(!ObjectSetString(ChartID(),name,OBJPROP_BMPFILE,"::80-20b.bmp"))Print(name+" Error set BMP_FILE : ",GetLastError());

   ObjectSetInteger(ChartID(),name,OBJPROP_CORNER,0);

   ObjectSetInteger(chart_id,name,OBJPROP_XSIZE,80);     

   ObjectSetInteger(chart_id,name,OBJPROP_YSIZE,20);

   ObjectSetInteger(chart_id,name,OBJPROP_XDISTANCE,100);

   ObjectSetInteger(chart_id,name,OBJPROP_YDISTANCE,100);

   ObjectSetInteger(chart_id,name,OBJPROP_BGCOLOR,clrAliceBlue);

   ObjectSetInteger(chart_id,name,OBJPROP_HIDDEN,true);

   ObjectSetInteger(chart_id,name,OBJPROP_SELECTABLE,false);

   ObjectSetInteger(chart_id,name,OBJPROP_BACK,false);


   WindowRedraw();

  } 

 

Конечно менее значимая проблема, но у меня некоторые bmp файлы (подключаю как ресурсы) не отображаются на графике если находятся в папке Images. Тогда эти картинки приходится размещать в той же папке что и советник.

 

Уважаемые разработчики, прошу как-то прокомментировать данный пост.

 
serler2:

Уважаемые разработчики, прошу как-то прокомментировать данный пост.

 

Поддерживаю вопрос.

Таже фигня (ошибка 4202) только не с bmp а с кнопками.

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

 

Я предполагаю что MQ при сближении языков начало резать тестер в сторону тестера МТ5 (там ведь графика в тестере так и не работает). 

 
serler2:

В обычном режиме эксперт работает нормально! Объект BMP_label отображается на графике.

 

При запуске в тестере в режиме визуализации объект создается, но никакие атрибуты не меняются. Каждый раз возвращается ошибка 4202 (объект не существует)

Хотя на гафике в списке объектов bmp_label присутствует.

 

Подскажите, как рисовать  bmp картинке в режиме визуализации.

Очень необходимо для маркета, так как все триал версии работают только на тестере.

 

Код для проверки.   (вам нужен файл картинка в той же папке что и советник)


#property version   "1.00"

#property strict


#resource "80-20b.bmp"; // Имя файла для режима On

//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

void OnTick()

  {

//---

   string name="qwe";

   long   chart_id=ChartID();

   if(ObjectFind(chart_id,name)!=-1)ObjectDelete(name);

   if(!ObjectCreate(name,OBJ_BITMAP_LABEL,0,1,1))Print(name+" Error Create OBJ_BITMAP_LABEL : ",GetLastError());

   ResetLastError();

   if(!ObjectSetString(ChartID(),name,OBJPROP_BMPFILE,"::80-20b.bmp"))Print(name+" Error set BMP_FILE : ",GetLastError());

   ObjectSetInteger(ChartID(),name,OBJPROP_CORNER,0);

   ObjectSetInteger(chart_id,name,OBJPROP_XSIZE,80);     

   ObjectSetInteger(chart_id,name,OBJPROP_YSIZE,20);

   ObjectSetInteger(chart_id,name,OBJPROP_XDISTANCE,100);

   ObjectSetInteger(chart_id,name,OBJPROP_YDISTANCE,100);

   ObjectSetInteger(chart_id,name,OBJPROP_BGCOLOR,clrAliceBlue);

   ObjectSetInteger(chart_id,name,OBJPROP_HIDDEN,true);

   ObjectSetInteger(chart_id,name,OBJPROP_SELECTABLE,false);

   ObjectSetInteger(chart_id,name,OBJPROP_BACK,false);


   WindowRedraw();

  } 

 

Конечно менее значимая проблема, но у меня некоторые bmp файлы (подключаю как ресурсы) не отображаются на графике если находятся в папке Images. Тогда эти картинки приходится размещать в той же папке что и советник.

Попробуй (в качестве эксперимента) вместо ChartID() поставить 0, чем чёрт не шутит.
 
Urain:

Поддерживаю вопрос.

Таже фигня (ошибка 4202) только не с bmp а с кнопками.

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

 

Я предполагаю что MQ при сближении языков начало резать тестер в сторону тестера МТ5 (там ведь графика в тестере так и не работает). 

Нет. Не начало резать. Просто не доделано.

Будем доделывать и в MT4, и в MT5. Немножко попозже

 
stringo:

Нет. Не начало резать. Просто не доделано.

Будем доделывать и в MT4, и в MT5. Немножко попозже

Спасибо. Особенно в МТ4 (народ привык что граф объёкты в тестере работают и переделывать под тестер коды, виртуализировать графику не нужно).