MQL4 - automated forex trading   /  

Форум

Мы больше не можем управлять размещением объектов на графике "по вертикали"

К списку тем  | 1 2 3 4 5 6 7 Авторизуйтесь или зарегистрируйтесь, чтобы создать новую тему

avatar
4197
ForexTools 27.05.2010 18:49 

Прошлое, почти скандальное, обсуждение проблемы с форматированием исходных текстов закончилось тем что разработчики признали "право" программиста писать программы так, как ему хочется\нравится (а не так как кажется им) и пообещали доделать настройки форматирования исходных текстов.

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

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

До удаления После удаления и восстановления

Обратившись в сервисдеск с предложением

необходимо предусмотреть механизмы произвольной сортировки объектов "по вертикали". Либо наличием свойства Zorder у каждого объекта, либо функциями BringToFront, SendToBack, InFrontOf, BehindOf. Ну или хотябы сделайте так же как было в 4-ке - по имени объекта, т.к. к такому поведению объектов все уже привыкли и ожидают что в 5-ке будет также.

я сразу же получил по....

Anton Timofeev 2010.05.27 12:27
Текущее правило последовательности отрисовки простое и достаточное для управления отрисовкой. Сортировка по имени в некоторых случаях дает более гибкое управление порядком отрисовки - простое решение для описанной на форуме конкретной задачи (маленький полюс), но заставит всех пользователей при любом добавлении объекта (втч не из MQL) тщательно обдумывать имя (большой минус).
Последовательность отрисовки при наложение объектов в МТ5 уже используют на практике (фон, кнопки и тп). На проблемы не жаловались - все достаточно просто решается алгоритмически.

ну ктобы сомневался что для них это, с позволения сказать, решение "простое и достаточное для управления отрисовкой"?! :))))

на мое замечание:

ForexTools:

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

ответили


Возились:

http://www.mql5.com/ru/articles/64

http://www.mql5.com/ru/articles/65

http://www.mql5.com/ru/code/68

На внутреннем тестировании достаточно много сами возились, писали и интерфейсы и игры. Проблемы как таковой с порядком отрисовки нет, просто поменяйте свой подход с учетом порядка.

хорош аргумент: на играх тетрис и минер отлаживались решения для будущих торговых интерфейсов :)))

и в итоге их вердикт:

Выше я достаточно подробно описал причину, по которой мы не будем вносить изменения. Повторю короче: ради удобства в частном случае нельзя усложнять жизнь всем во всех остальных случаях.

Если в четверке был хоть какойто порядок размещения объектов графика (по именам объектов), то в пятерке сделали самотасующуюся колоду карт и предлагают нам "поменять свой подход" к написанию MQL5-программ.


ИТОГО: что думаете коллеги-кодеры? нужен ли механизм возможности управления размещением объектов по вертикали? я предложил три варианта:

1) старый - по именам объектов

2) нормальный - с добавлением свойства Z-order каждому объекту графика

3) процедурный - функциями BringToFront, SendToBack, InFrontOf, BehindOf

или согласится на единственный вариант от разработчиков: в случае удаления полное перерисовывание всех(!!!!) объектов в требуемом порядке.

Кто что думает по этому поводу?



Бесплатная Groupware для групп разработчиков

Установите систему групповой работы TeamWox и объедините усилия всех разработчиков. Это поможет вашей команде работать быстрее и организованнее. Благодаря TeamWox станет намного проще ставить задачи и контролировать их выполнение.


avatar
1111
FreeLance 27.05.2010 18:54 
2)

avatar
8628
Integer 27.05.2010 18:56 
Не совсем понял. В МТ5 графические объекты в глубину располагаются не по имени объекта а по времени создания?

avatar
4197
ForexTools 27.05.2010 19:03 
Integer >>:
Не совсем понял. В МТ5 графические объекты в глубину располагаются не по имени объекта а по времени создания?
вот именно! здесь есть простейший скрипт для проверки

avatar
582
CoreWinTT 27.05.2010 19:11 

ыыыыыыыы

я за 2) ну или хотябы 1)

а процедурный ну фиг знает


также предлагаю свой вариант

все за каскадную таблицу стилей!!!!!

да ваше в мкл5 много "великого"


avatar
Модератор
7380
sergeev 27.05.2010 19:19 

2)

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

однозначно - это недосмотр и игнорирование проблемы со стороны метаквотов.

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

а с датой создания даже эта возможность ушла.

надо возвращать 1 или лучше делать  2. Просто добавится еще одно удобное свойство в объекте. 

 


avatar
360
ToLik_SRGV 27.05.2010 19:21 

Конечно за Z координату, по пойму это в духе ООП.
Я за 2).


avatar
716
StatBars 27.05.2010 19:33 
Я за z-order/z-index

avatar
707
api 27.05.2010 19:37 

2) - Лучший выбор.


avatar
Модератор
5198
stringo 27.05.2010 20:08 

1. Можно, конечно, обсуждать недокументированные возможности. И это неоднократно делалось. Но для того, чтобы находить решения. А не для того, чтобы изменить недокументированное поведение.

2. Нам пришло гораздо больше просьб (больше, чем участников этой дискуссии) с тем, чтобы изменить порядок отрисовки объектов. Да, в пятёрке мы сделали простой и естественный порядок по времени создания объекта (однако, это тоже недокументировано). И что нам теперь делать?

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


avatar
7055
TheXpert 27.05.2010 20:15 

stringo писал(а) >>

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

Удержание пользователем объекта мышкой ломает всю малину. Такой расклад учитываете? Почему было невозможно?
К списку тем   | 1 2 3 4 5 6 7  

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий