Discusión sobre el artículo "El lenguaje MQL como medio de marcado de la interfaz gráfica de programas MQL. Parte 2"

 

Artículo publicado El lenguaje MQL como medio de marcado de la interfaz gráfica de programas MQL. Parte 2:

En este artículo, presentamos un nuevo concepto para la descripción de la interfaz de ventana de los programas MQL con la ayuda de las construcciones del lenguaje MQL. La creación de GUI basadas en el marcado MQL ofrece una funcionalidad adicional para almacenar la caché y generar de manera dinámica elementos, y también para gestionar los estilos y los nuevos esquemas de procesamiento de eventos. Aquí, ofrecemos la versión mejorada de la biblioteca estándar de los elementos de control.

Podemos eliminar cualquier elemento de la interfaz ubicado en la caché, es decir, no solo aquellos que han sido añadidos con el botón Inject. De esta forma, podemos, por ejemplo, eliminar toda la mitad izquierda o la "caja de radio" derecha. No obstante, lo más interesante sucederá cuando intentemos eliminar el contenedor superior con dos botones. Como resultado de ello, el botón Export perderá su vinculación con la ventana de diálogo y permanecerá en el gráfico.

Forma editada: añadiendo y eliminando elementos

Forma editada: añadiendo y eliminando elementos

Esto sucede así porque se trata del único elemento escrito a propósito como variable automática, no como dinámica (en la clase de la forma existe la instancia CButton m_button3).

Cuando la biblioteca estándar intenta eliminar los elementos de la interfaz, delega esta tarea en la clase de matrices CArrayObj, y esta, a su vez, comprueba el tipo de puntero y elimina solo los objetos con POINTER_DYNAMIC. Así, resulta obvio que, para construir una interfaz adaptativa donde los elementos puedan sustituir unos a otros, o bien sean totalmente eliminados, resultará deseable utilizar una ubicación dinámica, y la caché ofrece para ello soluciones ya preparadas.

Autor: Stanislav Korotky

Razón de la queja: