Galerie der in MQL geschriebenen UIs - Seite 47

 

//------------------------------------------------------ 
//DECLARE A NEW WINDOW
//------------------------------------------------------ 
NEW_WINDOW,  
//------------------------------------------------------
/*SET WINDOW TYPE*/             W_TYPE, DIALOG,  
//------------------------------------------------------
/*WRITE WINDOW'S NAME*/         W_NAME, "Processing the data...", 
//------------------------------------------------------
/*SET WINDOW'S CAPTION*/        CAPTION, "Please wait...", 
//------------------------------------------------------
/*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,   
//------------------------------------------------------
/*LOCK WINDOWS IF OPENED*/    //LOCKS_WINDOWS, ALL_WINDOWS,       
//------------------------------------------------------
/*MARGINS OF THE WINDOW*/       MARGINS, 10,10,/*Х, Y*/
//------------------------------------------------------
//----------------------------------------------------------------------------------
GROUP, A,

__, T_BOX,  "T1",TEXT,
//------------------------------------------------------
                 "Processing the data...",
//------------------------------------------------------
                 END, 
//------------------------------------------------------           
__, REC,    "T2", _A3_,0, _,W,450, _,H,70, _,N_COLOR,(int)C'255,255,255',
//------------------------------------------------------
                 
END_GROUP,
//--------------------------
i, AT, _X2X, "MF",   1, _Y2Y, "MF", 1,
//--------------
"T1",_A3_,0,
"T1", W,450,
"T1", H,40,
//--------------
"T1",text,_C1_,55,
"T1",text,_C2_,10,
"T1",text,N_COLOR,(int)C'255,255,255',
"T1",FONT_SIZE,10,
"T1",TEXT_FONT,"Arial Black",
//--------------
"T1",NG_LINES,75, 
"T1",NG_STEP,1,
"T1",H_GRADIENT,
"T1",N_COLOR,(int)C'255,155,155',
//--------------
//----------------------------------------------------------------------------------------------------
GROUP, A,
//------------------------------------------------------
__, LABEL,A, N_LABEL,  "::Images\\32x32\\Wait.bmp",   
//------------------------------------------------------
END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 5,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------------------------
GROUP, A,
//------------------------------------------------------
__, P_BAR,"P1",  W,400, 
//-------------------------------------------
               _,H,15, 
               //--------------------------- 
               _,V_CURRENT, 38,
               //--------------------------- 
               _,N_COLOR,(int)C'230,230,230', 
//------------------------------------------------------
END_GROUP,
//-----------------------------------
i, AT, _C2C, "T2", 0, _C2C, "T2", 10,
//----------------------------------------------------------------------------------

GROUP, A,
//----------------------------------------------------------------------------------
__, VALUE,"V1",  W,35, _,H,20, _,FONT_SIZE,12,_,N_COLOR,(int)clrWhite, _,UNITS__,"%",_,V_CURRENT, 58, 
//----------------------------------------------------------------------------------
    GAP,3,   
//----------------------------------------------------------------------------------    
    BOARD,"complete", FONT_SIZE,11, _,N_COLOR,(int)C'255,255,255',
//----------------------------------------------------------------------------------                                       
    GAP,220,   
//----------------------------------------------------------------------------------    
    I_BUTTON, "IB1",  
//----------------------------------------------------------------------------------    
    GAP,30,   
//----------------------------------------------------------------------------------    
    I_BUTTON,"IB2", 
//----------------------------------------------------------------------------------    
    BREAK_ROW_LINE,
//----------------------------------------------------------------------------------
END_GROUP,
//-----------------------------------
i, AT, _X2X, "P1", 0, _H2Y, "P1", -5,
//-----------------------------------
i,  I_BUTTONS,    W,17, 
                  //---------------------------
                  H,17, 
                  //---------------------------
                  N_COLOR,(int)clrWhite, 
                  //---------------------------
                  label,N_SHADOW,0, 
                  //---------------------------
                  label,P_SHADOW,0, 
                  //---------------------------
                  label,A_SHADOW,0, 
                  //---------------------------
                  label,A_MOVE,0, 
                  //---------------------------
                  END,
//----------------------------------------------------------------------------------

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

__,CHECKBOX, "More details", A_TEXT,"Fewer details", 
//-------------------------------------------
   GAP,95, 
//-------------------------------------------   
   D_BUTTON, "Cancel", CWIP,
                      //--------------------
                      _,N_FRAME_COLOR, (int)C'51,153,255', 
                      //--------------------
                      BREAK_ROW_LINE,
//------------------------------------------
END_GROUP,
//------------------------------------------
i, AT, _X2X, "MF", 10, _Y2H, "T2", 10,
//----------------------------------------------------------------------------------
END_WINDOW,
 
Реter Konow #:

Im letzten Fenster ist ein "Fehler" aufgetreten. Der Fortschrittsbalken zeigt eigentlich 38% an, aber es steht 58%.

Das ist eigentlich richtig, denn der Code sagt das:

__, P_BAR, "P1", V_CURRENT, 38,


....

Und in einer anderen Zeile:

__, VALUE, "V1",

heißt es: _,V_CURRENT, 58,

Daher die Verwirrung. Ich war unaufmerksam.

Was die Schaltflächen betrifft, so konnte ich die vorherigen Bilder einfach nicht finden. Es gab ein spezielles Kreuz und ein Pausensymbol. Ich werde versuchen, es zu finden und zu korrigieren.
 

Peter, Sie haben ein Problem mit den Rändern der Icons. Das ist sehr unruhig.


Das liegt daran, dass Sie die Farbe, die den Alphakanal verwendet, nicht mit dem Hintergrund mischen. Hier ist die notwendige Funktion, um zwei Farben zu mischen, die den Alphakanal verwenden.

void MixColor(uint clr, uint &addr) { // mix the color in the cell at addr with the color clr and enter the new value in the same cell
   if (GETRGBA(addr) == 0) {
      addr = clr;
      return;
   }
   union argb {
      uint clr;
      uchar c[4];
   } C;
   C.clr = clr;
   if (C.c[3] == 0) return;
   if (C.c[3] == 255) {
      addr = clr;
      return;
   }
   argb Bg;
   Bg.clr = addr;
   float a = C.c[3] / (float)255.0;
   float b = Bg.c[3]/ (float)255.0;
   float ab = b+a-b*a;
   C.c[3]=uchar(ab*255+0.49999);
   if (ab>0.002) {
      float a0 = a/ab;
      float a1 = b*(1-a)/ab;
      C.c[2] = uchar(C.c[2]*a0+Bg.c[2]*a1);
      C.c[1] = uchar(C.c[1]*a0+Bg.c[1]*a1);
      C.c[0] = uchar(C.c[0]*a0+Bg.c[0]*a1);
   }
   addr = C.clr;
}

Sie können auch sehen, wie man mit png arbeitethttps://www.mql5.com/en/code/45439
 
Nikolai Semko #:

Peter, Sie haben ein Problem mit den Rändern der Icons.
Das ist sehr anstrengend für das Auge.


Das liegt daran, dass du die Farbe, die den Alphakanal verwendet, nicht mit dem Hintergrund mischst. Hier ist die notwendige Funktion zum Mischen von Farben, die den Alphakanal verwenden.


Sie können auch sehen, wie man mit png arbeitethttps://www.mql5.com/en/code/45439
Hallo Nikolai!

Das ist kein Problem, denn so sind die Icons nun einmal. Beachten Sie, dass die 16×16 Icons in Ordnung sind (viel weniger störend für das Auge). Nur 32×32 Icons haben diesen Fehler. Der Grund dafür ist die Quelle, von der ich sie heruntergeladen habe. :)

Man muss einfach Etiketten von besserer Qualität "klauen". Lol.

Generell hast du Recht. Es ist besser, mit Farbe zu arbeiten.

 
Реter Konow #:
Hallo, Nikolai!

Es gibt keine Probleme, denn so sind die Icons nun mal. Beachte, dass die 16×16 Icons in Ordnung sind. Nur die 32×32 Icons haben diesen Fehler. Der Grund liegt in der Quelle, aus der ich sie heruntergeladen habe. :)

Man muss einfach Etiketten von besserer Qualität "klauen". Lol.

es gibt inzwischen viele Quellen mit normalen png-Icons mit transparentem Hintergrund.


Zum Beispiel:https://pngtree.com/so/colored-icons

Überzeugen Sie sich natürlich selbst, aber Ihre GUI wird ohne diese Kantenartefakte viel hochwertiger aussehen.

 
Nikolai Semko #:


es gibt viele Quellen mit normalen png-Icons mit transparentem Hintergrund. Überzeugen Sie sich natürlich selbst, aber Ihre GUI wird ohne diese Verpixelung an den Rändern viel besser aussehen.

Ich streite mich nicht... Natürlich würde es besser aussehen. Übrigens, ich kann mit Icons ziemlich gut umgehen. Achten Sie auf ihren Schatten auf den Schaltflächen der Taskleiste. Ich mache den Hintergrund transparent. Aber es gibt farblichen "Müll" in den Pixeln, der programmtechnisch schwer zu erkennen ist. Wie diese Flecken an den Rändern. Sie sind nicht streng einfarbig, und es ist schwierig, sie vom eigentlichen Symbol zu trennen, um sie zu entfernen. Genau das ist das Problem.

Wir brauchen bessere Icons. Ohne verpixelten "Müll".
 
Nikolai Semko #:

jetzt gibt es viele Quellen mit normalen png-Symbolen mit transparentem Hintergrund.


Zum Beispiel:https://pngtree.com/so/colored-icons

Ich werde mir das in aller Ruhe ansehen. Senx!
 
Реter Konow #:
Das bestreite ich nicht. Natürlich würde es besser aussehen. Übrigens habe ich bei den Symbolen ziemlich gute Arbeit geleistet. Beachten Sie ihren Schatten auf den Schaltflächen der Taskleiste. Ich habe den Hintergrund transparent gemacht. Aber es gibt farblichen "Müll" in den Pixeln, der programmtechnisch schwer zu erkennen ist. Wie diese Flecken an den Rändern. Sie sind nicht streng einfarbig, und es ist schwierig, sie vom eigentlichen Symbol zu trennen, um sie zu entfernen. Das ist das Problem.

Wir brauchen einfach bessere Icons. Ohne den verpixelten "Müll".

In normalen png-Dateien mit transparentem Hintergrund gibt es keinen "Müll". Der Müll erscheint, wenn die Verarbeitung falsch ist. Die richtige Funktion wurde oben angegeben.

Früher habe ich das Gleiche mit Schatten gemacht. Jetzt tue ich das nicht mehr.
Moderne Mode ohne Schatten, Farbverläufe und Locken.
Kurzum Minimalismus, der der Rendering-Leistung zugute kommt.

 
Nikolai Semko #:

in normalem png mit transparentem Hintergrund gibt es keinen Müll. Der Müll erscheint bei falscher Verarbeitung. Die richtige Funktion wurde oben angegeben.

...

Alles ist so, wenn man keine Icons "piratisch" herunterlädt, wie ich es vor vielen Jahren getan habe. ))) Dann gibt es nicht viel zu verarbeiten, denn der Hintergrund ist mit -1 markiert.

In diesem Fall fügt mein Algorithmus die zugrunde liegende Farbe aus der Pixelfläche unter dem Icon ein. Auch die Transparenz muss nicht "gezwickt" werden.

Aber wenn das Pixel statt -1 eine andere Farbe hat, ist es unrealistisch, es vom Rest zu trennen, und die Transparenzfunktionen werden nicht helfen. Genau das ist der Punkt.
 
Реter Konow #:

Aber wenn ein Pixel eine andere Farbe als -1 hat, dann ist es unrealistisch, es vom Rest zu trennen, und Transparenzfunktionen helfen nicht. Hier ist die Sache.

Ich spreche über png-Symbole mit transparentem Hintergrund (mit Alpha-Kanal).