Методы CreateCommon, CreateExpert, CreateIndicator являются приватными. Однако в справке они есть.
Почему они приватные? Как их использовать?
И второй вопрос. Что сделать чтобы форма (CAppDialog) на основе стандартного примера "Controls" не сворачивалась при ресайзе окна меньше формы?
Методы CreateCommon, CreateExpert, CreateIndicator являются приватными. Однако в справке они есть.
Почему они приватные? Как их использовать?
И второй вопрос. Что сделать чтобы форма (CAppDialog) на основе стандартного примера "Controls" не сворачивалась при ресайзе окна меньше формы?
За сворачивание формы отвечает
#include <Controls\Dialog.mqh>
и далее:
//--- if event was not handled, try to handle the CHARTEVENT_CHART_CHANGE event if(id==CHARTEVENT_CHART_CHANGE) { //--- if subwindow number is not 0, and dialog subwindow has changed its number, then restart if(m_subwin!=0 && m_subwin!=ChartWindowFind()) { long fiction=1; OnAnotherApplicationClose(fiction,dparam,sparam); } //--- if subwindow height is less that dialog height, minimize application window (always) if(m_chart.HeightInPixels(m_subwin)<Height()+CONTROLS_BORDER_WIDTH) { m_button_minmax.Pressed(true); Minimize(); m_chart.Redraw(); } //--- if chart width is less that dialog width, and subwindow number is not 0, try to modify dialog width if(m_chart.WidthInPixels()!=Width() && m_subwin!=0) { Width(m_chart.WidthInPixels()); m_chart.Redraw(); } //--- get subwindow offset SubwinOff(); return; }
Да спасибо, это я нашел. Дело в том, что по заверению Рената стандартная библиотека обновляется с каждым апдейтом. По этому ее правка не выглядит красивым решением. Думал может есть какой другой выход?
Неплохо бы флаг иметь. Ау разработчики! Сделаете?
PS. И тогда надо чтоб объекты рисовались за пределами чарта. Тоже по этому флагу
Да спасибо, это я нашел. Дело в том, что по заверению Рената стандартная библиотека обновляется с каждым апдейтом. По этому ее правка не выглядит красивым решением. Думал может есть какой другой выход?
Неплохо бы флаг иметь. Ау разработчики! Сделаете?
PS. И тогда надо чтоб объекты рисовались за пределами чарта. Тоже по этому флагу
А разработчики все правильно сделали: проверка условия если высота графика меньше чем все высота формы, то минимизировать.
На уровне пользователя сворачивание формы лечиться так: нажать на графике с формой на кнопку "свернуть в окно". Затем растянуть окно до максимального размера.
После этого при потере фокуса графиком, график будет изменять свой размер до состояния "свернуть в окно", но этот размер по высоте будет больше высоты формы. Значит форма сворачиваться не будет.
![Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков](/i/community/logo_mql5_small.png)
- www.mql5.com
Не считаю правильным сворачивание при таком условии. и тем более отказ создания элементов за границей графика.
Это надо делать как раз на уровне пользователя. А лучше иметь флаг. Его не сложно добавить.
Вот сейчас не надо мне сворачивать и надо создать форму полностью в любом случае. Как быть? Извратиться можно конечно, но флаг всё же лучше.
Возможно эта минимизация лишняя и её лучше убрать. Но это опять к разработчикам
Да, я у себя ее убирал. Но для этого не надо править либу, просто наследуйтесь от нее и переопределяйте нужные методы.
А по поводу "Ау, разработчики" - это в сервисдеск. На форуме они отвечают только на "политически важные" вопросы.
Да, я у себя ее убирал. Но для этого не надо править либу, просто наследуйтесь от нее и переопределяйте нужные методы.
![MQL5.community - Памятка пользователя MQL5.community - Памятка пользователя](https://c.mql5.com/36/3/mql5-community-pamyatka-polzovately__20.png)
- 2010.02.23
- MetaQuotes Software Corp.
- www.mql5.com
О как. Переопределить получилось. Вставил код из оригинала (надо ведь убрать только минимизацию) и вылезла куча приватных членов. Это решается?
Я тоже намучился )
Пробовал по-разному. В итоге получилось так:
- Чтоб отключить сворачивание при изменении размеров чарта, переопределил их Minimize и Maximize, и оставил их пустыми.
- А чтоб сворачивалось и разворачивалось, переопределил OnClickButtonMinMax(), обращаясь к родительской кнопке вот так - CAppDialog::m_button_minmax.Pressed(), и сворачивая/разворачивая своими функциями.
Работает.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В работе со Стандартной библиотекой возникают вопросы. Предлагаю задавать тут.