Обсуждение статьи "Создай свои графические панели на MQL5" - страница 3

 
Не подскажете, как сделать дочернее окно? Хочу сделать расширенные настройки в отдельном окне, оно создаётся, но без фокуса, т.е. кнопки не нажимаются, панель не перетаскивается: фокус остаётся на первоначальной панели.
 
Vladislav Andruschenko:

ИМХО, я считаю что легче создать библиотеки собственноручно, чтобы знать что где и как нужно использовать или исправить если что не так. 

Пример написания панели без использования стандартных классов.

 

Согласен,  какая-то каша!!

 

Есть у индикатора вот такое свойство:

#property indicator_separate_window

Это свойство нужно, чтобы индикатор был внизу. Ну да, как бы все понятно.

Мне нужно, чтобы была также "диалоговая панель" в основном окне...

И все, приплыли. Из-за вот этого свойства, что бы ты ни лепил, какие бы свойства ни определял, твоя диалоговая панель будет в подокне индикатора. И никогда она не будет в основном окне.

Я три дня сидел разбирался в стандартной библиотеке. Я так и не понял, как можно было создать такое упущение?

Если я не прав, ткните, где я неправильно делаю. Только ради бога не пишите, что нужно указать 0 для свойств окна и подокна.

А пока я создам свою панель, которая будет работать как надо.

 
Evgeniy Scherbina #:

Есть у индикатора вот такое свойство:

Это свойство нужно, чтобы индикатор был внизу. Ну да, как бы все понятно.

Мне нужно, чтобы была также "диалоговая панель" в основном окне...

И все, приплыли. Из-за вот этого свойства, что бы ты ни лепил, какие бы свойства ни определял, твоя диалоговая панель будет в подокне индикатора. И никогда она не будет в основном окне.

Я три дня сидел разбирался в стандартной библиотеке. Я так и не понял, как можно было создать такое упущение?

Если я не прав, ткните, где я неправильно делаю. Только ради бога не пишите, что нужно указать 0 для свойств окна и подокна.

А пока я создам свою панель, которая будет работать как надо.

прошерстить код, добавить опцию m_subwin определяющую номер подокна, перехватить события "создание/удаление" подокна чтобы это дело во всём диалоге корректировать если оно не 0, там где ObjectCreate(...) использовать этот m_subwin 

тогда панели и элементы можно создавать в любом окне и подокне

 
Maxim Kuznetsov #:

прошерстить код, добавить опцию m_subwin определяющую номер подокна, перехватить события "создание/удаление" подокна чтобы это дело во всём диалоге корректировать если оно не 0, там где ObjectCreate(...) использовать этот m_subwin 

тогда панели и элементы можно создавать в любом окне и подокне

Да да, вот это все добавить, приладить, аллюминиевой проволокой обмотать и скотчем залепить. Нужно простое и правильное решение для всей этой библиотеки. Если такого решения нет, значит, библиотеку нужно переделывать. Я пожалуй сделаю свое диалоговое окно сам.
 
Evgeniy Scherbina #:
Да да, вот это все добавить, приладить, аллюминиевой проволокой обмотать и скотчем залепить. Нужно простое и правильное решение для всей этой библиотеки. Если такого решения нет, значит, библиотеку нужно переделывать. Я пожалуй сделаю свое диалоговое окно сам.

Это ограничение платформы МетаТрейдер - один индикатор может быть только в главном окне или только в подокне.

Возможные варианты решения и пример одной реализации есть в книге.

Если вкратце - делаете 2 индикатора, и один создаст другой с помощью ChartIndicatorAdd. Они могут обмениваться данными через события, ресуры, буфера и пр.

Учебник по MQL5: Создание прикладных программ / Использование готовых индикаторов из MQL-программ / Комбинирование вывода в главное окно и вспомогательное
Учебник по MQL5: Создание прикладных программ / Использование готовых индикаторов из MQL-программ / Комбинирование вывода в главное окно и вспомогательное
  • www.mql5.com
Создание прикладных программ - Программирование на MQL5 для трейдеров - Учебник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Stanislav Korotky #:

Это ограничение платформы МетаТрейдер - один индикатор может быть только в главном окне или только в подокне.

Возможные варианты решения и пример одной реализации есть в книге.

Если вкратце - делаете 2 индикатора, и один создаст другой с помощью ChartIndicatorAdd. Они могут обмениваться данными через события, ресуры, буфера и пр.

Если это слова специалиста, то это именно то, что я хотел услышать. И это значит, что нужно создавать свою панель.

Если это только предположение... то нужно создавать свою панель.

Я жду подсказку, как просто залепить панель в основном окне, если индикатор располагается в подокне.

Причина обращения: