![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Ejemplo de código sencillo:
Todo lo que se empieza hay que terminarlo. Aunque nadie lo necesite. Ese es el principio.
Se necesita. Si la interfaz no sólo se puede dibujar, sino utilizar. Eso espero.
Necesidad. Si la interfaz no sólo se puede dibujar, sino utilizar. Ojalá.
Por supuesto. En eso estoy trabajando.
Duplicar esta rama en varios idiomas es una dura prueba, por supuesto, para los que no hablan ruso. Mirando hacia el futuro, ¿puedo hacerle un par de preguntas? Dado que su GUI se crea sin usar clases, surgen varias incertidumbres a la vez. Después de todo, ¿cuáles, en primer lugar, deben ser los requisitos para la GUI como producto? Es la comodidad y la intuitividad de la creación de una GUI, así como su uso conveniente en el proceso de trabajo. En este sentido:
Pregunta 1
¿Qué mecanismo existe para que un programador maneje los eventos en la parte de su GUI? Por ejemplo, en mis GUIs, al crear un control, añado un puntero a una función manejadora cuando se produce un evento de cambio en esecontrol. Código de ejemplo:
Pregunta 2
¿Cómo puede un programador acceder al estado de un elemento concreto de la GUI? Por ejemplo, en mi GUI puedo obtener el estado de la casilla de verificación (bool) de la siguiente manera: .
pero utilizo clases anidadas ¿Cómo se hace?
Pregunta 2
¿Cómo puede un programador acceder al estado de un elemento concreto de la GUI? Por ejemplo, en mi GUI puedo obtener el estado de la casilla de verificación (bool) así: pero utilizo clases anidadas ¿Cómo se hace?
Nicolás ¡Hola!
Voy a responder en orden:
1. El usuario NO (de la palabra en absoluto) interactuar con mi código. No es necesario. Más adelante entenderás por qué. El usuario SOLO necesita el lenguaje de marcado. (He enfatizado esto varias veces antes, pero siempre recibo esta pregunta recurrente de los programadores. ) La razón es que el usuario sólo "inicializa" el array usando palabras clave del lenguaje que están definidas por defines en el código del constructor. El intérprete (indicador) envía un array con el código de marcado (el que he mostrado arriba) al constructor (que es el EA en el mismo gráfico) y el constructor lee el array y construye la GUI. El código de marcado es una instrucción para el constructor. Éste realiza la construcción (dibujo, inicialización de los parámetros de los elementos, ajustes, etc.) de acuerdo con ella.
2. El mecanismo es sencillo. Al terminar de editar la interfaz, el usuario llama al menú contextual del constructor haciendo doble clic en el gráfico y selecciona la opción de guardar. El constructor imprime toda la información en dos archivos. Estos archivos son utilizados por el motor.
Me explico en detalle: el usuario conecta los dos ficheros recibidos del constructor y del motor (que le proporcionaré) a su EA (en la cabecera del EA. Proporcionaré un ejemplo de conexión). Luego, escribe varias llamadas en las funciones OnInit(), OnTimer(), OnChartEvent() y OnDeinit() (proporcionaré un ejemplo). A continuación, entra en un archivo impreso por el constructor llamado Internal_API. Este archivo contiene todo lo necesario para conectar los controles GUI al Asesor Experto/indicador de usuario. Es decir - funciones generadas de los elementos e instrucciones detalladas. Proporcionaré ejemplos de conexión más adelante.
Una vez más, nada complicado. Todo está ahí. He aquí, por ejemplo, cómo se ve con la interfaz de arriba:
1. Escribe una ventana.
2. Siguió las instrucciones de abajo:
3.
4. Abra el archivo InternalAPI e inicie la conexión. El fichero lo contiene todo.
Elusuario sólo tiene que escribir sus acciones en las condiciones de la función OnGuiEvent(). El resto NO hay que tocarlo. .
Cambiar el estado de los controles, así como obtener/establecer sus valores se hace con la ayuda de funciones generadas por el constructor, que el usuario verá en el intellisense.
A partir del código del archivo anterior, el usuario sólo trabaja con esta parte:
Nicholas, ¡hola!
Contestaré por orden:
1. El usuario NO (de la palabra en absoluto) interactuar con mi código. No es necesario. A continuación entenderás por qué. El usuario SOLO necesita el lenguaje de marcado. (He enfatizado esto varias veces antes, pero siempre recibo esta pregunta recurrente de los programadores. ) La razón es que el usuario sólo "inicializa" el array usando palabras clave del lenguaje que están definidas por defines en el código del constructor. El intérprete (indicador) envía un array con el código de marcado (el que he mostrado arriba) al constructor (que es el EA en el mismo gráfico) y el constructor lee el array y construye la GUI. El código de marcado es una instrucción para el constructor. Éste realiza la construcción (dibujo, inicialización de los parámetros de los elementos, ajustes, etc.) de acuerdo con ella.
2. El mecanismo es sencillo. Tras finalizar la edición de la interfaz, el usuario llama al menú contextual del constructor haciendo doble clic en el gráfico y selecciona la opción de guardar. El constructor imprime toda la información en dos ficheros. Estos archivos son utilizados por el motor.
Me explico en detalle: el usuario conecta los dos ficheros recibidos del constructor y del motor (que le proporcionaré) a su EA (en la cabecera del EA. Proporcionaré un ejemplo de conexión). Luego, escribe varias llamadas en las funciones OnInit(), OnTimer(), OnChartEvent() y OnDeinit() (proporcionaré un ejemplo). A continuación, entra en un archivo impreso por el constructor llamado Internal_API. Este archivo contiene todo lo necesario para conectar los controles GUI al Asesor Experto/indicador de usuario. Es decir - funciones generadas de los elementos e instrucciones detalladas. Proporcionaré ejemplos de conexión más adelante.
Una vez más, nada complicado. Todo está ahí. Aquí está, por ejemplo, cómo se ve con la interfaz de arriba:
1. Hemos escrito una ventana.
2. Seguimos las siguientes instrucciones:
3.
4. Abra el archivo InternalAPI e inicie la conexión. El archivo contiene todo.
Elusuario sólo tiene que especificar sus acciones en las condiciones de la función OnGuiEvent(). El resto NO necesita ser tocado.
Cambiar el estado de los controles y obtener/establecer sus valores se hace con la ayuda de funciones generadas por el constructor, que el usuario verá en el intellisense.
Peter, no te entiendo.
No has respondido a las preguntas. Es importante que los programadores sepan cómo interactuar con tu GUI mientras trabajan. Aquí tienes un ejemplo de mi GUI. Hice clic en el acceso directo del tema claro/oscuro y este evento activó inmediatamente la función para cambiar los colores de fondo y las líneas. ¿Cómo se hace esta interacción?
¿Qué significa "El usuario NO interactuará (en absoluto) con mi código " ? El programador necesita interactuar, no con el código, sino con los eventos que deben generar este código. Después de todo, la GUI no es un programa independiente. La GUI debe interactuar en última instancia con el programa principal del programador. Ya se trate de un indicador o EA.