Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1065

 

Alexey Viktorov:

Внимательно читайте справочник. OBJ_CHANNEL никакого отношения к углу не имеет.

Осознал!

Тогда возвращаемся к предыдущему вопросу:

Есть координаты Х и У, как задать условие для ChartXYToTimePrice, чтобы считал от правого угла?

 
MakarFX:

Осознал!

Тогда возвращаемся к предыдущему вопросу:

Есть координаты Х и У, как задать условие для ChartXYToTimePrice, чтобы считал от правого угла?

ChartXYToTimePrice считает координаты от левого верхнего угла. И как-бы вы не посчитали от правого, вам по-любому придётся переводить полученные значения в координаты от левого верхнего угла. Для какой цели такие пляски с бубном? Какой объект вы хотите разместить относительно правого угла? Почему-бы вам не почитать справочник? Ведь там есть все примеры и объяснения.

 
Alexey Viktorov:
Для какой цели такие пляски с бубном?

Левый угол занят(

Alexey Viktorov:

Почему-бы вам не почитать справочник? Ведь там есть все примеры и объяснения.

Читал и примеры нашел, на их основании и код написан,

но нет примеров как сменить угол(

 
MakarFX:

Левый угол занят(

Читал и примеры нашел, на их основании и код написан,

но нет примеров как сменить угол(

Видимо плохо искал. Вот тут есть примеры и все объяснения.
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Угол привязки
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Угол привязки
  • www.mql5.com
Существует ряд графических объектов, для которых можно задавать угол графика, относительно которого указываются координаты в пикселях. Это следующие типы объектов (в скобках указаны идентификаторы типа объекта): – объекты имеет ширину и высоту. Если указано "только для чтения", то это означает, что значения ширины и высоты вычисляются только...
 
MakarFX:

Левый угол занят(

Читал и примеры нашел, на их основании и код написан,

но нет примеров как сменить угол(

Разницы никакой от какого угла отсчитывается начальная координата объекта. Этот угол - начало координат. А где будут находиться объекты - это ваше дело - рассчитать их координаты от начала координат.

 
Alexey Viktorov:
Видимо плохо искал. Вот тут есть примеры и все объяснения.

OBJ_CHANNEL требует время и цену и ХУ можно получить только с помощью ChartXYToTimePrice

Artyom Trishkin:

Разницы никакой от какого угла отсчитывается начальная координата объекта. Этот угол - начало координат. А где будут находиться объекты - это ваше дело - рассчитать их координаты от начала координат.

Так можно, но если меняется размер окна или на другом компе другое разрешение, то объект смещается.

 
MakarFX:

OBJ_CHANNEL требует время и цену и ХУ можно получить только с помощью ChartXYToTimePrice

Так можно, но если меняется размер окна или на другом компе другое разрешение, то объект смещается.

Вы говорите какими-то абстрактными понятиями. Сделайте скрин экрана - что вы там размещаете, и почему видите проблему. Что там куда смещается?

 
MakarFX:

OBJ_CHANNEL требует время и цену и ХУ можно получить только с помощью ChartXYToTimePrice

Так можно, но если меняется размер окна или на другом компе другое разрешение, то объект смещается.

Тогда ищите в документации как определить DPI и на основании этого определить ширину окна графика.

 
Alexey Viktorov:

Тогда ищите в документации как определить DPI и на основании этого определить ширину окна графика.

Вы меня правильно поняли, попробую поискать. Спасибо.
 
MakarFX:
Вы меня правильно поняли, попробую поискать. Спасибо.

Вот пример из документации.

//--- создаём кнопку шириной 1.5 дюйма на экране 
int screen_dpi = TerminalInfoInteger(TERMINAL_SCREEN_DPI); // получим DPI монитора пользователя 
int base_width = 144;                                      // базовая ширина в экранных точках для стандартных мониторов c DPI=96 
int width      = (button_width * screen_dpi) / 96;         // вычислим ширину кнопки для монитора пользователя (с учётом его DPI) 
... 
  
//--- вычисление коэффициента масштабирования в процентах 
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI) * 100) / 96; 
//--- использование коэффициента масштабирования 
width=(base_width * scale_factor) / 100;
Причина обращения: