Разное расположение По Х у одинакового кода, почему так?

 
Здравствуйте, сломал голову, отображается по разному? Как получить расположение текста во 2-м случае как в 1-м? разное расположение по Х
   ObjectCreate("demo", OBJ_LABEL, 0, 0, 0);
   ObjectSet("demo", OBJPROP_CORNER, 1);
   ObjectSet("demo", OBJPROP_XDISTANCE, 90);
   ObjectSet("demo", OBJPROP_YDISTANCE, 37);
   ObjectSet("demo", OBJPROP_SELECTED, false); 
   ObjectSetText("demo", "проверка отображение", 8, "Arial Black", Black);

и

Label1Create("demo","проверка отображение", 90, 37, 8, "Arial Black", Black,false,false,1);

void Label1Create(string aName, string text, int ax, int ay, int font_size, string font, color clr, bool selection, bool hidden, ENUM_BASE_CORNER aCorner)
{
   ObjectCreate(0,aName, OBJ_LABEL, 0, 0, 0);
   ObjectSetString(0,aName, OBJPROP_TEXT, text);
   ObjectSetInteger(0,aName, OBJPROP_XDISTANCE, ax);
   ObjectSetInteger(0,aName, OBJPROP_YDISTANCE, ay);
   ObjectSetInteger(0,aName, OBJPROP_FONTSIZE, font_size);
   ObjectSetString(0,aName, OBJPROP_FONT, font);
   ObjectSetInteger(0,aName, OBJPROP_COLOR, clr);
   ObjectSetInteger(0,aName, OBJPROP_SELECTED, selection);
   ObjectSetInteger(0,aName, OBJPROP_HIDDEN, hidden);
   ObjectSetInteger(0,aName, OBJPROP_CORNER, aCorner);
}
 
Dmitry Ivkin:
Здравствуйте, сломал голову, отображается по разному? Как получить расположение текста во 2-м случае как в 1-м? разное расположение по Х

и

void Label1Create(string aName, string text, int ax, int ay, int font_size, string font, color clr, bool selection, bool hidden, ENUM_BASE_CORNER aCorner)
{
   ObjectCreate(aName, OBJ_LABEL, 0, 0, 0);
   ObjectSet(aName, OBJPROP_CORNER, aCorner);
   ObjectSet(aName, OBJPROP_XDISTANCE, ax);
   ObjectSet(aName, OBJPROP_YDISTANCE, ay);
   ObjectSetText(aName, text,font_size, font, clr);
}

void start()
{
   ObjectCreate("demo", OBJ_LABEL, 0, 0, 0);
   ObjectSet("demo", OBJPROP_CORNER, 1);
   ObjectSet("demo", OBJPROP_XDISTANCE, 90);
   ObjectSet("demo", OBJPROP_YDISTANCE, 37);
   ObjectSet("demo", OBJPROP_SELECTED, false); 
   ObjectSetText("demo", "проверка отображение", 8, "Arial Black", White);

   Label1Create("demo2","проверка отображение", 90, 37, 8, "Arial Black", White,false,false,1);
}
 
Konstantin Erin:

Что это за самодеятельность, не стыдно?

 
Vitaly Muzichenko:

Что это за самодеятельность, не стыдно?

Кроме беспочвенных обвинений можете что сказать? Желательно полезное...

 
Konstantin Erin:

Кроме беспочвенных обвинений можете что сказать? Желательно полезное...

Запросто.

Вы применили функцию, но половина кода создания объекта через функцию, а другая половина через .опу

Так-же это всё засунуто в функцию start(), кстати о ней все забыли уже несколько лет назад. Создавать такие объекты лучше в OnInit(), чтоб не нагружать программу каждый тик.

 
Dmitry Ivkin:
Здравствуйте, сломал голову, отображается по разному? Как получить расположение текста во 2-м случае как в 1-м? разное расположение по Х

и

Если мне память не совсем изменила, то последовательность привязки объектов была и используется в функции ObjectSet

  • левый_верхний = 0:
  • правый_верхний = 1:
  • левый_нижний = 2:
  • правый_нижний = 3:

А в функции ObjectSetInteger

  • левый_верхний = 0:
  • левый_нижний = 1:
  • правый_нижний = 2:
  • правый_верхний = 3:
Поэтому рекомендую использовать значения перечисления

ENUM_BASE_CORNER

CORNER_LEFT_UPPER

Центр координат в левом верхнем углу графика

CORNER_LEFT_LOWER

Центр координат в левом нижнем углу графика

CORNER_RIGHT_LOWER

Центр координат в правом нижнем углу графика

CORNER_RIGHT_UPPER

Центр координат в правом верхнем углу графика


Так будет и понятней и меньше вероятность ошибки.

ObjectSetInteger - Графические объекты - Справочник MQL4
ObjectSetInteger - Графические объекты - Справочник MQL4
  • docs.mql4.com
[in]  Модификатор указанного свойства. Означает номер уровня в инструментах Фибоначчи и в графическом объекте Вилы Эндрюса. Нумерация уровней начинается с нуля. Возвращает true только в том случае, если команда на изменение свойств графического объекта успешно отправлена графику, иначе возвращает false. Чтобы получить дополнительную информацию...
 
Alexey Viktorov:

Если мне память не совсем изменила, то последовательность привязки объектов была и используется в функции ObjectSet

  • левый_верхний = 0:
  • правый_верхний = 1:
  • левый_нижний = 2:
  • правый_нижний = 3:

А в функции ObjectSetInteger

  • левый_верхний = 0:
  • левый_нижний = 1:
  • правый_нижний = 2:
  • правый_верхний = 3:
Поэтому рекомендую использовать значения перечисления

ENUM_BASE_CORNER

CORNER_LEFT_UPPER

Центр координат в левом верхнем углу графика

CORNER_LEFT_LOWER

Центр координат в левом нижнем углу графика

CORNER_RIGHT_LOWER

Центр координат в правом нижнем углу графика

CORNER_RIGHT_UPPER

Центр координат в правом верхнем углу графика


Так будет и понятней и меньше вероятность ошибки.

Спасибо большое, не знал этого! почему то думал там одно и тоже