MQL로 작성된 UI 갤러리 - 페이지 32

 

버튼을 전파하고 일반 텍스트 속성을 설정합니다:


 

Code:

//DECLARE A NEW WINDOW
//----------------------------------------------------------------------------------
NEW_WINDOW,  
//------------------------------------------------------
/*SET WINDOW TYPE*/         W_TYPE, SETTINGS,  
//------------------------------------------------------
/*WRITE WINDOW'S NAME*/     W_NAME, "My first window",
//------------------------------------------------------
/*POINT TO WINDOW'S ICON*/  W_ICON, "::Images\\16x16\\Smile.bmp",  
//------------------------------------------------------

//------------------------------------------------------
/*SET WINDOW'S ADDITIONAL PROPERTIES*/   
//----------------------------------------------------------------------------------
/*WINDOW OPENS AT START*/   OPEN_ON_INIT,  /*(OOI)*/

/*WINDOW IS ALWAYS ON TOP*/ ALWAYS_ON_TOP, /*(OOT)*/  

/*ОТСТУПЫ КРАЕВ ОКНА*/      MARGINS, 20,20,  /*Х, Y*/
//----------------------------------------------------------------------------------
//
//----------------------------------------------------------------------------------
//1. DECLARE A GROUP WITH AN ABSTRACT NAME  A.
//2. DECLARE A NEW ROW OF ELEMENTS IN THE GROUP WITH A SYMBOL  __, 
//3. DECLARE A BUTTON AND WRITE IT'S NAME.
//4. END GROUP WITH THE KEYWORDS  END_GROUP,
//------------------------------------------------------
GROUP, A,

__, BUTTON, "Button 1",  BUTTON, "Button 5", 
__, BUTTON, "Button 2",  BUTTON, "Button 6", 
__, BUTTON, "Button 3",  BUTTON, "Button 7", 
__, BUTTON, "Button 4",  BUTTON, "Button 8", 

END_GROUP,
//--------------------------

//--------------------------
//SET GROUP POSITION:
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
i, X_GAP, 30,
i, Y_GAP, 20,
//--------------------------
//SET MAIN PROPERTIES (IF YOU DON'T, THEY WILL HAVE DEFAULT VALUES): 
//PROPERTIES FOR ALL BUTTONS IN THE GROUP
//--------------------------
i, BUTTONS, text, N_COLOR,  (uint)clrBlack,
            text, A_COLOR,  (uint)clrRed,
            text, P_COLOR,  (uint)clrLime,
            text, AP_COLOR, (uint)clrWhite,  
            
            FONT_SIZE, 12, 
            TEXT_FONT,"Courier New",
            TEXT_STYLE,(int)FONT_ITALIC,
            
            FIC,          //FIXED IF CLICKED       
                                         
   END, 
//--------------------------

//------------------------------------------------------
//FINISH THE WINDOW BY KEYWORDS END_WINDOW,
//------------------------------------------------------
END_WINDOW,
//----------------------------------------------------------------------------------
 
훌륭한 예제 튜토리얼, 계속하세요
 
hini #:
교과서의 좋은 예입니다. 계속하세요.
알았어요 매일 이런 수업을 한 번씩 할 거예요.
 


마크업 언어 및 생성자에 대한 일반 정보입니다.


1. 생성자 요소의 속성 값은 미리 정의되어 있습니다. 명시적으로 정의되지 않은 경우 기본값이 속성에 할당됩니다.


2. 요소의 대화형 동작은 미리 프로그래밍되어 있지만 사용자는 다양한 응답을 변경하거나 비활성화할 수 있습니다.


3. 구성 그룹의 위치와 크기를 계산할 때 인터페이스 창 크기가 자동으로 계산됩니다. 사용자가 지정한 경우 오른쪽 및 아래쪽 여백(여백)도 고려됩니다.


4. 일부 요소의 길이는 텍스트 길이에 따라 직접적으로 달라집니다. 사용자가 명시적인 값을 설정하지 않은 경우 자동으로 계산됩니다. 그렇지 않으면 생성자는 요소를 넘어가는 텍스트를 잘라내고 점선을 넣어 사용자 값을 저장합니다. 이러한 요소에는 체크박스, 라디오 버튼, 텍스트 레이블, 가로 및 세로 탭이 포함됩니다.


5. 창을 구성할 때 디자이너는 표 형식의 레이아웃과 요소 그룹에서 대칭을 유지하기 위해 노력합니다. 체크박스 또는 유사한 유형의 요소는 공통 길이 값에 맞춰 자동으로 정렬됩니다.


6. 디자이너가 표 형식의 레이아웃을 고수하면 인터페이스를 훨씬 쉽게 구축할 수 있으며, 유연성을 높이기 위해 플래그와 바인딩을 사용하여 요소를 그룹으로 나누도록 설계되었습니다.


7. 단일 창에 있는 요소 수에는 제한이 없습니다.


8. 단일 프로젝트 내 창 수에는 제한이 없습니다.


9. 작업 표시줄과 컨텍스트 메뉴는 모든 프로젝트에 필수입니다. 그러나 해당 파일에서 OPEN_ON_INIT(OOI) 명령을 주석 처리하면 작업 표시줄의 모양을 비활성화할 수 있습니다. 그런 다음 창 최소화 속성을 비활성화해야 합니다(그럴 가능성이 있습니다).


10. 사용자의 작업 표시줄 오른쪽에서 사용자는 자신의 창을 호출하는 버튼을 설정할 수 있습니다.


11. 모든 항목에 커서를 가져갈 때 이름과 함께 도구 설명이 표시될 수 있습니다. 이렇게 하려면 _,SHOW_NAMETIP 속성에서 명령을 작성해야 합니다.


12. 생성자 또는 사용자의 컨텍스트 메뉴가 차트를 두 번 클릭합니다.


13. 생성자의 보조 창을 사용하면 프레임, 색상, 글꼴, 아이콘 및 사운드를 지정할 때 요소의 속성을 쉽게 찾고 선택할 수 있습니다.


14. 최신 빌드에서 코드를 작성할 때 마크 업 코드를 컴파일 한 다음 표시기 KIB-source.mq5를 컴파일해야합니다. 그렇지 않으면 흰색 화면의 형태로 오류가 발생하고 중단됩니다 (이전 빌드 2470에서는 이러한 문제가 없음).


계속 이어집니다...

 
다음으로 그룹을 구성할 때 요소의 레이아웃에 대해 알아봅시다.
 

창에서 그룹 위치 지정하기:



오른쪽과 아래쪽에 창 들여쓰기 설정하기:

0.


1.

2.




요소 간 간격 설정하기:

1.

2.


3.


5.


6.


7.


8.


9.




Galleria di interfacce utente scritte in MQL
Galleria di interfacce utente scritte in MQL
  • 2024.05.30
  • Реter Konow
  • www.mql5.com
Di recente, mentre riordinavo il mio vecchio computer portatile, mi sono imbattuto per caso in una cartella persa nella selva delle directory...
 

Code:

//+------------------------------------------------------------------+
//|                                              My first window.mqh |
//+------------------------------------------------------------------+
//DECLARE A NEW WINDOW
//----------------------------------------------------------------------------------
NEW_WINDOW,  
//------------------------------------------------------
/*SET WINDOW TYPE*/         W_TYPE, SETTINGS,  
//------------------------------------------------------
/*WRITE WINDOW'S NAME*/     W_NAME, "My first window",
//------------------------------------------------------
/*POINT TO WINDOW'S ICON*/  W_ICON, "::Images\\16x16\\Smile.bmp",  
//------------------------------------------------------

//------------------------------------------------------
/*SET WINDOW'S ADDITIONAL PROPERTIES*/   
//----------------------------------------------------------------------------------
/*WINDOW OPENS AT START*/   OPEN_ON_INIT,  /*(OOI)*/

/*WINDOW IS ALWAYS ON TOP*/ ALWAYS_ON_TOP, /*(OOT)*/  

/*MARGINS OF THE WINDOW*/   MARGINS, 40,40,/*Х, Y*/
//----------------------------------------------------------------------------------
//
//----------------------------------------------------------------------------------
//1. DECLARE A GROUP WITH AN ABSTRACT NAME  A.
//2. DECLARE A NEW ROW OF ELEMENTS IN THE GROUP WITH A SYMBOL  __, 
//3. DECLARE A BUTTON AND WRITE IT'S NAME.
//4. END GROUP WITH THE KEYWORDS  END_GROUP,
//------------------------------------------------------
GROUP, A,
 
__, BUTTON, "Button 1", GAP,40, BUTTON, "Button 7",

GAP,40, //GAP BETWEEN THE LINES

__, BUTTON, "Button 2", GAP,40, BUTTON, "Button 8",

GAP,40,  //GAP BETWEEN THE LINES

__, BUTTON, "Button 3", GAP,40, BUTTON, "Button 9",
__, BUTTON, "Button 4", GAP,40, BUTTON, "Button 10",
__, BUTTON, "Button 5", GAP,40, BUTTON, "Button 11",
__, BUTTON, "Button 6", GAP,40, BUTTON, "Button 12",

END_GROUP,
//--------------------------

//--------------------------
//SET GROUP POSITION:
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------

//--------------------------
//SET MAIN PROPERTIES (IF YOU DON'T, THEY WILL HAVE DEFAULT VALUES): 

//------------------------------------------------------
//FINISH THE WINDOW BY KEYWORDS END_WINDOW,
//------------------------------------------------------
END_WINDOW,
//----------------------------------------------------------------------------------


//+------------------------------------------------------------------+
//|                                              My first window.mqh |
//+------------------------------------------------------------------+
//DECLARE A NEW WINDOW
//----------------------------------------------------------------------------------
NEW_WINDOW,  
//------------------------------------------------------
/*SET WINDOW TYPE*/         W_TYPE, SETTINGS,  
//------------------------------------------------------
/*WRITE WINDOW'S NAME*/     W_NAME, "My first window",
//------------------------------------------------------
/*POINT TO WINDOW'S ICON*/  W_ICON, "::Images\\16x16\\Smile.bmp",  
//------------------------------------------------------

//------------------------------------------------------
/*SET WINDOW'S ADDITIONAL PROPERTIES*/   
//----------------------------------------------------------------------------------
/*WINDOW OPENS AT START*/   OPEN_ON_INIT,  /*(OOI)*/

/*WINDOW IS ALWAYS ON TOP*/ ALWAYS_ON_TOP, /*(OOT)*/  

/*MARGINS OF THE WINDOW*/   MARGINS, 40,40,/*Х, Y*/
//----------------------------------------------------------------------------------
//
//----------------------------------------------------------------------------------
//1. DECLARE A GROUP WITH AN ABSTRACT NAME  A.
//2. DECLARE A NEW ROW OF ELEMENTS IN THE GROUP WITH A SYMBOL  __, 
//3. DECLARE A BUTTON AND WRITE IT'S NAME.
//4. END GROUP WITH THE KEYWORDS  END_GROUP,
//------------------------------------------------------
GROUP, A,
 
__, BUTTON, "Button 1",  BUTTON, "Button 7",
__, BUTTON, "Button 2",  BUTTON, "Button 8",
__, BUTTON, "Button 3",  BUTTON, "Button 9",
__, BUTTON, "Button 4",  BUTTON, "Button 10",
__, BUTTON, "Button 5",  BUTTON, "Button 11",
__, BUTTON, "Button 6",  BUTTON, "Button 12",

END_GROUP,
//--------------------------

//--------------------------
//SET GROUP POSITION:
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
i, X_GAP, 40, //GAP BETWEEN THE ELEMENTS IN THE ROW

i, Y_GAP, 40,  //GAP BETWEEN THE ROWS 
//--------------------------
//SET MAIN PROPERTIES (IF YOU DON'T, THEY WILL HAVE DEFAULT VALUES): 




//------------------------------------------------------
//FINISH THE WINDOW BY KEYWORDS END_WINDOW,
//------------------------------------------------------
END_WINDOW,
//----------------------------------------------------------------------------------
 

요소 레이아웃의 주제에 이어서. 버튼은 기본 크기 또는 사용자가 정의한 크기가 있기 때문에 모든 것이 명확합니다. 그러나 길이가 텍스트 길이와 연결된 요소의 경우 모든 것이 모호합니다. 다음은 확인란과 라디오 버튼이 있는 몇 가지 예입니다:

1. 확인란과 라디오 버튼의 이름이 거의 동일합니다.


2. 하나의 라디오 버튼이 다른 라디오 버튼보다 훨씬 길다. 같은 길이가 됩니다:


3. 두 번째 열에서는 가운데 확인란이 훨씬 더 길어집니다. 나머지는 그 크기가 됩니다:


4. 확인란과 라디오 버튼의 길이를 명시적으로 설정하면 발신 텍스트가 자동으로 짧아집니다.


 
옵션 코드 1:
GROUP, A,
 
__, R_BUTTON, "R_button with a long name", CHECKBOX, "Checkbox 1",
__, R_BUTTON, "R_button 2", CHECKBOX, "Checkbox 2",
__, R_BUTTON, "R_button 3", CHECKBOX, "Checkbox 3", 
__, R_BUTTON, "R_button 4", CHECKBOX, "Checkbox 4 with the longest name",
__, R_BUTTON, "R_button 5", CHECKBOX, "Checkbox 5",
__, R_BUTTON, "R_button 6", CHECKBOX, "Checkbox 6",

END_GROUP,
//--------------------------

//--------------------------
//SET GROUP POSITION:
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
i, X_GAP, 30,

i, Y_GAP, 30,
//--------------------------

옵션 코드 2:

//------------------------------------------------------
GROUP, A,
 
__, R_BUTTON, "R_button with a long name", CHECKBOX, "Checkbox 1",
__, R_BUTTON, "R_button 2", CHECKBOX, "Checkbox 2",
__, R_BUTTON, "R_button 3", CHECKBOX, "Checkbox 3", 
__, R_BUTTON, "R_button 4", CHECKBOX, "Checkbox 4 with the longest name",
__, R_BUTTON, "R_button 5", CHECKBOX, "Checkbox 5",
__, R_BUTTON, "R_button 6", CHECKBOX, "Checkbox 6",

END_GROUP,
//--------------------------
//SET GROUP POSITION:
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
// SET PROPERTIES EXPLICITLY FOR R_BUTTONS
//--------------------------
i, R_BUTTONS,  W, 120, END,
//--------------------------
// SET PROPERTIES EXPLICITLY FOR CHECKBOXES
//--------------------------
i, CHECKBOXES, W, 90,  END,
//--------------------------
i, X_GAP, 30,

i, Y_GAP, 30,
//--------------------------