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

 

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

En el presente 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. Las clases especiales transforman el marcado visual de MQL en elementos de GUI, permitiendo de controlarlos, ajustar sus propiedades y procesar eventos de forma unificada. Asimismo, mostraremos ejemplos de uso del marcado en las ventanas de diálogo y los elementos de la biblioteca estándar.

¿Para qué separan la disposición del código y la describen en un lenguaje especial? Estas son las principales ventajas de este enfoque.

  • la clara representación de las relaciones jerárquicas entre elementos y contenedores;
  • la agrupación lógica;
  • el establecimiento unificado de la ubicación y la alineación;
  • el sencillo registro de las propiedades y sus valores;
  • las declaraciones permiten implementar la generación automática de un código que soporte el ciclo vital y la gestión de elementos (creación, ajuste, interacción activa, eliminación);
  • el nivel general de abstracción (propiedades generales, estados, fases de inicialización y procesamiento), que permite desarrollar GUI independientemente de la codificación;
  • el uso repetido (múltiple) de disposiciones (el mismo fragmento puede incluirse varias veces en distintas ventanas de diálogo);
  • la implemnetación/generación dinámica de contenido sobre la marcha (por analogía con la alternancia de varias pestañas, con su propio conjunto de elementos a aplicar individualmente para cada una);
  • la creación dinámica de "controles" dentro de la disposición, con su correspondiente guardado en una única matriz de punteros a la clase básica (al igual que CWnd, en el caso de la biblioteca estándar MQL);
  • el uso de un editor gráfico aparte para el diseño interactivo de la interfaz: en este caso, el formato especial de descripción de disposiciones ejerce como eslabón que conecta la representación del programa y su parte ejecutiva en el lenguaje de programación;

Para el entorno MQL, se ha intentado muchas veces solucionar ciertas de estas tareas. En concreto, el constructor visual de ventanas de diálogo se presenta en el artículo MQL para "Dummies": Cómo Diseñar y Construir Clases de Objetos, y funciona usando como base la biblioteca MasterWindows. Pero los métodos de disposición y la lista de tipos de elementos soportados se ven fuertemente limitados en él.

Podrá encontrar un sistema de disposición más avanzado, pero sin diseñador visual, en los artículos Aplicación de los contenedores para componer la interfaz gráfica: clase CBox y clase CGrid. Esta da soporte a todos los elementos estándar de gestión y de otro tipo heredados de CWndObj o CWndContainer, sin embargo, sigue dejando al usuario la programación rutinaria de creación y ubicación de los componentes.

Desde un punto de vista conceptual, este enfoque con los contenedores es muy tecnológico (basta con indicar su popularidad en casi todos los lenguajes de marcado), y por eso vamos a utilizarlo. En uno de nuestros anteriores artículos (Implementando OLAP en la negociación (Parte 2): Visualización de los resultados del análisis interactivo de los datos multidimensionales), propusimos una modificación de los contenedores CBox y CGrid, así como algunos elementos de gestión para dar soporte de las propiedades de "elasticidad". A continuación, vamos a aprovechar este tiempo invertido y mejorarlos para solucionar las tareas de ubicación automática de elementos usando como ejemplo los objetos de la biblioteca estándar.

Autor: Stanislav Korotky

Razón de la queja: