Discussão do artigo "Crie seus próprios painéis gráficos no MQL5" - página 4

 

O indicador tem essa propriedade:

#property indicator_separate_window

Essa propriedade é necessária para que o indicador fique na parte inferior. Bem, sim, está mais ou menos claro.

Também preciso ter uma "barra de diálogo" na janela principal....

E é isso mesmo. Devido a essa propriedade, não importa o que você faça, não importa quais propriedades você defina, sua barra de diálogo estará na subjanela do indicador. E ela nunca estará na janela principal.

Passei três dias tentando entender a biblioteca padrão. Ainda não entendo como foi possível criar essa omissão?

Se eu estiver errado, diga-me onde estou errando. Pelo amor de Deus, não escreva que você precisa especificar 0 para as propriedades de janela e subjanela.

Enquanto isso, criarei meu próprio painel que funcionará como deveria.

 
Evgeniy Scherbina biblioteca padrão. Ainda não entendo como foi possível criar essa omissão?

Se eu estiver errado, diga-me onde estou errando. Pelo amor de Deus, não escreva que você precisa especificar 0 para as propriedades de janela e subjanela.

Enquanto isso, criarei meu próprio painel que funcionará como deveria.

Examine o código, adicione a opção m_subwin que define o número da subjanela, intercepte os eventos de "criação/exclusão" da subjanela para corrigir esse caso em todo o diálogo, se não for 0, use esse m_subwin onde ObjectCreate(...) é usado

então os painéis e elementos podem ser criados em qualquer janela e subjanela

 
Maxim Kuznetsov #:

Examine o código, adicione a opção m_subwin que define o número da subjanela, intercepte os eventos de "criação/exclusão" da subjanela para corrigir esse caso em toda a caixa de diálogo; se não for 0, use esse m_subwin onde ObjectCreate(...) for usado.

então os painéis e elementos podem ser criados em qualquer janela e subjanela

Sim, sim, tudo isso é para adicionar, prender, envolver com fio de alumínio e fita adesiva. Precisamos de uma solução simples e correta para toda essa biblioteca. Se não houver essa solução, a biblioteca precisará ser reprojetada. Provavelmente, eu mesmo criarei minha caixa de diálogo.
 
Evgeniy Scherbina #:
Sim, sim, adicione todas essas coisas, prenda-as, envolva-as com fio de alumínio e prenda-as com fita adesiva. Precisamos de uma solução simples e correta para toda essa biblioteca. Se não houver tal solução, a biblioteca deverá ser reprojetada. Provavelmente criarei minha própria janela de diálogo.

Essa é uma limitação da plataforma MetaTrader - um indicador pode estar apenas na janela principal ou apenas em uma subjanela.

As possíveis soluções e um exemplo de uma implementação estão no livro.

Em resumo, você cria dois indicadores e um deles cria o outro usando ChartIndicatorAdd. Eles podem trocar dados por meio de eventos, recursos, buffers, etc.

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

Essa é uma limitação da plataforma MetaTrader - um indicador pode estar apenas na janela principal ou apenas em uma subjanela.

As possíveis soluções e um exemplo de uma implementação estão no livro.

Em resumo: você cria dois indicadores, e um deles criará o outro usando ChartIndicatorAdd. Eles podem trocar dados por meio de eventos, recursos, buffers, etc.

Se essas são palavras de um especialista, então é exatamente isso que eu queria ouvir. E isso significa que você precisa criar seu próprio painel.

Se isso for apenas uma suposição... então você precisa criar seu próprio painel.

Estou aguardando uma dica sobre como colar o painel na janela principal, se o indicador estiver localizado na subjanela.