MQLで書かれたUIのギャラリー - ページ 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 #:

最後のウィンドウに "エラー "がある。プログレス・バーは実際には38%を示しているが、58%と表示されている。

コードにそう書いてあるので、これは正しい:

__, p_bar, "p1", v_current, 38、


....

そして別の行では

__, value, "v1"、

と書いてある:,v_current,58、

だから混乱したのだ。不注意だった。

ボタンに関しては、前の写真が見つからなかっただけだ。特別な十字と一時停止のアイコンがあった。探して直してみるよ。
 

ピーター、アイコンの端に問題があるね。とても耳障りだ。


これは、アルファチャンネルを使用する色を背景と混ぜていないからです。アルファチャンネルを使用する2つの色を混ぜるために必要な関数はこちらです。

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;
}

pnghttps://www.mql5.com/en/code/45439 の扱い方もご覧ください。
 
Nikolai Semko #:

ピーター、アイコンのエッジに問題があるね。
目にとても負担がかかる。


これは、アルファチャンネルを使う色を背景と混ぜていないからです。アルファチャンネルを使う色を混ぜるために必要な関数はこちらです。


pnghttps://www.mql5.com/en/code/45439 の扱い方もご覧ください。
こんにちは、ニコライ!

アイコンはそういうものなので、問題はありません。ちなみに、16×16のアイコンは問題ありません(見た目に違和感がありません)。32×32のアイコンのみこの不具合があります。原因はダウンロードしたソースにあります。:)

より良い品質のラベルを「盗む」しかない。笑)。

まあ一般的には、あなたの言う通りです。カラーで仕事をした方がいい。

 
Реter Konow #:
こんにちは、ニコライ!

アイコンはそういうものなので、問題はありません。なお、16×16のアイコンは問題ありません。32×32のアイコンのみこの不具合があります。理由はダウンロードしたソースにあります。:)

より良い品質のラベルを「盗む」しかない。笑

現在、背景が透明な普通のpngアイコンのソースはたくさんあります。


例えばhttps://pngtree.com/so/colored-icons

自分の目で確かめてください。もちろん、エッジのアーティファクトがなければ、GUIはずっと高品質に見えます。

 
Nikolai Semko #:


もちろん自分の目で確かめてほしいが、GUIの端にこのようなピクセレーションがなければ、もっと見栄えがよくなるはずだ。

議論しているわけではないのですが...。もちろん、その方が見栄えは良くなる。ところで、私はアイコンをうまく扱っている。タスクバーのボタンの影に注目してください。背景は透明にしている。しかし、ピクセルの中には色の「ゴミ」があり、プログラムで識別するのは難しい。端の方にあるこの斑点のようなものだ。これらは厳密には一色ではないので、アイコン自体から分離して取り除くのは難しい。それが問題なのだ。

私たちはより良いアイコンを必要としている。ピクセル化された "ゴミ "なしで。
 
Nikolai Semko #:

現在、透明な背景を持つ通常のpngアイコンを持つ多くのソースがあります。

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

暇があったら見てみるよ。Senxです!
 
Реter Konow #:
議論しているわけではない。もちろん、その方が見栄えはいいだろう。ところで、アイコンはかなりいい仕事をしている。タスクバーのボタンの影に注目してほしい。背景は透明にしている。しかし、ピクセルの中には色の「ゴミ」があり、プログラムで識別するのは難しい。例えば、端にあるこのような斑点だ。これらは厳密には一色ではないので、アイコン自体から分離して取り除くのは難しい。これが問題なのです。

より良いアイコンが必要だ。ピクセル化された "ゴミ "なしで。

背景が透明通常の pngには ゴミはない。 ゴミが出るのは処理が間違っているときだ。正しい機能は上に 書いた

以前はシャドウも同じようにしていた。今はもうやっていない。
影もグラデーションもカールもないモダンなファッション。
要するにレンダリングパフォーマンスを重視したミニマリズムだ。

 
Nikolai Semko #:

背景が透明通常の pngでは ゴミは出ない。 ゴミは不正確な処理で現れる。正しい関数は上記の 通りです

...

アイコンを "海賊版 "でダウンロードしなければ、すべてがそんなものだ。)))というのも、背景には-1が表示されているからだ。

この場合、私のアルゴリズムは、アイコンの下にピクセル表面から下地の色を挿入する。透明度も「微調整」する必要はない。

しかし、-1の代わりにピクセルが他の色を持っている場合、それを他の色から分離するのは非現実的であり、透明化関数は役に立ちません。そこがポイントだ。
 
Реter Konow #:

しかし、あるピクセルの色が-1ではなく別の色であった場合、そのピクセルを他のピクセルから分離することは非現実的であり、透明化関数は役に立ちません。これが問題だ。

私は背景が透明 な(アルファチャンネル付きの)pngアイコンについて話しています。