Discusión sobre el artículo "Interfaces gráficas X: Actualizaciones para la tabla dibujada y optimización del código (build 10)"

 

Artículo publicado Interfaces gráficas X: Actualizaciones para la tabla dibujada y optimización del código (build 10):

Continuamos completar la tabla dibujada (CCanvasTable) con nuevas funcionalidades. Ahora la tabla va a contener las siguientes funciones: resalto de las filas al situar el cursor encima; posibilidad de agregar el array de imágenes para cada celda y el método para su conmutación; posibilidad de establecer y editar el texto de las cceldas durante la ejecución del programa, y muchas cosas más.

ste es el resultado que hemos obtenido:

Fig. 5. Comparación entre los datos en la ventana «Observación del Mercado» y el análogo del usuario.

Fig. 5. Comparación entre los datos en la ventana «Observación del Mercado» y el análogo del usuario.

Autor: Anatoli Kazharski

 
Interesantes incorporaciones a la mesa de dibujo. Para ser sincero, esperaba cosas algo diferentes de este artículo. No, no estoy decepcionado en absoluto (al contrario), simplemente me equivoqué en mis suposiciones, como de costumbre.

Pensaba que si te habías pasado a la implementación de una interfaz dibujada, esbozarías su concepto, formularías su ideología, describirías la nueva tecnología. Pensaba que empezarías por rehacer la funcionalidad creada anteriormente.....

Sin embargo, esto no está sucediendo por el momento. Aún no has formulado el concepto de la interfaz gráfica dibujada y no has empezado el rediseño global. Quizás, este rediseño global será gradual, de artículo en artículo, y no revolucionario, como yo imaginaba. Por eso digo que me equivoqué en mis expectativas.

Sorprendentemente están evitando cualquier rediseño global en la biblioteca, lo que me resulta muy extraño.

Yo definiría este estilo de desarrollo del siguiente modo: "El desarrollo es una expansión gradual en un plano en el que cada problema local se resuelve con su propio método local. La universalización, la generalización y la compresión de soluciones no son aplicables. Los cambios revolucionarios a gran escala son desfavorables. Conviene atenerse a las normas y estilos generalmente aceptados y no entrar en conflicto con ellos. ".

Mi estilo de desarrollo: "El desarrollo es una universalización gradual, que lleva a que la solución de nuevas tareas locales se lleve a cabo no a nivel de métodos, sino a nivel de líneas individuales dentro de los métodos. E incluso así, no siempre. Surgen muchas menos entidades nuevas, y los mecanismos antiguos se van perfeccionando cada vez más. Hay una aceleración gradual de nuevas tareas locales. Los rediseños globales son difíciles e inevitables, pero necesarios".

En los próximos artículos esperaré su concepto de tecnología de interfaz de dibujo para compararlo con el mío.

P.D. Por cierto, si te interesa, puedo esbozarlo.

Buena suerte.
 
Yo añadiría a mi concepto de desarrollo: - "En nombre de la eficacia absoluta, está justificado sacrificar los enfoques, normas y estilos convencionales. Se pueden ignorar, romper y cambiar si se interponen en el camino del libre desarrollo creativo".
 
Реter Konow:
...

Quizás esta redistribución global sea gradual, de artículo en artículo, y no revolucionaria como había imaginado.

...


Sí. Exactamente.
 
@Anatoli Kazharski Me gustaría aclarar, ¿en qué consiste la optimización del código? Lo pregunto porque la compilación con librerías conectadas a veces tarda hasta 20 segundos. ¿O debería ser así?
 
Alexander Fedosov:
@Anatoli Kazharski Me gustaría aclarar, ¿en qué consiste la optimización del código? Lo pregunto porque la compilación con librerías conectadas a veces tarda hasta 20 segundos. ¿O debería ser así?


En tu caso, mientras desarrollas tu aplicación MQL, establece el parámetro Optimizar en el archivo"MetaTrader 5/Config/metaeditor.ini" a cero, como se muestra a continuación:

...
[Experts]
Author=Copyright 2015, MetaQuotes Software Corp.
Address=http://www.mql5.com
Optimize=0
...

//---

Entonces todo se compilará rápidamente:

0 error(s), 0 warning(s), compile time: 351 msec                1       1

//---

Eso no es lo que quería decir el artículo. En algunos casos, significa aumentar el rendimiento, y en algunos casos significa universalización parcial (empaquetar fragmentos de código repetitivos en métodos separados y colocarlos en una clase separada).

 
Por alguna razón, ninguno de los Asesores Expertos del Artículo 10 permanece en el gráfico, y después de unos segundos, habiendo mostrado sólo una forma, se elimina del gráfico por sí mismo. En el registro dice "2017.03.06 08:40:45.467 TestLibrary10 (SBER,D1) CWndEvents::CheckExpertSubwindowNumber > ¡La eliminación de la subventana Experto provoca la eliminación del Experto!" y además "2017.03.06 08:40:45.467 TestLibrary10 (SBER,D1) ExpertRemove() function called" . ¿Cuál es el motivo?


 
Alexander:
Por alguna razón, ninguno de los Asesores Expertos del Artículo 10 permanece en el gráfico, y después de unos segundos, habiendo mostrado sólo una forma, se elimina del gráfico por sí mismo. En el registro dice "2017.03.06 08:40:45.467 TestLibrary10 (SBER,D1) CWndEvents::CheckExpertSubwindowNumber > ¡La eliminación de la subventana Experto provoca la eliminación del Experto!" y además "2017.03.06 08:40:45.467 TestLibrary10 (SBER,D1) ExpertRemove() function called" . ¿Cuál es el motivo?

He comprobado de nuevo todas las situaciones posibles (que yo sepa) en las que podría ocurrir esto, pero no he conseguido reproducirlo.

¿Los dos Asesores Expertos de prueba del artículo muestran este comportamiento o sólo TestLibrary10 ? ¿Qué muestran los expertos de prueba de otros artículos?

 
Anatoli Kazharski:

He comprobado de nuevo todas las situaciones posibles (que yo sepa) en las que esto podría ocurrir, pero no he conseguido reproducirlo.

¿Los dos expertos de prueba del artículo muestran este comportamiento o sólo TestLibrary10 ? Y los Asesores Expertos de prueba de otros artículos, ¿qué muestran?


Todos los EAs de la carpeta del artículo 10 muestran este comportamiento, es decir, desde TestLibrary7 hasta TestLibrary10.
 
Alexander:

Este comportamiento lo muestran todos los EA de la carpeta Artículo 10, es decir, desde TestLibrary7 hasta TestLibrary10.
Reproducido. El problema se produce cuando hay indicadores en subventanas en el gráfico. Este comportamiento no ocurría antes. Lo investigaré. Gracias por su mensaje.
 
Anatoli Kazharski:
Reproducido. El problema se produce cuando el gráfico tiene indicadores en subventanas. Antes no ocurría. Lo investigaré. Gracias por el mensaje.

Cuando comenté en el archivo MainWindow.mqh del Asesor Experto TestLibrary07 2 líneas 22 y 23 //m_window.AutoXResizeMode(true); y //m_window.AutoYResizeMode(true); entonces este Asesor Experto empezó a funcionar normalmente.