Mein Ansatz. Der Kern ist der Motor. - Seite 35

 
Dmitry Fedoseev:

Was meinen Sie dazu? Was gibt es, das die Standardbibliothek nicht bewältigen kann?

Okay, Dimitri. Die Öffentlichkeit hier will nicht aufgeben. Ich bin vielleicht kein großer Künstler. Aber ich habe versucht, die Möglichkeiten des Designers aufzuzeigen. Sie sind recht breit. Man kann nicht nur schnell, sondern auch schön zeichnen (das gilt für diejenigen, die mehr Talent zum Zeichnen haben als ich).

Ich werde den Code des Uhrenfensters demonstrieren:

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

Sicher, der Code ist groß. Aber es ist ganz einfach.

Die Hauptsache ist, dass Elemente mit bereits festgelegten Eigenschaften (Größe, Farbe, Farbverlauf) einfach aus dem Code übernommen und in andere Fenster kopiert werden können.

Keine Syntax, keine Klassen, usw... Sie haben einfach ein Element, eine Gruppe von Elementen oder das gesamte Fenster genommen und es irgendwo eingefügt. In einem Stück.

Wenn Sie dann etwas ändern, erhalten Sie ein neues Element, eine neue Elementgruppe oder ein neues Fenster.

 
Реter Konow:

...Aber ich habe versucht, die Möglichkeiten des Konstruktors aufzuzeigen...

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

Das ist es, was Sie versuchen, als OOP darzustellen, nur in Ihrem... auf Ihre eigene Art und Weise. Dies ist im Wesentlichen ein Konstruktoraufruf: new Qwerty(z,x,c).

 
Dmitry Fedoseev:

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

Das ist es, was Sie versuchen, als OOP darzustellen, nur in Ihrem... auf Ihre eigene Art und Weise. Es handelt sich im Wesentlichen um einen Konstruktoraufruf: new Qwerty(z,x,c).

Vielleicht. Aber die Reihenfolge spielt hier keine Rolle.

Zum Beispiel:

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

oder .

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


Es macht keinen Unterschied.

Beachten Sie, dass Eigenschaften für eine ganze Gruppe desselben Typs auf einmal festgelegt werden können:

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

Vielleicht. Aber die Reihenfolge ist hier nicht wichtig.

Zum Beispiel:

oder


Es macht keinen Unterschied.

Beachten Sie, dass Eigenschaften für eine ganze Gruppe ähnlicher Elemente auf einmal festgelegt werden können:

Wenn die Reihenfolge nicht wichtig ist, gibt es auch keine Tooltips. Und wenn Sie eine Funktion oder einen Klassenkonstruktor mit Parametern aufrufen, macht der Compiler Hinweise auf die Parameter. Und Sie wissen, dass dies eine sehr wichtige Hilfe ist. Der Standardansatz ist also ein eindeutiges Plus.

 
Реter Konow:

Das Niveau der Grafiken in der Standardbibliothek ist, gelinde gesagt, nicht gut. Die Arbeit, die mit der Herstellung dieser Fenster verbunden ist, zum Beispiel:

Riesig. DESHALB WIRD NICHTS ERNSTHAFTES GESCHAFFEN.

Ich bezweifle, dass man mit der Standardbibliothek prinzipiell solche Grafiken erstellen kann.

Du bist einfach überfordert :(

Es ist sehr einfach und schnell. Alle Ihre Fenster können mit der Standardbibliothek erstellt werden. Wirklich, ich werde es nicht tun :)


Dateien:
HelloWorld1.ex5  250 kb
 
Yury Kulikov:

Sie sind einfach nicht auf dem Laufenden :(

Es ist sehr einfach und schnell. Alle Ihre Fenster können mit einer Standardbibliothek erstellt werden. Wirklich, ich werde es nicht tun :)


Versuchen Sie, dass beim Drücken einer Taste ein Satz von Bedienelementen angezeigt wird und beim Drücken einer anderen Taste ein anderes Bedienelement angezeigt wird. Gleichzeitig können Sie das Fenster minimieren und maximieren. Es wird auch angenommen, dass es viele Varianten geben könnte.

Es wäre interessant, Peter zu fragen, wie er dieses Problem lösen könnte.

 
Dmitry Fedoseev:

Versuchen Sie, einen Satz von Steuerelementen erscheinen zu lassen, wenn Sie auf eine Schaltfläche klicken, und einen anderen Satz von Steuerelementen, wenn Sie auf eine andere Schaltfläche klicken. Zugleich kann das Fenster minimiert und maximiert werden. Es wird auch angenommen, dass es viele Varianten geben könnte.

Es wäre interessant, Peter zu fragen, wie er diese Aufgabe lösen könnte.

Es gibt eine solche Möglichkeit. Ich kann ein Element dazu bringen, das Phänomen eines anderen Elements oder einer Gruppe von Elementen zu kontrollieren. Nun, und normale Tabs funktionieren natürlich auch.

Ich werde heute einen solchen Motor bauen und ihn Ihnen zeigen.

 
Dmitry Fedoseev:

Versuchen Sie, einen Satz von Steuerelementen erscheinen zu lassen, wenn Sie auf eine Schaltfläche klicken, und einen anderen Satz von Steuerelementen, wenn Sie auf eine andere Schaltfläche klicken. Zugleich kann das Fenster minimiert und maximiert werden.

Gibt es ein Problem? Ich habe keine Zeit, die Standardbibliothek zu untersuchen, aber ich denke, wenn hide/show das Problem nicht löst, können Sie wahrscheinlich Container, Clientbereiche oder den Dialog selbst austauschen.

 
Yury Kulikov:

Gibt es ein Problem? Ich habe keine Zeit, die Standardbibliothek zu untersuchen, aber ich denke, wenn hide/show das Problem nicht löst, können Sie wahrscheinlich Container, Clientbereiche oder den Dialog selbst austauschen.

Ich weiß nicht, ich habe es versucht und es hat nicht funktioniert.