Galería de interfaces de usuario escritas en MQL - página 34

 

Código:

Opción 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,
//--------------------------


Opción 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 #:

Hace años, analicé su código e intenté implementarlo en mis sistemas.

No he descubierto cómo construir formularios dinámicos en el proceso. ¿Es posible y si sí, por favor, por favor, envíeme ejemplos. También, por favor, especifique si es posible cambiar las propiedades de un objeto en el proceso, por ejemplo, fuente, tamaño, posición en el formulario.

 


El segundo tipo de enumeración es i, SWITCH,..., END.

Cambia el estado activado entre los elementos cuyos nombres están escritos entre la palabra c. SWITCH , y lapalabra c.END,


1.



2.


CÓDIGO:

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

Hace años, analicé su código e intenté aplicarlo en mis sistemas.

No he descubierto cómo construir formularios dinámicos en el proceso. ¿Es posible y si sí, por favor, por favor, envíeme ejemplos. También, por favor, especifique si es posible cambiar las propiedades de un objeto en el proceso, por ejemplo, fuente, tamaño, posición en el formulario.

En esta versión de la ventana dinámicaconstructor está desactivado. Es posible cambiar varias propiedades de los elementos, incluyendo fuentes. Actualmente estoy haciendo un trabajo educativo sobre el lenguaje de marcado en este hilo. Te recomiendo que eches un vistazo a las páginas anteriores. Allí hay material que puede ayudarte y enseñarte. Sin embargo, el tema de la disposición de los elementos en el formulario no está cubierto todavía. Está más adelante. Además, cuando publique el motor podrás conectar interfaces a aplicaciones de usuario.

 
Реter Konow #:


El segundo tipo de enumeración es i, SWITCH,..., END .

Cambia el estado activado entre los elementos cuyos nombres están escritos entre la palabra c. SWITCH y la palabra c.END,


1.



2.


CÓDIGO:

Para ponerse al día con la enumeración SWITCH.

Hay una opción para asignar conmutación universal a los elementos de un grupo cuando hay demasiados para escribir el nombre de cada uno. Por ejemplo menús largos con docenas de elementos en listas desplegables. En este caso, necesita una forma de especificar la conmutación de todos los elementos sin enumerar cada nombre.

Esto se hace con la palabra clave 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,
 

Y el último tipo de enumeración para hoy:


i, BLOQUES, ..., FIN.

Cuando es necesario bloquear elementos individuales de la interfaz, la palabra clave BLOQUES viene al rescate.

Por ejemplo, tienes dos casillas de verificación que necesitan bloquear/habilitar otras casillas de verificación que están en su grupo o en otro grupo.

Esto se hace así:

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


Resultado:

1. Cuando el elemento bloqueante no está en estado actv, sus elementos están bloqueados.


2.

Porel contrario, si está activado, están abiertos.


 

El resto mañana.

Olvidé añadir. Puedes nombrar un grupo en lugar de listar los artículos y todos los artículos en él se bloquearán:

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

Resultado:


 
Muy bien, por favor sigan introduciendo otros controles
 
hini #:
Muy bien, por favor continúe con los otros controles.

Sí, por supuesto. Eso está en los planes. Por cierto, sobre los otros controles...

 

He aquí cómo es el bloqueo de otros tipos de controles:

1. Abierto:


2. Bloqueado: