GUI à l'initiative de la foule. Test bêta ouvert. - page 18

 
Реter Konow:

Précisez : ces "nœuds" sont-ils des objets dynamiques et interactifs, de même que les liens entre eux ? Ce n'est pas juste un plan, n'est-ce pas ? Si c'est le cas, j'ai vu quelque chose de similaire dans le constructeur de stratégie graphique d'Andrei Barinov. C'est ce que vous voulez dire ?

La logique des liens entre les nœuds est-elle immuable et obéit-elle à des règles prédéfinies, ou s'agit-il d'un schéma frivole créé à votre guise ?

En principe, je ne vois pas de difficulté à le créer. C'est un travail de deux ou trois jours. Je n'ai pas besoin de code supplémentaire. Je le ferai moi-même, après les choses principales qui sont une priorité en ce moment.

Oui, c'est une représentation de la stratégie, mais pas celle d'Andrei Barinov, mes propres développements.

L'édition visuelle n'est pas attendue. Il y aura une génération automatique.

"Pas besoin de code supplémentaire." - Il n'y a donc pas forcément de stratégie sous forme de dossier. Vous voulez donc faire un analyseur syntaxique ? Nous en avons déjà un, pourquoi en avez-vous besoin :) ? Je peux vous envoyer des exemples de la façon de travailler avec la stratégie, c'est facile et pratique.

Voici un exemple :

#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;
  }

Quand une erreur se produit, il faut regarder le journal, tout y est en russe.

Et dans le code source, tout est décrit.

 
Aliaksandr Hryshyn:

Cet exemple ne reflète pas l'aspect que je veux lui donner, il montre la structure et certaines caractéristiques. Les nœuds ont également des informations à montrer. Direction ascendante.

Sans code supplémentaire, il est possible de lire ce type de structure à partir d'un fichier texte et d'obtenir toutes les informations la concernant.

J'aimerais avoir une belle présentation de cette structure.

Il nécessite la création dynamique d'éléments graphiques.

Voici un exemple de fichier avec ce type de structure, vous pouvez voir à quoi sert la structure :)

Ce fichier peut être lu par le code et il y a un accès facile à tous les paramètres de la structure. Tous les types de nœuds ne sont pas représentés ici.

Je n'insiste pas pour qu'on m'aide, je sais que cela demande un certain effort. Un problème de placement optimal des nœuds est nécessaire, il n'est pas bon de placer par liste en raison de la mauvaise lisibilité de la structure.

La structure ne comporte pas de boucles. Pour parcourir le graphe, vous pouvez utiliser la récursion en partant d'un sommet, marquer les nœuds où vous êtes déjà allé. Ensuite, vous choisissez n'importe quel nœud non marqué et définissez tous les nœuds à partir de celui-ci, qui forment un autre graphe non connecté au principal, etc.

J'aurais pu tout faire moi-même, mais il y a beaucoup d'autres tâches maintenant.

Ce n'est plus pour Peter. Ne le distrayez pas, s'il vous plaît.
C'est plus pour toi.

 
Aliaksandr Hryshyn:

Oui, c'est une présentation de la stratégie, mais pas par Andrei Barinov, son propre travail.

Aucun montage visuel n'est envisagé. Il y aura une génération automatique.

"Pas besoin de code supplémentaire." - Il n'y a donc pas forcément de stratégie sous forme de dossier. Vous voulez donc faire un analyseur syntaxique ? Nous en avons déjà un, pourquoi en avez-vous besoin :) ? Je peux vous envoyer des exemples de la façon de travailler avec la stratégie, c'est facile et pratique.

Voici un exemple :

Quand une erreur se produit, il faut regarder le journal, tout y est en russe.

Et dans la source, tout est décrit.

Je peux créer une solution générale pour tous ces schémas interactifs et flexibles, mais ce n'est pas pour tout de suite. Dans votre cas, vous avez besoin d'une solution spécifique, adaptée à une certaine idée. Je ne suis pas sûr de pouvoir vous aider. Vous devez d'abord créer la "mécanique" graphique des nœuds et des liens, puis l'affiner pour des idées spécifiques. Je peux créer la mécanique, mais un "réglage fin" supplémentaire réduira le champ d'application et en fera un projet individuel. Peut-être que Nikolay peut aider. Je suis très occupé en ce moment.

 
Реter Konow:

Je pourrais créer une solution générale, pour toutes sortes de schémas interactifs et flexibles, mais c'est loin d'être gagné. Dans votre cas, vous avez besoin d'une solution spécifique qui correspond à une idée précise. Je ne suis pas sûr de pouvoir vous aider. Vous devez d'abord créer la "mécanique" graphique des nœuds et des liens, puis l'affiner pour des idées spécifiques. Je peux créer la mécanique, mais un "réglage fin" supplémentaire réduira le champ d'application et en fera un projet individuel. Peut-être que Nikolay peut aider. Je suis très occupé en ce moment.

Bien.

 
Nikolai Semko:

Ce n'est plus pour Peter. Ne le distrayez pas, s'il vous plaît.
C'est plutôt chez toi.

Oui, c'est ça.

 
Aliaksandr Hryshyn:

Cet exemple ne reflète pas l'aspect que je veux lui donner, il montre la structure et certaines caractéristiques. Les nœuds ont également des informations à montrer. Direction ascendante.

Sans code supplémentaire, il est possible de lire ce type de structure à partir d'un fichier texte et d'obtenir toutes les informations la concernant.

J'aimerais avoir une belle présentation de cette structure.

Il nécessite la création dynamique d'éléments graphiques.

Voici un exemple de fichier avec ce type de structure, vous pouvez voir à quoi sert la structure :)

Ce fichier peut être lu par le code et il y a un accès facile à tous les paramètres de la structure. Tous les types de nœuds ne sont pas représentés ici.

Je n'insiste pas pour qu'on m'aide, je sais que cela demande un certain effort. Un problème de placement optimal des nœuds est nécessaire, il n'est pas bon de placer par liste en raison de la mauvaise lisibilité de la structure.

La structure ne comporte pas de boucles. Pour parcourir le graphe, vous pouvez utiliser la récursion en partant d'un sommet, marquer les nœuds où vous êtes déjà allé. Ensuite, vous choisissez n'importe quel nœud non marqué et définissez tous les nœuds à partir de celui-ci, qui forment un autre graphe non connecté au principal, etc.

Je pourrais tout faire moi-même, il y a juste beaucoup d'autres tâches maintenant.

Il existe des outils classiques pour la visualisation de graphes : http://www.graphviz.org/documentation/ aka https://en.wikipedia.org/wiki/DOT_(graph_description_language)

c'est-à-dire que vous devez générer un fichier .dot de votre graphique selon votre structure et lancer le moteur de rendu (il y en a plusieurs).

Si je ne me trompe pas, le fichier .dot peut être ouvert dans yEd(https://www.yworks.com/products/yed) pour le corriger avec la souris :-)

PS. La visualisation de graphiques n'est pas une tâche très facile, c'est le moins qu'on puisse dire :-) Il est toujours en train d'être résolu dans le monde...

 
J'aimerais donc une solution MQL. OK, je vais devoir le faire moi-même :).
 

Nous ne pouvons que deviner comment le code généré par l'outil de Peter sera lié au reste du programme.

"Kernel, markup" ..... pas de commentaire.

Je comprends les types de balises suivants : xml, html, json, xaml, etc.

Je comprends l'héritage, qui permet à la fois de modifier les contrôles sources et de souscrire à leurs événements sans plonger dans le code source des contrôles.

Peter utilise la programmation procédurale, donc se référer à un contrôle comme à un objet, puisqu'il n'y a pas d'objets a priori dans Peter, est impossible.

Ce qui signifie que vous ne pouvez pas les modifier à la volée, et encore moins les lier à des données...

Nous attendons... Nous attendons de voir comment cela se passe. Mais il serait préférable que Peter génère ex4 au lieu de mqh afin que nous n'ayons pas à fouiller dans ... noyau.

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

Nous ne pouvons que spéculer sur la façon dont le code généré par l'outil de Peter sera lié au reste du programme.

"Kernel, markup" ..... pas de commentaire.

Je comprends les types de balises suivants : xml, html, json, xaml, etc.

Je comprends l'héritage, qui permet à la fois de modifier les contrôles sources et de souscrire à leurs événements sans plonger dans le code source des contrôles.

Peter utilise la programmation procédurale, donc se référer à un contrôle comme à un objet, puisqu'il n'y a pas d'objets a priori dans Peter, est impossible.

Ce qui signifie que vous ne pouvez pas les modifier à la volée, et encore moins les lier à des données...

Nous attendons... Nous attendons de voir comment cela se passe. Mais il serait préférable que Peter génère ex4 au lieu de mqh afin que nous n'ayons pas à fouiller dans ... noyau.

C'est drôle :) Tout le noyau est rempli d'objets.

Alexey, tu as promis de m'aider à le tester. C'est tout à votre honneur que cet éditeur voie la lumière du jour. Vous m'avez motivé à finir le travail.

Dès que j'aurai mis en place l'éditeur (mardi), nous créerons ensemble un simple panneau de boutons, de cases à cocher et de champs de saisie et nous le connecterons à un simple conseiller expert. Et toutes les questions trouveront une réponse immédiate).

 
Aliaksandr Hryshyn:
J'aimerais donc une solution en MQL. OK, je vais devoir le faire moi-même :).

il est temps de sortir du bac à sable :-) une spatule de bébé ne suffit pas...

des tâches différentes nécessitent des outils différents

d'autre part : on peut enfoncer des vis avec un marteau (même avec un microscope)