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

 

Code :

Option 1 :


//------------------------------------------------------
GROUP, A,
 
__, CHECKBOX, "Checkbox 1",         BUTTON, "button 1", H, 50, 
__, CHECKBOX, "Checkbox 2",         BUTTON, "button 2",          
__, CHECKBOX, "Checkbox 3",         BUTTON, "button 3",        
__, CHECKBOX, "Checkbox 4",         BUTTON, "button 4",           
__, CHECKBOX, "Checkbox 5",         BUTTON, "button 5",           
__, CHECKBOX, "Checkbox 6",         BUTTON, "button 6",         

END_GROUP,
//--------------------------
//--------------------------
// SET PROPERTIES EXPLICITLY FOR BUTTONS
//--------------------------
i, BUTTONS,     W, 120,   END,
//--------------------------
// SET PROPERTIES EXPLICITLY FOR CHECKBOXES
//--------------------------
i, CHECKBOXES,  W, 90,    END,
//--------------------------
//--------------------------
//SET GROUP POSITION:
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
i, X_GAP, 30,
i, Y_GAP, 40,
//--------------------------


Option 2 :

//------------------------------------------------------
GROUP, A,
 
__, CHECKBOX, "Checkbox 1",         BUTTON, "button 1"  
__, CHECKBOX, "Checkbox 2",         BUTTON, "button 2",          
__, CHECKBOX, "Checkbox 3",         BUTTON, "button 3",        
__, CHECKBOX, "Checkbox 4",         BUTTON, "button 4",           
__, CHECKBOX, "Checkbox 5",         BUTTON, "button 5",           
__, CHECKBOX, "Checkbox 6",         BUTTON, "button 6",         

END_GROUP,
//--------------------------
//--------------------------
// SET PROPERTIES EXPLICITLY FOR BUTTONS
//--------------------------
i, BUTTONS,     W, 120, H, 20,  END,
//--------------------------
//OVERWRITE PREVIOUS VALUE FOR THIS SPECIFIC BUTTON.
//--------------------------
   "button 1", H, 50,
//--------------------------
// SET PROPERTIES EXPLICITLY FOR CHECKBOXES
//--------------------------
i, CHECKBOXES,  W, 90,    END,
//--------------------------
//--------------------------
//SET GROUP POSITION:
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
i, X_GAP, 30,
i, Y_GAP, 40,
//--------------------------
 
Реter Konow #:

Il y a des années, j'ai analysé votre code et j'ai essayé de le mettre en œuvre dans mes systèmes.

Je n'ai pas trouvé comment construire des formulaires dynamiques dans le processus. Est-ce possible et si oui, veuillez m'envoyer des exemples. Veuillez également préciser s'il est possible de modifier les propriétés d'un objet dans le processus, par exemple la police, la taille, la position sur le formulaire.

 


Le deuxième type d'énumération est i, SWITCH,..., END .

Bascule l'état activé entre les éléments dont les noms sont épelés entre le mot-clef SWITCH et le mot-clefEND,


1.



2.


CODE :

GROUP, A,
 
__, R_BUTTON, "R_button 1",  
__, R_BUTTON, "R_button 2",  
__, R_BUTTON, "R_button 3",  
__, R_BUTTON, "R_button 4",  
__, R_BUTTON, "R_button 5",  
__, R_BUTTON, "R_button 6",  

END_GROUP,
//--------------------------
//SET GROUP POSITION:
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
//SET GAPS:
//--------------------------
i, Y_GAP, 20,
//--------------------------
//USE SWITCH ENUMERATION TO SELECT ONE ELEMENT IN THE GROUP:
//--------------------------
 i, SWITCH, 
            "R_button 1", "R_button 2", "R_button 3", 
            "R_button 4", "R_button 5", "R_button 6",  
            
      END,
//--------------------------
 
Sergey Likho #:

Il y a des années, j'ai analysé votre code et j'ai essayé de le mettre en œuvre dans mes systèmes.

Je n'ai pas trouvé comment construire des formulaires dynamiques dans le processus. Est-ce possible et si oui, veuillez m'envoyer des exemples. Veuillez également préciser s'il est possible de modifier les propriétés d'un objet dans le processus, par exemple la police, la taille, la position sur le formulaire.

Dans cette version du constructeur, la fenêtre dynamique est désactivée. Il est possible de modifier diverses propriétés des éléments, y compris les polices de caractères. Je fais actuellement un travail éducatif sur le langage de balisage dans ce fil de discussion. Je vous recommande de consulter les pages précédentes. Vous y trouverez des éléments qui peuvent vous aider et vous enseigner. Cependant, le sujet de la disposition des éléments sur le formulaire n'a pas encore été abordé. Il est à venir. De plus, lorsque je publierai le moteur, vous pourrez connecter des interfaces aux applications utilisateur.

 
Реter Konow #:


Le deuxième type d'énumération est i, SWITCH,..., END .

Commute l'état activé entre les éléments dont les noms sont écrits entre le mot c. SWITCH et le mot c.END,


1.



2.


CODE :

Pour rattraper l'énumération de SWITCH.

Il existe une option permettant d'attribuer une commutation universelle aux éléments d'un groupe lorsqu'ils sont trop nombreux pour que l'on puisse écrire le nom de chacun d'entre eux. Par exemple, de longs menus avec des dizaines d'éléments dans des listes déroulantes. Dans ce cas, vous avez besoin d'un moyen de spécifier la commutation de tous les éléments sans énumérer chaque nom.

C'est ce que permet le mot-clé SWITCH_ALL.

GROUP, A,
 
__, R_BUTTON, "R_button 1",  
__, R_BUTTON, "R_button 2",  
__, R_BUTTON, "R_button 3",  
__, R_BUTTON, "R_button 4",  
__, R_BUTTON, "R_button 5",  
__, R_BUTTON, "R_button 6",  

END_GROUP,
//--------------------------
//SET GROUP POSITION:
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
//SET GAPS:
//--------------------------
i, Y_GAP, 20,
//--------------------------
//USE SWITCH_ALL WORD TO SWITCH BETWEEN ALL THE ELEMENTS IN THE GROUP:
//--------------------------
i, SWITCH_ALL,
 

Et le dernier type d'énumération pour aujourd'hui :


i, BLOCKS, ..., END.

Lorsqu'il est nécessaire de verrouiller des éléments individuels de l'interface, le mot-clef BLOCKS vient à la rescousse.

Par exemple, vous avez deux cases à cocher qui doivent bloquer/activer plusieurs autres cases à cocher qui se trouvent soit dans leur groupe, soit dans un autre groupe.

Voici comment procéder :

//--------------------------
//FIRST GROUP
//--------------------------
GROUP, "Group 1",

__, CHECKBOX, "Checkbox 100", GAP,30, CHECKBOX, "Checkbox 200",

END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
i, CHECKBOXES, W, 120,  END,
//--------------------------------------------------------------
//1. WRITE THE NAME OF THE CHECKBOX THAT WILL BLOCK THE OTHERS:
//2. WRITE KEYWORD "BLOCKS".
//3. WRITE THE NAMES OF THE ELEMENTS (OR GROUPS) IT WILL BLOCK.
//4. PUT "END" IN THE END.
//--------------------------------------------------------------
"Checkbox 100", BLOCKS, "Checkbox 3","Checkbox 5","Checkbox 7", END,

"Checkbox 200", BLOCKS, "Checkbox 4","Checkbox 6","Checkbox 8", END,
//--------------------------------------------------------------

//--------------------------
//SECOND GROUP
//--------------------------
GROUP, "Group 2",


__, CHECKBOX, "Checkbox 3",  CHECKBOX, "Checkbox 4",

__, CHECKBOX, "Checkbox 5",  CHECKBOX, "Checkbox 6",

__, CHECKBOX, "Checkbox 7",  CHECKBOX, "Checkbox 8",

END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 10, _Y2H, "Checkbox 100", 30,
//--------------------------
 i, CHECKBOXES, W, 120,  END,
//--------------------------
i, X_GAP, 30,
i, Y_GAP, 20,
//----------------------------
//SET MAIN PROPERTIES (IF YOU DON'T, THEY WILL HAVE DEFAULT VALUES): 


Résultat :

1. Lorsque l'élément bloquant n'est pas dans l'état actv, ses éléments sont bloqués.


2.

Inversement, s'il est activé, ils sont ouverts.


 

Le reste demain.

J'ai oublié d'ajouter. Vous pouvez nommer un groupe au lieu de lister les articles et tous les articles qu'il contient seront verrouillés :

//--------------------------
//FIRST GROUP
//--------------------------
GROUP, "Group 1",

__, CHECKBOX, "Checkbox 100",  

END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
i, CHECKBOXES, W, 120,  END,
//--------------------------
//--------------------------------------------------------------
//1. WRITE THE NAME OF THE CHECKBOX THAT WILL BLOCK THE OTHERS:
//2. WRITE KEYWORD "BLOCKS".
//3. WRITE THE NAMES OF THE ELEMENTS (OR GROUPS) IT WILL BLOCK.
//4. PUT "END" IN THE END.
//5. OR, WRITE THE NAME OF THEIR GROUP.
//--------------------------------------------------------------
"Checkbox 100", BLOCKS, "Group 2", END,
//--------------------------------------------------------------

//--------------------------
//SECOND GROUP
//--------------------------
GROUP, "Group 2",


__, CHECKBOX, "Checkbox 3",  CHECKBOX, "Checkbox 4",

__, CHECKBOX, "Checkbox 5",  CHECKBOX, "Checkbox 6",

__, CHECKBOX, "Checkbox 7",  CHECKBOX, "Checkbox 8",

END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 10, _Y2H, "Checkbox 100", 30,
//--------------------------
i, X_GAP, 30,
i, Y_GAP, 20,
//----------------------------
//SET MAIN PROPERTIES (IF YOU DON'T, THEY WILL HAVE DEFAULT VALUES): 
i, CHECKBOXES, W, 120,  END,
//------------------------------------------------------

Résultat :


 
Très bien, veuillez continuer à introduire d'autres contrôles
 
hini #:
Très bien, veuillez poursuivre avec les autres contrôles.

Oui, bien sûr. C'est prévu dans les plans. D'ailleurs, à propos des autres contrôles...

 

Voici à quoi ressemble le verrouillage de quelques autres types de contrôles :

1. ouvert :


2. verrouillé :