Minha abordagem. O núcleo é o motor. - página 35

 
Dmitry Fedoseev:

O que você acha? Com o que uma biblioteca padrão não pode lidar?

Muito bem, Dimitri. O público aqui não quer desistir. Posso não ser um grande artista. Mas eu estava tentando mostrar as possibilidades do designer. Eles são bastante amplos. Você pode criar não só rapidamente, mas também com beleza (bem, isso é para aqueles que são mais talentosos do que eu em desenho).

Vou demonstrar o código da janela do relógio:

//----------------------------------------------------------------------------------
NEW_WINDOW,  W_NAME, "Time limits",  W_ICON, "Schedule (16x16)",  W_TYPE, SETTINGS, ALWAYS_ON_TOP,   
MARGINS,-9,-7,
//----------------------------------------------------------------------------------
"MF",N_COLOR,(int)C'200,169,149', 
"MF",NG_LINES,56, 
"MF",NG_STEP,-1,
//----------------------------------------------------------------------------------
 GROUP, A,
//---------------------------------------
__,BOARD,"Time limits for initial trades:", W,280,_,H,30,_,FONT_SIZE,13, _,TEXT_FONT,"Arial Black",_,ADAPT_2_GRADIENT,"MF",_,text, N_COLOR,(int)C'255,255,255',
//--------------------------------------- 
 END_GROUP,
//--------------------------
 i, AT, _X2X, "MF", 33, _Y2Y, "MF", 5,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
 GROUP, A,
//---------------------------------------
 __,REC,"R1", W,190,_,H,63,
//--------------------------------------- 
 END_GROUP,
//--------------------------
 i, AT, _X2W, "OFF", 10, _Y2H, "Time limits for initial trades:", 10,
 i,RECS, 
        N_FRAME,1,
        N_FRAME_COLOR,(int)C'209,173,149', 
       // FRAME_TYPE,_abc,  
        N_COLOR,(int)C'240,209,189',
       // NG_LINES,15,NG_STEP,1,
        NG_LINES,36, 
        NG_STEP,1,
        END,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
 GROUP, A,
    
__, BUTTON,"OFF", W,100,_,H,65, _,P_COLOR,(int)C'250,189,179',  _,A_COLOR,(int)C'255,20,17', _,AP_COLOR,(int)C'255,60,17', _,PARAM_TYPE,_BOOL, _,N_COLOR,(int)C'240,219,189', _,FIC,
         
 END_GROUP,
//--------------------------
 i, AT, _X2X, "MF", 5, _Y2H, "Time limits for initial trades:", 10,
//--------------------------  
i,BUTTONS,  PARAM_TYPE,_BOOL,   text,_A1_,_C2C,       text,_A2_,_C2C,     FONT_SIZE,12,   N_FRAME,1,   A_FRAME,1,   NP_FRAME,1,    END,
"OFF",A_TEXT,"ON",
//-------------------------- 
"OFF",NG_LINES,65, 
"OFF",NG_STEP,-1,
"OFF",AG_LINES,65, 
"OFF",AG_STEP,-1,
"OFF",NPG_LINES,65, 
"OFF",NPG_STEP,-1,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
 GROUP, A,
    
__, EDIT,"Hour to start", _,EDIT_ALIGN_CENTER, _,V_CURRENT,"1",  //_,READ_ONLY, 
    
    EDIT,"End hour",      _,EDIT_ALIGN_CENTER,_,V_CURRENT,"0",  //_,READ_ONLY, 
    
 END_GROUP,
//--------------------------
 i, AT, _X2W, "OFF", 17, _Y2H, "Time limits for initial trades:", 30,
 
 i,X_GAP,3,

 i,EDITS,  
 FRAME_TYPE,_b,
 POINTED,0,
 H,39,
 W,90,
 FONT_SIZE,20,
 N_COLOR,(int)C'240,209,189',
 NH_COLOR,(int)C'240,209,189',
 A_COLOR,(int)C'240,209,189',
 AH_COLOR,(int)C'240,209,189',
 N_FRAME_COLOR,(int)C'200,169,149',
 
 TEXT_FONT,"Arial Black",
 bar,N_FRAME,1,
 bar,A_FRAME,1,
 bar,FRAME_TYPE,_bc,
 
 bar,N_FRAME_COLOR,(int)C'200,169,149',
 bar,NH_FRAME_COLOR,(int)C'200,169,149',
 bar,A_FRAME_COLOR,(int)C'200,169,149',
 bar,AH_FRAME_COLOR,(int)C'200,169,149',
 
 bar,N_COLOR,(int)C'255,229,219',
 bar,NH_COLOR,(int)C'255,229,219',
 bar,A_COLOR,(int)C'255,229,219',
 bar,AH_COLOR,(int)C'255,229,219',
 
 bar,NG_LINES,36, 
 bar,NG_STEP,  1,
 bar,AG_LINES,36, 
 bar,AG_STEP,  1,
 
 text,N_COLOR,  (int)C'200,139,129',
 text,NH_COLOR, (int)C'200,139,129',
 text,A_COLOR,  (int)C'200,139,129',
 text,AH_COLOR, (int)C'200,139,129',
 
END,

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

//----------------------------------------------------------------------------------
 GROUP, A,

__, BOARD,"Hour to start:", W_C2C,"Hour to start",0, _,ON_TOP,"Hour to start",0,  

__, BOARD,"End hour:",      W_C2C,"End hour",     0, _,ON_TOP,"End hour",     0,   

 END_GROUP,
//--------------------------
i,BOARDS, FONT_SIZE,11,ADAPT_2_GRADIENT,"MF", text,N_COLOR,(int)C'180,149,129',   END,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,

__, H_LINE,"HL3",W,188,_,N_COLOR,(int)C'255,223,199',

END_GROUP,
//----------------------
 i, AT, _X2X, "R1", 1, _Y2Y, "R1", 1,

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

//----------------------------------------------------------------------------------
GROUP, A,

__, V_LINE,"vL",H,61,_,N_COLOR,(int)C'255,223,199',

END_GROUP,
//------------------------------------
 i, AT, _X2X, "R1", 1, _Y2Y, "R1", 1,

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

//----------------------------------------------------------------------------------
GROUP, A,

__, H_LINE,"HL5",W,190,_,N_COLOR,(int)C'199,163,139',

END_GROUP,
//----------------------
 i, AT, _X2X, "R1", 1, _Y2H, "R1", 0,

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

//----------------------------------------------------------------------------------
GROUP, A,

__, V_LINE,"vL2",H,63,_,N_COLOR,(int)C'199,163,139',

END_GROUP,
//----------------------
 i, AT, _X2W, "R1", 0, _Y2Y, "R1", 1,

//----------------------------------------------------------------------------------------------------
GROUP, A,

__, LABEL,A, N_LABEL,"Time (32x32)",

END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 3, _Y2Y, "MF", 5,
//----------------------------------------------------------------------------------
END_WINDOW,
//***************************************************************************************************************************************** *
 

Claro, o código é grande. Mas é extremamente simples.

O principal é que os elementos com propriedades já definidas (tamanho, cor, gradiente) podem ser simplesmente retirados do código e copiados para outras janelas.

Sem sintaxe, sem aulas, etc... Eles apenas pegaram um item, ou um grupo de itens, ou a janela inteira e o colaram em qualquer lugar. Em uma só peça.

Em seguida, mude alguma coisa e você terá um novo elemento, grupo de elementos ou janela.

 
Реter Konow:

...Mas tentei mostrar as possibilidades do construtor...

Aqui:NEW_WINDOW, W_NAME, "Time limits", W_ICON, "Schedule (16x16)", W_TYPE, SETTINGS, ALWAYS_ON_TOP,

É isso que você está tentando retratar como um OOP, apenas em seu... à sua própria maneira. Esta é essencialmente uma chamada do construtor: nova Qwerty(z,x,c).

 
Dmitry Fedoseev:

Aqui:NEW_WINDOW, W_NAME, "Time limits", W_ICON, "Schedule (16x16)", W_TYPE, SETTINGS, ALWAYS_ON_TOP,

É isso que você está tentando retratar como um OOP, apenas em seu... à sua própria maneira. É essencialmente uma chamada do construtor: novo Qwerty(z,x,c).

Talvez. Mas a ordem não importa aqui.

Por exemplo:

NEW_WINDOW,  W_NAME, "Time limits",  W_ICON, "Schedule (16x16)",  W_TYPE, SETTINGS, ALWAYS_ON_TOP,

ou .

NEW_WINDOW, W_ICON, "Schedule (16x16)", W_NAME, "Time limits",     ALWAYS_ON_TOP, W_TYPE, SETTINGS,


Isso não faz diferença.

Observe que as propriedades podem ser definidas para um grupo inteiro do mesmo tipo de uma só vez:

i,BOARDS, FONT_SIZE,11,ADAPT_2_GRADIENT,"MF", text,N_COLOR,(int)C'180,149,129',   END,
 
Реter Konow:

Talvez. Mas a ordem não é importante aqui.

Por exemplo:

ou


Isso não faz diferença.

Note que as propriedades podem ser definidas para todo um grupo de elementos similares de uma só vez:

Se o pedido não for importante, então não há pontas de ferramentas. E quando você chama uma função ou construtor de classe com parâmetros, o compilador faz dicas por parâmetros. E você sabe, esta é uma ajuda muito significativa. Portanto, a abordagem padrão é uma vantagem definida de gordura.

 
Реter Konow:

O nível dos gráficos na biblioteca padrão não é bom, para dizer o mínimo. A mão-de-obra envolvida na criação dessas janelas, por exemplo:

Enorme. É POR ISSO QUE NADA SÉRIO É CRIADO.

Duvido que com a biblioteca padrão você possa, em princípio, criar tais gráficos.

Você está apenas fora de sua profundidade :(

É muito simples e rápido. Todas as suas janelas podem ser feitas com a biblioteca padrão. Realmente, eu não vou fazer isso :)


Arquivos anexados:
HelloWorld1.ex5  250 kb
 
Yury Kulikov:

Você simplesmente não está no loop :(

É muito simples e rápido. Todas as suas janelas podem ser feitas com uma biblioteca padrão. Realmente, eu não vou fazer isso :)


Tente fazer com que, ao pressionar um botão, um conjunto de elementos de controle seja exibido, e ao pressionar um outro elemento de controle seja exibido. Ao mesmo tempo, você será capaz de minimizar e maximizar a janela. Também se supõe que poderia haver muitas variantes.

Seria interessante perguntar a Peter como ele poderia resolver este problema.

 
Dmitry Fedoseev:

Tente fazer aparecer um conjunto de controles quando clicar em um botão, e outro conjunto de controles quando clicar em outro botão. Ao mesmo tempo, a janela pode ser minimizada e maximizada. Também se supõe que poderia haver muitas variantes.

Seria interessante perguntar a Peter como ele poderia resolver esta tarefa.

Existe essa possibilidade. Posso fazer com que um elemento controle o fenômeno de outro elemento, ou grupo de elementos. Bem, e as abas regulares também funcionam, é claro.

Vou fazer um motor assim hoje e vou mostrar a você.

 
Dmitry Fedoseev:

Tente fazer aparecer um conjunto de controles quando clicar em um botão, e outro conjunto de controles quando clicar em outro botão. Ao mesmo tempo, a janela pode ser minimizada e maximizada.

Há algum problema? Não tenho tempo para investigar a biblioteca padrão, mas acho que se esconder/exposição não resolver o problema, você provavelmente poderia trocar os containers, as áreas do cliente ou o próprio diálogo.

 
Yury Kulikov:

Há algum problema? Não tenho tempo para investigar a biblioteca padrão, mas acho que se esconder/exposição não resolver o problema, você provavelmente poderia trocar os containers, as áreas do cliente ou o próprio diálogo.

Não sei, eu tentei e não funcionou.

Razão: