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

 
hini #:
¿Cómo añaden los usuarios las imágenes que buscan y las utilizan para crear la interfaz? Esta es la cuestión.

Las imágenes de la interfaz (iconos u otras imágenes) se dividen a grandes rasgos en dos categorías:

1. Internas.

Las imágenes internas están integradas en el diseñador. Por ejemplo, las imágenes de los botones de desplazamiento, las flechas de los elementos de menú, las cruces de los botones de cierre de ventana y otras. Son imágenes estándar y se escriben con números en la matriz. También los iconos de la ventana Menú de etiquetas. Se escriben con números en una matriz especial. Incluso sin recursos externos (carpetas con imágenes) estas imágenes permanecerán y el usuario puede utilizarlas de la misma manera. En este caso la dirección del icono es el nombre por el que lo encuentra el constructor.


2. Externas.

Todas las imágenes externas deben estar ubicadas en la carpeta Imágenes. El constructor las carga como recursos y las registra en el array común de imágenes. El algoritmo accede entonces a estas imágenes como sus imágenes internas. Cuando el usuario guarda el proyecto, el algoritmo selecciona y escribe en el archivo UIDATA sólo las imágenes que necesita la interfaz de usuario.


Básicamente, es sencillo.

1. El usuario coloca la imagen deseada en la carpeta Imágenes.

2. En un archivo especial escribe una línea (por ejemplo) #resource "::Images\\/32x32\Index.bmp".

3. Luego en el código especifica:

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, LABEL,A,  N_LABEL,"::Images\\32x32\\Index.bmp", 
//----------------------------------------------------------------------------------
END_GROUP,
//----------------------------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "T1", 5,
//----------------------------------------------
//----------------------------------------------------------------------------------


Hecho.


El usuario simplemente utiliza la cadena normal de asignación de imágenes para el elemento o ventana. No se necesita nada más. El propio constructor determinará si la imagen es externa o interna. Si es externa, la sacará del recurso y la pondrá en un array con las otras imágenes.

 

Liberación el sábado (intentaré llegar temprano).

Las tareas asignadas:

1. Control por software de elementos y ventanas desde el lado de la aplicación de usuario.

2. Proporcionar capacidades básicas de trabajo con tablas.

3. Arreglar bugs con pestañas y barra de tareas. 4. Arreglar bugs menores.

4. Corregir errores menores.

 



//------------------------------------------------------ 
//DECLARE A NEW WINDOW
//------------------------------------------------------ 
NEW_WINDOW,  
//------------------------------------------------------
/*SET WINDOW TYPE*/             W_TYPE, DIALOG,  
//------------------------------------------------------
/*WRITE WINDOW'S NAME*/         W_NAME, "You made profit!", 
//------------------------------------------------------
/*SET WINDOW'S CAPTION*/        CAPTION, "Account message",
//------------------------------------------------------
/*NAME (CAPTION)IN THE MIDDLE*/ NIM,  
//------------------------------------------------------
/*POINT TO WINDOW'S ICON*/      W_ICON, "::Images\\16x16\\Message.bmp",   
//------------------------------------------------------
/*ONLY CLOSING BUTTON*/         ONLY_CLOSING, 
//------------------------------------------------------
/*WINDOW ALWAYS ON TOP*/        ALWAYS_ON_TOP, 
//------------------------------------------------------
/*OPEN WINDOW WITH A SOUND*/    OPENING_SOUND,"::Sounds\\Windows Unlock.wav", 
//------------------------------------------------------ 
/*WINDOW OPENS AT START*/       OPEN_ON_INIT,  /*(OOI)*/
//------------------------------------------------------
/*LOCK WINDOWS IF OPENED*/      //LOCKS_WINDOWS, ALL_WINDOWS,   
//------------------------------------------------------
/*MARGINS OF THE WINDOW*/       MARGINS, 0,18,/*Х, Y*/
//------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,

//--------------------------
__, T_BOX,  "T1",TEXT,
                 "CONGRATULATIONS!",
                 "You made profit.", 
                 END,
//--------------------------                
__, T_BOX,  "T2",TEXT,
                 "Strategy name:", 
                 "Expert's name:",
                 END,
END_GROUP,
//--------------------------------------
i, AT, _X2X, "MF",   1, _Y2Y, "MF", 1,
//--------------------------------------
"T1",_A3_,0,
"T1", W, 355,
"T1", H, 42,
//--------------
"T1",text,_C1_, 55,
"T1",text,_C2_, 4,
//--------------
"T1",text,N_COLOR,(int)clrWhite,
"T1",FONT_SIZE, 10,
"T1",TEXT_FONT,"Arial Black",
//--------------
"T1",NG_LINES,75, 
"T1",NG_STEP, -1,
"T1",H_GRADIENT,
"T1",N_COLOR,(int)clrGold, 
//--------------
"T2",_A3_,0,
"T2", W, 344,
"T2", H, 42,
//--------------
"T2",text,_C1_,65,
"T2",text,_C2_,7,
//--------------

//-----------------------------------------------
GROUP, A,
//-----------------------------------------------
__, T_BOX,  "T3",TEXT,
                 "'My best strategy'", 
                 END,
//-----------------------------------------------   
 GAP,15,
//-----------------------------------------------             
__, T_BOX,  "T4",TEXT,
                 "Market explorer",
                 END,
//-----------------------------------------------                 
END_GROUP,
//--------------------------------------
i, AT, _X2X, "MF", 170, _Y2Y, "T2", 5,
//--------------------------------------
"T3",TEXT_STYLE,(int)FONT_ITALIC,
//--------------------------------------
"T4",TEXT_STYLE,(int)FW_BOLD,
//--------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//-----------------------------------------------
__, LABEL,A, ADAPT_2_GRADIENT,"T1", _,N_LABEL, "::Images\\32x32\\Properties.bmp",  
//-----------------------------------------------
END_GROUP,
//--------------------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "T1", 5,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//-----------------------------------------------
__, LABEL,A, N_COLOR,(int)clrWhite, _,N_LABEL,"::Images\\32x32\\Pin.bmp",  
//-----------------------------------------------
END_GROUP,
//--------------------------------------
i, AT, _X2X, "MF", 15, _Y2Y, "T2", 5,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//-----------------------------------------------
__, LABEL,A,N_LABEL,"::Images\\32x32\\Chart xy.bmp", 
//-----------------------------------------------
END_GROUP,
//--------------------------------------
i, AT, _X2X, "MF", 300, _Y2Y, "T2", 2,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//-----------------------------------------------
__,CHECKBOX, "Show statistics report", TEXT_STYLE,(int)FONT_UNDERLINE,    
//-----------------------------------------------  
  GAP, 150,
//----------------------------------------------- 
   D_BUTTON, "Close", W,50,
                     //-----------------
                     _,CWIP,
                     //-----------------
                     _,N_FRAME_COLOR,(int)C'51,153,255', 
                     //-----------------
                     BREAK_ROW_LINE,
//-----------------------------------------------
END_GROUP,
//--------------------------------------
i, AT, _X2X, "MF", 10, _Y2H, "T2", 15,
//----------------------------------------------------------------------------------
END_WINDOW,
 


//----------------------------------------------------------------------------------
//DECLARE A NEW WINDOW
//----------------------------------------------------------------------------------
NEW_WINDOW,  
//------------------------------------------------------
/*SET WINDOW TYPE*/               W_TYPE, SETTINGS,  
//------------------------------------------------------
/*WRITE WINDOW'S NAME*/           W_NAME, "Account info:", 
//------------------------------------------------------
/*POINT TO WINDOW'S ICON*/        W_ICON, "::Images\\16x16\\Info.bmp",   
//------------------------------------------------------
/*PLACE THE NAME IN THE MIDDLE*/  NIM,
//------------------------------------------------------

//------------------------------------------------------
/*WINDOW OPENS AT START*/   OPEN_ON_INIT,  /*(OOI)*/

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

//------------------------------------------------------
GROUP, A,
//-------------------------------------------------
__,V_BOX,"V1", W,402, _,H,300,_,N_FRAME,1,
//-------------------------------------------------
END_GROUP,
//-------------------------------------------------
 i, AT, _X2X, "MF", 3, _Y2Y, "MF", 5,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A, IS_TABLE,
//----------------------------------------------------------------------------------
__,T_HEADER, "Parameter",  W,250, 
            
            _,FRAME_TYPE,_cda,           C_HEADER,"Value:",  W,140,                                      
//----------------------------------------------------------------------------------
__, R_HEADER,"Account name:",            CELL,"Account name", 
//----------------------------------------------------------------------------------
__, R_HEADER,"Account number:",          CELL,"Account number", 
//----------------------------------------------------------------------------------
__, R_HEADER,"Account server:",          CELL,"Account server",  
//----------------------------------------------------------------------------------
__, R_HEADER,"Account currency:",        CELL,"Account currency",
//----------------------------------------------------------------------------------
__, R_HEADER,"Leverage:",                CELL,"Leverage", 
//----------------------------------------------------------------------------------
__, R_HEADER,"Account balance:",         CELL,"Account balance",
//----------------------------------------------------------------------------------
__, R_HEADER,"Account profit:",          CELL,"Account profit",
//----------------------------------------------------------------------------------
__, R_HEADER,"Account equity:",          CELL,"Account equity",
//----------------------------------------------------------------------------------
__, R_HEADER,"Account margin:",          CELL,"Account margin",
//----------------------------------------------------------------------------------
__, R_HEADER,"Account free margin:",     CELL,"Account free margin", 
//----------------------------------------------------------------------------------
__, R_HEADER,"Account stop out level:",  CELL,"Account stop out level",
//----------------------------------------------------------------------------------
__, R_HEADER,"Stop out level:",          CELL,"Stop out level",
//----------------------------------------------------------------------------------
__, R_HEADER,"Spread in points:",        CELL,"Spread in points", 
//----------------------------------------------------------------------------------
__, R_HEADER,"Minimum SL-TP level(in points):",                CELL,"Minimum SL-TP level(in points)",
//----------------------------------------------------------------------------------
__, R_HEADER,"Lot size:",                                      CELL,"Lot size",
//----------------------------------------------------------------------------------
__, R_HEADER,"Tick size value deposit currency:",              CELL,"Tick size value deposit currency",
//---------------------------------------------------------------------------------- 
__, R_HEADER,"Tick the deposit currency:",                     CELL,"Tick the deposit currency",
//----------------------------------------------------------------------------------
__, R_HEADER,"Tick symbol currency:",                          CELL,"Tick symbol currency",
//----------------------------------------------------------------------------------
__, R_HEADER,"Swap for long positions, Buy:",                  CELL,"Swap for long positions, Buy",
//----------------------------------------------------------------------------------
__, R_HEADER,"Swap for long positions, Sell:",                 CELL,"Swap for long positions, Sell", 
//----------------------------------------------------------------------------------
__, R_HEADER,"Trades for symbol EURUSD.m:",                    CELL,"Trades for symbol EURUSD.m",
//---------------------------------------------------------------------------------- 
__, R_HEADER,"Minimal lot size:",                              CELL,"Minimal lot size",
//----------------------------------------------------------------------------------
__, R_HEADER,"Lot step:",                                      CELL,"Lot step",
//----------------------------------------------------------------------------------
__, R_HEADER,"Maximal lot size:",                              CELL,"Maximal lot size",
//----------------------------------------------------------------------------------
__, R_HEADER,"Swap in points:",                                CELL,"Swap in points",
//----------------------------------------------------------------------------------
__, R_HEADER,"Profit mode:",                                   CELL,"Profit mode",
//----------------------------------------------------------------------------------
__, R_HEADER,"Margin mode:",                                   CELL,"Margin mode",
//----------------------------------------------------------------------------------
__, R_HEADER,"Initial margin requirments for one lot:",        CELL,"Initial margin requirments for one lot",
//----------------------------------------------------------------------------------
__, R_HEADER,"Margin to maintain position in one lot:",        CELL,"Margin to maintain position in one lot",
//----------------------------------------------------------------------------------  
__, R_HEADER,"Hedged margin for one lot:",                     CELL,"Hedged margin for one lot",
//----------------------------------------------------------------------------------
__, R_HEADER,"Free margin required:",                          CELL,"Free margin required",
//----------------------------------------------------------------------------------
__, R_HEADER,"Order freeze level in points:",                  CELL,"Order freeze level in points",
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
END_GROUP,
//----------------------
i,AT,LEFT_TOP,0,0,
//----------------------
i,IN, "V1",
//----------------------
 i,  R_HEADERS, 
     //-------------------------
     text,_A1_,X2X,
     //------------------------- 
     text,_C1_,10, 
     //-------------------------
     H,25, 
     //-------------------------
     N_FRAME,1, 
     //-------------------------
     FRAME_TYPE,_c,      
     //-------------------------
     FONT_SIZE,10,  
     //-------------------------
     
     END,
//----------------------------------------------------------------------------------
 i,    CELLS,
       //-------------------------
       text,_A1_,X2X, 
       //-------------------------
       text,_C1_,8, 
       //-------------------------
       text,_A1_,_Y2Y, 
       //-------------------------
       text,_A2_,_C2C,
       //-------------------------
       N_FRAME,1, 
       //-------------------------
       FRAME_TYPE,_cd, 
       //-------------------------
       V_CURRENT,"NULL", 
       //-------------------------  
       FONT_SIZE,10,  
       //-------------------------
       END,
//----------------------------------------------------------------------------------
 i, IS_ZEBRA_STYLE,
//----------------------------------------------------------------------------------
END_WINDOW,
 

Tenga en cuenta que se utiliza la tabla anterior.

En principio, la tabla ya se puede utilizar para ventanas similares. Tiene capacidades básicas.

 

Como demostración, incluiré en esta tabla casillas de verificación, listas desplegables y... deslizadores. Veamos qué ocurre a continuación.

 



//----------------------------------------------------------------------------------
//DECLARE A NEW WINDOW
//----------------------------------------------------------------------------------
NEW_WINDOW,  
//------------------------------------------------------
/*SET WINDOW TYPE*/               W_TYPE, SETTINGS,  
//------------------------------------------------------
/*WRITE WINDOW'S NAME*/           W_NAME, "Account info: 2", 
//------------------------------------------------------
/*POINT TO WINDOW'S ICON*/        W_ICON, "::Images\\16x16\\Info.bmp",   
//------------------------------------------------------
/*PLACE THE NAME IN THE MIDDLE*/  NIM,
//------------------------------------------------------

//------------------------------------------------------
/*WINDOW OPENS AT START*/   OPEN_ON_INIT,  /*(OOI)*/

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

//------------------------------------------------------
GROUP, A,
//-------------------------------------------------
__,V_BOX,"V1", W,422, _,H,300,_,N_FRAME,1,
//-------------------------------------------------
END_GROUP,
//-------------------------------------------------
 i, AT, _X2X, "MF", 3, _Y2Y, "MF", 5,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A, IS_TABLE,
//----------------------------------------------------------------------------------
__,T_HEADER, "Parameter",  W,250, 
            
            _,FRAME_TYPE,_cda,           C_HEADER,"Value:",  W,150,                                      
//----------------------------------------------------------------------------------
__, R_HEADER,"Strategy name:",            CELL,"Strategy name", 
//----------------------------------------------------------------------------------
__, R_HEADER,"Allow overnight trades:",  CHECKBOX,"Allow overnight trades", ON,
//----------------------------------------------------------------------------------
__, R_HEADER,"Search for correlations:", CHECKBOX,"Search correlations",    ON,
//----------------------------------------------------------------------------------
__, R_HEADER,"Ask permissions:",         CHECKBOX,"Ask permissions",        ON,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
__, R_HEADER,"Change TP level (in points):", H_SLIDER,"Change TP level(in points)", 
//----------------------------------------------------------------------------------
__, R_HEADER,"Change SL level (in points):", H_SLIDER,"Change SL level(in points)", 
//----------------------------------------------------------------------------------
__, R_HEADER,"Change TS distance (in points):", H_SLIDER,"Change TS distance(in points)", 
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
__, R_HEADER,"Account properties:",           C_LIST,"Account properties",
//----------------------------------------------------------------------------------
__, R_HEADER,"Strategy properties:",          C_LIST,"Strategy properties",
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
__, R_HEADER,"Account stop out level:",  CELL,"Account stop out level",
//----------------------------------------------------------------------------------
__, R_HEADER,"Stop out level:",          CELL,"Stop out level",
//----------------------------------------------------------------------------------
__, R_HEADER,"Spread in points:",        CELL,"Spread in points", 
//----------------------------------------------------------------------------------
__, R_HEADER,"Minimum SL-TP level(in points):", CELL,"Minimum SL-TP level(in points)",
//----------------------------------------------------------------------------------
__, R_HEADER,"Lot size:",                       CELL,"Lot size",
//----------------------------------------------------------------------------------
__, R_HEADER,"Tick size value deposit currency:", CELL,"Tick size value deposit currency",
//---------------------------------------------------------------------------------- 
__, R_HEADER,"Tick the deposit currency:",                     CELL,"Tick the deposit currency",
//----------------------------------------------------------------------------------
__, R_HEADER,"Tick symbol currency:",                          CELL,"Tick symbol currency",
//----------------------------------------------------------------------------------
__, R_HEADER,"Swap for long positions, Buy:",                  CELL,"Swap for long positions, Buy",
//----------------------------------------------------------------------------------
__, R_HEADER,"Swap for long positions, Sell:",                 CELL,"Swap for long positions, Sell", 
//----------------------------------------------------------------------------------
__, R_HEADER,"Trades for symbol EURUSD.m:",                    CELL,"Trades for symbol EURUSD.m",
//---------------------------------------------------------------------------------- 
__, R_HEADER,"Minimal lot size:",                              CELL,"Minimal lot size",
//----------------------------------------------------------------------------------
__, R_HEADER,"Lot step:",                                      CELL,"Lot step",
//----------------------------------------------------------------------------------
__, R_HEADER,"Maximal lot size:",                              CELL,"Maximal lot size",
//----------------------------------------------------------------------------------
__, R_HEADER,"Swap in points:",                                CELL,"Swap in points",
//----------------------------------------------------------------------------------
__, R_HEADER,"Profit mode:",                                   CELL,"Profit mode",
//----------------------------------------------------------------------------------
__, R_HEADER,"Margin mode:",                                   CELL,"Margin mode",
//----------------------------------------------------------------------------------
__, R_HEADER,"Initial margin requirments for one lot:",        CELL,"Initial margin requirments for one lot",
//----------------------------------------------------------------------------------
__, R_HEADER,"Margin to maintain position in one lot:",        CELL,"Margin to maintain position in one lot",
//----------------------------------------------------------------------------------  
__, R_HEADER,"Hedged margin for one lot:",                     CELL,"Hedged margin for one lot",
//----------------------------------------------------------------------------------
__, R_HEADER,"Free margin required:",                          CELL,"Free margin required",
//----------------------------------------------------------------------------------
__, R_HEADER,"Order freeze level in points:",                  CELL,"Order freeze level in points",
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
END_GROUP,
//----------------------
i,AT,LEFT_TOP,0,0,
//----------------------
i,IN, "V1",
//----------------------
 i,  R_HEADERS, 
     //-------------------------
     text,_A1_,X2X,
     //------------------------- 
     text,_C1_,10, 
     //-------------------------
     H,25, 
     //-------------------------
     N_FRAME,1, 
     //-------------------------
     FRAME_TYPE,_c,      
     //-------------------------
     FONT_SIZE,10,  
     //-------------------------
     
     END,
//----------------------------------------------------------------------------------
 i,    CELLS,
       //-------------------------
       text,_A1_,X2X, 
       //-------------------------
       text,_C1_,8, 
       //-------------------------
       text,_A1_,_Y2Y, 
       //-------------------------
       text,_A2_,_C2C,
       //-------------------------
       N_FRAME,1, 
       //-------------------------
       FRAME_TYPE,_cd, 
       //-------------------------
       V_CURRENT,"NULL", 
       //-------------------------  
       FONT_SIZE,10,  
       //-------------------------
       END,
//----------------------------------------------------------------------------------       
 i, H_SLIDERS,
    //---------------------------------
    N_FRAME,1,
    //---------------------------------
    A_FRAME,1, 
    //---------------------------------
    FRAME_TYPE,_cd,   
    //---------------------------------
    POINTED,0, 
    //---------------------------------
    ALL_STATES_SAME_COLOR, 
    //---------------------------------
    SHOW_WIDGET, 
    //---------------------------------
    WIDGET_ON_TOP,
    //---------------------------------
    V_MIN,1, V_MAX,100, V_CURRENT,50,
    //---------------------------------
    END,       
//----------------------------------------------------------------------------------
 i, CHECKBOXES,
    //---------------------------------
    N_FRAME,1,
    //---------------------------------
    A_FRAME,1, 
    //---------------------------------
    FRAME_TYPE,_cd,   
    //---------------------------------
    POINTED,0, 
    //---------------------------------
    ALL_STATES_SAME_COLOR, 
    //---------------------------------
    END,       
//----------------------------------------------------------------------------------
 i, C_LISTS,
    //---------------------------------
    H, 150,
    //---------------------------------
    N_FRAME,1,
    //---------------------------------
    A_FRAME,1, 
    //---------------------------------
    FRAME_TYPE,_cd,   
    //---------------------------------
    POINTED,0, 
    //---------------------------------
    ALL_STATES_SAME_COLOR, 
    //---------------------------------
    END,       
//----------------------------------------------------------------------------------
 i, IS_ZEBRA_STYLE,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
//------------------------------------------------------ 
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,"Account properties",
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
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, "Strategy properties",
//------------------------------------------------------ 
i, AT, LEFT_TOP, 1,1,
//------------------------------------------------------ 
//----------------------------------------------------------------------------------
END_WINDOW,
 
Esta es una variante de integración de controles en una tabla. Es original y puede resultar conveniente.
 

Probablemente todo el mundo esté familiarizado con esta ventana de configuración:

Ya la he mostrado antes y está incluida en la última versión. Se encuentra en el archivo del proyecto de demostración en la dirección:

#include<(2)  KIB PROJECTS\(6) DEMO PROJECTS\Demo project 1.mqh>


Esta es la historia: hace sólo 20 minutos tenía una pregunta - ¿qué pasa si cambias la plataforma de esta ventana de AJUSTES a MENÚ? Así que decidí hacer un pequeño experimento.

Entré en el archivo e hice la sustitución:

//----------------------------------------------------------------------------------
//DECLARE A NEW WINDOW
//----------------------------------------------------------------------------------
NEW_WINDOW,  
//------------------------------------------------------
/*SET WINDOW TYPE*/               W_TYPE, MENU,//SETTINGS,  
//------------------------------------------------------
/*WRITE WINDOW'S NAME*/           W_NAME, "Settings example 2",
//------------------------------------------------------
/*POINT TO WINDOW'S ICON*/        W_ICON, "::Images\\16x16\\Application.bmp",  
//------------------------------------------------------
/*PLACE THE NAME IN THE MIDDLE*/  NIM,
//------------------------------------------------------
//------------------------------------------------------
/*SET WINDOW'S ADDITIONAL PROPERTIES*/   
//----------------------------------------------------------------------------------
/*WINDOW OPENS AT START*/   OPEN_ON_INIT,  /*(OOI)*/

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


Nada más.

Y aquí está el resultado interesante:

1. Al intentar abrir una ventana a través del menú, pasó esto (click, es un .gif):


2. Y al intentar abrir una ventana con el botón de la barra de tareas, ocurrió esto (clic, es un .gif ):


Como resultado, podemos concluir que la sustitución de la plataforma de la ventana cambia automáticamente el comportamiento y la apariencia de esta ventana. Como ventana de menú comenzó a abrirse desde otra ventana de menú simplemente señalando el elemento que solía llamarla al hacer clic (así es como se comporta una ventana de menú normal). Además, al hacer clic en el botón que debería llamarla, la ventana se abre en la proximidad directa de este botón, no en el centro del gráfico como otras ventanas de configuración (así es como se abre una ventana de menú normal con un botón).

El resultado es interesante: basta con cambiar UNA palabra del código para cambiar completamente el aspecto y el comportamiento de la ventana de configuración. ¿Es conveniente? Juzgue usted mismo.


P.D. Así es como se ve en la foto:


 

¿Puedo preguntar qué programa has utilizado para hacer los gifs? ¿Por qué es necesario hacer clic para ver la imagen en movimiento.