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

 

J'offre à la communauté un constructeur d'interface graphique pour les programmes MQLpour une utilisation gratuite.

  • Le constructeur de l'interface graphique est un fichier .ex5 fermé, afin de centraliser son développement et d'éviter toute confusion lors de la distribution des versions.
  • Le moteur GUI est attaché par un fichier ouvert .mqh, mais ! -Je ne recommande pas de modifier le code par vous-même, sans me consulter, car cela peut entraîner des erreurs et une perte de fonctionnalité.
  • Veuillez m'informer des bogues et des défauts.

Je vous serai reconnaissant de votre participation constructive.

P.S. Le projet est financé par le public, ce qui signifie que nous le réaliserons ensemble.

//-----------------------------------------------------------------------------------------------------------------

CONSTRUCTION :

  • KIB.ex5 - Constructeur d'interface graphique.
  • Fichier GUI_DRIVE.mqh - moteur GUI dans l'application utilisateur. Il est relié par le dossier.
  • Indicateur KIB-source.mqh - émetteur de code de marquage des fichiers du projet de l'utilisateur au constructeur.

LES INSTRUCTIONS D'INSTALLATION :

Étape 1 - déballage :

  • Placez le conseiller KIB.ex5 dans le dossier Expert. (Ne pas placer dans des sous-dossiers).
  • Placez le fichier GUI_DRIVE.mqh dans le dossier include. (Ne pas placer dans des sous-dossiers).
  • Placez l'indicateur KIB-source.mqh dans le dossier Indicateurs. (Ne pas placer dans des sous-dossiers).

Étape 2 - Installer les fichiers :

  • Installez le conseiller expert KIB.ex5 sur un graphique libre.
  • Ouvrez l'indicateur KIB-source.mqh dans MetaEditor et compilez-le pour obtenir un fichier .ex5.
  • Installez le fichier résultant KIB-source.ex5 sur le même graphique que le conseiller expert KIB.ex5.

Étape 3 - préparation au travail :

  • Créez un dossier "MyProjects" pour votre nouveau projet GUI à l'intérieur du dossier include.
  • Créez le fichier Window_1.mqh pour écrire le balisage. Ouvrez le fichier.
  • Prescrire la connexion de ce fichier au bas de KIB-source.mqh à l'intérieur de l'initialisation du tableau "source" (#include <MyProjects\Window_1.mqh>).

Étape 4 - Démarrage :

  • Écrivez le code le plus simple :

//----------------------------------------------------------------------------------
NEW_WINDOW,  W_NAME, " Hello World! ",  W_ICON, "::Images\\16x16\\Folder.bmp",  W_TYPE, SETTINGS, ALWAYS_ON_TOP,
//----------------------------------------------------------------------------------
GROUP, "Кнопка",

__,BUTTON, "Hello World!",

END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//----------------------------------------------------------------------------------
END_WINDOW,

  • Compilez le fichier KIB-source.mqh. Une fenêtre avec un bouton devrait apparaître sur le graphique.

Étape 5 - Conception de l'interface utilisateur graphique :

  • Dans la branche supplémentaire, des tutoriels et des exemples de code seront fournis pour aider à créer l'interface graphique souhaitée.

Étape 6 - Enregistrez l'interface graphique personnalisée :

  • Appelez le menu contextuel du constructeur en double-cliquant sur le graphique.
  • Sélectionnez le dernier élément "Enregistrer le projet et imprimer le fichier API".
  • Le dossier Files contient deux fichiers : "CORES.mqh" et "Internal_API.mqh".
  • Déplacez manuellement ces fichiers dans le dossier MesProjets à partir du dossier "Fichiers".
  • Le projet est sauvegardé.

Étape 7 - Connecter l'interface utilisateur au conseiller expert :

//+------------------------------------------------------------------+
//|                                                   GUI Expert.mq5 |
//|                                                      Peter Konow |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Peter Konow"
//--------------------------------------------------------------------
#include<GUI_DRIVE.mqh>
#include<MyProject_1\CORES.mqh>
#include<MyProject_1\Internal_API.mqh> 
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   //--- create timer
   EventSetMillisecondTimer(25);
   //-------------------------
   D_OnInit();
   //-------------------------
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy timer
   EventKillTimer();
   //-------------------------
   D_OnDeinit();
   //-------------------------
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   //ВАШ КОД-----------------
   //ВАШ КОД-----------------
   //ВАШ КОД-----------------
   //ВАШ КОД-----------------
   //ВАШ КОД-----------------
   //УСТАНОВИТЬ ВЫЗОВ В САМОМ НИЗУ, ПОД ПОЛЬЗ.КОДОМ.------------------
   //---------------------------
   RMSG(1);
   //---------------------------
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   //УСТАНОВИТЬ ВЫЗОВ НА САМОМ ВЕРХУ, НАД ПОЛЬЗ.КОДОМ.---------------
   //----------------------------------------------------------------
   D_OnChartEvent(id,lparam,dparam,sparam);
   //----------------------------------------------------------------
  }
//+------------------------------------------------------------------+


Étape 8 - réception d'événements à partir des commandes :

  • Les événements arrivent à une fonction dans le fichier "Internal_API.mqh".

//========================================================================================================= 
void On_Gui_Event(int Element, string value, double Magic = 0)
{
 string action = value, selected_option = value; //DON'T CHANGE THIS LINE
//------------------------------------
 switch(Element)
   {
//=====================================================================================================================
//WINDOW:   Checkboxes | element: CHECKBOX  | name: Checkbox 1  |  Location: Window's Main Frame
//=====================================================================================================================
case CHECKBOX3___Checkbox_1:
               //------------------------------------------------------------------------------------------------------
               //What to do when checkbox checked or unchecked?
               //------------------------------------------------------------------------------------------------------
               switch((int)action)
               {
                case checked:     break;
  
                case unchecked:     break;
               }
               //------------------------------------------------------------------------------------------------------
               //Your comment:
               //------------------------------------------------------------------------------------------------------
               break;
  
...

  • Prescrire dans ses cas les réactions requises de la fonctionnalité utilisateur.


HH. Il existe une version compilée du constructeur avec des ressources intégrées sur le blog :https://www.mql5.com/ru/blogs/post/733356.

Cette version n'a que le code source ouvert, car les ressources sont situées dans différents dossiers (sons et sous-dossiers avec les images) et il n'y a aucun sens à tout transférer ici avec une énorme quantité d'explications.

Документация по MQL5: Операции с массивами / ArrayInitialize
Документация по MQL5: Операции с массивами / ArrayInitialize
  • www.mql5.com
Функция ArrayResize() позволяет задать для массива размер с некоторым запасом для его будущего увеличения без физического перераспределения памяти. Это сделано для улучшения быстродействия, так как операции по распределению памяти...
Dossiers :
KIB-source.mq5  132 kb
GUI_DRIVE.mqh  2013 kb
KIB.zip  1470 kb
 

Code fermé -> Marché.

Ouvrir le code -> Forum.

 
Vladimir Karputov:

Code fermé -> Marché.

Ouvrir le code -> Forum.

Ok. Je vais poster le code open source du constructeur. Mais, j'ai besoin de quelques jours pour le brosser. Acceptez-vous d'attendre ?

 
Реter Konow:

Bien. Je vais publier le code open source du constructeur. Mais, j'ai besoin de quelques jours pour le passer au peigne fin. Acceptez-vous d'attendre ?

Votre thème ne va nulle part.

 
"Shaw ? Encore ? !)
 
Dmitriy Skub:
"Quoi ? Encore ? !)
Je ne l'ai pas encore peigné, attendez.
 
Реter Konow:


Au fait, essayez de créer un projet:


 
Vladimir Karputov:

Au fait, essayez de créer un projet :


Ok. Juste pour clarifier. Le code du constructeur ou du moteur lui-même représente plus de 20 000 lignes de code. Dans ce fil de discussion, je voulais apprendre aux gens comment créer une interface graphique dans un langage de balisage, et non comment comprendre le code du constructeur lui-même. C'est pourquoi je veux présenter le code du constructeur dans un seul fichier, pour la commodité de l'utilisateur.

 
Реter Konow:

Très bien. Juste pour clarifier. Le code du constructeur ou du moteur lui-même représente plus de 20 000 lignes de code. Dans ce fil de discussion, je voulais apprendre aux gens comment créer une interface graphique dans un langage de balisage, et non comment comprendre le code du constructeur lui-même. C'est pourquoi je veux afficher le code du constructeur dans un seul fichier, pour la commodité des utilisateurs.

Non. De cette façon, chaque vendeur de marché va créer sa propre branche comme "Test my best EA".

 
Vladimir Karputov:

Non. C'est comme ça que chaque vendeur du marché va commencer son propre fil de discussion "Testez ma meilleure EA".

(gloussements) Ok. Peu importe. Je vais le poster tel quel.

 
Реter Konow:

P.S. Le projet est crowdsourcé, ce qui signifie que nous le réalisons ensemble.

y a-t-il ou y aura-t-il du crowdsourcing dans le projet?

Je pense que vous recherchez des testeurs, et non des personnes qui s'associeront pour "finir le code" jusqu'à la production (même si le code est gratuit).