Clases para crear paneles y diálogos

 

Estas son las clases. Por supuesto, hay muchas preguntas, incluso demasiadas. Pero una es la principal en este momento.

¿No hay forma de crear un panel en el gráfico de precios a partir del indicador en la subventana?

 
Dmitry Fedoseev:

Estas son las clases. Por supuesto, hay muchas preguntas, incluso demasiadas. Pero una es la principal en este momento.

¿No hay forma de crear un panel en un gráfico de precios a partir de un indicador en una subventana?

¿No es así (\MQL5\Indicators\Examples\Panels\SimplePanel\SimplePanel.mq5)?

EURUSDM1

 
Vladimir Karputov:

¿No es este (\MQL5\Indicators\Examples\Panels\SimplePanel\SimplePanel.mq5)?

No lo es. El propio indicador se dibuja en la subventana, mientras que 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 forma de salir de esta situación, muy tramposa (y muy inusual, estará en el artículo). Pero aún así la forma de pensar del creador de estas clases es muy interesante.

 
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 forma de salir de esta situación, muy tramposa (y muy inusual, estará en el artículo). Pero aún así la forma de pensar del creador de estas clases es muy interesante.

No lo he hecho - si el indicador crea un panel basado en clases para crear diálogos y paneles, lo hace en su propia ventana. Probablemente también haya un vínculo con la recepción de eventos.
 

Se ha descubierto otro fallo. Creo un panel del indicador en el gráfico de precios, y si hay un indicador en la subventana del gráfico, el panel falla.

Un regalo del infierno, no clases para crear paneles y diálogos.

 

¿Cómo debería ser la interfaz gráfica de usuario? ¿Qué controles piensa utilizar? Puedo ayudar a hacer una GUI para todos los artículos en los que se necesite una, utilizando mi versión.

Aquí está la última versión (build 4) de la biblioteca:Graphic Interfaces X: Standard Graphics Element (build 4)

Si está interesado, continuaremos en privado.

 
Anatoli Kazharski:

¿Cómo debería ser la interfaz gráfica de usuario? ¿Qué controles piensa utilizar? Puedo ayudar a hacer una GUI para todos los artículos en los que se necesite una, utilizando mi versión.

Aquí está la última versión (build 4) de la biblioteca:Graphic Interfaces X: Standard Graphics Element (build 4)

Si está interesado, continuaremos en privado.

No sé lo que debería ser. Al ver el número de temas con GUI, pensé que tal vez Roche decidió popularizar las clases estándar para crear paneles y diálogos. No hay que popularizarlos, hay que olvidarlos para siempre.

Si no hay requisitos especiales para los artículos sobre la creación de GUI (espero que Roche los responda en algún momento), puedo crear algo yo mismo. Yo también puedo leer sus artículos. Pero no estoy acostumbrado a culpar de mis problemas a otra persona.

 
Dmitry Fedoseev:

...

Yo mismo puedo leer sus artículos. Es que no tengo la costumbre de culpar de mis problemas a otra persona.

No es complicado. Es decir, no me llevaría mucho tiempo. Además, es interesante para mí.

Un momento y la plantilla del indicador sobre el tema en este hilo está lista:

//---

El archivo con los ficheros está en el trailer.

Archivos adjuntos:
Test.zip  3 kb
 
Anatoli Kazharski:

Allí no es difícil. Quiero decir, no se necesitaría mucho tiempo.

Literalmente un minuto y la plantilla de indicadores para la pregunta de este hilo está lista:

//---

Un archivo con archivos en el remolque.

Anatoly, ¿no habéis hablado tú y MQ de añadir tus clases a la biblioteca estándar? Has hecho un gran trabajo + artículos, todo es hermoso, mientras que la biblioteca estándar no brilla con ella.

¿O lo harías como alternativa...

 
Alexey Kozitsyn:

Anatoly, ¿todavía no habéis hablado tú y MQ de añadir tus clases a la biblioteca estándar? Has hecho mucho trabajo + artículos - todo es hermoso, y la biblioteca estándar no brilla con ella.

¿O lo harías como alternativa...

Ya tiene uno como alternativa. Pero incluirlo en la biblioteca estándar tiene mucho que ver. No me gustaría sacar un producto a medias. En la fase actual de aplicación no estoy de acuerdo, aunque todos digan que sí.
 
Anatoli Kazharski:

Allí no es difícil. Es decir, no me quitaría mucho tiempo. Además, es interesante para mí.

Literalmente un minuto y la plantilla de indicadores para la pregunta de este hilo está lista:

//---

El archivo con los ficheros está en el trailer.

De acuerdo, preguntaré por ahí. Pero en un par de días. Necesito descansar un poco, estoy acalorado. Sí, y me gustaría obtener 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 con giros, dos listas desplegables y un botón. Naturalmente, los eventos deben ser manejados, y un ejemplo de código sobre cómo cambiar el tamaño de la ventana también estaría bien.

El punto principal de mi tarea es que necesito cambiar un conjunto de controles en el formulario sobre la marcha.
Razón de la queja: