Вопросы от "чайника" - страница 31

 
Interesting:
Не пинципиально, в обычном режиме прорисует при правильных значениях. В режиме визуализации с BMP-графикой скорей всего пока будут проблемы (уверен процентов на 90).
В выходные я возился как раз с объектами. Если все явно и однозначно не указывать, начинает тупить - объектов нет, и ошибок нет.
 
Silent:

Инициализация - внутри функции, значения - из глобальных? Хм.

Из хелпа, для сравнения

Вы очень буквально воспринимаете то, что написано в справке. )) Инициализация внутри функции для локальных переменных. Я же их инициализировал глобально. 
Документация по MQL5: Основы языка / Переменные / Локальные переменные
Документация по MQL5: Основы языка / Переменные / Локальные переменные
  • www.mql5.com
Основы языка / Переменные / Локальные переменные - Документация по MQL5
 
Silent:
В выходные я возился как раз с объектами. Если все явно и однозначно не указывать, начинает тупить - объектов нет, и ошибок нет.
Так Вам удалось в тестере в режиме визуализации вывести на график объекты BMP или нет, я всё никак не пойму? Вне тестера с этим нет никаких проблем.
 
tol64:
Вы очень буквально воспринимаете то, что написано в справке. )) Инициализация внутри функции для локальных переменных. Я же их инициализировал глобально. 

Т. е., при совпадении имен используются глобальные значения? Точно?

PS перерисовку все таки добавьте в конце. 

 
tol64:
Так Вам удалось в тестере в режиме визуализации вывести на график объекты BMP или нет, я всё никак не пойму? Вне тестера с этим нет никаких проблем.
Отвечал выше - не пробовал, пока не до них. Просто увидел в коде то, с чем у меня даже объекты не рисовались, какие уж bpm.
 
Silent:

Т. е., при совпадении имен используются глобальные значения? Точно?

PS перерисовку все таки добавьте в конце. 

ChartRedraw(); установлена в нужных местах внутри функций OnInit(), OnChartEvent() и OnTick(). Совпадений имён у меня не наблюдается.))
 
Silent:
В выходные я возился как раз с объектами. Если все явно и однозначно не указывать, начинает тупить - объектов нет, и ошибок нет.
Первоначально речь шла не об самой возможности отображения графических объектов, а о том что в обычном режиме это происходит, а в режиме визуализации нет.
Silent:

Инициализация - внутри функции, значения - из глобальных? Хм.

Из хелпа, для сравнения

Если рассматривать отдельно функцию то это всего лишь функция. Которую, к примеру, можно запихнуть в библиотеку и работать с ней из любого места.

Пример же из справки демонстрирует отрисовку объекта скриптом.

PS

Что касается самой функции то на мой взгляд ей не хватает проверки параметров на корректность (в принципе это конечно личное дело разработчика).

Кроме того, тип я бы сделал bool, а не void (с обработкой ошибки создания объекта).

 
Interesting:

Что касается самой функции то на мой взгляд ей не хватает проверки параметров на корректность параметров (в принципе это конечно личное дело разработчика)

Это правильное замечание. Просто я пока в процессе изучения mql4/mql5 и усовершенствую код мере того, как углубляюсь в эту среду.)) Ну или пока грабли не стукнут.))
 
tol64:
ChartRedraw(); установлена в нужных местах внутри функций OnInit(), OnChartEvent() и OnTick(). Совпадений имён у меня не наблюдается.))

Значит, и значения не присваиваются

void Create_BMP_Label(long   chart_id,  // id графика
                      string bmp_nm,    // имя объекта
                      string bmp_path,  // путь к обекту
                      long   anchor,    // точка привязки инициализировали
                      long   corner,    // угол привязки
                      int    x_dist,    // координата по шкале X
                      int    y_dist)    // координата по шкале Y
  {
   ObjectCreate(chart_id,bmp_nm,OBJ_BITMAP_LABEL,0,0,0);          // создание объекта
   ObjectSetString(chart_id,bmp_nm,OBJPROP_BMPFILE,0,bmp_path);   // BMP файл
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_ANCHOR,anchor);       // установка точки привязки использовали, а где взяли значение?
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_CORNER,corner);       // установка угола привязки
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_XDISTANCE,x_dist);    // установка координаты X
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_YDISTANCE,y_dist);    // установка координаты Y
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_SELECTABLE,false);    // нельзя выделить объект, если FALSE
   ObjectSetString(chart_id,bmp_nm,OBJPROP_TOOLTIP,"\n");         // нет всплывающей подсказки, если "\n"
  }


 

 
Silent:

Значит, и значения не присваиваются. А где взяли значение?

Передаю эти свойства объектов явно ( ANCHOR_RIGHT_UPPER, CORNER_RIGHT_UPPER ):
Create_BMP_Label(0,TI_bmp_nm,TI_bmp_pth,ANCHOR_RIGHT_UPPER,CORNER_RIGHT_UPPER,x,y);
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов - Документация по MQL5