Discussão do artigo "Como criar um painel gráfico de qualquer nível de complexidade" - página 11

 
Vladimir Karputov:

É necessário que todos os elementos do painel sejam redesenhados - dessa forma, eles ocuparão a posição "superior".

Entendi, obrigado! A classe CAppDialog tem um método interno para redesenhar todos os elementos? Caso contrário, seria correto implementá-lo em uma classe sucessora:

void CControlsDialog::Redraw(void)
  {
   this.Visible(false);
   this.Visible(true);
  }

Isso funciona na prática, eu verifiquei.

 
Janis Ozols:

Entendo, obrigado! A classe CAppDialog tem um método interno para redesenhar todos os elementos? Se não, seria correto implementá-lo em uma classe sucessora:

Isso funciona na prática, eu verifiquei.

Pode haver outras variantes, mas deve funcionar, porque o painel oculto deve ser redesenhado novamente, de modo que todos os seus elementos fiquem no topo.

 
Janis Ozols:

Entendo, obrigado! A classe CAppDialog tem um método interno para redesenhar todos os elementos? Se não, seria correto implementá-lo em uma classe sucessora:

Isso funciona na prática, eu verifiquei.

Pelo que me lembro, o método Run() redesenha o gráfico.
 
Vasiliy Pushkaryov:
Pelo que me lembro, o método Run() redesenha o gráfico.

Sim, ele redesenha o gráfico. Obrigado, vou tentar!

bool CAppDialog::Run(void)
  {
//--- redesenhar o gráfico para invalidar o diálogo
   m_chart.Redraw();
//--- aqui começamos a atribuir IDs aos controles
   if(Id(m_subwin*CONTROLS_MAXIMUM_ID)>CONTROLS_MAXIMUM_ID)
     {
      Print("CAppDialog: too many objects");
      return(false);
     }
//--- bem-sucedido
   return(true);
  }

ATUALIZAÇÃO: Tentei. Infelizmente, não funcionou. Aparentemente, esse método redesenha o gráfico em si, mas não o painel.
 

Olá a todos

Primeiramente, agradeço a Vladimir Karputov por compartilhar este artigo.

Estou começando a projetar meu painel para um iniciante.

Gostaria de confirmar se é possível desencaixar esse painel como um gráfico.

Se sim, onde posso encontrar o método? Obrigado.

Vladimir Karputov
Vladimir Karputov
  • 2021.09.01
  • www.mql5.com
Trader's profile
 
Quan tum # :

***

Gostaria de confirmar se é possível desencaixar esse painel como um gráfico.

Se sim, onde posso encontrar o método? Obrigado.

Não estou entendendo.

 
Vladimir Karputov #:

Não estou entendendo.

No MT5, podemos clicar com o botão direito do mouse no gráfico e veremos a opção "docked". (em anexo)

Se clicarmos nele, a janela do gráfico ficará fora da plataforma independente. Isso significa undocked.

Portanto, gostaria de confirmar se o painel também pode fazer isso independentemente do gráfico? Obrigado.

Arquivos anexados:
 
Quan tum # :

No MT5, podemos clicar com o botão direito do mouse no gráfico e veremos a opção "docked". (em anexo)

Se clicarmos nele, a janela do gráfico ficará fora da plataforma independente. Isso significa undocked.

Portanto, gostaria de confirmar se o painel também pode fazer isso independentemente do gráfico? Obrigado.

Você mesmo respondeu à sua própria pergunta: Você mesmo escolhe o menu PARA A JANELA DO GRÁFICO ATUAL. O que o painel tem a ver com isso?

 
Vladimir Karputov #:

Você mesmo respondeu à sua própria pergunta: Você mesmo escolheu o menu PARA A JANELA DO GRÁFICO ATUAL. O que o painel tem a ver com isso?

Desculpe, talvez eu tenha deixado você entender errado.
Quero dizer se é possível desencaixar o painel fora do gráfico.
 
Quan tum # :
Desculpe, talvez eu tenha deixado você entender errado.
Quero dizer se é possível desencaixar o painel fora do gráfico.

Isso é proibido. O painel está vinculado ao gráfico.