Galleria di interfacce utente scritte in MQL - pagina 50

 
hini #:
Come fanno gli utenti ad aggiungere le immagini che cercano e a usarle per creare l'interfaccia? Questa è la domanda.

Le immagini dell'interfaccia (icone o altre immagini) si dividono grosso modo in due categorie:

1. Interne.

Le immagini interne sono integrate nel designer. Ad esempio, le immagini dei pulsanti di scorrimento, le frecce delle voci di menu, le croci dei pulsanti di chiusura delle finestre e altre ancora. Si tratta di immagini standard, scritte con numeri nell'array. Anche le icone della finestra del menu Etichetta. Sono scritte da numeri in un array speciale. Anche senza risorse esterne (cartelle con immagini) queste immagini rimarranno e l'utente potrà utilizzarle allo stesso modo. In questo caso, l'indirizzo dell'icona è il nome con cui il costruttore la trova.


2. Esterne.

Tutte le immagini esterne devono trovarsi nella cartella Images. Il costruttore le carica come risorse e le registra nell'array comune di immagini. L'algoritmo accede quindi a queste immagini come immagini interne. Quando l'utente salva il progetto, l'algoritmo seleziona e scrive nel file UIDATA solo le immagini necessarie all'interfaccia utente.


In pratica, è semplice.

1. L'utente inserisce l'immagine desiderata nella cartella Images.

2. In un file speciale scrive una riga (ad esempio) #resource "::Images\\/32x32\Index.bmp".

3. Poi nel codice specifica:

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


Fatto.


L'utente utilizza semplicemente la normale stringa di assegnazione dell'immagine per l'elemento o la finestra. Non è necessario altro. Il costruttore stesso determina se l'immagine è esterna o interna. Se è esterna, la estrarrà dalla risorsa e la metterà in un array con le altre immagini.

 

Rilascio sabato (cercherò di essere in anticipo).

I compiti assegnati:

1. Controllo software di elementi e finestre dal lato dell'applicazione utente.

2. Fornire le funzionalità di base per lavorare con le tabelle. 3. Risolvere i bug con le schede e la barra delle applicazioni.

3. Correggere i bug con le schede e la barra delle applicazioni. 4. Correggere i bug minori.

4. Correzione di bug minori.

 



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

Si noti che viene utilizzata la tabella precedente.

In linea di principio, la tabella può già essere utilizzata per finestre simili. Ha funzionalità di base.

 

A titolo dimostrativo, includerò in questa tabella caselle di controllo, elenchi a discesa e... cursori. Vediamo cosa succede dopo.

 



//----------------------------------------------------------------------------------
//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,
 
Questa è una variante dell'integrazione dei controlli in una tabella. È originale e può essere conveniente.
 

Probabilmente tutti conoscono questa finestra di impostazioni:

L'ho già mostrata in passato ed è inclusa nell'ultima versione. Si trova nel file del progetto demo all'indirizzo:

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


Ecco la storia: proprio 20 minuti fa mi è venuta una domanda: cosa succede se si cambia la piattaforma di questa finestra da IMPOSTAZIONI a MENU? Così ho deciso di fare un piccolo esperimento.

Sono entrato nel file e ho effettuato la sostituzione:

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


Nient'altro.

Ed ecco il risultato interessante:

1. Quando ho provato ad aprire una finestra attraverso il menu, è successo questo (cliccate, è una .gif):


2. Quando si è cercato di aprire una finestra con il pulsante sulla barra delle applicazioni, è successo questo(clic, è una .gif ):


Di conseguenza, possiamo concludere che la sostituzione della piattaforma della finestra modifica automaticamente il comportamento e l'aspetto di questa finestra. Come finestra di menu ha iniziato ad aprirsi da un'altra finestra di menu semplicemente puntando sulla voce che la richiamava quando si faceva clic (questo è il comportamento di una normale finestra di menu). Inoltre, quando si fa clic sul pulsante che dovrebbe richiamarla, la finestra si apre nelle immediate vicinanze di questo pulsante, non al centro del grafico come altre finestre di impostazione (è così che si apre una normale finestra di menu con un pulsante).

Il risultato è interessante: basta cambiare una parola nel codice per ottenere un aspetto e un comportamento completamente diversi della finestra delle impostazioni. È conveniente? Giudicate voi stessi.


P.S. Ecco come appare nell'immagine:


 

Posso chiederti che software hai usato per creare le gif? Perché è necessario cliccare per vedere l'immagine muoversi.