Galleria di interfacce utente scritte in MQL - pagina 34

 

Codice:

Opzione 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,
//--------------------------


Opzione 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 #:

Anni fa, ho analizzato il vostro codice e ho cercato di implementarlo nei miei sistemi.

Non ho capito come costruire moduli dinamici nel processo. È possibile e, in caso affermativo, vi prego di inviarmi degli esempi. Inoltre, vi prego di specificare se è possibile modificare le proprietà di un oggetto nel processo, ad esempio il carattere, la dimensione, la posizione nel modulo.

 


Il secondo tipo di enumerazione è i, SWITCH,..., END .

Commuta lo stato attivato tra gli elementi i cui nomi sono scritti tra la c.word SWITCH e la c.wordEND,


1.



2.


CODICE:

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 #:

Anni fa, ho analizzato il vostro codice e ho cercato di implementarlo nei miei sistemi.

Non ho capito come costruire moduli dinamici nel processo. È possibile e, in caso affermativo, vi prego di inviarmi degli esempi. Inoltre, vi prego di specificare se è possibile modificare le proprietà di un oggetto nel processo, ad esempio il carattere, la dimensione, la posizione nel modulo.

In questa versione del costruttore la finestra dinamica è disabilitata. È possibile modificare varie proprietà degli elementi, compresi i caratteri. Attualmente sto svolgendo un lavoro didattico sul linguaggio di markup in questo thread. Vi consiglio di dare un'occhiata alle pagine precedenti. C'è del materiale che può aiutare e insegnare. Tuttavia, l'argomento della disposizione degli elementi nel modulo non è ancora stato trattato. È in corso. Inoltre, quando pubblicherò il motore, sarà possibile collegare le interfacce alle applicazioni utente.

 
Реter Konow #:


Il secondo tipo di enumerazione è i, SWITCH,..., END .

Commuta lo stato attivato tra gli elementi i cui nomi sono scritti tra la c.word SWITCH e la c.wordEND,


1.



2.


CODICE:

Per recuperare l'enumerazione di SWITCH.

Esiste un'opzione per assegnare la commutazione universale agli elementi di un gruppo quando sono troppi per scrivere il nome di ciascuno. Ad esempio, menu lunghi con decine di voci in elenchi a discesa. In questo caso, è necessario un modo per specificare la commutazione di tutte le voci senza elencare i singoli nomi.

Questo si ottiene con la parola chiave 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,
 

E l'ultimo tipo di enumerazione per oggi:


i, BLOCKS, ..., END.

Quando è necessario bloccare singoli elementi dell'interfaccia, la parola chiave BLOCKS viene in aiuto.

Ad esempio, si hanno due caselle di controllo che devono bloccare/abilitare diverse altre caselle di controllo che si trovano nel loro gruppo o in un altro gruppo.

Si procede in questo modo:

//--------------------------
//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): 


Risultato:

1. Quando l'elemento bloccante non è nello stato actv, i suoi elementi sono bloccati.


2.

Al contrario, se è attivato, sono aperti.


 

Il resto domani.

Ho dimenticato di aggiungere. È possibile nominare un gruppo invece di elencare gli elementi e tutti gli elementi in esso contenuti diventeranno bloccati:

//--------------------------
//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,
//------------------------------------------------------

Risultato:


 
Molto bene, continuate a introdurre altri controlli
 
hini #:
Molto bene, continuate pure con gli altri controlli.

Sì, certo. È nei piani. A proposito, a proposito degli altri controlli...

 

Ecco come si presenta il blocco di alcuni altri tipi di controlli:

1. aperto:


2. Bloccato: