Galeria de UIs escritas em MQL - página 38

 
Estamos um pouco adiantados, mas, após a atualização, voltaremos ao programa de treinamento anterior. Mas já com a possibilidade de conectar os consultores. Não há muito mais a fazer.
 
Реter Konow #:
Minha resposta ajudou?

1. Se os botões forem colocados no quadro com o comando i, AT, LEFT_TOP, tudo estará bem.

Se você os colocar na extremidade direita da barra de tarefas com i, AT, _W2W, "MF", -40, _Y2Y, "MF", 0, - o ícone será duplicado na extremidade esquerda da barra:

E ao passar o mouse sobre o botão, sua moldura também é desenhada na extremidade esquerda, fechando as guias, e o nome do botão fica bagunçado:

Bug ou falha minha - não estou entendendo.

2. Há uma zona morta na extremidade direita da barra de tarefas. Na captura de tela, isso é perceptível por um artefato. Todas as dimensões definidas parecem estar corretas. Mas devo estar errado em algum ponto do código.

3. Ao alternar entre as guias, os comandos "Report", IS_APPEARANCE_CONTROLLER, "ReportFrames", END não são suficientes. Os quadros são ativados novamente, mas as tabelas contidas neles não são. Tenho que listar explicitamente os comandos "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,

Retag Konow #: Estamos nos adiantando um pouco.

Somente por causa de suspeitas de bugs.

 
Реter Konow #:
Tecnicamente, você pode criar outras opções para o posicionamento de texto e ícones dentro dos elementos, mas na prática elas não fazem sentido. Se houver necessidade, podemos considerá-las.

No conceito atual, se você quiser colocar um ícone e um texto um ao lado do outro, terá de selecionar manualmente os deslocamentos. Para cada botão, pois todos eles têm comprimentos de texto diferentes. Isso é inconveniente. Para simplificar, teremos que alinhar com a borda esquerda.

Gostaria de centralizar automaticamente a cadeia ícone-texto, selecionando opcionalmente a distância entre eles. Para botões da mesma largura, com diferentes comprimentos de texto, essa é a melhor opção.

Mas é claro que essa não é a prioridade máxima.

 
Edgar Akhmadeev #:

1. Se os botões forem colocados no quadro com o comando i, AT, LEFT_TOP, tudo estará bem.

Se você colocar na extremidade direita da barra de tarefas i, AT, _W2W, "MF", -40, _Y2Y, "MF", 0 - o ícone será duplicado na extremidade esquerda da barra:

E quando você passa o mouse sobre um botão, a moldura dele também é desenhada na extremidade esquerda, fechando as guias, e o nome do botão é apagado:

Bug ou falha minha - não estou entendendo.

2. Há uma zona morta na extremidade direita da barra de tarefas. Na captura de tela, isso é perceptível por um artefato. Todas as dimensões estão definidas corretamente. Mas devo estar errado em algum ponto do código.

3. Ao alternar entre as guias, os comandos "Report", IS_APPEARANCE_CONTROLLER, "ReportFrames", END não são suficientes. Os quadros são ativados novamente, mas as tabelas contidas neles não são. Tenho que listar explicitamente "Report", IS_APPEARANCE_CONTROLLER, "ReportFrames", "Balances", "Log", END

Apenas por suspeita de bugs.

Sugiro este código:

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


Result:


 

Em tabelas que exibem valores, os elementos R_HEADER e T_HEADER devem ser declarados, pois a nomeação e a conexão de células são feitas especificando R_HEADER e C_HEADER e combinando-os. É assim que o "endereço" de uma célula na tabela aparece. T_HEADER é necessário para definir muitas propriedades da tabela.

Se eles interferirem na aparência, podem ser ocultados como fiz acima.

 
Edgar Akhmadeev #:

1. Se os botões forem colocados no quadro com o comando i, AT, LEFT_TOP, tudo estará bem.

Se você colocar na extremidade direita da barra de tarefas i, AT, _W2W, "MF", -40, _Y2Y, "MF", 0 - o ícone será duplicado na extremidade esquerda da barra:

E quando você passa o mouse sobre um botão, a moldura dele também é desenhada na extremidade esquerda, fechando as guias, e o nome do botão é apagado:

Bug ou falha minha - não estou entendendo.

2. Há uma zona morta na extremidade direita da barra de tarefas. Na captura de tela, isso é perceptível por um artefato. Todas as dimensões estão definidas corretamente. Mas devo estar errado em algum ponto do código.

3. Ao alternar entre as guias, os comandos "Report", IS_APPEARANCE_CONTROLLER, "ReportFrames", END não são suficientes. Os quadros são ativados novamente, mas as tabelas contidas neles não são. Tenho que listar explicitamente "Report", IS_APPEARANCE_CONTROLLER, "ReportFrames", "Balances", "Log", END

Apenas por suspeita de bugs.

1. Há um sistema de posicionamento diferente dentro das telas. Prepararei material detalhado sobre esse tópico. Também não é possível usar o encaixe na borda direita da janela, pois o tamanho da janela depende do tamanho do conteúdo.

2. Só pode haver um elemento V_BOX por grupo de guias, e seu grupo deve ser declarado INFERIOR ao grupo de guias.

3) Atualmente, os tamanhos das guias são definidos manualmente, especificando-os explicitamente. Os ícones são definidos como de costume.

4. Para economizar recursos ao redesenhar a tela, removi o botão Atualizar da parte superior; caso contrário, a tela se tornaria MUITO longa e o redesenho consumiria muito mais recursos. Além disso, o botão pode ser colocado em algum lugar próximo às tabelas.

 
Acho que devemos parar por enquanto, pois estamos nos adiantando demais. E precisamos trabalhar na atualização)).
 
Edgar Akhmadeev #:

No conceito atual, se você quiser colocar um ícone e um texto um ao lado do outro, terá que ajustar manualmente os deslocamentos. Para cada botão, pois todos eles têm comprimentos de texto diferentes. Isso é inconveniente. Para simplificar, teremos que alinhar à borda esquerda.

Eu gostaria de centralizar automaticamente a cadeia ícone-texto, selecionando opcionalmente a distância entre eles. Para botões da mesma largura com diferentes comprimentos de texto, essa é a melhor opção.

Mas é claro que essa não é a prioridade máxima.

Isso é realizado em caixas de seleção e botões de rádio.

O objetivo da solução é expandir as possibilidades decorativas. Como a aparência dos botões e das guias geralmente deixa espaço para a fantasia, decidi não criar uma vinculação rígida de texto e ícones. Ontem, passei um modelo adequado para TODOS os elementos com textos e ícones. Basta copiar e alterar as emendas, se necessário.
 
Planejamos criar uma "base de modelos" que incluirá a "coloração" de elementos, estruturas de janelas, grupos (guias, por exemplo) e diversas variantes de tabelas. O usuário escolherá uma imagem e copiará o código, fará as alterações e pronto. Muito conveniente. E rápido.
 
Também vou unificar os sistemas de posicionamento. Acontece que há muitos deles e eles funcionam de forma diferente. Vou simplificá-los ao máximo.