Друзья, всем доброго времени суток, продолжаю работать над приложением.
День N1 Начало разработки торгового панели для MetaTrader.
В предыдущем первом посте я немного рассказал о целя и о том что уже сделано.
Теперь потихоньку движемся дальше.
Столкнулся с проблемой работы прикладных окон, именно тех окон в которых располагаются кнопки, тексты и другие объекты.
Суть проблемы в том что создавать окна нужно с полного нуля и продумывать их поведение и разные ситуации. Например когда окно находится над другим окном, или когда трейдер не кликнул по окну а сразу потянул его в сторону. Каждое такое поведение должно быть четко описано в коде. Еще в первом дне, мне казалось что проблему я решил и четко запрограммировал работу окон, но не все так просто оказалось. Не смотря на то что MQL достаточно мощный язык, есть вещи которые реализовать не так просто.
Я убедился в этом скачав другие приложения с поддержкой прикладных окон, там вообще лютый треш, если окна друг над другом и кликнуть по кнопке верхнего окна то одновременно срабатывают кнопки и в окнах на заднем плане, и это даже в дорогих платных программах.
Я долго ломал голову над этой проблемой, но все таки решил. Теперь каждое окно работает не зависимо и не влияет на другие окна, при этом клик мышью по верхнему окну не трогает окно под ним.
Зачем такая детальная проработка… Что бы все работало четка как аптекарша в аптеке.
По мимо этого, программа управляет перерисовкой кадров. Соответственно если намудрить и делать регулярную перерисовку, программа будет жутко тормозить и «рассыпаться». Я так же уделил этому массу времени что бы перерисовка была именно тогда когда это нужно.
На второй день, я еще добавил окно смены периодов, информационное окно об аккаунте, окно с информацией о торговом терминале, окно с информацией о финансовом инструменте. Так же добавил кнопку удаления выгрузки приложения с графика.
Сейчас когда основная часть архитектуры готова, разработка пойдет быстрее и веселее.

Надеюсь пост интересен, пинайте если что ))) ....
Ну и видео обзор проделанных работ :