Galeria de UIs escritas em MQL - página 50

 
hini #:
Como os usuários adicionam as imagens que estão procurando e as usam para criar a interface? Essa é a pergunta.

As imagens da interface (ícones ou outras figuras) são divididas em duas categorias:

1. Internas.

As imagens internas são integradas ao designer. Por exemplo, imagens em botões de rolagem, setas de itens de menu, cruzes de botões de fechamento de janelas e outros. Essas são imagens padrão e são escritas por números na matriz. Ícones da janela Label Menu também. Eles são escritos por números em uma matriz especial. Mesmo sem recursos externos (pastas com imagens), essas imagens permanecerão e o usuário poderá usá-las da mesma forma. Nesse caso, o endereço do ícone é o nome pelo qual o construtor o encontra.


2. Externas.

Todas as imagens externas devem estar localizadas na pasta Imagens. O construtor as carrega como recursos e as registra na matriz comum de imagens. O algoritmo então acessa essas imagens como suas imagens internas. Quando o usuário salva o projeto, o algoritmo seleciona e grava no arquivo UIDATA somente as imagens de que a interface do usuário precisa.


Basicamente, é simples.

1. O usuário coloca a imagem desejada na pasta Images.

2. Em um arquivo especial, ele escreve uma linha (por exemplo) #resource "::Images\\/32x32\Index.bmp".

3. Em seguida, no código, especifica:

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


Pronto.


O usuário simplesmente usa a string de atribuição de imagem normal para o elemento ou a janela. Nada mais é necessário. O próprio construtor determinará se a imagem é externa ou interna. Se for externa, ele a retirará do recurso e a colocará em uma matriz com as outras imagens.

 

Lançamento no sábado (tentarei chegar cedo).

As tarefas atribuídas:

1. Controle de software de elementos e janelas do lado do aplicativo do usuário.

2. fornecer recursos básicos para trabalhar com tabelas. 3.

3. corrigir bugs com guias e barra de tarefas. 4.

4. corrigir pequenos erros.

 



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

Observe que a tabela acima é usada.

Em princípio, a tabela já pode ser usada para janelas semelhantes. Ela tem recursos básicos.

 

Como demonstração, incluirei nessa tabela caixas de seleção, listas suspensas e... controles deslizantes. Vamos ver o que acontece a seguir.

 



//----------------------------------------------------------------------------------
//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,
 
Essa é uma variante da integração de controles em uma tabela. Ela é original e pode ser conveniente.
 

Todos já devem estar familiarizados com essa janela de configurações:

Já a mostrei antes e ela está incluída na versão mais recente. Ela está localizada no arquivo do projeto de demonstração no endereço:

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


A história é a seguinte: há apenas 20 minutos, tive uma pergunta: o que acontece se você mudar a plataforma dessa janela de SETTINGS para MENU? Então, decidi fazer um pequeno experimento.

Entrei no arquivo e fiz a substituição:

//----------------------------------------------------------------------------------
//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 mais.

E aqui está o resultado interessante:

1. Ao tentar abrir uma janela pelo menu, aconteceu o seguinte (clique, é um .gif):


2. ao tentar abrir uma janela com o botão na barra de tarefas, aconteceu o seguinte(clique, é um .gif ):


Como resultado, podemos concluir que a substituição da plataforma da janela altera automaticamente o comportamento e a aparência dessa janela. Como uma janela de menu, ela começou a se abrir a partir de outra janela de menu simplesmente apontando para o item que costumava chamá-la ao clicar (é assim que uma janela de menu normal se comporta). Além disso, quando você clica no botão que deveria chamá-la, a janela se abre nas imediações desse botão, e não no centro do gráfico, como outras janelas de configurações (é assim que uma janela de menu normal se abre com um botão).

O resultado é interessante: basta alterar UMA palavra no código e você obtém uma aparência e um comportamento completamente diferentes da janela de configurações. É conveniente? Julgue por si mesmo.


P.S. É assim que fica na imagem:


 

Posso saber qual software você usou para criar os gifs? Por que você precisa clicar para ver a imagem se mover?