Clases para crear paneles y diálogos - página 2

 
Dmitry Fedoseev:

No es así. El propio indicador se dibuja en la subventana, pero el panel debe crearse en el gráfico de precios. No hay reacción al parámetro subwin. A juzgar por el código en Dialog.mqh, no debería:

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();

Ya he encontrado una salida, muy complicada (y muy poco habitual, saldrá en el artículo). Pero aún así la forma de pensar del creador de estas clases es muy interesante.

Para crear un indicador SimplePanel en la ventana principal del gráfico en lugar de en una subventana, basta con escribir #property indicator_separate_window en lugar de #property indicator_chart_window

 
Dmitry Fedoseev:

De acuerdo, bien, preguntaré por ahí. Pero en un par de días. Necesito descansar, estoy acalorado. Y me gustaría una respuesta de Roche sobre los requisitos de la GUI.

Aunque, si no te importa, enséñame una plantilla con una ventana, como en la imagen de arriba, con:

  • dos campos de entrada
  • dos campos de entrada con giros
  • dos listas desplegables
  • botón

Naturalmente, los eventos deben ser manejados, y un ejemplo de código sobre cómo cambiar el tamaño de la ventana estaría bien también.

El punto principal de mi tarea es cambiar el conjunto de controles del formulario sobre la marcha.

¿Los dos primeros campos de entrada deben ser de texto? Desgraciadamente, sólo estará en la próxima versión y aún no puedo decir cuándo se publicará. El material está casi listo, pero aún no he empezado a escribir el artículo.

 
Slawa:

Para crear un indicador SimplePanel en la ventana principal del gráfico en lugar de en una subventana, simplemente escriba #propiedad indicador_separado_ventana en lugar de #propiedad indicador_marco_ventana

Si al mismo tiempo hay algún indicador en la subventana, el panel tendrá un fallo. Ya escribí sobre ello aquí.
 
Anatoli Kazharski:

¿Los dos primeros campos de entrada deben ser para introducir texto? Lamentablemente, sólo estará en la próxima versión, y aún no puedo decir cuándo se publicará. El material está casi listo, pero aún no he empezado a escribir el artículo.

¿Cómo es eso? El cuadro de entrada es el principio del principio. Tenemos la caja de giro, pero no el campo de entrada.

Generalmente debe manejar parámetros int y varias variantes de enumeraciones estándar: tipo de media, precio (para esto la lista desplegable). Pero sólo si la biblioteca no proporciona lo elemental, no lo sé. No sé si vale la pena. No sé si vale la pena, para que otra persona se dé la cabeza contra la pared.

 
Dmitry Fedoseev:

¿Cómo es posible? El cuadro de entrada es el principio del principio. El SpinBox está ahí, el campo de entrada no.

Generalmente debe manejar parámetros int y varias variantes de enumeraciones estándar: tipo de media, precio (para esto la lista desplegable). Pero sólo si la biblioteca no proporciona lo elemental, no lo sé. No sé si vale la pena. Para que luego alguien se golpee la cabeza contra la pared.

Así es como resultó. Todavía no lo he necesitado en ninguna parte de mi desarrollo, y hace poco recibí una petición de varios usuarios para un campo de entrada de texto.

La biblioteca se está desarrollando. Poco a poco todo lo que necesitas estará ahí. )

 
Dmitry Fedoseev:

...

Generalmente, parámetros int y algunas opciones de enumeración estándar: tipo de media, precio (para esto, una lista desplegable).

Y en el campo de texto, ¿qué parámetros hay que introducir?
 
Anatoli Kazharski:
Y en el cuadro de texto, ¿qué parámetros hay que introducir?
Números int
 
Dmitry Fedoseev:
Números int

¿Verdad?

//---

P.D .Los campos de entrada para los números ya están ahí. Esta es la clase CSpinEdit. Los campos de entrada de texto, clase CTextEdit, estarán disponibles en la próxima actualización(build 5).

 
Anatoli Kazharski:

¿Verdad?

//---

P.D .Los campos de entrada para los números ya están ahí. Esta es la clase CSpinEdit. Los campos de entrada de texto, clase CTextEdit, estarán en la próxima actualización(build 5).

Así que
 
Dmitry Fedoseev:
Si hay algún indicador en la subventana, el panel tendrá un fallo. Ya escribí sobre ello aquí.

No hay ningún fallo. ¿Cuáles son los síntomas?

Acabo de probarlo. Primero el indicador en la subventana. A continuación, el panel del gráfico. A continuación, un panel similar en la subventana. Lo único que vi fue el SimplePanel2 en la primera subventana. Pero no afecta al funcionamiento. Todos los botones presionados correctamente.

Lo único que diferencia a SimplePanel2 de SimplePanel es la propiedad indicator_chart_window.

PS ¿estamos hablando de cinco o de cuatro?

Razón de la queja: