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

 
Vasiliy Sokolov:

...

3) Oui, l'adressage par nom, vous devez spécifier tous les paramètres. Mais, surtout, il n'existe pas de modèle d'événement unique et monolithique. Si vous voulez votre propre modèle, vous êtes le bienvenu. Il est élémentaire de le faire. Mais vous ne pouvez pas vous passer de minuterie.

La file d'attente d'événements est un algorithme généralisé pour le traitement fiable des événements. L'utilisateur ne compose rien ; les événements qu'il génère arrivent d'eux-mêmes dans la file d'attente. La file d'attente elle-même ne comporte qu'un seul événement dans 99,9 % des cas.

Eh bien, l'implémentation est similaire à la mienne, mais la mienne est beaucoup plus simple pour l'utilisateur.


  • E_Window_Element(value) ; Passage de la valeur à l'élément :
  • E_Window_Element() ; Obtenez la valeur de l'élément :

  • E_Window_Element(M_COLOR, value) ; Définit la couleur de base.
  • E_Window_Element(T_COLOR, value) ; Définit la couleur du texte.
  • E_Window_Element(F_COLOR, value) ; Définit la couleur du cadre.


  • E_Window_Element(STATE, ON) ; Définit l'état cliqué.
  • E_Window_Element(STATE, OFF) ; Définit l'état libéré.
  • E_Window_Element(STATE, LOCKED_ON) ; Définit l'état verrouillé.
  • E_Window_Element(STATE, LOCKED_OFF) ; Définit l'état poussé.
  • E_Window_Element(STATE, ON_H) ; Définit l'état lorsqu'on clique sur le focus.
  • E_Window_Element(STATE, OFF_H) ; Fixe l'état poussé au focus.


  • W_Window_name() Ouvrir une fenêtre.
  • W_Window_name(close) Fermer la fenêtre.


Les noms des wrappers des éléments de formulaire sont imprimés automatiquement dans le fichier de connexion, et entrent immédiatement dans l'intellisense.

Vasily, pouvez-vous utiliser les noms intellisense des éléments et des fenêtres dans votre programme MQL ?


ZS Vasily, remarque combien d'actions un wrapper fait par élément. Et il ne prend au maximum que DEUX paramètres. Ou aucun.

 
Igor Makanu:

... J'ai eu un fiasco total avec dataGridView - je ne peux pas écrire dedans plus de 3-5 secondes) le tableau 10x11 est déjà critique, bien que le formulaire avec le tableau fonctionne dans un thread séparé.

SZY : J'ai attaché une StringGrid à MT4 il y a 5 ans en Delphi, je n'ai eu aucun problème avec elle. Elle était si facile à utiliser, cependant avec le dataGridView de Microsoft j'ai un problème. Aujourd'hui je vais essayer d'expérimenter avec SourceGrid, selon les retours d'information il est plus rapide que dataGridView.

Essayez aussi l'infragistics ultragrid. C'est la chose la plus cool. S'il y a un gui qui peut améliorer vos performances de trading, c'est bien ce tableau.

 
Dmitry Fedoseev:

...

Dmitry, il existe un modèle architectural appelé MVC. L'approche que j'ai proposée correspond exactement à cela. Ainsi, lorsque vous le critiquez, vous critiquez MVC en premier lieu et des solutions comme Angular, ASP Net MVC, Ruby on Rails et d'autres produits, non dignes de votre attention d'expert, faits par le "cul" selon vous. Je pense donc qu'il devrait être clair pour vous pourquoi je ne veux pas me disputer avec vous et prouver la validité de ma décision - c'est tout simplement inutile.

 

Dans mon cas, l'analogue de l'enregistrement

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

est l'entrée

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

Dans ce cas, je n'ai pas besoin de me souvenir du nom d'un élément particulier. J'écris E_ et une liste d'éléments s'affiche, je tape les premières lettres du nom de la fenêtre et cela m'amène à la liste d'éléments pour une fenêtre particulière, puis je sélectionne l'élément désiré dans la liste.

 

Je me demande comment vous pouvez connecter un tableau d'au moins 100 cellules sans intelligences ? Après tout, vous devez vous souvenir des noms de toutes les cellules.

Dans mon cas, chaque cellule est automatiquement nommée par le nom de la ligne et de la colonne, et sa sélection se fait via des intelligences. Dans ta version, Vasiliy, tu dois savoir exactement comment s'appelle chacune des 100 cellules.

Et si j'ai 10 fenêtres complexes avec beaucoup d'éléments et de grands tableaux, combien de temps faut-il pour écrire les noms des éléments dans les appels ? Je serais épuisé).


Et si les noms sont les mêmes entre les différentes fenêtres ?

 
Реter Konow:

Je me demande comment vous pouvez connecter un tableau d'au moins 100 cellules sans intellisense ?

Je ne sais pas Peter, parce que intellisense dans MetaEditor fonctionne bien avec toutes les variables en C#, y compris les tableaux, les structures, les types de base, les méthodes et même les classes.

 
Vasiliy Sokolov:

Je ne sais pas Peter, parce que intellisense dans MetaEditor fonctionne bien avec toutes les variables en C#, y compris les tableaux, les structures, les types de base, les méthodes et même les classes.

Affiche-t-il les noms des éléments ?

 
Реter Konow:

Affiche-t-il les noms des éléments ?

C'est le cas, avec des prototypes :

:))

 
Vasiliy Sokolov:

Bien sûr, avec des prototypes :

:))

Vasily, tu ne comprends pas.

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

Pour définir la valeur d'un élément, vous envoyez son nom. Le champ "Ask" porte le nom "AskLabel". Où l'intellisense indique-t-il le nom de l'élément ?

 
Реter Konow:

Vasily, tu ne comprends pas.

Pour définir la valeur d'un élément, vous envoyez son nom. Le champ "Ask" porte le nom "AskLabel". Où l'intellisense indique-t-il le nom de l'élément ?

Peter, on dirait que tu cherches quelque chose pour te plaindre.

La réponse est non, l'informateur n'a jamais travaillé avec un élément de texte et ne le fera jamais. Mais si c'est juste une question, ce n'est pas un problème du tout de faire des interludes sur les mêmes définitions.

s.s. Au fait, ça ne marchera pas pour vous non plus :

__, EDIT,"Set lot", W,150,_,H,60,_,V_CURRENT,"1.00", 
Raison: