내 접근 방식. 코어 - 엔진. - 페이지 28

 
Dmitry Fedoseev :

그건 그렇고, Anatoly의 도서관도 또 다른 농담입니다. 그는 주제에 대해 얼마나 많은 기사를 가지고 있습니까? 50조각? 주석의 모든 곳으로 가지 않을 것입니다. "아, 아직 아닙니다. 우리는 그것을 개선해야합니다." 그의 라이브러리를 사용하려면 이 50개의 기사를 읽어야 합니까? 본질과 의미는 무엇입니까?

당신은 터프하지만 아아, 그것은 정말로 당신의 것입니다. 언급 된 라이브러리를 포함하려고 시도했습니다. 의견이 모호하고 편리하고 아름답습니다. 그러나이 라이브러리가 생성되었을 때 MQL을 공부하지 않았고 후속 MT 빌드에서 라이브러리가 "조건부로 작동"하게 되었고 기사의 일부 예제는 컴파일되거나 버그로 작동하지 않으며 수많은 코드를 이해하기 위해 아아, MT의 표준 제공을 사용하는 것이 더 쉽습니다.

막심 쿠즈네초프 :

최신 GUI 생성자("양식에 버튼을 흩뿌리는 것")는 상당히 기술적인 것이며 여기에 MQL 요소를 연결하는 것은 환상적으로 보이지 않습니다.

거의 모든 사람은 요소의 위치와 관계를 설명하는 XML을 사용하는 중간 형식(프로젝트 파일 등)을 가지고 있습니다.

대상 플랫폼 코드 생성 - 사실 이것은 자신을 웹 프로그래머라고 생각하는 사람이라면 누구나 할 수 있는 XSLT 변환입니다 :-)

예를 들어 EasyAndFast(https://www.mql5.com/en/code/19703)는 객체 하나이고 필요한 모든 구성 요소를 가지고 있기 때문에 가져옵니다. (그런데 주제와 달리 공개되고 문서화 되어 있음),
번역기는 단순히 작성되었습니다.

gui-mql 생성자가 없기 때문이 아니라 단순히 수요가 없기 때문입니다.


예, 저는 이것을 찾고 있습니다. 관심이 있습니다. 글쎄, 적어도 Peter의 코를 닦아주세요! ))))

그러나 진지하게, 나는 일종의 크로스 플랫폼 GUI 디자이너를 비틀고 싶습니다. 아마도 당신이 볼 수있는 것을 보여줄 것 입니까? 나는 모든 것을 다룰 시간이나 의향이 없습니다.

 
Igor Makanu :

당신은 터프하지만 아아, 그것은 정말로 당신의 것입니다. 언급 된 라이브러리를 포함하려고 시도했습니다. 의견이 모호하고 편리하고 아름답습니다. 그러나이 라이브러리가 생성되었을 때 MQL을 공부하지 않았고 후속 MT 빌드에서 라이브러리가 "조건부로 작동"하게 되었고 기사의 일부 예제는 컴파일되거나 버그로 작동하지 않으며 수많은 코드를 이해하기 위해 아아, MT의 표준 제공을 사용하는 것이 더 쉽습니다.


예, 저는 이것을 찾고 있습니다. 관심이 있습니다. 글쎄, 적어도 Peter의 코를 닦아주세요! ))))

그러나 진지하게, 나는 일종의 크로스 플랫폼 GUI 디자이너를 비틀고 싶습니다. 아마도 당신이 볼 수있는 것을 보여줄 것 입니까? 나는 모든 것을 다룰 시간이나 의향이 없습니다.

QT 디자이너를 보십시오.

 
Dmitry Fedoseev :

Peter, 그리고 당신의 GUI가 그래픽 개체로 구성되지 않고 캔버스에 그려진다는 것을 어디에서 표현했습니까? 변덕스럽게 굴지 말자, 그는 끔찍해 보인다.

...

예술가로서 나는 이 말을 그냥 지나칠 수 없었다.


물론, 이상적인 것과는 거리가 멀지만 "끔찍하다"???

 
Igor Makanu :

예, 저는 이것을 찾고 있습니다. 관심이 있습니다. 글쎄, 적어도 Peter의 코를 닦아주세요! ))))

그러나 진지하게, 나는 일종의 크로스 플랫폼 GUI 디자이너를 비틀고 싶습니다. 아마도 당신이 볼 수있는 것을 보여줄 것 입니까? 나는 모든 것을 다룰 시간이나 의향이 없습니다.

닦을 필요가 없습니다.)) 볼 필요도 없습니다.

DLL에서 C-sharp로. VS 환경에는 이미 생성자가 있습니다. 언어는 MQL과 거의 유사합니다. 시장을 위한 것이 아니라 사랑하는 사람을 위한 것이라면 현대적인 모양과 기능을 갖춘 가장 간단하고 확실한 옵션입니다.

Peter가 제공하는 것은 90년대 초 Borland의 Turbo Vision 주기에서 나온 DOS 유형 GUI입니다.

 
Yuriy Asaulenko :

Peter가 제공하는 것은 90년대 초 Borland의 Turbo Vision 주기에서 나온 DOS 유형 GUI입니다.

네, 아주 평범한 GUI입니다. 내가 너무 늙었을 수도 있지만 그는 꽤 좋은 사람이라고 생각합니다.

질문은 다릅니다. 누가 그것을 사용하는 데 관심이 있습니까? 이것들이 많이 있습니까?

 

자신의 GUI를 만드는 것은 문제가 되지 않습니다.

문제는 많은 사용자가 필요로 하는 합리적인 응용 프로그램을 찾는 것입니다. 여기까지는 모두가 어려움을 겪고 있습니다. 정상적인 작업이 있을 것입니다 - GUI가 있을 것이며 하나가 아닙니다 ...

Peter, 사용자가 귀하의 제품을 필요로 하는 이유는 무엇입니까? 당신이 그 과정 자체에 매료되어 그것을 겪었다는 것을 이해합니다. 그러나 사용자에게 왜 필요합니까? 대상 고객은 누구입니까?
 
Georgiy Merts :

네, 아주 평범한 GUI입니다. 내가 너무 늙었을 수도 있지만 그는 꽤 좋은 사람이라고 생각합니다.

질문은 다릅니다. 누가 그것을 사용하는 데 관심이 있습니까? 이것들이 많이 있습니까?

나쁨-좋음 - 모두 특정 작업에 따라 다릅니다. 몇 년 전에 저는 버튼, 필드, 테이블, 실시간 차트 및 기타 속성이 있는 Excel 시트에 터미널 GUI를 만들었습니다. 수동 거래 에 필요했습니다. 구성 및 인터페이스에는 문제가 없었습니다.

Peter의 GUI는 문제에 대한 솔루션과 구성의 단순화로 정확하게 제시됩니다. 나는 그것에 대해 생각하고 해냈습니다. 물론 잘했지만 여기에는 오랫동안 문제가 없었고 단순화 할 특별한 것은 없습니다.

 

111

와- 미인. 다른 스크린샷과 (스타일에) 불일치가 있어 큰 의심을 불러일으킵니다.

 
Реter Konow :

다음은 내 연결 인터페이스의 예입니다.

모든 것이 이미 여기에서 생각되었습니다.

보았다. 어둠이 완성되었습니다. 파일은 600줄 길이의 On_Gui_Event 함수가 거의 완전히 차지합니다. 다음은 그녀의 발췌문입니다(철자와 구두점은 보존됨):

 void On_Gui_Event( int Element, string value )
{
 string action = value , selected_option = value ; //DON'T CHANGE THIS LINE
//------------------------------------
 switch (Element)
   {
//=====================================================================================================================
//WINDOW:   Checkboxes | element: CHECKBOX  | name: Checkbox_1  |  Location: Window's Main Frame
//=====================================================================================================================
case CHECKBOX3___Checkbox_1:
               //------------------------------------------------------------------------------------------------------
               //What to do when checkbox checked or unchecked?
               //------------------------------------------------------------------------------------------------------
               switch (( int )action)
               {
                 case checked :     break ;
  
                 case unchecked :     break ;
               }
               //------------------------------------------------------------------------------------------------------
               //Your comment:
               //------------------------------------------------------------------------------------------------------
               break ;
  
//=====================================================================================================================
//WINDOW:   Checkboxes | element: CHECKBOX  | name: Checkbox_2  |  Location: Window's Main Frame
//=====================================================================================================================
case CHECKBOX4___Checkbox_2:
               //------------------------------------------------------------------------------------------------------
               //What to do when checkbox checked or unchecked?
               //------------------------------------------------------------------------------------------------------
               switch (( int )action)
               {
                 case checked :     break ;
  
                 case unchecked :     break ;
               }
               //------------------------------------------------------------------------------------------------------
               //Your comment:
               //------------------------------------------------------------------------------------------------------
               break ;
  ...
//=====================================================================================================================
//WINDOW:   Spin edits | element: D_LIST  | name: D_LIST_2  |  Location: Window's Main Frame
//=====================================================================================================================
case D_LIST20___D_LIST_2:
               //------------------------------------------------------------------------------------------------------
               //What to do when option selected?
               //------------------------------------------------------------------------------------------------------
               if (selected_option == "L_ITEM  1" ){}
               if (selected_option == "L_ITEM  2" ){}
               if (selected_option == "L_ITEM  3" ){}
               if (selected_option == "L_ITEM  4" ){}
               if (selected_option == "L_ITEM  5" ){}
               if (selected_option == "L_ITEM  6" ){}
               if (selected_option == "L_ITEM  7" ){}
               if (selected_option == "L_ITEM  8" ){}
               if (selected_option == "L_ITEM  9" ){}
               if (selected_option == "L_ITEM  10" ){}
               if (selected_option == "L_ITEM  11" ){}
               if (selected_option == "L_ITEM  12" ){}
               if (selected_option == "L_ITEM  13" ){}
               if (selected_option == "L_ITEM  14" ){}
               if (selected_option == "L_ITEM  16" ){}
               if (selected_option == "L_ITEM  17" ){}
               if (selected_option == "L_ITEM  18" ){}
               if (selected_option == "L_ITEM  19" ){}
               if (selected_option == "L_ITEM  20" ){}
               //------------------------------------------------------------------------------------------------------
               //Your comment:
               //------------------------------------------------------------------------------------------------------
               break ;
  ...
  }
}

그냥 어둠입니다. 물론 코드는 컴파일되지 않습니다. 파일에 케이스 상수가 정의되어 있지 않습니다. 케이스 내부 스위치. 들여쓰기는 가난한 사용자를 의도적으로 혼동시키는 방식으로 만들어집니다. if(selected_option == "L_ITEM 1"){}와 같은 비효율적인 코드 뭉치{} 요컨대, 어둠은 완전하고 뚫을 수 없습니다.

 
Vasiliy Sokolov :

보았다. 어둠이 완성되었습니다. 파일은 600줄 길이의 On_Gui_Event 함수가 거의 완전히 차지합니다. 다음은 그녀의 발췌문입니다(철자와 구두점은 보존됨):

그냥 어둠입니다. 물론 코드는 컴파일되지 않습니다. 파일에 케이스 상수가 정의되어 있지 않습니다. 케이스 내부 스위치. 들여쓰기는 가난한 사용자를 의도적으로 혼동시키는 방식으로 만들어집니다. if(selected_option == "L_ITEM 1"){}와 같은 비효율적인 코드 뭉치{} 요컨대, 어둠은 완전하고 뚫을 수 없습니다.

Vasily, 당신은 나를 많이 웃게 만들었습니다. )) 왜 당신의 손에 들어가는 모든 것을 즉시 컴파일하려고 노력해야합니까?))

GUI 연결 파일의 예입니다. Oleg Papkov에게 어떻게 작동하는지 물어보십시오. "비효율적인 코드"는 또 무엇입니까? 최대한 명확하게 만든 일반 코드입니다.