Galería de interfaces de usuario escritas en MQL - página 41

 

Buenas noches queridos miembros del foro.

Por fin ha llegado el momento de liberar el motor y ayudar a aquellos que quieren crear programas grandes y muy chulos con una rica interfaz gráfica en MQL5. Ahora este objetivo está al alcance de la mano.

Y así

1. La primera versión del motor. Quiero hacer hincapié en la palabra "primera". Nada es perfecto la primera vez. Probablemente encontrarás errores que yo no noté. No pasa nada. Aún no he tenido ningún fallo que no haya solucionado. Todo se soluciona rápidamente.

2. El motor no está completamente terminado. Por el momento, la aplicación"condicional-usuario" (1) EA Shell v1.mq5 (especialmente escrita para probar el motor) captura todos los eventos de los controles de la GUI creada. Esto ya hace posible que el código de usuario reaccione programáticamente. Los eventos vienen, traen valores a los casos necesarios de la función OnGuiEvent(); Es allí, en el archivo API, que el usuario escribirá su código de reacciones a los eventos de la interfaz.

3. Se ha trabajado mucho en el motor. Los cambios afectaron tanto a nivel local como global. Más adelante describiré en detalle qué es exactamente lo que he escrito y rehecho durante este tiempo. La lista será larga.

4. La versión tiene instrucciones de instalación en el archivo ReadMe.txt. Sin embargo, añadiré imágenes para mayor claridad. Si no está claro, pregunta. Te ayudaré.


En general, tome la liberación y vamos a empezar.

Archivos adjuntos:
 

Como resultado de la instalación de la nueva versión del constructor, debería ver un menú contextual actualizado (haga doble clic en el gráfico):


Si ves dicho menú, entonces la instalación se ha realizado correctamente.

 

Esta instalación no difiere de la anterior. Los mismos pasos en el mismo orden.

Hay instrucciones en texto en este blog. Y también en imágenes:

https://www.mql5.com/ru/blogs/post/758425

KIB-DRIVE instalation instractions
KIB-DRIVE instalation instractions
  • www.mql5.com
This archive contains: //------------------------------------------------------------------------------ 1. Folder     (1) KIB 1.0
 

Por separado me gustaría mencionar el nuevo archivo EA Shell v1.mq5

Guárdalo en la carpeta EAs, pero compílalo sólo después de imprimir el archivo API en el constructor. Se trata de las conexiones en su cabecera.

1. Ejecute el constructor y el indicador como antes en un gráfico.

2. Inmediatamente abra el menú contextual e imprima los archivos UIDATA y API.

3. Transfiera estos archivos a la carpeta en esta ruta:

#include<(2)  KIB PROJECTS\(5) USER PROJECTS\Project 1\

4. Compile EA Shell v1.mq5 y suéltelo en otro gráfico.

5. 5. Listo.

 

Unas pequeñas instrucciones en imágenes:

1.


2.


3.


4.


5.


6.


7.


 
Pequeñas instrucciones de instalación (1) EA Shell v1.mq5 más...
 

1.



2.


3.



4.



5.



6.



7.


DiscussionForumPosting - Schema.org Type
  • schema.org
Schema.org Type: DiscussionForumPosting - A posting to a discussion forum.
 

Las ventanas de configuración anteriores están pensadas para probar la conexión y la respuesta a los eventos de la interfaz mediante una funcionalidad personalizada.

Para ello, abra el archivo API y escriba sus llamadas.

Por defecto, los eventos de interfaz llaman a la función Alert() imprimiendo su identificador y el valor del parámetro en los eventos de impacto sobre los elementos.

 
Probaré la nueva versión más tarde.
 

Lista de correcciones y actualizaciones de esta versión y de la siguiente:

Cambios globales:

  • El archivo Internal_API ha sido renombrado a simplemente ARI.
  • Todas las definiciones y funciones que no son relevantes para el trabajo del usuario con los controles fueron eliminadas del archivo API. Parcialmente se han trasladado al fichero UIDATA.
  • El método de vinculación del código de usuario con los controles se ha modificado fundamentalmente. El usuario tendrá acceso directo al núcleo G_CORE donde se almacenan los controles. El acceso se realiza a través de funciones de envoltura que se imprimen automáticamente en el archivo UIDATA.
  • Se añade un prefijo especial a los nombres de las funciones envoltorio para facilitar la búsqueda de los elementos mediante intellisense.
  • Se ha abierto la posibilidad de crear un menú contextual para una aplicación de usuario. Se ha asignado un área especial en el fichero #include<(2) KIB PROJECTS\(1) Must be included\User section\My menu section.mqh>.
  • Añadida la posibilidad de establecer botones en la parte derecha de la barra de tareas del usuario. Un área especial en el archivo #include<(2) KIB PROJECTS\ (1) Must be included\User section\ My Taskbar section.mqh> ha sido preparada para este propósito.
  • El menú contextual personalizado y la barra de tareas se llaman ahora desde el menú contextual del constructor y no interfieren con la edición de otras ventanas:


  • El menú contextual de usuario puede llamar a ventanas de menú junior.

Este es el aspecto después de guardar el proyecto y cambiar al modo de aplicación de usuario en otro gráfico: .

  • El comportamiento de las ventanas del menú contextual es similar a su comportamiento en el entorno de aplicaciones de Windows.

  • Las opciones del menú contextual pueden llamar a funciones o ventanas. Si una opción del menú llama a una ventana, el icono de la ventana se sitúa automáticamente a la izquierda.



  • Cambios y mejoras locales:

  • Se hacorregido un problema por el que la barra de tareas saltaba al cambiar de gráfico. Ahora se adapta mejor y más rápido al cambio de tamaño de las ventanas.
  • Losdeslizadores funcionan mejor:
  • La pestaña de valor (S_WIDGET) siempre acomoda los dígitos del valor y toma el tamaño dependiendo del tamaño del texto del valor máximo (o mínimo).
  • El marcador se posiciona en uno de los 4 lados como desee el usuario (fijado por banderas).
  • El deslizador alterna cualquier valor en cualquier rango con cualquier El control deslizante cambia cualquier valor en cualquier rango con cualquier número de decimales, y en cualquier paso especificado.
  • El número de decimales (precisión del valor) lo fija el usuario (palabra DIGITS).
  • El tamaño del deslizador y el rango de valores no juegan ningún papel. El algoritmo calcula el movimiento del deslizador a través del rango de tal manera que un extremo siempre tendrá un mínimo y el otro extremo siempre tendrá un máximo.
  • Al hacer clic en la pista del deslizador, éste salta automáticamente al lugar donde se ha hecho clic y continúa moviéndose de forma sincronizada con el usuario si se pulsa el botón del ratón.
  • Está previsto añadir la posibilidad de desplazar el deslizador por la pista deslizante con la rueda del ratón.


  • Se han solucionado problemas con la lista desplegable.

  • La lista ya no salta cuando se pulsa el botón de abrir.
  • Se ha corregido un problema por el que la lista desaparecía al desplazarse hasta el final.
  • La lista se puede desplazar con la rueda aunque el cursor esté en la barra de desplazamiento o en los botones.
  • El desplazamiento de la lista con la rueda del ratón es ahora más rápido.


  • Solucionado el problema de los falsos clics:

  1. Anteriormente, pulsar un botón u otro elemento similar provocaba un cambio de estado aunque la pulsación se produjera fuera del espacio del elemento. Este problema se ha resuelto. Si el usuario hacía clic en un elemento pero cambiaba de opinión y alejaba el cursor, o lo movía a otro elemento o espacio libre del gráfico, el elemento del primer clic siempre volverá al estado anterior. Como si no hubiera pasado nada. El evento se cancelará y no habrá ningún cambio en el valor del parámetro. La falsa fijación del clic permite cancelar el clic en el último momento simplemente moviendo el cursor (con el botón del ratón aún pulsado) a otro espacio.


  • Se decidió centrarse en la creación de plantillas para ventanas de configuración profesionales similares a las de Windows para facilitar su creación a los usuarios. Un buen ejemplo de este tipo de ventanas son las ventanas incluidas Configuración ejemplo 1 y Configuración ejemplo 2 (llamadas desde el menú contextual y desde el uso de la barra de tareas):

  • Se ha añadido la posibilidad de bloquear mensajes.

    Ejemplo:

Primero abra las diferentes ventanas de configuración. Sus botones se encuentran en la parte inferior de la barra de tareas. A continuación, vaya al menú contextual (haga doble clic en el gráfico) y abra la ventana "Lo sentimos, esta orden está bloqueada". Se encuentra aquí:


A continuación, intente hacer clic en cualquier ventana abierta previamente con la ventana "Lo sentimos, esta orden está bloqueada " abierta. Cualquier acción en otras ventanas será bloqueada hasta que esa ventana sea cerrada. Sin embargo, puede limitar la lista de ventanas bloqueadas en las propiedades de la ventana en el cibercódigo. Entonces algunas ventanas serán bloqueadas y otras no. Dependiendo de la decisión del usuario.


  • Ahora las ventanas de diálogo se pueden abrir con sonido. Esto se establece a través del código KIB en las propiedades de la ventana.
  • Las ventanas de diálogo tienen una prioridad especial sobre otras ventanas y siempre se dibujan encima de las ventanas de configuración.
  • Los botones de las ventanas de diálogo (Ok, Cancelar, Confirmar, Cerrar) funcionan y cierran sus ventanas automáticamente cuando se pulsan.


  • Los cuadros de diálogo pueden tener desactivada la función de minimización. En este caso no pueden aparecer en la barra de tareas.


  • El nombre de la ventana puede situarse a la izquierda o en el centro. Se establece mediante un indicador en las propiedades de la ventana (cyb-code).
  • Las ventanas de diálogo se pueden llamar mediante programación desde la aplicación del usuario.
  • Las ventanas de diálogo pueden cerrarse automáticamente al hacer clic en otra ventana o gráfico. La opción la establece el usuario en las propiedades de la ventana en el cib-código.