Mi enfoque. El núcleo es el motor. - página 35

 
Dmitry Fedoseev:

¿Qué te parece? ¿Qué hay que no pueda manejar la biblioteca estándar?

Bien, Dimitri. El público de aquí no quiere rendirse. Puede que no sea un gran artista. Pero intentaba mostrar las posibilidades del diseñador. Son bastante anchos. Puedes crear no sólo de forma rápida, sino también bonita (bueno, eso es para los que tienen más talento que yo para dibujar).

Voy a demostrar el código de la ventana del reloj:

//----------------------------------------------------------------------------------
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, el código es grande. Pero es extremadamente sencillo.

Lo principal es que los elementos con propiedades ya establecidas (tamaño, color, gradiente) pueden ser simplemente tomados del código y copiados a otras ventanas.

Sin sintaxis, sin clases, etc... Simplemente tomaron un elemento, o un grupo de elementos, o toda la ventana y la pegaron en cualquier lugar. En una sola pieza.

Entonces, cambia algo y obtienes un nuevo elemento, grupo de elementos o ventana.

 
Реter Konow:

...Pero intenté mostrar las posibilidades del constructor...

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

Eso es lo que intenta retratar como un OOP, sólo que en su... a su manera. Esto es esencialmente una llamada al constructor: new Qwerty(z,x,c).

 
Dmitry Fedoseev:

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

Eso es lo que intenta retratar como un OOP, sólo que en su... a su manera. Es esencialmente una llamada al constructor: new Qwerty(z,x,c).

Tal vez. Pero el orden no importa aquí.

Por ejemplo:

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,


No hay ninguna diferencia.

Tenga en cuenta que las propiedades se pueden establecer para todo un grupo del mismo tipo a la vez:

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

Tal vez. Pero el orden no es importante aquí.

Por ejemplo:

o


No hay ninguna diferencia.

Tenga en cuenta que las propiedades se pueden establecer para todo un grupo de elementos similares a la vez:

Si el orden no es importante, entonces no hay información sobre herramientas. Y cuando se llama a un constructor de función o clase con parámetros, el compilador hace sugerencias por parámetros. Y sabes, esto es una ayuda muy significativa. Así que el enfoque estándar es un plus de grasa.

 
Реter Konow:

El nivel de los gráficos de la biblioteca estándar no es bueno, por no decir otra cosa. Por ejemplo, la mano de obra que supone la creación de estas ventanas:

Enorme. POR ESO NO SE CREA NADA SERIO.

Dudo que con la biblioteca estándar se puedan crear en principio esos gráficos.

Estás fuera de tu alcance :(

Es muy sencillo y rápido. Todas las ventanas se pueden hacer con la biblioteca estándar. De verdad, no lo haré :)


Archivos adjuntos:
HelloWorld1.ex5  250 kb
 
Yury Kulikov:

Simplemente no estás en el bucle :(

Es muy sencillo y rápido. Todas las ventanas se pueden hacer con una biblioteca estándar. De verdad, no lo haré :)


Intente hacer que al pulsar un botón se muestre un conjunto de elementos de control, y al pulsar otro se muestre otro elemento de control. Al mismo tiempo, podrá minimizar y maximizar la ventana. También se supone que puede haber muchas variantes.

Sería interesante preguntar a Peter cómo podría resolver este problema.

 
Dmitry Fedoseev:

Intenta que un conjunto de controles aparezca al hacer clic en un botón y otro conjunto de controles aparezca al hacer clic en otro botón. Al mismo tiempo, la ventana puede minimizarse y maximizarse. También se supone que puede haber muchas variantes.

Sería interesante preguntar a Peter cómo podría resolver esta tarea.

Existe esa posibilidad. Puedo hacer que un elemento controle el fenómeno de otro elemento, o grupo de elementos. Bueno, y las pestañas normales también funcionan, por supuesto.

Hoy haré un motor de este tipo y te lo mostraré.

 
Dmitry Fedoseev:

Intenta que un conjunto de controles aparezca al hacer clic en un botón y otro conjunto de controles aparezca al hacer clic en otro botón. Al mismo tiempo, la ventana puede minimizarse y maximizarse.

¿Hay algún problema? No tengo tiempo para investigar la biblioteca estándar, pero creo que si ocultar/mostrar no resuelve el problema, probablemente podrías intercambiar contenedores, áreas de cliente o el propio diálogo.

 
Yury Kulikov:

¿Hay algún problema? No tengo tiempo para investigar la biblioteca estándar, pero creo que si ocultar/mostrar no resuelve el problema, probablemente podrías intercambiar contenedores, áreas de cliente o el propio diálogo.

No sé, lo probé y no funcionó.

Razón de la queja: