Discusión sobre el artículo "El componente View para tablas en el paradigma MQL5 MVC: Contenedores"

 

Artículo publicado El componente View para tablas en el paradigma MQL5 MVC: Contenedores:

En este artículo, hablaremos sobre cómo crear un control «Contenedor» que permita desplazarse por su contenido. Dentro del proceso, se mejorarán las clases ya implementadas de controles de la biblioteca gráfica.

Como parte del desarrollo del control TableView en el paradigma MVC (Modelo-Vista-Controlador), ya hemos creado el componente Modelo, un modelo de tabla, y hemos comenzado a crear los componentes Vista y Controlador. En el último artículo, se crearon controles sencillos pero bastante funcionales. Los controles complejos se montarán a partir de dichos elementos. Hoy escribiremos clases de control como Panel, GroupBox y Container; los tres elementos son contenedores para colocar diversos controles en ellos.

  • El control Panel es un panel que permite colocar cualquier número de otros controles en él. Al mover el panel a nuevas coordenadas, todos los controles situados en él también se mueven junto con el panel. Por lo tanto, el panel es un contenedor para los controles que se encuentran en él. Sin embargo, este elemento no tiene barras de desplazamiento que permitan desplazarse por el contenido del contenedor si este sobrepasa los límites del panel. Dicho contenido simplemente se recorta a los límites del contenedor.
  • El control GroupBox es un conjunto de elementos organizados en un grupo. Se hereda del panel y permite agrupar elementos según un propósito común, por ejemplo, un grupo de elementos RadioButton, en el que solo se puede seleccionar un elemento de todo el grupo, y el resto de los elementos del grupo quedan deseleccionados.
  • El control Container permite adjuntar solo un control a uno mismo. Si el elemento adjunto se extiende más allá del contenedor, aparecerán barras de desplazamiento en el contenedor. Permiten desplazarse por el contenido del contenedor. Para colocar cualquier número de controles en un contenedor, es necesario colocar un panel en él y adjuntar el número requerido de controles al panel. De este modo, el contenedor se desplazará por el panel y este último cambiará su contenido tras el desplazamiento.

Por lo tanto, además de los tres controles principales especificados, tenemos que crear clases para crear barras de desplazamiento: la clase Thumb y la clase ScrollBar. Habrá dos clases de este tipo: para barras de desplazamiento verticales y horizontales.

Compile el indicador y ejecútelo en el gráfico:


El cambio a pantalla completa al hacer clic en una pista funciona, el cambio al hacer clic en los botones funciona, la repetición automática de eventos al mantener pulsados los botones funciona, el desplazamiento con la rueda funciona.


Autor: Artyom Trishkin