Aulas para a criação de painéis e diálogos - página 2

 
Dmitry Fedoseev:

Errado. O próprio indicador desenha na subjanela, mas o painel precisa ser criado na tabela de preços. Não há reação ao parâmetro subwin. A julgar pelo código em Dialog.mqh, não deve ser assim:

bool CAppDialog::CreateIndicator(const int x1,const int y1,const int x2,const int y2)
  {
   int width=m_chart.WidthInPixels();
//--- geometry for the minimized state
   m_min_rect.LeftTop(0,0);
   m_min_rect.Width(width);
   m_min_rect.Height(CONTROLS_DIALOG_MINIMIZE_HEIGHT-2*CONTROLS_BORDER_WIDTH);
//--- determine subwindow
   m_subwin=ChartWindowFind();

Eu já encontrei uma saída, muito complicada (e muito incomum, estará no artigo). Mas ainda assim a maneira de pensar do criador dessas classes é muito interessante.

Para criar um indicador SimplePanel na janela principal do gráfico em vez de uma subjanela, é suficiente escrever #janela_indicador de propriedade_separate_window em vez de #janela_indicador de propriedade_chart

 
Dmitry Fedoseev:

Certo, tudo bem, vou perguntar por aí. Mas dentro de alguns dias. Preciso descansar um pouco, estou superaquecido. E eu gostaria de uma resposta da Roche sobre as exigências da GUI.

Embora, se você não se importa, mostre-me um modelo com uma janela, como na foto acima, com:

  • dois campos de entrada
  • dois campos de entrada com giros
  • duas listas suspensas
  • botão

Naturalmente, os eventos precisam ser tratados, e um exemplo de código sobre como redimensionar a janela também seria bom.

O ponto principal da minha tarefa é mudar o conjunto de controles no formulário na mosca.

Os dois primeiros campos de entrada devem ser para entrada de texto? Infelizmente, só estará na próxima versão e ainda não posso dizer quando será publicada. O material está quase pronto, mas eu ainda não comecei a escrever o artigo.

 
Slawa:

Para criar um indicador SimplePanel na janela do gráfico principal em vez de em uma subjanela, basta escrever #janela_indicador de propriedade_separate_window em vez de #janela_indicador de propriedade_chart

Se, ao mesmo tempo, houver algum indicador na subjanela, o painel apresentará uma falha. Eu já escrevi sobre isso aqui.
 
Anatoli Kazharski:

Os dois primeiros campos de entrada devem ser para entrada de texto? Infelizmente, só estará na próxima versão, e ainda não posso dizer quando será publicada. O material está quase pronto, mas eu ainda não comecei a escrever o artigo.

Como assim? A caixa de entrada é o começo do começo. Temos a caixa giratória, mas não o campo de entrada.

Geralmente, você deve conduzir parâmetros int e várias variantes de enumerações padrão: tipo de média, preço (para isto a lista suspensa). Mas só se a biblioteca não fornecer o elementar, não sei. Não sei se vale a pena. Não sei se vale a pena, para que outra pessoa bata a cabeça contra a parede.

 
Dmitry Fedoseev:

Como isso é possível? A caixa de entrada é o começo do começo. A SpinBox está lá, o campo de entrada não está.

Geralmente, você deve conduzir parâmetros int e várias variantes de enumerações padrão: tipo de média, preço (para isto a lista suspensa). Mas só se a biblioteca não fornecer o elementar, não sei. Não sei se vale a pena. Para que outra pessoa batesse a cabeça contra a parede depois.

Foi assim que aconteceu. Ainda não precisei dele em nenhum lugar do meu desenvolvimento, e recentemente recebi um pedido de vários usuários para um campo de entrada de texto.

A biblioteca está se desenvolvendo. Aos poucos tudo o que você precisa estará lá. )

 
Dmitry Fedoseev:

...

Geralmente, parâmetros int e algumas opções para enumeração padrão: tipo de média, preço (para isto, uma lista suspensa).

E no campo de texto, quais parâmetros devem ser inseridos?
 
Anatoli Kazharski:
E na caixa de texto, quais parâmetros devem ser inseridos?
Números int
 
Dmitry Fedoseev:
Números int

Certo?

//---

P.S. Os campos de entrada para números já estão lá agora. Esta é a classe CSpinEdit. Os campos de entrada de texto, classe CTextEdit, estarão disponíveis na próxima atualização(build 5).

 
Anatoli Kazharski:

Certo?

//---

P.S. Os campos de entrada para números já estão lá agora. Esta é a classe CSpinEdit. Os campos de entrada para texto, classe CTextEdit, estarão na próxima atualização(build 5).

Então
 
Dmitry Fedoseev:
Se houver algum indicador na subjanela, o painel apresentará uma falha. Já escrevi sobre isso aqui.

Nada é complicado. Quais são os sintomas?

Acabei de experimentar. Primeiro o indicador na subjanela. Em seguida, o painel na tabela. Em seguida, um painel semelhante na subjanela. A única coisa que eu vi foi o SimplePanel2 na primeira subjanela. Mas isso não afeta a operação. Todos os botões pressionados corretamente.

A única coisa que difere o SimplePanel2 do SimplePanel é a propriedade do indicador_chart_window.

PS, estamos falando de cinco ou quatro?