Mon approche. Le noyau est le moteur. - page 127

 
Vasiliy Sokolov:

Peter, je suis désolé, mais votre travail n'est pas accepté, car ce que vous avez envoyé est un travail de bidouille.

...

Pas encore de crédit. J'attends vos révisions. Et pas de rendu 3D jusqu'à ce que vous ayez trouvé la solution !

Pourquoi tu harcèles Peter ? C'est un artiste libre - ce qu'il veut, c'est ce qu'il fait. Et si c'est compliqué et ne correspond pas à son concept de pensée, alors ce n'est pas voulu et pas fait, mais remplacé par quelque chose de simple, voulu et fait...

 
Artyom Trishkin:

Pourquoi tu fais honte à Pyotr ? C'est un artiste libre - ce qu'il veut, c'est ce qu'il fait. Et si c'est compliqué et ne correspond pas à sa conception de la pensée - alors ce n'est pas voulu et pas fait, mais remplacé par quelque chose de simple, voulu et fait...

Mais lui (Pyotr) veut être sollicité avec son core-engine, prendre des commandes, etc... Ici, Vassily lui a donné une petite touche de réalité.

Et, Pyotr, qu'en est-il du panneau pour Alexandre ?

 
Artyom Trishkin:

Pourquoi tu harcèles Peter ? C'est un artiste libre - ce qu'il veut faire, c'est ce qu'il fait. Et si c'est compliqué et que cela ne correspond pas à sa conception de la pensée, il ne veut pas le faire, mais il lui substitue ce qu'il veut simplement faire...

Gee, je sens votre regard sournois :)

Je donne une fessée parce que l'homme s'est levé et a affirmé que n'importe qui peut créer une interface graphique pour son programme en se basant sur sa solution. Il s'est porté volontaire pour le prouver et a proposé de vérifier lui-même sa solution. Je l'ai vérifié et le résultat a été un cauchemar total. Alors, comme on dit, si vous vous dites motard, montez dans le camion ;)

 
Il y a une grande différence entre résoudre des problèmes imaginaires et des tâches spécifiques à des tiers. Il a été dit que ce moteur n'est que pour le deuxième cas. Afin d'offrir une solution efficace et universelle à ce deuxième cas, la solution doit être basée sur des paradigmes de programmation de base. Jusqu'à présent, je ne vois pas l'implémentation correcte de ces paradigmes dans la solution de Peter. Au contraire, le problème "simple" spécialement formulé a mis en évidence tout un enchevêtrement de problèmes internes et l'obscurité totale de toute la solution proposée.
 
Vasiliy Sokolov:
Il y a une grande différence entre résoudre des problèmes imaginaires et des tâches spécifiques à des tiers. Il a été précisé que ce moteur n'est que pour le deuxième cas. Afin de fournir une solution efficace et universelle à ce deuxième cas, il est nécessaire que la solution soit basée sur des paradigmes de programmation de base. Jusqu'à présent, je ne vois pas d'implémentation correcte de ces paradigmes dans la solution de Peter. Au contraire, le problème "simple" spécialement formulé a mis en évidence tout un enchevêtrement de problèmes internes et l'obscurité totale de toute la solution proposée.

Eh bien, vous êtes un maître de l'exagération...

Tous ces "problèmes", sont résolus en une seule fois. Je viens de créer la technologie, et il n'y avait personne avec qui la tester. Et vous êtes celui qui a une épée à la main...)

Tout cela est absurde, sauf peut-être pour limiter le nombre de lignes. Je n'ai pas encore réussi à résoudre ce problème.


Les ordres ne sont pas fermés, car j'ai oublié comment vérifier si un ordre est ouvert ou fermé. Et vous avez créé une "tragédie")).

 
Реter Konow:
Les ordres ne se ferment pas car j'ai oublié comment vérifier si un ordre est ouvert ou fermé. Et vous avez créé une "tragédie".))

PositionSelectByTicket

 
Konstantin Nikitin:

PositionSelectByTicket

Merci.))

Il y a une ancienne tragédie grecque qui se déroule ici...)) C'est même drôle qu'il ne comprenne pas combien il est facile de résoudre tous les problèmes qu'il a énoncés. Tout sauf un nombre illimité de lignes de tableau.

 
Реter Konow:

Eh bien, vous êtes un maître de l'exagération...

...

Mec, tu ne comprends vraiment pas ce qui se passe ou tu essaies de faire des économies de cette manière ?

Dans tout panneau, la chose fondamentale et la plus difficile est l'affichage de la cohérence. Si un ordre est ouvert - il doit être affiché, s'il n'est pas dans l'onglet de transaction, il ne doit pas être dans le panneau non plus. C'est élémentaire et "très simple" sur le plan conceptuel. Mais pour que cela soit "très simple", le panel doit être basé sur un modèle d'état. Vous n'avez rien de tel, mais une base de données locale de courbes non cohérentes sur des chaînes de caractères insérées dans des objets utilisateur :

Et vous êtes maintenant en train d'essayer de nous prouver qu'il n'y a pas de problème, que tout est parti de rien. Les commandes non affichables dans votre tableau sont correctes.. Que les commandes qui sont sur votre table, mais qui sont en fait closes depuis longtemps, sont également normales. Et en général, tout est tellement normal et bon, sauf que le nombre de postes est limité à 20.

 
Vasiliy Sokolov:

Je vais clarifier la tâche une fois de plus, afin qu'il n'y ait pas de questions :

  1. Le tableau est dynamique et présente les mêmes ordres que dans l'onglet Commerce. S'il n'y a pas de commandes sur l'onglet, votre tableau ne les affiche pas non plus.
  2. Le nombre d'ordres affichés dans votre tableau doit être quelconque. Il n'y a pas de limitations venant d'en haut.
  3. L'ouverture d'un ordre via la fenêtre de dialogue standard devrait faire apparaître l'ordre dans votre tableau. La clôture de la commande par des moyens standards devrait entraîner la disparition de la commande dans votre table.
  4. Un état non cohérent n'est pas acceptable! Si votre tableau indique une chose, et que l'onglet Commerce en indique une autre, il s'agit d'une erreur.

Je dois vous donner un coup de pouce pour l'instant. Nous attendons que vous le répariez. Et pas de rendu 3D jusqu'à ce que vous ayez trouvé la solution !

  1. Pour ce faire, l'utilisateur doit écrire une boucle sur les ordres sur ticks ou timers, et vérifier leurs ticks avec les ticks écrits dans le tableau. S'il n'y a pas de ticket dans le tableau, cela signifie que la commande vient d'être ouverte, et il faut alors appeler le E_Main_form_1__PnL(OrderTicket(),OrderProfit());
  2. Cette question est techniquement très compliquée. Jusqu'à présent, le nombre de rangs est limité à l'avance. Mais cela peut être bien plus que 20. Nous pouvons faire encore 200.
  3. La clôture de l'ordre par la fenêtre standard, tout comme à l'ouverture, sera fixée dans la boucle sur l'événement tick ou timer. Et s'il y a un ticket dans le tableau des commandes ouvertes qui n'existe plus, vous devez appeler la fonction
    E_Main_form_1_CLOSE_ROW___Orders_table(ticket);
    

4. Si ces boucles d'ordre sont écrites correctement, le tableau fonctionnera correctement.

J'ai tout simplement oublié comment gérer correctement les commandes, et je n'ai donc pas implémenté ce mécanisme correctement. Par conséquent, le tableau n'a pas fonctionné correctement.

Mais cela ne signifie pas que le tableau dynamique lui-même ne fonctionne pas.

 
Реter Konow:

Merci.))

Il y a une ancienne tragédie grecque en cours ici...) C'est même drôle qu'il ne comprenne pas combien il est facile de résoudre tous les problèmes qu'il a énoncés. Tout sauf un nombre illimité de lignes de tableau.

Je ressens juste un gros tas de négligence envers vous, envers votre code et tout ce que vous faites, en quelque sorte pour les gens, mais dès qu'il s'agit de détails, les conneries commencent. Faites une chose qui est petite mais bonne et de haute qualité. Vous dites que tout est simple à résoudre, élémentaire. Mais pour une raison quelconque, vous avez trouvé une solution, dans laquelle il n'y a rien. Qu'est-ce qui vous a empêché de faire tous ces simples jetons en quinze jours ?

Désolé pour la négativité. C'est juste que tu m'as déçu. J'espérais voir plus et mieux. Veuillez corriger votre démo. Faites en sorte qu'il soit bon, de haute qualité, conforme à la demande et sans ces "c'est élémentaire, il faut une petite retouche ici". Proposez une solution hors des sentiers battus, qui pourrait être contestée.