Положение графических объектов на дисплее

 

Доброго времени суток!

Возникла небольшая проблема, которую не могу решить. Подскажите!
С помощью функции ObjectSetInteger () и свойства OBJPROP_BACK пытаюсь задать положение объекта поверх других (на переднем плане). Если относительно индикаторов он и становится таковым, то вот цена (бары) все равно ложатся на объект. Не пойму, что делаю не так! Заранее всем большое спасибо за ответ!

 
Esin_Oleg:

Доброго времени суток!

Возникла небольшая проблема, которую не могу решить. Подскажите!
С помощью функции ObjectSetInteger () и свойства OBJPROP_BACK пытаюсь задать положение объекта поверх других (на переднем плане). Если относительно индикаторов он и становится таковым, то вот цена (бары) все равно ложатся на объект. Не пойму, что делаю не так! Заранее всем большое спасибо за ответ!

Надо не объект поверх графика, а график на задний план.


ChartGetInteger(0, CHART_FOREGROUND, 0, false)
 
Alexey Viktorov:
Надо не объект поверх графика, а график на задний план.

В целом, в языке есть огромный недочёт со слоями.

К примеру, есть "кнопка" и "поле ввода", так вот когда жмёшь в поле ввода чтоб выделить и ввести значения, то жмётся кнопка, хотя при этом объекты создавались в последовательности "кнопка->поле ввода", и объект "поле ввода" находиться над "кнопкой", то есть кнопка не должна видеть нажатий! А происходит совсем обратное: "Поле ввода" никакой реакции, а вот "кнопка" нажимается сквозь "поле ввода". Для того чтоб ввести значения в "Поле ввода", оно не должно быть сверху "кнопки", что не всегда возможно в некоторых случаях.

Это ошибка.

 
Vitaly Muzichenko:

В целом, в языке есть огромный недочёт со слоями.

К примеру, есть "кнопка" и "поле ввода", так вот когда жмёшь в поле ввода чтоб выделить и ввести значения, то жмётся кнопка, хотя при этом объекты создавались в последовательности "кнопка->поле ввода", и объект "поле ввода" находиться над "кнопкой", то есть кнопка не должна видеть нажатий! А происходит совсем обратное: "Поле ввода" никакой реакции, а вот "кнопка" нажимается сквозь "поле ввода". Для того чтоб ввести значения в "Поле ввода", оно не должно быть сверху "кнопки", что не всегда возможно в некоторых случаях.

Это ошибка.

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

 
Alexey Viktorov:
Надо не объект поверх графика, а график на задний план.


Спасибо, разобрался! Только функцию нужно вызывать ChartSetInteger (). Но все равно спасибо, что дали понять, в каком направлении нужно было идти! :)

 
Vitaly Muzichenko:

В целом, в языке есть огромный недочёт со слоями.

К примеру, есть "кнопка" и "поле ввода", так вот когда жмёшь в поле ввода чтоб выделить и ввести значения, то жмётся кнопка, хотя при этом объекты создавались в последовательности "кнопка->поле ввода", и объект "поле ввода" находиться над "кнопкой", то есть кнопка не должна видеть нажатий! А происходит совсем обратное: "Поле ввода" никакой реакции, а вот "кнопка" нажимается сквозь "поле ввода". Для того чтоб ввести значения в "Поле ввода", оно не должно быть сверху "кнопки", что не всегда возможно в некоторых случаях.

Это ошибка.

Не знаю, правильно ли я вас понял, но есть идентификатор OBJPROP_ZORDER, возможно с помощью этого, вы сможете решить данную проблему.

Свойства объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL4
Свойства объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Графические объекты могут иметь множество свойств в зависимости от типа объекта. Все объекты, используемые в техническом анализе, имеют привязку на графиках по координатам цены и времени – трендовая линия, каналы, инструменты Фибоначчи и т.д.  Но есть ряд вспомогательных объектов, предназначенных для улучшения интерфейса, которые имеют привязку...
 
Esin_Oleg:

Спасибо, разобрался! Только функцию нужно вызывать ChartSetInteger (). Но все равно спасибо, что дали понять, в каком направлении нужно было идти! :)

А это чтобы служба мёдом не казалась.

А честно, по невнимательности скопировал не ту строку. Иначе было-бы не интересно...

Причина обращения: