Galería de interfaces de usuario escritas en MQL - página 10

 

...Y por último hoy, una cosa más descarada: una copia de la ventana de configuración de ME.


Aquí es más fácil de entender qué ventana es "no real")).

 
Реter Konow #:

Sí, claro. No fue un problema.

No me preguntes cómo, no puedo recordar nada.))))))

Nikolai responderá mejor.

¡Es sorprendente, porque incluso el panel incorporado de MQ comercio rápido tiene un error!

 
Aleksey Vyazmikin #:

Sorprendente, ¡porque incluso el panel incorporado de MQ fast trading está dotado de un error de este tipo!

Basta con controlar las propiedades de los objetos. El algoritmo debe saber sobre qué objeto está el cursor y qué objeto está en "foco". Cambia la propiedad del objeto de abajo para que no reaccione al cursor y al click. Creo que sí, pero puedo estar equivocado porque no me acuerdo. Han pasado años.

 
Recuerdo que mi algoritmo desactivaba el desplazamiento del gráfico mientras el cursor estaba encima de mi ventana y yo desplazaba algo en ella. Luego, cuando el cursor volvía al espacio libre del gráfico, el algoritmo volvía a activar el desplazamiento.
 
Реter Konow #:
Recuerdo

¿No podemos verlo ahora?

 
Aleksey Vyazmikin #:

¿No podemos verlo ahora?

Tengo decenas de miles de líneas de código repartidas en decenas de archivos en mi archivo, y no me acuerdo de nada.)))) Intentaré mirarlo cuando me apetezca.

 
Реter Konow #:

Tengo decenas de miles de líneas de código dispersas en docenas de archivos en mi archivo, y no recuerdo nada.)))))) Intentaré mirar en el ocio.

Ah como te entiendo, yo también lo tengo en diferentes ordenadores.... Cuando intentas juntarlo todo, te das cuenta de que no entiendes el significado del código :) Ahora he empezado a escribir muchos comentarios en el código, es cómodo, aunque parece una pérdida de tiempo innecesaria cuando escribes código, pero cuando vuelves a ello un año después, ayuda mucho.

 
Aleksey Vyazmikin #:

Oh como lo entiendo, yo también lo tengo en diferentes ordenadores..... cuando intentas unirlo todo te das cuenta de que no entiendes el significado del código :) Ahora he empezado a escribir muchos comentarios en el código - es práctico, aunque parece una pérdida de tiempo innecesaria al escribir código, pero cuando vuelves a ello un año después, ayuda mucho.

Me temo que si me meto en el archivo, la galería nunca terminará, lol.)))))) Ahí hay un constructor, y es muy fácil crear nuevas ventanas en él. ¿Y si quiero terminar el editor visual...? Entonces estaré atascado durante meses, ¿y para qué?))))))

 
Aleksey Vyazmikin #:

... Ahora he empezado a escribir muchos comentarios en el código - es práctico, aunque parece una pérdida de tiempo innecesaria al escribir código, pero cuando vuelves a ello un año después, ayuda mucho.

Estoy totalmente de acuerdo con los comentarios. Definitivamente, hay que escribir explicaciones en el código.

 
Aleksey Vyazmikin #:
No tengo experiencia en el desarrollo de este tipo de interfaces, pero lo que utilicé de diferentes fuentes tenía un inconveniente importante, a saber, que a veces (!) se hacía clic en otros objetos del gráfico a través de ellas. ¿Pudiste resolver este problema?

Mis interfaces eran, por supuesto, mucho más sencillas. No utilicé Canvas, sino que simplemente construí un panel a partir de controles estándar. Para evitar que otros objetos del gráfico aparecieran, redibujé todos los componentes de la ventana una vez por minuto:

if (iTime(_Symbol,PERIOD_M1,0) > LastMinute && !IsTesting()) { 
   LastMinute = iTime(_Symbol,PERIOD_M1,0);
   for (int i = 0; i < 45 ; i++) {
      long tf = ObjectGetInteger(0, Controls[i], OBJPROP_TIMEFRAMES);
      if (ObjectSetInteger(0, Controls[i], OBJPROP_TIMEFRAMES, -1)) 
         ObjectSetInteger(0, Controls[i], OBJPROP_TIMEFRAMES, tf);
   }
}

Aquí Controls es un array que contiene los nombres de los componentes.