Il mio approccio. Il nucleo è il motore. - pagina 35

 
Dmitry Fedoseev:

Cosa ne pensate? Cosa c'è che la libreria standard non può gestire?

Ok, Dimitri. Il pubblico qui non vuole arrendersi. Forse non sono un grande artista. Ma ho cercato di mostrare le possibilità del designer. Sono abbastanza larghi. Si può creare non solo velocemente, ma anche in modo bello (beh, questo è per coloro che hanno più talento di me nel disegno).

Dimostrerò il codice della finestra dell'orologio:

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

Certo, il codice è grande. Ma è estremamente semplice.

La cosa principale è che gli elementi con proprietà già impostate (dimensione, colore, gradiente) possono essere semplicemente presi dal codice e copiati in altre finestre.

Nessuna sintassi, nessuna classe, ecc... Hanno semplicemente preso un elemento, o un gruppo di elementi, o l'intera finestra e l'hanno incollata ovunque. In un unico pezzo.

Poi, cambia qualcosa e ottieni un nuovo elemento, gruppo di elementi o finestra.

 
Реter Konow:

...Ma ho cercato di mostrare le possibilità del costruttore...

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

Questo è quello che stai cercando di rappresentare come un OOP, solo nel tuo... a modo suo. Questa è essenzialmente una chiamata al costruttore: new Qwerty(z,x,c).

 
Dmitry Fedoseev:

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

Questo è quello che stai cercando di rappresentare come un OOP, solo nel tuo... a modo suo. È essenzialmente una chiamata al costruttore: new Qwerty(z,x,c).

Forse. Ma l'ordine non ha importanza qui.

Per esempio:

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

o .

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


Non fa differenza.

Si noti che le proprietà possono essere impostate contemporaneamente per un intero gruppo dello stesso tipo:

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

Forse. Ma l'ordine non è importante qui.

Per esempio:

o


Nessuna differenza.

Si noti che le proprietà possono essere impostate per un intero gruppo di elementi simili in una sola volta:

Se l'ordine non è importante, allora non ci sono tooltip. E quando si chiama un costruttore di funzioni o di classi con parametri, il compilatore fa dei suggerimenti per i parametri. E sapete, questo è un aiuto molto significativo. Quindi, l'approccio standard è un chiaro vantaggio per il grasso.

 
Реter Konow:

Il livello della grafica nella libreria standard non è buono, a dir poco. La manodopera coinvolta nella creazione di queste finestre, per esempio:

Enorme. ECCO PERCHÉ NON SI CREA NULLA DI SERIO.

Dubito che con la libreria standard si possano creare tali grafici in linea di principio.

Sei proprio fuori dalla tua portata :(

È molto semplice e veloce. Tutte le vostre finestre possono essere fatte con la libreria standard. Davvero, non lo farò :)


File:
HelloWorld1.ex5  250 kb
 
Yury Kulikov:

Sei proprio fuori dal mondo :(

È molto semplice e veloce. Tutte le vostre finestre possono essere fatte con una libreria standard. Davvero, non lo farò :)


Cercate di fare in modo che premendo un pulsante venga visualizzato un insieme di elementi di controllo, e premendone un altro venga visualizzato un altro elemento di controllo. Allo stesso tempo, sarete in grado di minimizzare e massimizzare la finestra. Si presume anche che ci possano essere molte varianti.

Sarebbe interessante chiedere a Peter come potrebbe risolvere questo problema.

 
Dmitry Fedoseev:

Prova a far apparire una serie di controlli quando clicchi su un pulsante e un'altra serie di controlli quando clicchi su un altro pulsante. Allo stesso tempo, la finestra può essere minimizzata e massimizzata. Si presume anche che ci possano essere molte varianti.

Sarebbe interessante chiedere a Peter come potrebbe risolvere questo compito.

Esiste una tale possibilità. Posso fare in modo che un elemento controlli il fenomeno di un altro elemento, o gruppo di elementi. Beh, e anche le normali schede funzionano, ovviamente.

Oggi farò un tale motore e ve lo mostrerò.

 
Dmitry Fedoseev:

Prova a far apparire una serie di controlli quando clicchi su un pulsante e un'altra serie di controlli quando clicchi su un altro pulsante. Allo stesso tempo, la finestra può essere minimizzata e massimizzata.

C'è un problema? Non ho tempo per indagare sulla libreria standard, ma penso che se hide/show non risolve il problema, probabilmente si potrebbero scambiare i contenitori, le aree client o la finestra stessa.

 
Yury Kulikov:

C'è un problema? Non ho tempo per indagare sulla libreria standard, ma penso che se hide/show non risolve il problema, probabilmente si potrebbero scambiare i contenitori, le aree client o la finestra stessa.

Non lo so, ho provato e non ha funzionato.

Motivazione: