Galerie d'interfaces utilisateur écrites en MQL - page 38

 
Nous sommes un peu en avance sur notre temps, mais après la mise à jour, nous reviendrons au programme de formation précédent. Mais déjà avec la possibilité de connecter des conseillers. Il ne reste plus grand-chose.
 
Реter Konow #:
Ma réponse vous a-t-elle aidé ?

1. Si les boutons sont placés dans le cadre avec la commande i, AT, LEFT_TOP - tout va bien.

Si vous les placez à l'extrémité droite de la barre des tâches avec i, AT, _W2W, "MF", -40, _Y2Y, "MF", 0, - l'icône est dupliquée à l'extrémité gauche de la barre :

Et lorsque l'on survole le bouton, son cadre est également dessiné à l'extrémité gauche, fermant les onglets, et le nom du bouton est confondu :

Bug ou mon FAIL - je ne comprends pas.

2. Il y a une zone morte à l'extrémité droite de la barre des tâches. Sur la capture d'écran, elle est visible par un artefact. Toutes les dimensions définies semblent correctes. Mais je dois me tromper quelque part dans le code.

3. Lorsque l'on change d'onglet, les commandes "Report", IS_APPEARANCE_CONTROLLER, "ReportFrames", END ne suffisent pas. Les cadres sont réactivés, mais pas les tableaux qu'ils contiennent. Je dois lister explicitement "Report", IS_APPEARANCE_CONTROLLER, "ReportFrames", "Balances", "Log", END

NEW_WINDOW,
W_NAME, "CryptoPanel",
W_TYPE, SETTINGS,
OPEN_ON_INIT,
ALWAYS_ON_TOP,


//===================================================================================================================
GROUP, "Taskbar", 
        __,  V_BOX, "TaskbarPanel", IS_H_TAB_BOX, _, N_FRAME, 1, _, N_COLOR, (int)C'245,245,245', _, W, 1597, _, H, 35, _, FRAME_TYPE, _da, 
END_GROUP,
//---------------------------------------------
i, AT, _X2X, "MF", -18, _Y2Y, "MF", 0, 
 

//===================================================================================================================
GROUP, "TaskbarControls", 
        __, I_BUTTON, "Refresh", W, 100, _, H, 25, _, N_LABEL, "::Images\\16x16\\Refresh.bmp", _, SHOW_NAMETIP, 
END_GROUP,
//---------------------
i, IN, "TaskbarPanel",
i, AT, _W2W, "MF", -40, _Y2Y, "MF", 0, 
i, X_GAP, 20, 
i, I_BUTTONS, text, _A1_, _X2X, text, _C1_, 30, label, _A1_, _X2X, label, _C1_, 5, END,
//===================================================================================================================


//===================================================================================================================
GROUP,"TaskbarTabs", 
        __, H_TAB, "Report", ON, H_TAB, "Options", 
END_GROUP,
//+------------------------------------------------------------------+
i, IN, "TaskbarPanel",
i, AT, LEFT_TOP, 0, 0, 
i, SWITCH, "Report", "Options", END,
i, TENURED,
i, H_TABS, 
        N_COLOR, (int)C'240,240,240', P_COLOR, (int)C'236,244,252', A_COLOR, (int)C'255,255,255', AP_COLOR, (int)C'205,245,255', AH_COLOR, (int)C'255,255,255', 
        NPG_LINES, 20, NPG_STEP, 1, NG_LINES, 20, NG_STEP, 1, 
        FRAME_TYPE, _dab,
END, 
"Report", IS_APPEARANCE_CONTROLLER, "ReportFrames", "Balances", "Log", END, 
"Options", IS_APPEARANCE_CONTROLLER, "OptionsFrames", END, 
//=========================================================================================================================================


//===================================================================================================================
GROUP, "TabsFrame",
        __, V_BOX, "Tab", W, 1597, _, H, 610, _, N_FRAME, 1, _, A_FRAME, 1, _, NP_FRAME, 1, AP_FRAME, 1, 
END_GROUP,
//----------------------------
i, AT, _X2X, "MF", 0, _Y2H, "Report", -1, 
//===================================================================================================================


//===================================================================================================================
GROUP, "ReportFrames",
        __, V_BOX, "BalancesFrame", _, W, 1593, _, H, 85, 
        __, V_BOX, "LogFrame", _, W, 1593, _, H, 520, 
END_GROUP,
//-----------------------------
i, IN, "Tab",
i, AT, LEFT_TOP, 0, 0,
//===================================================================================================================


//===================================================================================================================
GROUP, "Balances", IS_TABLE, 
        __, T_HEADER, "Exchange", W, 100, C_HEADER, "$", W, 80, C_HEADER, "MX", W, 135, C_HEADER, "USDT", W, 115, C_HEADER, "USDC", W, 80, C_HEADER, "IRON", W, 105, 
        __, R_HEADER, "MEXC", CELL, A, V_CURRENT, 5625.59, CELL, A, V_CURRENT, 1198.10337776, CELL, A, V_CURRENT, 281.0668527, CELL, A, V_CURRENT, 12.6819, CELL, A, V_CURRENT, 2.79368472, 
        __, R_HEADER, "Bybit", CELL, A, V_CURRENT, 123.45, CELL, A, V_CURRENT, 0, CELL, A, V_CURRENT, 123.45, CELL, A, V_CURRENT, 0, CELL, A, V_CURRENT, 0, 
        __, R_HEADER, "Binance", CELL, A, V_CURRENT, 123.45, CELL, A, V_CURRENT, 0, CELL, A, V_CURRENT, 123.45, CELL, A, V_CURRENT, 0, CELL, A, V_CURRENT, 0, 
END_GROUP,
//-----------------------------
i, IN, "BalancesFrame",
i, AT, LEFT_TOP, 0, 0,
i, T_HEADERS, 
        TEXT_FONT, "Calibri", 
        FONT_SIZE, 10, 
        TEXT_STYLE, (int)FW_BOLD, 
        text, _A1_, _X2X, 
        text, _C1_, 20, 
        text, N_COLOR, (int)C'86,86,86', 
        NG_LINES, 30, NG_STEP, -1,
        POINTED, 0, 
        N_COLOR, (int)C'219,233,249', A_COLOR, (int)C'155,244,196', AH_COLOR, (int)C'155,244,196', 
        END,
i, C_HEADERS, 
        TEXT_FONT, "Calibri", 
        FONT_SIZE, 10, 
        TEXT_STYLE, (int)FW_BOLD, 
        text, _A1_, _X2X, 
        text, _C1_, 20, 
        text, N_COLOR, (int)C'86,86,86', 
        NG_LINES, 30, NG_STEP, -1,
        POINTED, 0, 
        N_COLOR, (int)C'219,233,249', A_COLOR, (int)C'155,244,196', AH_COLOR, (int)C'155,244,196', 
        END,
i, R_HEADERS, 
        TEXT_FONT, "Calibri", 
        FONT_SIZE, 10, 
        TEXT_STYLE, (int)FW_BOLD, 
        text, _A1_, _X2X, 
        text, _C1_, 20, 
        text, N_COLOR, (int)C'86,86,86', 
        NG_LINES, 30, NG_STEP, -1,
        POINTED, 0, 
        N_COLOR, (int)C'219,233,249', A_COLOR, (int)C'155,244,196', AH_COLOR, (int)C'155,244,196', 
END,
i, CELLS, 
        TEXT_FONT, "Calibri", 
        FONT_SIZE, 10, 
        N_FRAME_COLOR, (int)C'177,194,214', 
        text, _A1_, _X2X, 
        text, _C1_, 10, 
END,
//===================================================================================================================


//===================================================================================================================
GROUP, "Log", IS_TABLE, 
        __, C_HEADER, "Time", W, 170, C_HEADER, "Exch", W, 75, C_HEADER, "Op", W, 55, C_HEADER, "Message", W, 455, 
        __, CELL, A, V_CURRENT, "2024.07.01 16:00:06", CELL, A, V_CURRENT, "Binance", CELL, A, V_CURRENT, "Conv", CELL, A, V_CURRENT, "BABYTRAMPTOKEN @0.0516400000 USDT >> 0.09968574 MX", 
        __, CELL, A, V_CURRENT, "2024.07.01 16:00:06", CELL, A, V_CURRENT, "Binance", CELL, A, V_CURRENT, "Conv", CELL, A, V_CURRENT, "BABYTRAMPTOKEN @0.0516400000 USDT >> 0.09968574 MX", 
        __, CELL, A, V_CURRENT, "2024.07.01 16:00:06", CELL, A, V_CURRENT, "Binance", CELL, A, V_CURRENT, "Conv", CELL, A, V_CURRENT, "BABYTRAMPTOKEN @0.0516400000 USDT >> 0.09968574 MX", 
        __, CELL, A, V_CURRENT, "2024.07.01 16:00:06", CELL, A, V_CURRENT, "Binance", CELL, A, V_CURRENT, "Conv", CELL, A, V_CURRENT, "BABYTRAMPTOKEN @0.0516400000 USDT >> 0.09968574 MX", 
        __, CELL, A, V_CURRENT, "2024.07.01 16:00:06", CELL, A, V_CURRENT, "Binance", CELL, A, V_CURRENT, "Conv", CELL, A, V_CURRENT, "BABYTRAMPTOKEN @0.0516400000 USDT >> 0.09968574 MX", 
        __, CELL, A, V_CURRENT, "2024.07.01 16:00:06", CELL, A, V_CURRENT, "Binance", CELL, A, V_CURRENT, "Conv", CELL, A, V_CURRENT, "BABYTRAMPTOKEN @0.0516400000 USDT >> 0.09968574 MX", 
        __, CELL, A, V_CURRENT, "2024.07.01 16:00:06", CELL, A, V_CURRENT, "Binance", CELL, A, V_CURRENT, "Conv", CELL, A, V_CURRENT, "BABYTRAMPTOKEN @0.0516400000 USDT >> 0.09968574 MX", 
        __, CELL, A, V_CURRENT, "2024.07.01 16:00:06", CELL, A, V_CURRENT, "Binance", CELL, A, V_CURRENT, "Conv", CELL, A, V_CURRENT, "BABYTRAMPTOKEN @0.0516400000 USDT >> 0.09968574 MX", 
        __, CELL, A, V_CURRENT, "2024.07.01 16:00:06", CELL, A, V_CURRENT, "Binance", CELL, A, V_CURRENT, "Conv", CELL, A, V_CURRENT, "BABYTRAMPTOKEN @0.0516400000 USDT >> 0.09968574 MX", 
        __, CELL, A, V_CURRENT, "2024.07.01 16:00:06", CELL, A, V_CURRENT, "Binance", CELL, A, V_CURRENT, "Conv", CELL, A, V_CURRENT, "BABYTRAMPTOKEN @0.0516400000 USDT >> 0.09968574 MX", 
END_GROUP,
//-----------------------------
i, IN, "LogFrame",
i, AT, LEFT_TOP, 0, 0, 
i, C_HEADERS, 
        TEXT_FONT, "Calibri", 
        FONT_SIZE, 10, 
        TEXT_STYLE, (int)FW_BOLD, 
        text, _A1_, _X2X, 
        text, _C1_, 20, 
        text, N_COLOR, (int)C'86,86,86', 
        NG_LINES, 30, NG_STEP, -1,
        POINTED, 0, 
        N_COLOR, (int)C'219,233,249', A_COLOR, (int)C'155,244,196', AH_COLOR, (int)C'155,244,196', 
END,
i, CELLS, 
        TEXT_FONT, "Calibri", 
        FONT_SIZE, 10, 
        N_FRAME_COLOR, (int)C'177,194,214', 
        text, _A1_, _X2X, 
        text, _C1_, 10, 
END,
//===================================================================================================================


//===================================================================================================================
GROUP, "OptionsFrames",
END_GROUP,
//-----------------------------
i, IN, "Tab",
i, AT, LEFT_TOP, 0, 0,
//===================================================================================================================




END_WINDOW,

R etag Konow #: Nous prenons un peu d'avance.

Uniquement en raison de bogues présumés.

 
Реter Konow #:
Techniquement, il est possible de proposer d'autres options pour l'emplacement du texte et des icônes à l'intérieur des éléments, mais elles n'ont pas de sens d'un point de vue pratique. Si le besoin s'en fait sentir, nous pourrons les envisager.

Dans le concept actuel, si vous souhaitez placer une icône et du texte l'un à côté de l'autre, vous devez sélectionner manuellement les décalages. Pour chaque bouton, car ils ont tous des longueurs de texte différentes. Ce n'est pas très pratique. Pour simplifier, nous devrons nous aligner sur le bord gauche.

J'aimerais centrer automatiquement la chaîne icône-texte, en choisissant éventuellement la distance qui les sépare. Pour des boutons de même largeur, avec des longueurs de texte différentes, c'est la meilleure option.

Mais bien sûr, ce n'est pas la priorité absolue.

 
Edgar Akhmadeev #:

1. Si les boutons sont placés dans le cadre avec la commande i, AT, LEFT_TOP - tout va bien.

Si vous placez à l'extrémité droite de la barre des tâches i, AT, _W2W, "MF", -40, _Y2Y, "MF", 0 - l'icône est dupliquée à l'extrémité gauche de la barre :

Et lorsque vous survolez un bouton, son cadre est également dessiné à l'extrémité gauche, fermant ainsi les onglets, et le nom du bouton est gâché :

Bug ou mon FAIL - je ne comprends pas.

2. Il y a une zone morte à l'extrémité droite de la barre des tâches. Sur la capture d'écran, elle est visible par un artefact. Toutes les dimensions sont réglées correctement. Mais je dois me tromper quelque part dans le code.

3. Lorsque l'on change d'onglet, les commandes "Report", IS_APPEARANCE_CONTROLLER, "ReportFrames", END ne suffisent pas. Les cadres sont réactivés, mais pas les tableaux qu'ils contiennent. Je dois énumérer explicitement "Report", IS_APPEARANCE_CONTROLLER, "ReportFrames", "Balances", "Log", END

Seulement parce que je soupçonne l'existence de bogues.

Je propose ce code :

//----------------------------------------------------------------------------------
NEW_WINDOW,
//-----------------------
 W_NAME, "CryptoPanel",
//-----------------------
 W_TYPE, SETTINGS,
//-----------------------
 OPEN_ON_INIT,
//-----------------------
 ALWAYS_ON_TOP,
//-----------------------

//====================================================================================
//ГРУППЫ ВКЛАДОК ДОЛЖНЫ ОБЪЯВЛЯТЬСЯ НАД ЭЛЕМЕНТАМИ ЯВЛЕНИЕМ КОТОРЫХ УПРАВЛЯЮТ!
//+------------------------------------------------------------------+
GROUP,"TaskbarTabs", 

__, H_TAB, "Report",  ON, _,N_LABEL, "::Images\\16x16\\Briefcase.bmp",  

    H_TAB, "Options",     _,N_LABEL,  "::Images\\16x16\\Application.bmp",  
        
END_GROUP,
//+------------------------------------------------------------------+
//i, IN, "TaskbarPanel", ОШИБКА!!! ВКЛАДКИ НЕ МОГУТ НАХОДИТСЯ ВНУТРИ КАНВАСА КОТОРЫЙ ОБЪЯВЛЕН НИЖЕ ЧЕМ ОНИ САМИ.

//ВАРИАНТ ПОЗИЦИОНИРОВАНИЯ i, AT, LEFT_TOP, 0, 0, ПРЕДНАЗНАЧЕН ТОЛЬКО ДЛЯ ГРУПП ВНУТРИ КАНВАСОВ, КАК V_BOX. ВКЛАДКИ СТОЯТ НА MF.
//РАЗМЕРЫ МF РАССЧИТЫВАЮТСЯ В ПРОЦЕССЕ ПОСТРОЕНИЯ ОКНА. 
//НЕЛЬЗЯ ПРИВЯЗАТЬ ЭЛЕМЕНТЫ К ПРАВОМУ КРАЮ, ТАК КАК ПРАВЫЙ КРАЙ ОКНА ЗАВИСИТ ОТ РАЗМЕРОВ И РАСПОЛОЖЕНИЯ ЭЛЕМЕНТОВ ВНУТРИ НЕГО.
//+------------------------------------------------------------------+
i, AT, _X2X, "MF", 5, _Y2Y, "MF", 10,
//+------------------------------------------------------------------+
i, SWITCH, "Report", "Options", END,
//+------------------------------------------------------------------+

i, H_TABS, 
        N_COLOR, (int)C'240,240,240', P_COLOR, (int)C'236,244,252', A_COLOR, (int)C'255,255,255', AP_COLOR, (int)C'205,245,255', AH_COLOR, (int)C'255,255,255', 
        NPG_LINES, 20, NPG_STEP, 1, NG_LINES, 20, NG_STEP, 1, 
        FRAME_TYPE, _dab, 
        
        W, 80,  H,  25,//Задайте размер вкладок вручную.
END, 
//+------------------------------------------------------------------+
//ПЕРЕЧИСЛИТЕ ЯВЛЯЕМЫЕ ГРУППЫ ДЛЯ КАЖДОЙ ВКЛАДКИ:
//+------------------------------------------------------------------+
 "Report",  IS_APPEARANCE_CONTROLLER, "ReportFrames", "Balances", "Log","TaskbarControls",  END, 
//+------------------------------------------------------------------+
 "Options", IS_APPEARANCE_CONTROLLER, "OptionsFrames",  END, 
//+------------------------------------------------------------------+
//
//+------------------------------------------------------------------+
//ОБЪЯВЛЯЙТЕ ОДИН (!!!) V_BOX ДЛЯ КАЖДОЙ ГРУППЫ ВКЛАДОК.
//===================================================================================================================
GROUP, A,

__, V_BOX,"Canvas for TaskbarTabs", W, 1593, _, H, 605, 
        
END_GROUP,
//--------------------------------------
//РАСПОЛОЖИТЕ КАНВАС V_BOX ПРЯМО ПОД ВКЛАДКАМИ:
//--------------------------------------
i, AT, _X2X, "MF", 5, _Y2H, "Report", -2, 
//===================================================================================================================

GROUP, "TaskbarControls", 

__, I_BUTTON, "Refresh", W, 100, _, H, 25, _, N_LABEL, "::Images\\16x16\\Refresh.bmp",  
                                              //---------------------     
                                              _,R2R,    "Canvas for TaskbarTabs",  0, 
                                              _,ON_TOP, "Canvas for TaskbarTabs", -2,
                                              //---------------------
END_GROUP,
//---------------------
i, I_BUTTONS, text, _A1_, _X2X, text, _C1_, 30, label, _A1_, _X2X, label, _C1_, 5, SHOW_NAMETIP, END,
//===================================================================================================================

GROUP, "Balances", IS_TABLE, 

__, T_HEADER, "Exchange", W, 100, C_HEADER, "$", W, 80, C_HEADER, "MX", W, 135, C_HEADER, "USDT", W, 115, C_HEADER, "USDC", W, 80, C_HEADER, "IRON", W, 105, 

__, R_HEADER, "MEXC",    CELL, A, V_CURRENT, 5625.59, CELL, A, V_CURRENT, 1198.10337776, CELL, A, V_CURRENT, 281.0668527, CELL, A, V_CURRENT, 12.6819, CELL, A, V_CURRENT, 2.79368472, 
__, R_HEADER, "Bybit",   CELL, A, V_CURRENT, 123.45,  CELL, A, V_CURRENT, 0, CELL, A, V_CURRENT, 123.45, CELL, A, V_CURRENT, 0, CELL, A, V_CURRENT, 0, 
__, R_HEADER, "Binance", CELL, A, V_CURRENT, 123.45,  CELL, A, V_CURRENT, 0, CELL, A, V_CURRENT, 123.45, CELL, A, V_CURRENT, 0, CELL, A, V_CURRENT, 0, 

END_GROUP,
//-----------------------------
i, IN, "Canvas for TaskbarTabs",
//-----------------------------
i, AT, LEFT_TOP, 5, 10,
//-----------------------------
i, T_HEADERS, 
        TEXT_FONT, "Calibri", 
        FONT_SIZE, 10, 
        TEXT_STYLE, (int)FW_BOLD, 
        text, _A1_, _X2X, 
        text, _C1_, 20, 
        text, N_COLOR, (int)C'86,86,86', 
        NG_LINES, 30, NG_STEP, -1,
        POINTED, 0, 
        N_COLOR, (int)C'219,233,249', A_COLOR, (int)C'155,244,196', AH_COLOR, (int)C'155,244,196', 
        END,
//-----------------------------        
i, C_HEADERS, 
        TEXT_FONT, "Calibri", 
        FONT_SIZE, 10, 
        TEXT_STYLE, (int)FW_BOLD, 
        text, _A1_, _X2X, 
        text, _C1_, 20, 
        text, N_COLOR, (int)C'86,86,86', 
        NG_LINES, 30, NG_STEP, -1,
        POINTED, 0, 
        N_COLOR, (int)C'219,233,249', A_COLOR, (int)C'155,244,196', AH_COLOR, (int)C'155,244,196', 
        END,
//-----------------------------        
i, R_HEADERS, 
        TEXT_FONT, "Calibri", 
        FONT_SIZE, 10, 
        TEXT_STYLE, (int)FW_BOLD, 
        text, _A1_, _X2X, 
        text, _C1_, 20, 
        text, N_COLOR, (int)C'86,86,86', 
        NG_LINES, 30, NG_STEP, -1,
        POINTED, 0, 
        N_COLOR, (int)C'219,233,249', A_COLOR, (int)C'155,244,196', AH_COLOR, (int)C'155,244,196', 
END,
//-----------------------------
i, CELLS, 
        TEXT_FONT, "Calibri", 
        FONT_SIZE, 10, 
        N_FRAME_COLOR, (int)C'177,194,214', 
        text, _A1_, _X2X, 
        text, _C1_, 10, 
END,
//-----------------------------

//===================================================================================================================
GROUP, "Log", IS_TABLE, 

__, T_HEADER,"TH1",      C_HEADER, "Time", W, 170, C_HEADER, "Exch", W, 75, C_HEADER, "Op", W, 55, C_HEADER, "Message", W, 455, 

__, R_HEADER,A, CELL, A, V_CURRENT, "2024.07.01 16:00:06", CELL, A, V_CURRENT, "Binance", CELL, A, V_CURRENT, "Conv", CELL, A, V_CURRENT, "BABYTRAMPTOKEN @0.0516400000 USDT >> 0.09968574 MX", 
__, R_HEADER,A, CELL, A, V_CURRENT, "2024.07.01 16:00:06", CELL, A, V_CURRENT, "Binance", CELL, A, V_CURRENT, "Conv", CELL, A, V_CURRENT, "BABYTRAMPTOKEN @0.0516400000 USDT >> 0.09968574 MX", 
__, R_HEADER,A, CELL, A, V_CURRENT, "2024.07.01 16:00:06", CELL, A, V_CURRENT, "Binance", CELL, A, V_CURRENT, "Conv", CELL, A, V_CURRENT, "BABYTRAMPTOKEN @0.0516400000 USDT >> 0.09968574 MX", 
__, R_HEADER,A, CELL, A, V_CURRENT, "2024.07.01 16:00:06", CELL, A, V_CURRENT, "Binance", CELL, A, V_CURRENT, "Conv", CELL, A, V_CURRENT, "BABYTRAMPTOKEN @0.0516400000 USDT >> 0.09968574 MX", 
__, R_HEADER,A, CELL, A, V_CURRENT, "2024.07.01 16:00:06", CELL, A, V_CURRENT, "Binance", CELL, A, V_CURRENT, "Conv", CELL, A, V_CURRENT, "BABYTRAMPTOKEN @0.0516400000 USDT >> 0.09968574 MX", 
__, R_HEADER,A, CELL, A, V_CURRENT, "2024.07.01 16:00:06", CELL, A, V_CURRENT, "Binance", CELL, A, V_CURRENT, "Conv", CELL, A, V_CURRENT, "BABYTRAMPTOKEN @0.0516400000 USDT >> 0.09968574 MX", 
__, R_HEADER,A, CELL, A, V_CURRENT, "2024.07.01 16:00:06", CELL, A, V_CURRENT, "Binance", CELL, A, V_CURRENT, "Conv", CELL, A, V_CURRENT, "BABYTRAMPTOKEN @0.0516400000 USDT >> 0.09968574 MX", 
__, R_HEADER,A, CELL, A, V_CURRENT, "2024.07.01 16:00:06", CELL, A, V_CURRENT, "Binance", CELL, A, V_CURRENT, "Conv", CELL, A, V_CURRENT, "BABYTRAMPTOKEN @0.0516400000 USDT >> 0.09968574 MX", 
__, R_HEADER,A, CELL, A, V_CURRENT, "2024.07.01 16:00:06", CELL, A, V_CURRENT, "Binance", CELL, A, V_CURRENT, "Conv", CELL, A, V_CURRENT, "BABYTRAMPTOKEN @0.0516400000 USDT >> 0.09968574 MX", 
__, R_HEADER,A, CELL, A, V_CURRENT, "2024.07.01 16:00:06", CELL, A, V_CURRENT, "Binance", CELL, A, V_CURRENT, "Conv", CELL, A, V_CURRENT, "BABYTRAMPTOKEN @0.0516400000 USDT >> 0.09968574 MX", 

END_GROUP,
//-----------------------------
i, IN, "Canvas for TaskbarTabs",
//-----------------------------
"TH1", L2L,       "Binance",  0,

"TH1", ON_BOTTOM, "Binance",  10,                                            
//-----------------------------
i, T_HEADERS, text, IS_HIDDEN, W, 1, END,   
//-----------------------------
i, R_HEADERS, text, IS_HIDDEN, W, 1, END,
//-----------------------------
i, C_HEADERS, 

        TEXT_FONT, "Calibri", 
        FONT_SIZE, 10, 
        TEXT_STYLE, (int)FW_BOLD, 
        text, _A1_, _X2X, 
        text, _C1_, 20, 
        text, N_COLOR, (int)C'86,86,86', 
        NG_LINES, 30, NG_STEP, -1,
        POINTED, 0, 
        N_COLOR, (int)C'219,233,249', A_COLOR, (int)C'155,244,196', AH_COLOR, (int)C'155,244,196', 
END,
//-----------------------------

i, CELLS, 

        TEXT_FONT, "Calibri", 
        FONT_SIZE, 10, 
        N_FRAME_COLOR, (int)C'177,194,214', 
        text, _A1_, _X2X, 
        text, _C1_, 10, 
END,
//-----------------------------

//===================================================================================================================
GROUP, "OptionsFrames",


END_GROUP,
//-----------------------------
i, IN, "Canvas for TaskbarTabs",
i, AT, LEFT_TOP, 0, 0,
//===================================================================================================================


Résultat :


 

Dans les tableaux affichant des valeurs, les éléments R_HEADER et T_HEADER doivent être déclarés, car le nommage et la connexion des cellules se font en spécifiant R_HEADER et C_HEADER et en les combinant. C'est ainsi qu'apparaît l'"adresse" d'une cellule dans le tableau. T_HEADER est nécessaire pour définir de nombreuses propriétés du tableau.

Si elles interfèrent avec l'apparence du tableau, elles peuvent être masquées comme je l'ai fait ci-dessus.

 
Edgar Akhmadeev #:

1. Si les boutons sont placés dans le cadre avec la commande i, AT, LEFT_TOP - tout va bien.

Si vous placez à l'extrémité droite de la barre des tâches i, AT, _W2W, "MF", -40, _Y2Y, "MF", 0 - l'icône est dupliquée à l'extrémité gauche de la barre :

Et lorsque vous survolez un bouton, son cadre est également dessiné à l'extrémité gauche, fermant ainsi les onglets, et le nom du bouton est gâché :

Bug ou mon FAIL - je ne comprends pas.

2. Il y a une zone morte à l'extrémité droite de la barre des tâches. Sur la capture d'écran, elle est visible par un artefact. Toutes les dimensions sont réglées correctement. Mais je dois me tromper quelque part dans le code.

3. Lorsque l'on change d'onglet, les commandes "Report", IS_APPEARANCE_CONTROLLER, "ReportFrames", END ne suffisent pas. Les cadres sont réactivés, mais pas les tableaux qu'ils contiennent. Je dois énumérer explicitement "Report", IS_APPEARANCE_CONTROLLER, "ReportFrames", "Balances", "Log", END

Uniquement parce que je soupçonne l'existence de bogues.

1. Il existe un système de positionnement différent à l'intérieur des toiles. Je préparerai des documents détaillés à ce sujet. Vous ne pouvez pas non plus utiliser l'accrochage au bord droit de la fenêtre, car la taille de la fenêtre dépend de la taille du contenu.

2. Il ne peut y avoir qu'un seul élément V_BOX par groupe d'onglets, et son groupe doit être déclaré plus bas que le groupe d'onglets.

3) Actuellement, la taille des onglets est définie manuellement en la spécifiant explicitement. Les icônes sont définies comme d'habitude.

4. Pour économiser les ressources lors du redessin du canevas, j'ai supprimé le bouton Rafraîchir en haut, sinon le canevas devient TRÈS long, et le redessin est beaucoup plus consommateur de ressources. Le bouton peut également être placé quelque part près des tables.

 
Je pense qu'il faut arrêter pour l'instant, on va trop loin. Et il faut travailler sur la mise à jour.))
 
Edgar Akhmadeev #:

Dans le concept actuel, si vous souhaitez placer une icône et un texte l'un à côté de l'autre, vous devez ajuster manuellement les décalages. Pour chaque bouton, car ils ont tous des longueurs de texte différentes. Ce n'est pas très pratique. Pour simplifier, nous allons devoir nous aligner sur le bord gauche.

J'aimerais centrer automatiquement la chaîne icône-texte, en choisissant éventuellement la distance qui les sépare. Pour des boutons de même largeur avec des longueurs de texte différentes, c'est la meilleure option.

Mais bien sûr, ce n'est pas la priorité absolue.

Les cases à cocher et les boutons radio en sont la preuve.

L'intérêt de cette solution est d'élargir les possibilités de décoration. Comme l'apparence des boutons et des onglets laisse souvent place à la fantaisie, j'ai décidé de ne pas lier de manière rigide le texte et les icônes. Hier, j'ai passé un modèle qui convient à TOUS les éléments comportant des textes et des icônes. Il suffit de copier et de modifier les amendements si nécessaire.
 
Nous prévoyons de créer une "base de modèles" qui inclura la "coloration" des éléments, des structures de fenêtres, des groupes (onglets par exemple) et diverses variantes de tableaux. L'utilisateur choisira une image et copiera le code, apportera des modifications et le tour sera joué. C'est très pratique. Et rapide.
 
Je vais également unifier les systèmes de positionnement. En effet, il y en a trop et ils fonctionnent différemment. Je vais les simplifier au maximum.