Обсуждение статьи "Делаем информационную панель для отображения данных в индикаторах и советниках" - страница 2
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте.
Таким образом
объявляется переменная-указатель на будущий новый, динамически создаваемый, объект класса, и сразу же инициализируется значением NULL.
А просто экземпляр класса объявляется так:
Но в данном случае объявить и создать экземпляр таким образом не получится - у класса нет конструктора без формальных параметров.
Значит, при таком объявлении, необходимо указать все нужные параметры объекта класса, которые должны быть переданы в конструктор класса:
------------------------
В примере работы с классом в индикаторе создаётся сначала пустой указатель на будущий объект, а далее, в OnInit() создаётся объект панели, где в переменную-указатель записывается указатель на созданный объект:
Далее в OnDeinit() объект удаляется в памяти по этому указателю:
Если бы просто создали новый объект посредством оператора new без записи указателя на созданный объект в переменную, то не смогли бы его потом удалить, что привело бы к утечке памяти.
Получается, если вкратце, то в примере к статье
Если бы был сразу же создан нужный экземпляр класса (CDashboard dashboard), то никаких указателей на него использовать не нужно было - обращение шло бы к нему точно так же посредством оператора "точка". И удалять бы его не нужно было по окончании работы - подсистема терминала сама это делает. Но это был бы единственный экземпляр класса в программе.
Динамическое создание позволяет на лету создавать новые объекты нужного класса и обращаться к ним по указателю. Поэтому в примере было использовано динамическое создание объекта класса. Упрощённо, без освещения некоторых моментов.
Спасибо За исчерпывающий ответ! так для каждого объекта свой конструктор в другом случае объект с запрошенными аргументами из класса, на любом этапе можно создать разные объекты!(Нус становится немного ясней).
Собственно интерес к созданию инфо панели, это следствие DPI монитора, в моем случае 168. Comment(); сильно мелко получается!
Есть TerminalInfoInteger(TERMINAL_SCREEN_DPI) хочу создавать с учетом разрешения... и хочу по цветовой группе,для удобства.
Может у вас такое решение есть? Ваш код хороший, понятно читается... я же, долго, непонятно, в результате приходится все несколько раз переписывать! Спасибо за вашу поддержку!
Спасибо За исчерпывающий ответ! так для каждого объекта свой конструктор в другом случае объект с запрошенными аргументами из класса, на любом этапе можно создать разные объекты!(Нус становится немного ясней).
Собственно интерес к созданию инфо панели, это следствие DPI монитора, в моем случае 168. Comment(); сильно мелко получается!
Есть TerminalInfoInteger(TERMINAL_SCREEN_DPI) хочу создавать с учетом разрешения... и хочу по цветовой группе,для удобства.
Может у вас такое решение есть? Ваш код хороший, понятно читается... я же, долго, непонятно, в результате приходится все несколько раз переписывать! Спасибо за вашу поддержку!
Решение же есть прямо в примерах в справке:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Галерея UI написанных на MQL
Artyom Trishkin, 2024.05.31 10:33
Здесь (TERMINAL_SCREEN_DPI):
Пример вычисления коэффициента масштабирования:
При таком использовании графический ресурс будет иметь одинаковый на глаз размер на мониторах с различной разрешающей способностью. При этом размеры управляющих элементов (кнопки, окна диалогов и т.д.) будут соответствовать настройкам персонализации.
Я, к сожалению, не имею 4К монитора, поэтому не могу проверить, и по той же причине пока не ввожу такой перерасчёт в библиотеку - делать наобум, без проверки - не серьёзно.
Я, к сожалению, не имею 4К монитора, поэтому не могу проверить, и по той же причине пока не ввожу такой перерасчёт в библиотеку - делать наобум, без проверки - не серьёзно.
Артем привет! Вот строится с учетом dpi... Но по сути можно пойти другим путем. Скажем задать размер заголовка, посчитать размер панели высоту строк и высоту текста, исходя из размера заголовка. Указываешь два параметра... и пофиг какой там dpi.. или с этим могут быть проблемы? Я не совсем уверен, Какое ваше мнение по поводу такого решения?
Артем привет! Вот строится с учетом dpi... Но по сути можно пойти другим путем. Скажем задать размер заголовка, посчитать размер панели высоту строк и высоту текста, исходя из размера заголовка. Указываешь два параметра... и пофиг какой там dpi.. или с этим могут быть проблемы? Я не совсем уверен, Какое ваше мнение по поводу такого решения?
Хорошая идея насчёт панели. Но заметил, что панель самопроизвольно падает вниз графика при переключении на него с другого графика. Пример:
Хорошая идея насчёт панели. Но заметил, что панель самопроизвольно падает вниз графика при переключении на него с другого графика. Пример:
Хм. Интересное явление. Нужно поглядеть будет в свободное время. Скорее всего причина в изменении размеров неактивного графика.