Interfaz gráfica de usuario de origen colectivo. Prueba beta abierta. - página 18

 
Реter Konow:

Aclara, ¿son estos "nodos" objetos dinámicos e interactivos, así como los enlaces entre ellos? No es sólo un esquema, ¿verdad? Si es así, he visto algo parecido en el constructor de estrategias gráficas de Andrei Barinov. ¿Es eso lo que quieres decir?

¿La lógica de los enlaces entre nodos es inmutable y sigue reglas predefinidas, o es un esquema frívolo creado a su antojo?

En principio, no veo ninguna dificultad para crearlo. Son dos o tres días de trabajo. No necesito ningún código adicional. Lo haré yo mismo, después de las cosas principales que son prioritarias en este momento.

Sí, esta es una representación de la estrategia, sólo que no de Andrei Barinov, mis propios desarrollos.

No se espera la edición visual. Habrá generación automática.

"No es necesario un código adicional". - Así que puede que no haya una estrategia en forma de archivo. ¿Así que quieres hacer un parser? Ya tenemos uno, ¿por qué lo necesitas? :) ? Puedo enviarle ejemplos de cómo trabajar con la estrategia, es fácil y conveniente.

He aquí un ejemplo:

#include <Greshnik\\Strategy.mqh>

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
   cStrategy *st=new cStrategy();
   st.Read_from_file("Strategy\\Test\\1.txt");  //Читаем с файла
   st.Print_strategy();                         //Вывести в лог
   int count_top_nodes=st.Get_top_nodes_count();//Количество узлов на вершине
   int my_node=-1;
   for(int i1=0; i1<count_top_nodes; i1++)
     {
      int node_id=st.Get_top_node(i1);
      if(node_id<0)
        {
         Print("Узла на вершине нету по индексу:",i1);
        }
      else
        {
         my_node=node_id;
        }
     }
   if(my_node>=0)
     {
      Print("Тип узла: ",EnumToString(st.Get_node_type(my_node)));
      Print("Количество родительских узлов: ",st.Get_parents_nodes_count(my_node));
     }
   delete st;
  }

Cuando un error que necesita para mirar el registro, no en ruso todo.

Y en el código fuente se describe todo.

 
Aliaksandr Hryshyn:

Este ejemplo, no refleja cómo quiero que se vea, muestra la estructura y algunas características. Los nodos también tienen alguna información que mostrar. Dirección ascendente.

No hay manera sin código adicional, permite leer este tipo de estructura de un archivo de texto y obtener toda la información sobre ella.

Me gustaría una buena presentación de esta estructura.

Necesita la creación dinámica de elementos gráficos.

Aquí hay un ejemplo de un archivo con este tipo de estructura, puedes ver para qué sirve la estructura :)

Este archivo puede ser leído por el código y hay un cómodo acceso a todos los parámetros de la estructura. No todos los tipos de nodos están representados aquí.

No insisto en la ayuda, sé que requiere cierto esfuerzo. Se requiere algún problema de colocación óptima de nodos, no es bueno colocar por lista debido a la mala legibilidad de la estructura.

La estructura no tiene bucles. Para recorrer el grafo se puede utilizar la recursividad partiendo de un vértice, marcando los nodos en los que ya se ha estado. Luego se elige cualquier nodo no marcado y se definen todos los nodos a partir de él, que forman otro gráfico no conectado al principal, etc.

Podría haberlo hecho todo yo, pero ahora hay muchas otras tareas.

Esto ya no es para Peter. No lo distraigas, por favor.
Es más para ti.

 
Aliaksandr Hryshyn:

Sí, se trata de una presentación de la estrategia, pero no de Andrei Barinov, sino de su propio trabajo.

No se prevé ninguna edición visual. Habrá generación automática.

"No es necesario un código adicional". - Así que puede que no haya una estrategia en forma de archivo. ¿Así que quieres hacer un parser? Ya tenemos uno, ¿por qué lo necesitas? :) ? Puedo enviarle ejemplos de cómo trabajar con la estrategia, es fácil y conveniente.

He aquí un ejemplo:

Cuando un error que necesita para mirar el registro, no en ruso todo.

Y en la fuente se describe todo.

Puedo crear una solución general para todos estos esquemas interactivos y flexibles, pero no es pronto. En su caso necesita una solución específica, adecuada a una idea determinada. No estoy seguro de poder ayudar con eso. Primero hay que crear la "mecánica" gráfica de los nodos y los enlaces, y luego ajustar las ideas específicas. Puedo crear la mecánica, pero una mayor "puesta a punto", reducirá el rango de aplicación y lo convertirá en un proyecto individual. Tal vez Nikolay pueda ayudar. Estoy muy ocupado en este momento.

 
Реter Konow:

Podría crear una solución general, para todo tipo de esquemas interactivos y flexibles, pero es una posibilidad remota. En su caso, necesita una solución específica que se ajuste a una idea concreta. No estoy seguro de poder ayudar con eso. Primero hay que crear la "mecánica" gráfica de los nodos y los enlaces, y luego ajustar las ideas específicas. Puedo crear la mecánica, pero una mayor "puesta a punto", reducirá el rango de aplicación y lo convertirá en un proyecto individual. Tal vez Nikolay pueda ayudar. Estoy muy ocupado en este momento.

Bien.

 
Nikolai Semko:

Esto ya no es para Peter. No lo distraigas, por favor.
Es más para ti.

Sí, eso es.

 
Aliaksandr Hryshyn:

Este ejemplo, no refleja cómo quiero que se vea, muestra la estructura y algunas características. Los nodos también tienen alguna información que mostrar. Dirección ascendente.

No hay manera sin código adicional, permite leer este tipo de estructura de un archivo de texto y obtener toda la información sobre ella.

Me gustaría una buena presentación de esta estructura.

Necesita la creación dinámica de elementos gráficos.

Aquí hay un ejemplo de un archivo con este tipo de estructura, puedes ver para qué sirve la estructura :)

Este archivo puede ser leído por el código y hay un fácil acceso a todos los parámetros de la estructura. No todos los tipos de nodos están representados aquí.

No insisto en la ayuda, sé que requiere cierto esfuerzo. Se requiere algún problema de colocación óptima de nodos, no es bueno colocar por lista debido a la mala legibilidad de la estructura.

La estructura no tiene bucles. Para recorrer el grafo se puede utilizar la recursividad partiendo de un vértice, marcando los nodos en los que ya se ha estado. Luego se elige cualquier nodo no marcado y se definen todos los nodos a partir de él, que forman otro gráfico no conectado al principal, etc.

Podría hacerlo todo yo, pero ahora hay muchas otras tareas.

Existen herramientas clásicas para la visualización de gráficos: http: //www.graphviz.org/documentation/ aka https://en.wikipedia.org/wiki/DOT_(graph_description_language)

Es decir, tienes que generar un archivo .dot de tu gráfico según tu estructura y ejecutar el renderizador (hay varios para elegir)

Si no me equivoco, el archivo .dot se puede abrir en yEd(https://www.yworks.com/products/yed) para corregirlo con el ratón :-)

P.D. La visualización de gráficos no es una tarea fácil, por no decir otra cosa :-) Todavía se está resolviendo en el mundo...

 
Así que me gustaría una solución MQL. Bien, tendré que hacerlo yo mismo :).
 

Sólo podemos adivinar cómo se vinculará el código generado por la herramienta de Peter con el resto del programa.

"Kernel, markup" ..... sin comentarios.

Entiendo los siguientes tipos de marcado: xml, html, json, xaml, etc.

Entiendo la herencia, que permite tanto modificar los controles de origen como suscribirse a sus eventos sin bucear en el código fuente de los controles.

Peter utiliza programación procedimental, por lo que referirse a un control como un objeto, ya que no hay objetos a priori en Peter, es imposible.

Lo que significa que no puedes cambiarlos sobre la marcha, y mucho menos vincularlos a los datos...

Esperamos... Estamos esperando a ver cómo resulta. Pero sería mejor que Peter generara ex4 en lugar de mqh para no tener que hurgar en ... de la almendra.

 
Алексей Барбашин:

Sólo podemos adivinar cómo se vinculará el código generado por la herramienta de Peter con el resto del programa.

"Core, markup" ..... sin comentarios.

Entiendo los siguientes tipos de marcado: xml, html, json, xaml, etc.

Entiendo la herencia, que permite tanto modificar los controles de origen como suscribirse a sus eventos sin bucear en el código fuente de los controles.

Peter utiliza programación procedimental, por lo que referirse a un control como un objeto, ya que no hay objetos a priori en Peter, es imposible.

Lo que significa que no puedes cambiarlos sobre la marcha, y mucho menos vincularlos a los datos...

Esperamos... Estamos esperando a ver cómo resulta. Pero sería mejor que Peter generara ex4 en lugar de mqh para no tener que hurgar en ... de la almendra.

Es gracioso :) Todo el núcleo está lleno de objetos.

Alexey, prometiste ayudarme a probarlo. Tiene el mérito de que este editor vea la luz. Me has motivado a terminar el trabajo.

En cuanto ponga el editor (el martes), crearemos juntos un sencillo panel de botones, casillas de verificación y campos de entrada y lo conectaremos a un sencillo Asesor Experto. Y todas las preguntas serán respondidas de inmediato).

 
Aliaksandr Hryshyn:
Así que me gustaría una solución en MQL. Bien, tendré que hacerlo yo mismo :).

es hora de salir del cajón de arena :-) una espátula de bebé no es suficiente...

diferentes tareas requieren diferentes herramientas

por otro lado: se pueden clavar tornillos con un martillo (incluso con un microscopio)

Razón de la queja: