Galerie d'interfaces utilisateur écrites en MQL - page 44

 

Juste un rappel : si vous trouvez des bugs - peu importe ce qu'ils sont - veuillez les signaler. Ceci est nécessaire pour améliorer le designer et le moteur.

J'aimerais souligner que les problèmes trouvés par les utilisateurs/testeurs peuvent avoir plusieurs raisons :

  • (1) Défaut de code/erreur.

//-----------------------------------------------------
  • (2 ) Installation incorrecte de la version release du builder et du moteur dans ME ou sur MT5.
  • (3 ) Code de balisage incorrect écrit par l'utilisateur.
  • (4 ) Compréhension incomplète des règles de fonctionnement de l'interface graphique.
  • (5 ) Mauvaise interprétation du comportement des éléments de l'interface.
  • (6 ) Paramètres ou propriétés mal définis.
//-----------------------------------------------------


Je suis d'accord pour dire que seul le premier point est à 100% de ma faute. Les autres sont également de ma faute, mais seulement à moitié. En effet, soit j'ai mal expliqué, soit j'ai oublié d'expliquer. Conscient de cela, je fais preuve d'une certaine autocritique dans l'évaluation des résultats des tests. Mais l'utilisateur doit aussi se rappeler que tout ce qui ne fonctionne pas n'est pas forcément dû à ma faute. Mais je crois que les personnes qui essaient ou testent le constructeur et le moteur ont le bon niveau de compétence. Ce billet n'est donc qu'une déclaration d'évidence.


 

Les membres du forum ont peut-être remarqué qu'il y a un certain nombre de fenêtres dans la dernière version.

En voici la liste :

1. Labarre des tâches (Taskbar) du concepteur, déjà familière.

2. Le menu contextuelprincipal du constructeur(Main Menu).

3. Le menu personnalisé, appelé à partir du menu principal.

4. Les fenêtres du menu personnalisé appelées à partir du menu personnalisé (trois fenêtres : fenêtres de démonstration, fenêtres de paramétrage, fenêtres de dialogue).

5. Cinq fenêtres de paramétrage : Paramètres principaux, Infocomptes, Paramètres d'entrée, Exemple de paramétrage 1, Exemple de paramétrage 2.

6. Six fenêtres de dialogue : Gestion risquée, Paramètres incorrects, Gagner 1000$, Traiter les données, Autoriser les changements, Désolé, cet ordre est bloqué.


Au total, nous obtenons 17 fenêtres.

Chaque fenêtre contient un nombre différent d'éléments. La plus petite peut contenir jusqu'à 10 éléments, la plus grande jusqu'à une centaine ou plus. Mais ce n'est pas la limite. Il peut y avoir 2 ou 3 fois plus de fenêtres. Bien que je n'aie pas testé le constructeur au maximum, je suis sûr qu'il peut faire face à cinq fois le nombre de fenêtres.

Mais je voulais dire autre chose. De nombreuses fenêtres peuvent être utilisées comme modèle. Tout d'abord, les fenêtres de réglages et de messages. La structure commune peut être héritée ou transmise entre les projets d'une personne ou de plusieurs. Après tout, le code de balisage est assez simple et la fusion n'est pas difficile.

Alors, à partir de quoi le projet de démonstration a-t-il été construit ? Je vous suggère de regarder dans le fichier

#include<(2)  KIB PROJECTS\(6) DEMO PROJECTS\Demo project 1.mqh>        подключенный в (1) KIB-source v1.mq5.

Vous y trouverez le code KIB de toutes les fenêtres de ce projet de démonstration.

Je montrerai le code de chaque fenêtre séparément, afin que ceux qui veulent le comprendre puissent le faire.

 

Menu contextuel principal :


//----------------------------------------------------------------------------------
NEW_WINDOW,  W_NAME, "Main context menu",    W_TYPE, MENU,   WINDOW_GROUP, MAIN_CONTEXT_MENU, 
//---------------------------------------------------------------------------------- 
 /**/ GROUP, "Menu items",
 //-----------------------------
 
__, M_ITEM, "MAIN MENU", POINTED,0, 
                       //-----------------------------
                       _,N_COLOR,(uint)C'240,240,240',
                       //-----------------------------
                       _,FONT_SIZE, 10, 
                       _,TEXT_STYLE, (int)FW_BOLD,
                       _,TEXT_FONT,"Arial_Black", 
                       _,text, N_COLOR,(uint)C'0,0,0',  
                       _,text, _A1_,_C2C, 
                       _,text, _C1_,-20, 
                       _,text, _A2_,_C2C,
                       
                       //-----------------------------
__, M_SEP,A, 
//---------------------------------------------------------------------------------- 
__, M_ITEM, "Bring window on top", TENURED,  _,PAR_TYPE,0, _,C_FUNCTION, BRING_WINDOW_ON_TOP,  _,N_LABEL,"::Images\\16x16\\Up.bmp", 
//----------------------------------------------------------------------------------
__, M_SEP,A, 
//----------------------------------------------------------------------------------
__,M_ITEM,"Standart Taskbar", OPENS_WINDOW, "Taskbar", _,N_COLOR, (uint)C'255,255,230', _,P_COLOR, (uint)C'255,255,220',_,NP_FRAME_COLOR, (uint)C'255,255,20',
//----------------------------------------------------------------------------------
 __, M_SEP,A, 
//---------------------------------------------------------------------------------- 
__,M_ITEM,"Custom Taskbar", _,N_COLOR, (uint)C'240,255,240', _,P_COLOR, (uint)C'230,255,230',_,NP_FRAME_COLOR, (uint)C'0,255,0',
//----------------------------------------------------------------------------------
 __, M_SEP,A, 
//----------------------------------------------------------------------------------
__,M_ITEM,"Custom Menu",   _,N_COLOR, (uint)C'240,240,255', _,P_COLOR, (uint)C'220,220,255',_,NP_FRAME_COLOR, (uint)C'120,120,255', 
//----------------------------------------------------------------------------------   
__, M_SEP,A,
//----------------------------------------------------------------------------------
Y_GAP,20, 
//----------------------------------------------------------------------------------
__, M_SEP,A, 
//----------------------------------------------------------------------------------
__, M_ITEM,"Sounds menu",
//----------------------------------------------------------------------------------
__, M_ITEM,"Color Picker",
//----------------------------------------------------------------------------------
__, M_ITEM,"Frames",
//----------------------------------------------------------------------------------
__, M_ITEM,"Fonts menu",
//----------------------------------------------------------------------------------
__, M_ITEM,"Icons", 
//----------------------------------------------------------------------------------
__, M_SEP,A, 
//----------------------------------------------------------------------------------
__, M_ITEM,"Save project and print the API file",C_FUNCTION, SAVE_PROJECT, 
//----------------------------------------------------------------------------------    
                  _,N_LABEL,"::Images\\16x16\\Save.bmp", 
//----------------------------------------------------------------------------------                  
                  _,N_COLOR, (uint)C'255,230,230', _,NP_FRAME_COLOR, (uint)C'255,70,70', 
//----------------------------------------------------------------------------------                  
                  _,P_COLOR, (uint)C'255,220,220', 
//----------------------------------------------------------------------------------
GAP,30,
//----------------------------------------------------------------------------------
__, M_SEP,A,
//----------------------------------------------------------------------------------
__, M_ITEM,"About the program",_,N_LABEL,"::Images\\16x16\\Help symbol.bmp",
//----------------------------------------------------------------------------------
END_GROUP,
//---------------------------------
i,AT, _X2X,"MF",3, _Y2Y,"MF",3,
//---------------------------------
i, TENURED, 
//----------------------------------------------------------------------------------
END_WINDOW, 
 

//-------------------------------------------------------------------- 
NEW_WINDOW,  
//-----------------------------
W_NAME, "Custom Menu",    
//-----------------------------
W_TYPE, MENU,   
//-----------------------------
WINDOW_GROUP, MAIN_CONTEXT_MENU,
//-----------------------------

//------------------------------------------------------------------- 
GROUP, "Menu items",
//-----------------------------
__, M_ITEM, "MY MENU", POINTED,0, 
                       //-----------------------------
                       _,FONT_SIZE, 9, 
                       _,TEXT_FONT,"Arial_Black", 
                       _,text, _A1_,_C2C, 
                       _,text, _C1_,-30, 
                       _,text, _A2_,_C2C,
                       _,text, _C2_,0, 
                       //-----------------------------
//-------------------------------------------------------------------------------
__, M_SEP,A, 
//-------------------------------------------------------------------------------
__, M_ITEM, "Bring window on top", TENURED,  _,PAR_TYPE,0, _,C_FUNCTION, 10000013,  _,N_LABEL,"::Images\\16x16\\Up.bmp", 
//-------------------------------------------------------------------------------
__, M_SEP,A, 
//-------------------------------------------------------------------------------
__, M_SEP,A, 
//-------------------------------------------------------------------------------
__, M_ITEM, "Show/Hide Taskbar", _,N_LABEL,"::Images\\16x16\\Toolbox.bmp", 
//-------------------------------------------------------------------------------

//-------------------------------------------------------------------------------
#include <(2) KIB PROJECTS\(1) Must be included\User section\My menu section.mqh> 
//-------------------------------------------------------------------------------
 END_GROUP,
 
//----------------------------------------------------------
//*DO NOT CHANGE GROUP POSITION-----------------------------
//----------------------------------------------------------
i, AT,_X2X,"MF",3, _Y2Y,"MF",3, 
//---------------------------------------------------------- 
END_WINDOW, 
//-------------------------------------------------------------------------------
 

//----------------------------------------------------------------------------------
NEW_WINDOW,  W_NAME, "Demo windows",    W_TYPE, MENU, 
//----------------------------------------------------------------------------------
 GROUP, "Menu items",
 //-----------------------------
 __, M_ITEM, "Settings windows",
//------------------------------ 
 __, M_ITEM, "Dialog windows",
 //-----------------------------
 END_GROUP,
//------------------------------
END_WINDOW,
//----------------------------------------------------------------------------------
 


//----------------------------------------------------------------------------------
NEW_WINDOW,  W_NAME, "Settings windows",    W_TYPE, MENU, 
//----------------------------------------------------------------------------------
 GROUP, "Menu items",
 //-----------------------------
 __, M_ITEM, "Main Parameters", 
//----------------------------- 
 __, M_ITEM, "Account info:", 
//----------------------------- 
 __, M_ITEM, "Input parameters:",
//----------------------------- 
 __, M_ITEM, "Settings example 1",
//----------------------------- 
 __, M_ITEM, "Settings example 2", 
//-----------------------------
 END_GROUP,
//-----------------------------
END_WINDOW,
//----------------------------------------------------------------------------------
 


//----------------------------------------------------------------------------------
NEW_WINDOW,  W_NAME, "Dialog windows", W_TYPE, MENU, 
//----------------------------------------------------------------------------------
GROUP, A,
//-----------------------------
 __, M_ITEM, "Risky managment!", 
//-----------------------------
 __, M_ITEM, "Incorrect settings", 
//-----------------------------
 __, M_ITEM, "Winning 1000$",   
//-----------------------------
 __, M_ITEM, "Processing the data...",   
//-----------------------------
 __, M_ITEM, "Allow changes",   
//-----------------------------
 __, M_ITEM, "Sorry, this order is blocked.",  
//-----------------------------
 END_GROUP,
//-----------------------------
END_WINDOW,
//----------------------------------------------------------------------------------
 



//DECLARE A NEW WINDOW
//----------------------------------------------------------------------------------
NEW_WINDOW,  
//------------------------------------------------------
/*SET WINDOW TYPE*/         W_TYPE, SETTINGS,  
//------------------------------------------------------
/*WRITE WINDOW'S NAME*/     W_NAME, "Settings example 1",
//------------------------------------------------------
/*POINT TO WINDOW'S ICON*/  W_ICON, "::Images\\16x16\\Wrench.bmp",  
//------------------------------------------------------

//------------------------------------------------------
/*SET WINDOW'S ADDITIONAL PROPERTIES*/   
//----------------------------------------------------------------------------------
/*WINDOW OPENS AT START*/   //OPEN_ON_INIT,  /*(OOI)*/

/*MARGINS OF THE WINDOW*/   MARGINS, 20,20,/*Х, Y*/
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------------------------------
__,  BUTTON,"Start",                 PARAM_TYPE,   _BOOL,  _,A_TEXT, "Stop",   _,FIC,  GAP, 75,                                 
//----------------------------------------------------------------------------------------------------------
     CHECKBOX,"Set an option",       A_TEXT, "Option is set",                   BREAK_ROW_LINE,
//----------------------------------------------------------------------------------------------------------
GAP, 20,
//----------------------------------------------------------------------------------------------------------
__, CHECKBOX, "Set another option",              D_LIST, "D_LIST 1",  W,150,   BREAK_ROW_LINE,
//----------------------------------------------------------------------------------------------------------
GAP, 20,
//----------------------------------------------------------------------------------------------------------
__, CHECKBOX, "And another option",              C_LIST, "C_LIST 1",  W,150,   BREAK_ROW_LINE,
//----------------------------------------------------------------------------------------------------------
GAP, 50,
//---------------------------------------------------------------------------------------------------------- 
  
//----------------------------------------------------------------------------------------------------------

//----------------------------------------------------------------------------------------------------------
__,  BOARD, "Spin the value ",   GAP, 100,  BOARD, "Roll the value ",
//----------------------------------------------------------------------------------------------------------

//----------------------------------------------------------------------------------------------------------
__,  S_EDIT,"Spin the value",             V_STEP,1.7,
                                         //-------------------
                                         _,VALUE_TYPE, _DOUBLE,  
                                         //-------------------  
                                         _,READ_ONLY,
                                         //------------------- 
                                         _,DIGITS,3,                
//---------------------------------------------------------------------------------------------------------- 
     H_SLIDER,"Roll the value",          
                                         W,170,
                                         //-------------------
                                         _,V_CURRENT,  35, 
                                         //-------------------
                                         _,V_MIN,    0,  
                                         //-------------------
                                         _,V_MAX,    100,  
                                         //-------------------
                                         _,V_STEP,   1,   
                                         //-------------------
                                         _,SHOW_WIDGET, WIDGET_ON_TOP, 
                                         //-------------------
                                         BREAK_ROW_LINE,
                                         //-------------------
END_GROUP,
//----------------------------------------------------------------------------------------------------------
i, AT, _X2X, "MF", 20, _Y2Y, "MF", 30,
//---------------------------------------
i, X_GAP, 55,
i, Y_GAP, 10,
//---------------------------------------
SWITCH, "R_BUTTON 1",   "R_BUTTON 2", END,
//---------------------------------------
SWITCH, "_BUTTON 1",   "_BUTTON 2", END,
//------------------------------------------------------ 
GROUP, A,
__,L_ITEM, "L_ITEM  1",ON,
__,L_ITEM, "L_ITEM  2",
__,L_ITEM, "L_ITEM  3",
__,L_ITEM, "L_ITEM  4",
__,L_ITEM, "L_ITEM  5",
__,L_ITEM, "L_ITEM  6",
__,L_ITEM, "L_ITEM  7",
__,L_ITEM, "L_ITEM  8",
__,L_ITEM, "L_ITEM  9",
__,L_ITEM, "L_ITEM  10",
__,L_ITEM, "L_ITEM  11",
__,L_ITEM, "L_ITEM  12",
__,L_ITEM, "L_ITEM  13",
__,L_ITEM, "L_ITEM  14",
__,L_ITEM, "L_ITEM  16",
__,L_ITEM, "L_ITEM  17",
__,L_ITEM, "L_ITEM  18",
__,L_ITEM, "L_ITEM  19",
__,L_ITEM, "L_ITEM  20",

END_GROUP,
//-------------------------
i, AT, LEFT_TOP, 0,0,
i, IN,"D_LIST 1",
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, "V2 group",

__, L_ITEM,"Times_New_Roman",
__, L_ITEM,"Arial",
__, L_ITEM,"Tahoma",
__, L_ITEM,"Dali",
__, L_ITEM,"BatangChe",
__, L_ITEM,"Consolas",
__, L_ITEM,"Courier",
__, L_ITEM,"Courier_New",ON,
__, L_ITEM,"DFKai_SB",
__, L_ITEM,"DotumChe",
__, L_ITEM,"FangSong",
__, L_ITEM,"Fixedsys",
__, L_ITEM,"GulimChe",
__, L_ITEM,"GungsuhChe",
__, L_ITEM,"KaiTi",

END_GROUP,
//------------------
i, IN,"C_LIST 1",
//------------------
i, AT, LEFT_TOP, 1,1,
//----------------------------------------------------------------------------------


GROUP, A,
//----------------------------------------------------------------------------------------------------------
__, CHECKBOX, "Don't show this dialog", GAP, 50, D_BUTTON, "Apply", N_FRAME_COLOR, (int)C'51,153,255', _,CWIP, GAP,7,  D_BUTTON, "Close", _,CWIP, BREAK_ROW_LINE,
//---------------------------------------------------------------------------------------------------------- 
END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 20, _Y2H, "Roll the value",  20,
//----------------------------------------------------------------------------------


//--------------------------------------------------------------------------------------------------+
GROUP,A,__, G_FRAME,"Group frame 1", ON_TOP,"Start",   R_SIDE, "Set an option",  B_SIDE,"C_LIST 1", END_GROUP,
//--------------------------------------------------------------------------------------------------+
//--------------------------------------------------------------------------------------------------+
GROUP,A,__, G_FRAME,"Group frame 2", ON_TOP,"Spin the value ",  R_SIDE, "Roll the value",  B_SIDE,"Roll the value",END_GROUP,
//--------------------------------------------------------------------------------------------------+
//------------------------------------------------------
//FINISH THE WINDOW BY KEYWORDS END_WINDOW,
//------------------------------------------------------
END_WINDOW,
//----------------------------------------------------------------------------------
 
Je poursuivrai un peu plus tard.
 
J'ai téléchargé un gif, je ne sais pas si c'est un problème avec mon fonctionnement. Je le signale simplement.