Discusión sobre el artículo "Guía práctica de MQL5: Controles de la subventana del indicador: Botones" - página 5

 
tol64:

¿Estás de acuerdo? )

Para ser honesto, No entiendo por qué el indicador debe dejar de seguir el movimiento del ratón después de desactivar el Asesor de Expertos? ¿Dónde está la conexión entre el indicador y el Asesor de Expertos?
 
C-4:
Para ser honesto, no entiendo por qué el indicador debe dejar de seguir el movimiento del ratón después de desactivar el Asesor de Expertos? ¿Dónde está la conexión entre el indicador y el Asesor Experto?

Ese es el punto, puede que no haya conexión entre ellos, por lo que cada programa cuando se descarga debe desactivar lo que otros programas pueden no necesitar. En este caso, si el indicador no necesita el seguimiento del evento de movimiento del ratón, ¿por qué obstruir el flujo de la cola de eventos?

Por supuesto, no es necesario. Pero si hablamos de optimización, creo que es necesario.

 
tol64:

La cuestión es que puede no haber conexión entre ellos, por lo que cada programa debe desactivar lo que otros programas no necesitan. En este caso, si el indicador no necesita seguir el evento de movimiento del ratón, ¿por qué atascar el flujo de la cola de eventos?

Por supuesto, no es necesario. Pero si hablamos de optimización, creo que es necesario.

Vasiliy está hablando, el programa no debe sin sentido activar / desactivar el seguimiento, pero:

  • Encenderlo sólo si está desactivado (esto no es crítico)
  • Después de la finalización del trabajo volver al estado en el que (seguimiento) era.

Es decir, la desactivación sólo debería ocurrir si el seguimiento estaba desactivado cuando se inició el programa.

Entonces cualquier combinación de inicio/detención de programas con/sin seguimiento de eventos del ratón funcionará correctamente.

 
tol64:

La cuestión es que puede no haber conexión entre ellos, por lo que cada programa debe desactivar lo que otros programas no necesitan. En este caso, si el indicador no necesita seguir el evento de movimiento del ratón, ¿por qué atascar el flujo de la cola de eventos?

Por supuesto, no es necesario. Pero si hablamos de optimización, creo que es necesario.

Aha, es decir, en su ejemplo, el Asesor Experto decidió que el indicador ya no necesita recibir el evento EVENT_MOVE_MOUSE y lo desactivó antes de su salida. Entonces, ¿en qué se basa el Asesor Experto para decidir lo que otros indicadores necesitan y lo que no? ¿No se toma demasiado en sí mismo?
 
komposter:

Vasily está haciendo un buen punto, el programa no debe sin sentido activar / desactivar el seguimiento, pero:

  • Activarlo sólo si está desactivado (esto no es crítico)
  • Una vez finalizado el trabajo, volver al estado en el que se encontraba (el seguimiento).
Es decir, la desactivación debe hacerse sólo si el seguimiento estaba desactivado cuando se inició el programa.

Así que lo he hecho de esta manera.

El programa, en el que el seguimiento está habilitado en el inicio, lo deshabilita en la descarga. Y el programa que permanece en el gráfico y necesita seguimiento comprueba si está habilitado, y si está deshabilitado, lo habilita.

Es deseable dar su variante en los ejemplos de Asesor Experto y el código del indicador de mi post en la página anterior para excluir la ambigüedad de las declaraciones.

 
C-4:
Aha, es decir, en su ejemplo, el Asesor de Expertos decidió que el indicador ya no necesita recibir EVENT_MOVE_MOUSE evento y desactivado antes de su salida. ¿En qué se basa el Asesor Experto para decidir lo que otros indicadores necesitan y lo que no? ¿No toma demasiado en sí mismo?

El experto decide por sí mismo. Pero en realidad me gusta más tu variante. Es decir, es más correcta. No escribí sobre cómo hacerlo mejor, sino sobre la necesidad de hacerlo. No hay que darle la vuelta. Y punto.

 
tol64:
El experto decide por sí mismo. Pero en realidad me gusta más tu opción. No hablaba de la mejor manera de hacerlo, sino de la necesidad de hacerlo. No hace falta darle la vuelta. Y punto.
Por lo tanto, si nadie va a desactivar este evento, no hay necesidad de comprobar si se enciende cada segundo. En un Asesor Experto desactivas específicamente el evento, y en otro monitorizas su propiedad cada segundo, mientras que es más fácil y seguro no escribir nada en absoluto.
 
C-4:
Aha, es decir, en su ejemplo, el Asesor de Expertos decidió que el indicador ya no necesita recibir EVENT_MOVE_MOUSE evento y desactivado antes de su salida. ¿En qué se basa el Asesor de Expertos para decidir lo que otros indicadores necesitan y lo que no? ¿No se toma demasiado en sí mismo?

Probablemente se supone que todos los demás programas están dispuestos en el mismo principio, y lo encenderán ellos mismos si es necesario.

Pero, ¿es tan importante apagarlo? Este interruptor de encendido/apagado sólo se aplica a un gráfico. Creo que no será un gran problema si sólo lo enciendes y no lo apagas.

Poca gente se molestaría en hacerlo. Así que, para evitar problemas, sólo enciéndelo, pero no lo apagues. Por otra parte, alguien lo apagará. Así que puedes controlarlo con un temporizador y encenderlo si es necesario, pero no apagarlo.

 
C-4:
Así que si nadie va a apagar este evento...
No hay forma de saberlo.
 
C-4:
Así que si nadie va a desactivar este evento, no hay necesidad de comprobar cada segundo si está habilitado. En un Asesor Experto usted desactiva específicamente el evento, y en otro monitoriza su propiedad cada segundo, mientras que es más fácil y seguro no escribir nada en absoluto.

No necesariamente cada segundo, hay una alternativa en otro evento (ya comentado). Pon un ejemplo mejor, por favor, de cómo lo he hecho yo aquí. ) A partir de la condición de que el Asesor de Expertos necesita este evento, pero el indicador no. Así quedará más claro.

P.D. Corrección. Cometí un error. )) Tu variante no es más correcta. No encaja en absoluto. Así que mejor dar un ejemplo basado en la condición anterior.