Discusión sobre el artículo "Guía práctica de MQL5: Controles de la subventana del indicador: Botones"

 

Artículo publicado Guía práctica de MQL5: Controles de la subventana del indicador: Botones:

En este artículo, vamos a ver un ejemplo de desarrollo de una interfaz de usuario con controles mediante botones. Para transmitir la idea de interactividad al usuario, los botones cambiarán de color cuando se pasa el cursor por encima de ellos. Cuando el cursor está encima de un botón, el color de este último será ligeramente oscurecido, haciéndose notablemente más oscuro cuando se pulsa el botón. Además, vamos a añadir tooltips (información sobre herramientas) a cada botón, creando así una interfaz intuitiva.

El artículo abarcará también algunos eventos: evento de movimiento del ratón, estado del botón izquierdo del ratón, clic con el botón izquierdo en un objeto y evento de modificación de las propiedades del gráfico. Vamos a crear un panel de botones que ocupará todo el espacio de la subventana del indicador. Para fines ilustrativos, los botones se dispondrán en tres filas, con cuatro botones en cada fila.

MQL5 Cookbook: Indicator Subwindow Controls - Buttons

Autor: Anatoli Kazharski

 

Buen artículo para principiantes. Sin embargo, en interfaces más complejas este enfoque ya no es aceptable. Lo primero que llama la atención:

for(int i=0; i<BUTTON_COLUMNS; i++)
     {
      for(int j=0; j<BUTTON_ROWS; j++)
        {
            ...
      ...
...
Una estructura de tabla rígida está cosida al algoritmo y esta construcción se encuentra en casi todas las funciones. Ahora imaginemos que la subventana contiene varios elementos gráficos que no están relacionados de ninguna manera con la tabla. Para ellos tendremos que describir su propio modelo de posicionamiento, y esto no es bueno. El modelo de posicionamiento debería ser uno y universal, es decir, en este caso, el diseño de la "tabla" debería ser un caso especial de este modelo.
 
C-4:

Buen artículo para principiantes. Sin embargo, en interfaces más complejas este enfoque ya no es aceptable. Lo primero que llama la atención:

Una estructura de tabla rígida está cosida al algoritmo y esta construcción se encuentra en casi todas las funciones. Ahora imaginemos que la subventana contiene varios elementos gráficos que no están relacionados de ninguna manera con la tabla. Para ellos tendremos que describir su propio modelo de posicionamiento, y esto no es bueno. El modelo de posicionamiento debería ser uno y universal, es decir, en este caso, el diseño de la "tabla" debería ser un caso especial de este modelo.

Sí, tienes razón. Intentaré proponer algo más original la próxima vez. )

En este caso, para salir del caso especial, basta con utilizar un array unidimensional y un bucle.

 

No entiendo por qué usar OBJ_EDIT.

Hubiera sido mucho más útil "revivir" los botones estándar de la biblioteca (para que también brillaran bajo el ratón).

Es decir, parece un artículo útil, pero no entiendo por qué se eligió esa forma.

ps: envidio la fecundidad del autor ;)

 
komposter:

...

Ya estoy acostumbrado a utilizar OBJ_EDIT, ya que se muestra durante la visualización en el probador.

En este caso, podría utilizar cualquier objeto para el ejemplo. Es un proceso creativo, después de todo. )

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 
komposter:

No entiendo por qué usar OBJ_EDIT.

Sería mucho más útil "revivir" los botones estándar de la librería (para que también brillen bajo el ratón).

Es decir, parece un artículo útil, pero no entiendo por qué se ha elegido esa forma.

ps: envidio la fecundidad del autor ;)

En realidad, los botones estándar son un elemento de control muy resbaladizo, porque en primer lugar no soporta color de marco (aunque es muy extraño por qué), y en segundo lugar, dependiendo del tipo de marco BORDER_FLAT, BORDER_RAISED visualmente se posiciona claramente fuera de su ubicación, no digo que además de esto cambie su tonalidad dependiendo del estado de pulsación y muy lento para cambiar su visualización sin ChartRedraw. En realidad, el botón salvo por su interfaz picada a lo Windows 3.11 no da ninguna ventaja frente a otros elementos. Sí, existe un campo especial OBJ_SELECTED, que indica si el botón está pulsado o no, pero en realidad no hay problemas para crear un objeto propio OBJ_EDIT, que contenga la bandera de pulsado.
 
Y los botones no son botones en absoluto).
 
komposter:

Sería mucho más útil "animar" los botones estándar de la biblioteca (para que también brillaran bajo el ratón).

Y me pregunto, ¿hay algún desarrollador profesional que utilice la biblioteca estándar de elementos gráficos en sus productos?
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
zfs:
Y los botones no son realmente botones).
Un botón es cualquier cosa que se pueda pulsar. ))
 
C-4:
Y me pregunto, ¿hay algún desarrollador profesional que utilice la biblioteca estándar de elementos gráficos en sus productos?
Creo que hay productos en el mercado con interfaces cuyos elementos se parecen a los utilizados en la biblioteca estándar.
 

Me pregunto si al preparar el material leyó este artículo.