Galerie der in MQL geschriebenen UIs - Seite 49

 
Renat Akhtyamov #:

Das ist der Schatten.

Wenn die Farbe kontrastreich ist, wird es nur für den Benutzer schön sein, da der Künstler sich daran langweilt.

Das stimmt, es ist der Schatten und auch der Winkel, die Beleuchtung, die Blendung.....

Keine Zeit für all das.

 
Реter Konow #:

Das stimmt, es geht um Schatten, aber auch um Winkel, Beleuchtung, Blendung.....

Für all das haben wir keine Zeit.

Es liegt an Ihnen, es ist nur eine Antwort.

Meistens wird man durch das Vorhandensein einer Antwort getröstet, nicht durch ihre Verwirklichung oder ihr Fehlen.

Das ist eine Tatsache der Psychologie.

---

Blendung tritt nur auf unebenen Oberflächen auf, wie bei einer Kugel, einem Torus.

 
Als ich versuchte, den Rahmen der Schaltfläche zu malen, teilte ich zunächst die Hauptfarbe mit Hilfe der Verlaufsfunktion in eine Reihe von Farbtönen auf. Nachdem ich den Bereich der ursprünglichen Farbe erhalten hatte, malte ich die Rahmenlinien in den ausgewählten Farben des Bereichs neu. Das Ergebnis war schlecht. Unnatürlich. Ich habe versucht, den Bereich entlang der Kurve zu durchlaufen, die die Krümmung der ursprünglichen grauen Farbe des Knopfrahmens wiederholt. Wieder nicht so gut. Genauer gesagt, mit einigen Farben habe ich fast genau, mit anderen nicht. Dann verstand ich, dass ich eine spezielle Formel brauche, um die graue Farbe der Rahmenlinien mit der Farbe der Schaltfläche zu mischen. Aber ich konnte die Formel nicht auf die Schnelle finden. Ich habe die Idee aufgegeben.
 
Реter Konow #:
Als ich versuchte, den Rahmen der Schaltfläche zu malen, teilte ich zunächst die Hauptfarbe mit Hilfe der Verlaufsfunktion in einen Bereich auf. Nachdem ich eine Reihe von Schattierungen der ursprünglichen Farbe (der Schaltfläche) erhalten hatte, malte ich die Rahmenlinien einfach in den ausgewählten Farben aus der Reihe nach. Das Ergebnis war schlecht. Unnatürlich. Ich versuchte, mich auf einer Kurve durch den Bereich zu bewegen, die die Krümmung der ursprünglichen grauen Farbe des Knopfrahmens wiederholt. Das hat nicht gut funktioniert. Genauer gesagt, mit einigen Farben habe ich fast genau, mit anderen überhaupt nicht. Dann verstand ich, dass ich eine Formel brauchte, um die graue Farbe jeder Zeile des Rahmens mit der Farbe des Knopfes zu mischen. Aber ich konnte die Formel nicht auf die Schnelle finden. Also habe ich aufgegeben.

Was hat Grau damit zu tun?

Man braucht eine kontrastierende Farbe ;)

Es muss gut und schön aussehen.

rot/grün

gelb/blau

usw.

Siehst du das Können des Künstlers?

Nun, es ist nicht schön, wenn man es bereits herausgefunden hat, es ist ein vorhersehbarer Standard.....

Für diejenigen, die es nicht wissen: Es ist ganz normal.

 

Die Unzulänglichkeiten der Grafik müssen wir vorerst als gegeben hinnehmen.

Kehren wir zur Hauptsache zurück - Auszeichnungssprache und Funktionalität.

Ich danke Ihnen allen für Ihre Stellungnahmen.

DasProblem mit den Farben und Symbolen ist gelöst .

 



//------------------------------------------------------ 
//DECLARE A NEW WINDOW
//------------------------------------------------------ 
NEW_WINDOW,  
//------------------------------------------------------
/*SET WINDOW TYPE*/             W_TYPE, DIALOG,  
//------------------------------------------------------
/*WRITE WINDOW'S NAME*/         W_NAME, "Sorry, this order is blocked.",
//------------------------------------------------------
/*SET WINDOW'S CAPTION*/        CAPTION, "Risk managment",
//------------------------------------------------------
/*NAME (CAPTION)IN THE MIDDLE*/ NIM,  
//------------------------------------------------------
/*POINT TO WINDOW'S ICON*/      W_ICON, "::Images\\16x16\\No.bmp",   
//------------------------------------------------------
/*ONLY CLOSING BUTTON*/         ONLY_CLOSING, 
//------------------------------------------------------
/*WINDOW ALWAYS ON TOP*/        ALWAYS_ON_TOP, 
//------------------------------------------------------
/*OPEN WINDOW WITH A SOUND*/    OPENING_SOUND,"::Sounds\\Windows Foreground.wav", 
//------------------------------------------------------ 
/*WINDOW OPENS AT START*/       OPEN_ON_INIT,  /*(OOI)*/
//------------------------------------------------------
/*LOCK WINDOWS IF OPENED*/      LOCKS_WINDOWS, ALL_WINDOWS,   
//------------------------------------------------------
/*MARGINS OF THE WINDOW*/       MARGINS, 12,17,/*Х, Y*/
//------------------------------------------------------
//----------------------------------------------------------------------------------
//----------------------------------------------------------------------------------
GROUP, A,
//------------------------------------------------------
__, T_BOX,  "T1", TEXT,
//------------------------------------------------------
                  "Sorry, this order was closed.",
//------------------------------------------------------                 
                  END, 
//------------------------------------------------------                 
END_GROUP,
//--------------------------
i, AT, _X2X, "MF",   1, _Y2Y, "MF", 1,
//--------------------------
"T1",_A3_,0,
//--------------------------
"T1", W,406,
//--------------------------
"T1", H,38,
//--------------------------
"T1", text,_C1_,10,
//--------------------------
"T1", text,_C2_,10,
//--------------------------
"T1",FONT_SIZE,10,
//--------------------------
"T1",TEXT_STYLE,(int)FW_BOLD,
//--------------------------
"T1",text,N_COLOR,(int)clrRed,
//--------------------------
//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, T_BOX,  "T3",TEXT,
                 "*Automated risk managment system denied opening new order.", 
//----------------------------------------------------------------------------------                 
                 END,
GAP,10,
//----------------------------------------------------------------------------------                 
__, T_BOX,  "T4",TEXT,
                 "*Reason: According to the preset settings the risk is too",
                 "high for your deposit. You may have to consider reducing",
                 "lot or change risk managment settings.",
                 END,
//----------------------------------------------------------------------------------                 
END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 1, _Y2H, "T1", 5,
//--------------------------
"T3",TEXT_STYLE,(int)FONT_ITALIC,
//--------------------------
"T4",TEXT_STYLE,(int)FW_BOLD,
//--------------------------
"T3",text,_C1_,55,
//--------------------------
"T4",text,_C1_,55,
//--------------------------
"T3",N_COLOR,(int)C'240,240,240',
//--------------------------
"T4",N_COLOR,(int)C'240,240,240',
//--------------------------
"T3",H,20,
//--------------------------
"T4",H,55,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, LABEL,A,  _,N_LABEL,"::Images\\32x32\\No.bmp", _,N_COLOR,(int)clrWhite,
//----------------------------------------------------------------------------------
END_GROUP,
//------------------------------------
i, AT, _X2X, "T1", 350, _Y2Y, "T1", 3,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, LABEL,"EFEW", _,N_LABEL,"::Images\\32x32\\Error.bmp", 
//----------------------------------------------------------------------------------
END_GROUP,
//-----------------------------------
i, AT, _X2X, "MF", 10, _Y2H, "T1", 5,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, D_BUTTON, "OK",  CWIP, _,W,40, _,POINTED,0,
//----------------------------------------------------------------------------------
                   _,N_FRAME_COLOR, (int)C'51,153,255',
                   //--------------------------------------------------------------- 
                   _,N_COLOR,       (int)C'236,244,254',
//----------------------------------------------------------------------------------
END_GROUP,
//------------------------------------
i, AT, _W2W, "MF", -7, _Y2H, "T4", 10,
//----------------------------------------------------------------------------------
 
//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, H_LINE,"H1", W,400, _,NG_LINES,200, _,NG_STEP,3, _,H_GRADIENT, _,N_COLOR,(int)C'255,255,255',
//----------------------------------------------------------------------------------
END_GROUP,
//----------------------------------
i, AT, _X2X, "MF", 1, _Y2H, "T4", 5,
//----------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, BOARD,"Open money managment settings", _,POINTED,1,
                                          //----------------------------------
                                          _,text, N_COLOR,(int)C'42,42,247',
                                          //----------------------------------
                                          _,text, P_COLOR,(int)clrRed, 
                                          //----------------------------------
                                          _,P_COLOR,(int)C'240,240,240',
                                          //----------------------------------
                                          _,text,NP_TEXT_STYLE,FONT_UNDERLINE,
//----------------------------------------------------------------------------------
END_GROUP,
//----------------------------------
i, AT, _X2X, "H1", 5, _Y2H, "H1", 7,
//----------------------------------

//----------------------------------------------------------------------------------------------------
END_WINDOW,
 

Wenn Sie die Theorie der Farben verstanden haben, können Sie z. B. mit diesem Testlayout fortfahren und es in etwas Fortgeschrittenes umwandeln:

https:// www.mql5.com/ru/articles/1612

Изучаем класс CCanvas. Сглаживание и тени
Изучаем класс CCanvas. Сглаживание и тени
  • www.mql5.com
Алгоритм сглаживания класса CCanvas — основа всех построений, в которых используется сглаживание. В статье рассказано о том, как работает этот алгоритм, приведены примеры визуализации его работы. Кроме того, рассмотрено рисование теней графических объектов и разработан подробный алгоритм отрисовки тени на канвасе. Для расчетов применена библиотека численного анализа ALGLIB.
 


//------------------------------------------------------ 
//DECLARE A NEW WINDOW
//------------------------------------------------------ 
NEW_WINDOW,  
//------------------------------------------------------
/*SET WINDOW TYPE*/             W_TYPE, DIALOG,  
//------------------------------------------------------
/*WRITE WINDOW'S NAME*/         W_NAME, "Allow changes",
//------------------------------------------------------
/*SET WINDOW'S CAPTION*/        CAPTION, "User permission",
//------------------------------------------------------
/*NAME (CAPTION)IN THE MIDDLE*/ NIM,  
//------------------------------------------------------
/*POINT TO WINDOW'S ICON*/      W_ICON, "::Images\\16x16\\Warning.bmp",   
//------------------------------------------------------
/*ONLY CLOSING BUTTON*/         ONLY_CLOSING, 
//------------------------------------------------------
/*WINDOW ALWAYS ON TOP*/        ALWAYS_ON_TOP, 
//------------------------------------------------------
/*OPEN WINDOW WITH A SOUND*/    OPENING_SOUND,"::Sounds\\Windows Notify System Generic.wav", 
//------------------------------------------------------ 
/*WINDOW OPENS AT START*/       OPEN_ON_INIT,  /*(OOI)*/
//------------------------------------------------------
/*LOCK WINDOWS IF OPENED*/      //LOCKS_WINDOWS, ALL_WINDOWS,   
//------------------------------------------------------
/*MARGINS OF THE WINDOW*/       MARGINS, 11,15,/*Х, Y*/
//------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, T_BOX,  "T1",TEXT,
                 //----------------------------------------------
                 "An expert needs your permission to continue.",
                 "Do You allow to make changes to the strategy?", 
                 //----------------------------------------------
                 END,
//----------------------------------------------------------------------------------                 
__, T_BOX,  "T2",TEXT,
                 //----------------------------------------------
                 "Strategy name:", 
                 "Expert's name:",
                 //----------------------------------------------
                 END,
//----------------------------------------------------------------------------------                 
END_GROUP,
//----------------------------------------------
i, AT, _X2X, "MF",   1, _Y2Y, "MF", 1,
//----------------------------------------------
"T1",_A3_,0,
//--------------
"T1",W,350,
//--------------
"T1",H,42,
//--------------
"T1",text,_C1_,55,
//--------------
"T1",text,_C2_,4,
//--------------
"T1",text,N_COLOR,(int)clrWhite,
//--------------
"T1",FONT_SIZE,10,
//--------------
"T1",NG_LINES,75,
//-------------- 
"T1",NG_STEP,1,
//--------------
"T1",H_GRADIENT,
//--------------
"T1",N_COLOR,(int)C'10,65,106',
//--------------
"T2",_A3_,0,
//--------------
"T2",W,350,
//--------------
"T2",H,42,
//--------------
"T2",text,_C1_,85,
//--------------
"T2",text,_C2_,7,
//--------------
//---------------------------------------------------------------------------------- 

//---------------------------------------------------------------------------------- 
GROUP, A,
//---------------------------------------------------------------------------------- 
__, T_BOX,  "T3",TEXT,
                 //----------------------------------------------
                 "'My best strategy'", 
                 //----------------------------------------------
                 END,
 GAP,20, 
//----------------------------------------------------------------------------------                  
__, T_BOX,  "T4",TEXT,
                 //----------------------------------------------
                 "Market explorer",
                 //----------------------------------------------
                 END,
//----------------------------------------------------------------------------------                  
END_GROUP,
//----------------------------------------------
i, AT, _X2X, "MF", 210, _Y2Y, "T2", 5,
//----------------------------------------------
"T3",TEXT_STYLE,(int)FONT_ITALIC,
//----------------------------------------------
"T4",TEXT_STYLE,(int)FW_BOLD,
//----------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, LABEL,A, ADAPT_2_GRADIENT,"T1", _,N_LABEL,"::Images\\32x32\\Index.bmp", 
//----------------------------------------------------------------------------------
END_GROUP,
//----------------------------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "T1", 5,
//----------------------------------------------

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

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, LABEL, A, N_COLOR,(int)clrWhite, _,N_LABEL, "::Images\\32x32\\Attach.bmp",  
//----------------------------------------------------------------------------------
END_GROUP,
//----------------------------------------------
i, AT, _X2X, "MF", 30, _Y2Y, "T2", 5,
//----------------------------------------------------------------------------------


//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__,CHECKBOX, "More details", A_TEXT,"Less details", 
//----------------------------------------------
   GAP,107, 
//----------------------------------------------  
   D_BUTTON, "Yes", CWIP, _,N_FRAME_COLOR, (int)C'51,153,255', 
//----------------------------------------------  
   GAP,7, 
//----------------------------------------------   
   D_BUTTON, "No", CWIP, 
//----------------------------------------------   
   BREAK_ROW_LINE,
//----------------------------------------------
END_GROUP,
//----------------------------------------------
i, AT, _X2X, "MF", 10, _Y2H, "T2", 20,
//----------------------------------------------
 
//----------------------------------------------------------------------------------
GROUP, A,

__, T_BOX,  "T5",TEXT,
                 //----------------------------------------------
                 "Current strategy based on 3 signals from indicators:", 
                 "Moving average, Parabolic SAR and RCI.",
                 //----------------------------------------------
                 END,
                
END_GROUP,
//----------------------------------------------
i, AT, _X2X, "MF",   4, _Y2H, "More details", 7,
//----------------------------------------------
"T5",_A3_,0,
//--------------
"T5", W,342,
//--------------
"T5", H,62,
//--------------
"T5",text,_C1_,10,
//--------------
"T5",text,_C2_,4,
//--------------
"T5",N_FRAME,1,
//--------------
"T5", TEXT_FONT, "Times New Roman",
//--------------
"T5", FONT_SIZE, 12,
//--------------
"T5", text, N_COLOR, (uint)clrRed,
//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, H_LINE,"H1", W,344,
//----------------------------------------------------------------------------------
END_GROUP,
//----------------------------------------------
i, AT, _X2X, "MF", 4, _Y2H, "T5", 5,
//----------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, BOARD,"Set up appearance of these messages", 
//----------------------------------------------------------------------------------          
                      _,POINTED,1,
                      //----------------------------------------------
                      _,FONT_SIZE,8,
                      //----------------------------------------------
                      _,text, N_COLOR,(int)C'42,42,247',
                      //----------------------------------------------
                      _,text,NP_TEXT_STYLE,FONT_UNDERLINE,
                      //----------------------------------------------
                      _,text, P_COLOR,(int)clrRed,
                      //----------------------------------------------
                      _,P_COLOR,(int)C'240,240,240',  
//----------------------------------------------------------------------------------
END_GROUP,
//----------------------------------------------
i, AT, _W2W, "H1", -3, _Y2H, "H1", 7,
//----------------------------------------------

//----------------------------------------------------------------------------------------------------
END_WINDOW,
 
Wie können die Benutzer die gesuchten Bilder hinzufügen und bei der Erstellung der Benutzeroberfläche verwenden? Dies ist eine Frage.
 
hini #:
Wie fügen die Nutzer die gesuchten Bilder hinzu und verwenden sie für die Gestaltung der Schnittstelle? Das ist die Frage.

Schnittstellenbilder (Icons oder andere Bilder) lassen sich grob in zwei Kategorien einteilen:

1. Intern.

Interne Bilder sind in den Designer integriert. Zum Beispiel Bilder auf Bildlauftasten, Pfeile von Menüpunkten, Kreuze von Fensterschließungsschaltflächen und andere. Es handelt sich dabei um Standardbilder, die durch Nummern in das Feld geschrieben werden. Auch die Icons des Fensters Label Menu. Sie werden durch Nummern in ein spezielles Array geschrieben. Auch ohne externe Ressourcen (Ordner mit Bildern) bleiben diese Bilder erhalten und der Benutzer kann sie auf dieselbe Weise verwenden. In diesem Fall ist die Adresse des Icons der Name, unter dem der Konstruktor es findet.


2. Extern.

Alle externen Bilder müssen sich im Ordner Images befinden. Der Konstruktor lädt sie als Ressourcen und nimmt sie in das gemeinsame Array der Bilder auf. Der Algorithmus greift dann auf diese Bilder als seine internen Bilder zu. Wenn der Benutzer das Projekt speichert, wählt der Algorithmus nur die Bilder aus, die die Benutzeroberfläche benötigt, und schreibt sie in die UIDATA-Datei.


Im Grunde ist es ganz einfach.

1. Der Benutzer legt das gewünschte Bild im Ordner Bilder ab.

2. In eine spezielle Datei schreibt er eine Zeile (zum Beispiel) #resource "::Images\\/32x32\Index.bmp".

3. Dann wird im Code angegeben:

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, LABEL,A,  N_LABEL,"::Images\\32x32\\Index.bmp", 
//----------------------------------------------------------------------------------
END_GROUP,
//----------------------------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "T1", 5,
//----------------------------------------------
//----------------------------------------------------------------------------------


Done.


Der Benutzer verwendet einfach den normalen Bildzuweisungsstring für das Element oder Fenster. Es wird nichts weiter benötigt. Der Konstruktor selbst bestimmt, ob das Bild extern oder intern ist. Wenn es sich um ein externes Bild handelt, wird es aus der Ressource entnommen und in ein Array mit den anderen Bildern eingefügt.