Discusión sobre el artículo "DoEasy. Elementos de control (Parte 32): "ScrollBar" horizontal, desplazamiento con la rueda del ratón"

 

Artículo publicado DoEasy. Elementos de control (Parte 32): "ScrollBar" horizontal, desplazamiento con la rueda del ratón:

En este artículo completaremos el desarrollo de la funcionalidad del objeto de barra de desplazamiento horizontal. Asimismo, haremos posible el desplazamiento del contenido del contenedor moviendo el control deslizante de la barra de desplazamiento y girando la rueda del ratón. También introduciremos ciertas adiciones a la biblioteca considerando la nueva política de ejecución de órdenes aparecida en el terminal y los nuevos códigos de error de ejecución en MQL5.

Para la prueba, tomaremos el asesor del artículo anterior sin ningún cambio. Luego lo compilaremos y lo ejecutaremos en el gráfico, estableciendo en los ajustes de inicio "No" para el modo de cambio automático del tamaño del contenedor para que se ajuste a su contenido:



Luego veremos cómo funcionan todos los componentes de la funcionalidad de la barra de desplazamiento horizontal creada:


Todo marcha según lo planeado.

Autor: Artyom Trishkin

 
Artem, ¿y qué pasa con la biblioteca, se desarrollará más? En mi opinión, tenemos que indagar más. Anatoly, por ejemplo, ha dejado de apoyar públicamente su biblioteca por razones bien conocidas ((
 
Denis Kirichenko #:
Artem, ¿y qué pasa con la biblioteca, se desarrollará más? En mi opinión, tenemos que indagar más. Anatoly, por ejemplo, ha dejado de apoyar públicamente su biblioteca por razones bien conocidas ((

Sí, por supuesto. Se ha tomado un descanso de la publicación. Hay un error visual que es muy desagradable a la vista - las áreas recortadas se dibujan a veces con parpadeo. En algún lugar hay un redibujado prematuro innecesario del gráfico. Todavía no he encontrado el punto - hay muchas interconexiones - una cosa se cura, otra se lisia....

Una vez que lo encuentre, lo arreglaré y continuaré.

 
Artyom Trishkin #:

Sí, claro que sí. Me he tomado un descanso. Hay un error visual que es muy desagradable a la vista - las áreas recortadas se dibujan a veces con un parpadeo. En algún lugar hay un innecesario redibujado prematuro del gráfico. Todavía no he encontrado el punto - hay muchas interconexiones - una cosa se cura, otra se lisia....

Una vez que lo encuentre, lo arreglaré y continuaré.

También me enfrenté a este problema, lo resolví de esta manera:

class CCanvas_my:public CCanvas
  {
public:
   bool              Resize(const int width,const int height);
  };

bool CCanvas_my::Resize(const int width,const int height)
  {
   if(m_rcname!=NULL && width>0 && height>0)
      if(ArrayResize(m_pixels,width*height)>0)
        {
         m_width =width;
         m_height=height;
        }
   return true;
  }

Sustituyendo la función estándar de redimensionar el lienzo. Si todo está bien en tu código, no habrá redibujos innecesarios.

Tengo tal nivel de interfaz gráfica, se utilizan 10 objetos CCanvas (herederos):


 
Aliaksandr Hryshyn #:

También me encontré con este problema, lo resolví de esta manera:

Reemplazando la función estándar de redimensionar el kanvas. Si todo está bien en su código, no habrá redibujos innecesarios.

Tengo tal nivel de interfaz gráfica, se utilizan 10 objetos CCanvas (herederos):


Gracias. Mi problema no es con el cambio de tamaño. Es un error en mis métodos.