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

 
Наверно единственный способ поставить графический объект на передний план в MQL5 (чтобы другие объекты не перекрывали его), это удалить объект и заново его создать. Но мне бы не хотелось удалять объект каждый раз, когда он и так последний в очереди на прорисовку. Как узнать, последний ли объект в очереди, чтобы каждый раз не пересоздавать его?
 
Mihail Matkovskij:
Наверно единственный способ поставить графический объект на передний план в MQL5 (чтобы другие объекты не перекрывали его), это удалить объект и заново его создать. Но мне бы не хотелось удалять объект каждый раз, когда он и так последний в очереди на прорисовку. Как узнать, последний ли объект в очереди, чтобы каждый раз не пересоздавать его?

правый клик на чарте - список объектов?

 
Mihail Matkovskij:
Наверно единственный способ поставить графический объект на передний план в MQL5 (чтобы другие объекты не перекрывали его), это удалить объект и заново его создать. Но мне бы не хотелось удалять объект каждый раз, когда он и так последний в очереди на прорисовку. Как узнать, последний ли объект в очереди, чтобы каждый раз не пересоздавать его?
Очумелые ручки? Все гораздо проще, последовательность отрисовки соответствует последовательности создания объектов. Т.е. если у Вас кнопка на фоне, то в начале нужно создать фон, а затем кнопку. Любой более менее адекватный gui фреймворк берет на себя задачу правильной последовательности отрисовки. Если у Вас это не так, значит Вы что-то неправильно делаете.
 
Mihail Matkovskij:
Наверно единственный способ поставить графический объект на передний план в MQL5 (чтобы другие объекты не перекрывали его), это удалить объект и заново его создать. Но мне бы не хотелось удалять объект каждый раз, когда он и так последний в очереди на прорисовку. Как узнать, последний ли объект в очереди, чтобы каждый раз не пересоздавать его?
Устанавливать свойство OBJPROP_ZORDER для объекта пробовали?
 
Alexey Volchanskiy:

правый клик на чарте - список объектов?

Узнать какой объект в очереди нужно программно.

Vasiliy Sokolov:
Очумелые ручки? Все гораздо проще, последовательность отрисовки соответствует последовательности создания объектов. Т.е. если у Вас кнопка на фоне, то в начале нужно создать фон, а затем кнопку. Любой более менее адекватный gui фреймворк берет на себя задачу правильной последовательности отрисовки. Если у Вас это не так, значит Вы что-то неправильно делаете.

А если, например, поверх правильно созданной панели с кнопками добавляются графические примитивы, которые создаются на протяжении работы индикатора, уже после создания всего интерфейса?

Alexey Kozitsyn:
Устанавливать свойство OBJPROP_ZORDER для объекта пробовали?
Так это же приоритет на получение событий нажатия мыши. На счёт прорисовки в справке ничего не сказано.
 
Mihail Matkovskij:
Наверно единственный способ поставить графический объект на передний план в MQL5 (чтобы другие объекты не перекрывали его), это удалить объект и заново его создать. Но мне бы не хотелось удалять объект каждый раз, когда он и так последний в очереди на прорисовку. Как узнать, последний ли объект в очереди, чтобы каждый раз не пересоздавать его?

Используйте свойство объекта OBJPROP_CREATETIME.


 
Ihor Herasko:

Используйте свойство объекта OBJPROP_CREATETIME.


То есть, самый младший по времени объект будет самым последним в очереди... Спасибо!

 
Ihor Herasko:

Используйте свойство объекта OBJPROP_CREATETIME.


OBJPROP_CREATETIME

Время создания объекта

datetime    r/o


Вряд-ли что с этим получится.

 
Alexey Viktorov:

OBJPROP_CREATETIME

Время создания объекта

datetime    r/o


Вряд-ли что с этим получится.


Обоснуйте, почему? Из-за того, что read only? Каким образом оно мешает, если это значение нужно только читать?

 
Mihail Matkovskij:
Наверно единственный способ поставить графический объект на передний план в MQL5 (чтобы другие объекты не перекрывали его), это удалить объект и заново его создать. Но мне бы не хотелось удалять объект каждый раз, когда он и так последний в очереди на прорисовку. Как узнать, последний ли объект в очереди, чтобы каждый раз не пересоздавать его?

так а в списке объектов, разве они не по порядку идут?
 
Ihor Herasko:

Обоснуйте, почему? Из-за того, что read only? Каким образом оно мешает, если это значение нужно только читать?

Ну, не знаю почему... На предположение, что без удаления и создания объекта заново не обойтись,

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

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

Mihail Matkovskij, 2017.08.21 14:27

Наверно единственный способ поставить графический объект на передний план в MQL5 (чтобы другие объекты не перекрывали его), это удалить объект и заново его создать. Но мне бы не хотелось удалять объект каждый раз, когда он и так последний в очереди на прорисовку. Как узнать, последний ли объект в очереди, чтобы каждый раз не пересоздавать его?

этот ответ

толкает на мысль, что это свойство надо изменить и все проблемы пропадут... Во всяком случае по моей логике так. А чем поможет знание времени создания объекта?
Причина обращения: