Mi enfoque. El núcleo es el motor. - página 171

 
Vasiliy Sokolov:

...

3) Sí, dirigiéndose por el nombre, tiene que especificar todos los parámetros. Pero lo más importante es que no existe un único modelo monolítico de eventos. Si quieres tu propio modelo, eres bienvenido. Es elemental hacerlo. Pero no puedes prescindir del temporizador.

La cola de eventos es un algoritmo generalizado para la gestión fiable de eventos. El usuario no compone nada; los eventos generados por él llegan a la cola por sí mismos. La cola en sí consta de un solo evento el 99,9% de las veces.

Bueno, la implementación es similar a la mía, pero la mía es mucho más sencilla para el usuario.


  • E_Window_Element(valor); Pasando el valor al elemento:
  • E_Window_Element(); Obtener el valor del elemento:

  • E_Window_Element(M_COLOR, value); Establecer el color base.
  • E_Window_Element(T_COLOR, value); Establecer el color del texto.
  • E_Window_Element(F_COLOR, value); Establecer el color del marco.


  • E_Window_Element(STATE, ON); Establecer el estado de clic.
  • E_Window_Element(STATE, OFF); Establecer el estado de liberación.
  • E_Window_Element(STATE, LOCKED_ON); Establece el estado de bloqueo.
  • E_Window_Element(STATE, LOCKED_OFF); Establecer el estado empujado.
  • E_Window_Element(STATE, ON_H); Establecer el estado cuando se hace clic en el foco.
  • E_Window_Element(STATE, OFF_H); Establecer el estado empujado al foco.


  • W_Nombre_de_la_ventana() Abre la ventana.
  • W_Nombre_de_la_ventana(close) Cerrar la ventana.


Los nombres de las envolturas de los elementos del formulario se imprimen automáticamente en el archivo de conexión, y entran inmediatamente en el intellisense.

Vasily, ¿puedes utilizar los nombres de los elementos y las ventanas con intellisense en tu programa MQL?


ZS Vasily, fíjate en la cantidad de acciones que hace un wrapper por elemento. Y sólo necesita como máximo DOS parámetros. O ninguna.

 
Igor Makanu:

... He tenido un fiasco total con dataGridView - no puedo escribir en él más de 3-5 segundos) la tabla de 10x11 ya es crítica, aunque el formulario con la tabla se ejecuta en un hilo separado

ZS: Hace 5 años adjunté un StringGrid a MT4 en Delphi, no tuve problemas con él, todo fue bien. Sin embargo tengo problemas con dataGridView de Microsoft, hoy intentaré experimentar con SourceGrid, según los comentarios es más rápido que dataGridView

Prueba también coninfragistics ultragrid. Es lo mejor. Si hay una guía que puede mejorar su rendimiento comercial, es esta tabla.

 
Dmitry Fedoseev:

...

Dmitry, hay un modelo arquitectónico llamado MVC. El enfoque que propuse es exactamente el mismo. Así que cuando lo critica, critica a MVC en primer lugar y a soluciones como Angular, ASP Net MVC, Ruby on Rails y otros productos, no dignos de su atención experta, hechos por el "culo" en su opinión. Así que creo que debería quedarte claro por qué no quiero discutir contigo y demostrar la validez de mi decisión: no tiene sentido.

 

En mi caso, el análogo de grabar

GuiController::SendEvent("AskLabel", TextChange, 0, 0.0, DoubleToString(ask, Digits()));

es la entrada

E_Trade_panel__AskLabel(DoubleToString(ask, Digits()));

En este caso, no necesito recordar el nombre de un elemento concreto. Escribo E_ y aparece una lista de elementos, escribo las primeras letras del nombre de la ventana y me lleva a la lista de elementos de una ventana concreta, entonces selecciono el elemento deseado de la lista.

 

Me pregunto cómo se puede conectar una tabla de al menos 100 celdas sin inteligencia. Después de todo, hay que recordar los nombres de todas las celdas.

En mi caso, cada celda se nombra automáticamente por el nombre de la fila y de la columna, y su selección se realiza a través de inteligencias. En tu versión, Vasiliy, necesitas saber exactamente cómo se llama cada una de las 100 celdas.

Y si tengo 10 ventanas complejas con muchos elementos y tablas grandes, ¿cuánto tiempo gastaría en nombrar los elementos en las llamadas? Me agotaría).


¿Y si los nombres son los mismos entre diferentes ventanas?

 
Реter Konow:

Me pregunto cómo se puede conectar una tabla de al menos 100 celdas sin intellisense.

No sé Peter, porque el intellisense en el MetaEditor funciona bien con todas las variables en C#, incluyendo arrays, estructuras, tipos básicos, métodos e incluso clases.

 
Vasiliy Sokolov:

No sé Peter, porque el intellisense en el MetaEditor funciona bien con todas las variables en C#, incluyendo arrays, estructuras, tipos básicos, métodos e incluso clases.

¿Muestra los nombres de los elementos?

 
Реter Konow:

¿Muestra los nombres de los elementos?

Lo hace, con prototipos:

:))

 
Vasiliy Sokolov:

Por supuesto, con prototipos:

:))

Vasily, no lo entiendes.

GuiController::SendEvent("AskLabel", TextChange, 0, 0.0, DoubleToString(ask, Digits()));

Para establecer el valor de un elemento, se envía su nombre. El campo "Ask" tiene el nombre "AskLabel". ¿Dónde muestra el intellisense el nombre del elemento?

 
Реter Konow:

Vasily, no lo entiendes.

Para establecer el valor de un elemento, se envía su nombre. El campo "Ask" tiene el nombre "AskLabel". ¿Dónde muestra el intellisense el nombre del elemento?

Peter, parece que estás buscando algo de lo que quejarte.

La respuesta es no, el intelecto nunca ha trabajado con un elemento de texto y nunca lo hará. Pero si se trata de una simple pregunta, no hay ningún problema en hacer interlesencia sobre lo mismo define.

s.s. Por cierto, a ti tampoco te funcionará:

__, EDIT,"Set lot", W,150,_,H,60,_,V_CURRENT,"1.00", 
Razón de la queja: