Galeria de UIs escritas em MQL - página 37

 
Edgar Akhmadeev #:

Pergunta:

Há um catálogo "Include\(1) KIB 1.0\(1) BASE\(1) DOCUMENTATION\".

Esses são apenas exemplos de código ou devem ser compilados como um programa de demonstração? Qual é a maneira correta de usá-lo?

Os códigos mais funcionais estão na pasta "Include\(1) KIB 1.0\(1) BASE\(2) STATE KIB-CODE"

Há códigos de janelas do designer. Você pode estudá-los.

 
Реter Konow #:

1. As caixas em V e as guias são sempre escritas em grupos separados. Isso é mais conveniente. É aconselhável não adicionar mais nada a esses grupos. Caso contrário, começa a"selva de posicionamento". É claro que você pode fazer isso dessa forma, mas não vale a pena...


R etag Konow #: uma nuance muito importante. As guias controlam a alternância das imagens da tela V_BOX(a). Elas devem ser declaradas acima. Primeiro as guias, depois as V_BOX (s).

Ainda não descobri como trabalhar com as guias. Desenhei H_TAB, mas são apenas botões, e não sei como alternar as guias usando-os. Gostaria de um exemplo com duas guias. Ou ainda é muito cedo para isso?


R etaguar Konow #:

3. Você colocou a palavra "TEXTO" nas tabelas. Isso é desnecessário. As células CELL têm seu próprio parâmetro que obtém um valor do aplicativo do usuário quando conectado. Ou use a palavra V_CURRENT para definir o valor.

É a CELL que é necessária, pois as células serão preenchidas programaticamente. Até agora, defini valores fixos.

E V_CURRENT ajudou, o lixo desapareceu.


R etag Konow #: Outra nuance importante. Todas as tabelas têm um elemento T_HEADER em seu cabeçalho

Sim, na primeira tabela ele é apropriado porque cria uma coluna para os nomes das linhas.

Na segunda tabela, essa coluna não é necessária, portanto, não a adicionei. Mas funcionou bem.

A segunda tabela é um registro de eventos futuros. Talvez a tabela seja uma opção ruim para isso? Se fosse programática, seria difícil adicionar linhas.

 
Edgar Akhmadeev #:

No H_TAB, "Relatório", até eu adicionar o ícone, havia um fantasma de um ícone distorcendo o título. Ele desapareceu depois de clicar nele.

Não sei se é um bug, mas os TEXT_ALIGN_*s descritos estão faltando.

Isso ainda não foi respondido.

E eu queria aplicar I_BUTTON em vez de TB_BUTTON, mas aí você precisa saber como alinhar o ícone e o texto, pois por padrão eles se sobrepõem.

 
Edgar Akhmadeev #:

Ainda não descobri como trabalhar com guias. Desenhei o H_TAB, mas são apenas botões, mas não sei como alternar as guias usando-os. Gostaria de um exemplo com duas guias. Ou ainda é muito cedo para isso?

CELL é exatamente o que eu preciso, as células serão preenchidas programaticamente. Até agora, defini valores fixos.

E V_CURRENT ajudou, o lixo desapareceu.

Sim, na primeira tabela isso é apropriado porque cria uma coluna para os nomes das linhas.

Na segunda tabela, essa coluna não é necessária, portanto, não a adicionei. Mas funcionou bem.

A segunda tabela é um registro de eventos futuros. Talvez a tabela seja uma opção ruim para isso? Se fosse programática, seria difícil adicionar linhas.

Veja um exemplo da janela do menu Labels em "Include\(1) KIB 1.0\(1) BASE\ (2) STATE KIB-CODE". Ele declara um grupo de guias e um V_BOX. É apenas uma para três guias. Cada guia tem seu próprio grupo de ícones. Você pode usar isso como um modelo. Só que as guias estão na parte superior, não na parte inferior. Tente colocá-las na parte inferior. Acho que vai funcionar.


//===================================================================================================================
 GROUP, "Main tabs",

__, H_TAB, "16x16",ON,   H_TAB, "24x24",  H_TAB, "32x32", GAP,150, EDIT, "E1", W, 320, _,READ_ONLY,  

END_GROUP,
//----------------------------
i, AT, _X2X, "MF", 2, _Y2Y, "MF",2,

i, SWITCH,"16x16","24x24","32x32",END,
i, TENURED,
i, H_TABS, AH_COLOR, (int)C'255,255,255', A_COLOR, (int)C'255,255,255', N_COLOR, (int)C'250,250,250',
 
 P_COLOR,(int)C'236,244,252',  NPG_LINES,20, NPG_STEP,1, NG_LINES,20, NG_STEP,1, END,

"16x16",     IS_APPEARANCE_CONTROLLER,  "LABELS 16*16",END,
"24x24",     IS_APPEARANCE_CONTROLLER,  "LABELS 24*24", END,
"32x32",     IS_APPEARANCE_CONTROLLER,  "LABELS 32*32", END,
//----------------------------------------------------------------------------------
"LABELS 16*16","24x24","32x32", 
//===================================================================================================================

//===================================================================================================================
//----------------------------------------------------------------------------------
GROUP,"Labels v_box 16*16",

__,   V_BOX,"V1", W,800, _,H,330,_,N_FRAME,1,_,A_FRAME,1,_,NP_FRAME,1, AP_FRAME,1,

END_GROUP,
//----------------------------
i, AT, _X2X, "16x16", 0, _Y2H, "16x16", -1,/**/
//===================================================================================================================
 
Edgar Akhmadeev #:

Isso ainda não foi respondido.

E, em vez de TB_BUTTON, eu queria aplicar I_BUTTON, mas aí você precisa saber como alinhar o ícone e o texto, pois, por padrão, eles se sobrepõem.

Preciso pensar sobre isso. Esqueci de muitas coisas. Vou procurar uma solução e lhe informarei.

 
Edgar Akhmadeev #:

Isso ainda não foi respondido.

E, em vez de TB_BUTTON, eu queria aplicar I_BUTTON, mas aí você precisa saber como alinhar o ícone e o texto, pois, por padrão, eles se sobrepõem.

Tente usar a mesma abordagem do C_HEADER:

i, C_HEADERS, 
        TEXT_STYLE, (int)FW_BOLD, 
        FONT_SIZE, 10, 
        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,

Por exemplo:

i, I_BUTTONS,  text, _A1_, _X2X,  text, _C1_, 30,    label, _A1_, _X2X,  label, _C1_, 5,     W, 120, H,30,    END,
 
Реter Konow #:
i, I_BUTTONS, text, _A1_, _X2X, text, _C1_, 30, label, _A1_, _X2X, label, _C1_, 5, W, 120, H,30, END,


Linha de trabalho.

 

A segunda variante do posicionamento do ícone e do texto nos elementos:

i, I_BUTTONS,  
     //-------------- 
    text, _A1_, _C2C, // Привязка текста к центру кнопки по оси Х  (_C2C - center to center). 
    text, _C1_,    0// Поправка позиции относительно центра кнопки по оси Х (0). 
     //-------------- 
    text, _A2_, _C2C,  // Привязка текста к центру кнопки по оси Y  (_C2C - - center to center). 
    text, _C2_,   10// Поправка позиции текста относительно центра кнопки по оси Y  (10). 
     //-------------- 
    label, _A2_, _Y2Y, // Привязка иконки к верху кнопки по оси Y  (_Y2Y  - Y to Y). 
    label, _C2_,   5// Поправка позиции иконки относительно Y координаты кнопки по оси Y  (5). 
     //-------------- 
    W, 100 , H, 50 , 
     //-------------- 
    END,
   //------------------------------------------------------ 
   "Button 1" , N_LABEL, "::Images\\16x16\\Lock.bmp" ,
   //------------------------------------------------------


text, _A1_, _C2C, // Vincula o texto ao centro do botão ao longo do eixo X (_C2C - centro a centro).

text, _C1_, 0, // Correção da posição relativa ao centro do botão ao longo do eixo X (0).

//--------------

text, _A2_, _C2C, // Vincular o texto ao centro do botão ao longo do eixo Y (_C2C - - centro a centro).

text, _C2_, 10, // Correção da posição do texto em relação ao centro do botão ao longo do eixo Y (10).

//--------------

label, _A2_, _Y2Y, // Encaixa o ícone na parte superior do botão ao longo do eixo Y (_Y2Y - Coordenada Y a Y).

label, _C2_, 5, // Correção da posição do ícone em relação à coordenada Y do botão ao longo do eixo Y (5).




 

Basicamente, há apenas duas opções para posicionar o texto e o ícone dentro dos botões. Ambas são mostradas acima.

Você pode usá-lo como modelo para qualquer elemento com texto e ícone. Basta alterar o nome do elemento, os ícones, os textos e as correções (_C1, _C2).

Tecnicamente, você pode criar outras variantes de disposição de texto e ícone dentro dos elementos, mas na prática elas não fazem sentido. Se houver necessidade, você pode considerá-las.

Em geral, o modelo está pronto. Experimente-o.

 
Edgar Akhmadeev #:

Isso ainda não foi respondido.

...

Minha resposta ajudou?