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

 
새 페이지에서 시작하겠습니다.
 

9. V_LAST의 이전 값을 반환합니다.

모든 파라미터의 이전 값은 자동으로 저장됩니다. 이를 가져오려면 엘리먼트 함수를 호출하고 _V_LAST 식별자를 전달해야 합니다 .

실제 예시를 통해 어떻게 하는지 살펴봅시다:

1. 원하는 창을 엽니다:

   //------------------------------------------------
   //Open the window "Settings example 2".

   w_7_Settings_example_2();
   //------------------------------------------------



2. 상단 입력 필드에 값(문자열)을 보냅니다:

   //------------------------------------------------
   //Set up the first string in the textbox:

   w7_s_p4_EDIT_Comment_1("1, 2, 3, 4, 5");
   //------------------------------------------------



3. 이제 같은 필드에 다른 문자열을 보냅니다:

   //------------------------------------------------
   //Right after, reset it by the new string:

   w7_s_p4_EDIT_Comment_1("A, B, C, D, E");
   //------------------------------------------------



4. 이전 문자열을 다시 가져옵니다:

   //------------------------------------------------
   //Get back the first value:

   string The_first_value = w7_s_p4_EDIT_Comment_1(get_s,p4_V_LAST);
   //------------------------------------------------


5. 그리고 이를 아래 필드에 보냅니다:

   //------------------------------------------------
   //And send it into the textbox below:

   w7_s_p4_EDIT_Comment_2(The_first_value);
   //------------------------------------------------


6. 맨 위 필드 줄을 다시 작성해 보겠습니다:

   //------------------------------------------------
   //Reset the value again:

   w7_s_p4_EDIT_Comment_1("A1, B2, C3, D4, E5");
   //------------------------------------------------


7. 이전 문자열을 아래쪽 필드로 보내겠습니다:

   //------------------------------------------------
   //And get the the previous value back:

   string The_second_value = w7_s_p4_EDIT_Comment_1(get_s,p4_V_LAST);
   //------------------------------------------------
   
   //------------------------------------------------
   //Send it into the third textbox:

   w7_s_p4_EDIT_Comment_3(The_second_value);
   //------------------------------------------------



결과:

  • 위쪽 필드는 현재 문자열입니다.
  • 중간 필드 - 원래 문자열입니다.
  • 아래쪽 필드 - 두 번째 문자열입니다.

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

모든 경우에 동일한 접근 방식이 적용됩니다.

V_LAST 식별자를 사용하면 모든 요소의 마지막 값을 가져올 수 있습니다(식별자가 개별 속성 목록에 규정된 경우).




다음으로 켜기/끄기 상태와 요소 잠금을 설정해 보세요.

 
Реter Konow #:
모든 경우에 동일한 접근 방식이 적용됩니다.

켜짐/꺼짐 상태도 포함되나요?

 
hini #:

켜짐/꺼짐 상태도 포함되나요?

_V_LAST는 모든 요소의 마지막 파라미터 값을 반환합니다.

다른 요소에도 위에 표시된 접근 방식을 사용할 수 있습니다. 요소 상태 전환에 대한 주제 다음에 슬라이더와 버튼이 있는 필드의 예를 보여드리겠습니다.

동기화를 살펴보면 한 필드는 슬라이더의 현재 값을 반환하고 다른 필드는 이전 값을 반환합니다.

 

10.다양한 요소에 대해켜기, 끄기, LOCK_ON, LOCK_OFF, 잠금, 잠금 해제상태를 설정합니다:

켜짐과 꺼짐 상태를 갖는 요소 유형이 있으며, 대표적인 예로 버튼과 체크박스를 들 수 있습니다. 하지만 항상 중립 상태인 요소도 많이 있습니다. 항상꺼져 있습니다. 버튼과 체크박스의 공통점은 무엇일까요? 둘 다잠그거나 잠금을 해제할 수 있습니다. 차이점은버튼과 확인란은켜짐과 꺼짐의두 가지 상태로 잠겨 있는 반면 다른 요소는중립 상태로만잠겨 있다는 것입니다. 이러한 차이점 때문에 요소를 잠그고 잠금 해제하는 동일한 기능을 수행하는 여러 식별자가 있습니다.

몇 가지 실용적인 예를 살펴봅시다:

1. 버튼과 체크박스가 있는 설정 창을 열어 봅시다:

   //------------------------------------------------
   //Open the window "Settings example 1".
   //------------------------------------------------
   w_6_Settings_example_1();
   //------------------------------------------------



2. 버튼의 활성화 상태를 설정해 보겠습니다:

   //------------------------------------------------
   //Set the button "Start" ON:

   w6_i_p1_BUTTON_Start(p1_ON);
   //------------------------------------------------

결과: 버튼이 눌림 상태로 전환되었습니다.


3. 이제 확인란의 상태를켜짐으로 설정합니다:

   //------------------------------------------------
   //Set the checkboxes ON:

   w6_i_p7_CHECKBOX_Set_an_option(p7_ON);
   w6_i_p7_CHECKBOX_Set_another_option(p7_ON);
   w6_i_p7_CHECKBOX_And_another_option(p7_ON);
   //------------------------------------------------

결과: 체크박스가 활성화된 상태로 이동했습니다.

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


4. 이제OFF 식별자를 사용하여 '시작' 버튼에서 ON 상태를 제거해 보겠습니다:

   //------------------------------------------------
   //Set the button "Start" OFF:

   w6_i_p1_BUTTON_Start(p1_OFF);
   //------------------------------------------------

결과: 버튼이 중립 상태로 돌아갔습니다.


5. 이제중립 상태인OFF 상태를 체크박스로 되돌려 보겠습니다:

   //------------------------------------------------
   //Set the checkboxes OFF:
 
   w6_i_p7_CHECKBOX_Set_an_option(p7_OFF);
   w6_i_p7_CHECKBOX_Set_another_option(p7_OFF);
   w6_i_p7_CHECKBOX_And_another_option(p7_OFF);
   //------------------------------------------------

결과: 체크박스가 중립 상태로 돌아갔습니다.


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


이제 버튼과 확인란을 중립과 활성화의 두 가지 상태로 잠그는 방법을 살펴봅시다:


1. 버튼을 중립 상태로 잠가 보겠습니다:

   //------------------------------------------------
   //Lock the button "Start" in the state OFF:

   w6_i_p1_BUTTON_Start(p1_LOCK_OFF);
   //------------------------------------------------

결과: 버튼이 중립 상태로 잠겼습니다.

(*결함, 수정됩니다.).


2. 2. 체크박스를 중립 상태로 잠급니다:

   //------------------------------------------------
   //Lock the checkboxes in the state OFF:

   w6_i_p7_CHECKBOX_Set_an_option(p7_LOCK_OFF);
   w6_i_p7_CHECKBOX_Set_another_option(p7_LOCK_OFF);
   w6_i_p7_CHECKBOX_And_another_option(p7_LOCK_OFF);
   //------------------------------------------------

결과: 체크박스가 중립 상태로 잠겼습니다.


(*일부 요소의 잠금 상태에서 텍스트가 사라지는 문제는 다음 버전에서 해결될 예정입니다).


3.LOCK_ON 식별자를 사용하여 버튼과 체크박스를 누른 상태로 잠급니다:

   //------------------------------------------------
   //Lock the button "Start" in the state ON:

   w6_i_p1_BUTTON_Start(p1_LOCK_ON);
   //------------------------------------------------
   //------------------------------------------------
   //Lock the checkboxes in the state ON:

   w6_i_p7_CHECKBOX_Set_an_option(p7_LOCK_ON);
   w6_i_p7_CHECKBOX_Set_another_option(p7_LOCK_ON);
   w6_i_p7_CHECKBOX_And_another_option(p7_LOCK_ON);
   //------------------------------------------------

결과: 버튼과 체크박스가 눌린 상태로 잠겼습니다.



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

이제 항상 중립 상태에 있는 요소에 대해 LOCKUNLOCK 명령을 테스트해 보겠습니다.

예를 들어, 같은 창에 있는C_LIST, D_LIST, H_SLIDER 및 S_EDIT 요소를 살펴봅시다:



1. 네 요소를 한 번에 모두 잠궈 보겠습니다:

   //------------------------------------------------
   //Lock the elements:

   w6_s_p6_C_LIST_C_LIST_1(p6_LOCK);
   w6_s_p6_D_LIST_D_LIST_1(p6_LOCK);
   w6_i_p3_H_SLIDER_Roll_the_value(p3_LOCK);
   w6_d_p5_S_EDIT_Spin_the_value(p5_LOCK);
   //------------------------------------------------

결과: C_LIST, D_LIST, H_SLIDER 및 S_EDIT 요소가 잠겼습니다 .


2. 요소를 잠금 해제합니다:

   //------------------------------------------------
   //Unlock the elements:

   w6_s_p6_C_LIST_C_LIST_1(p6_UNLOCK);
   w6_s_p6_D_LIST_D_LIST_1(p6_UNLOCK);
   w6_i_p3_H_SLIDER_Roll_the_value(p3_UNLOCK);
   w6_d_p5_S_EDIT_Spin_the_value(p5_UNLOCK);
   //------------------------------------------------

결과: 요소가 다시 잠금 해제되었습니다.

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

다른 요소들도 같은 방식으로 잠기고 잠금 해제되므로 이 예제를 끝으로 이 주제를 마무리합니다.

...

다음으로 매개변수 값의 동기화에 대해 알아보겠습니다.

 
매우 훌륭하고 실용적입니다.
 
hini #:
매우 훌륭하고 실용적입니다.

감사합니다! 사용자 평가는 향후 개발을 위해 매우 중요합니다.

 
다음 주제에 대한 자료의 양을 고려한 결과, 이전 주제를 더 잘 기억할 수 있도록 내일로 연기하는 것이 더 나을 것 같습니다.
 

좋은 GUI의 징후.

미니멀리즘: 그래픽에서 차지하는 최소한의 공간, 주의를 분산시키는 중요하지 않은 요소와 정보가 없어야 합니다.

기능성: 차지하는 모든 공간이 최대한 유용해야 하며, 모든 기능이 직관적이어야 합니다.

인체공학: 가장 자주 사용하는 요소는 접근하기 쉽고 커야 합니다.

심미성: 정렬, 표준 크기, 통일된 스타일, 색 구성표.

 
Ivan Titov #:

좋은 GUI의 징후.

미니멀리즘: 그래픽에서 차지하는 최소한의 공간, 중요하지 않은 요소 및 주의를 산만하게 하는 정보가 없습니다.

기능: 차지하는 모든 공간은 최대한 유용해야 하며 모든 기능은 직관적이어야 합니다.

인체공학: 가장 자주 사용하는 요소는 접근하기 쉽고 커야 합니다.

심미성: 정렬, 표준 치수, 통일된 스타일, 색 구성표.


예시를 보여 주셔서 감사합니다. 저는 당신의 논문에 전적으로 동의합니다. 언젠가는 이 수준의 개발에 도달하기를 바랍니다.