그래픽 모드에서 MQL용 GUI 작성.

 

그래픽 인터페이스를 만들기 위한 다양한 라이브러리가 빠르게 개발되기 시작한 몇 년 전 이 주제를 제기했습니다. 그 이후로 많이 수정되었지만 생성 과정 자체는 30년 전 수준으로 유지되었습니다. 그리고 그러한 도구가 나타났습니다. 나는 기꺼이 차기를 받아들이고 말을 되돌릴 것입니다.

-------

다음은 VS 2017, C# Windows Forms의 가장 간단한 예입니다. 왼쪽에는 양식으로 끌 수 있는 제어 도구 모음이 있습니다.

패널형태

그리고 다음은 이 가장 단순한 형태를 위해 생성된 코드의 일부입니다.

 private void InitializeComponent()
        {
             this .btnDoSomething = new System.Windows.Forms.Button();
             this .textBox1 = new System.Windows.Forms.TextBox();
             this .SuspendLayout();
             // 
             // btnDoSomething
             // 
             this .btnDoSomething.Location = new System.Drawing. Point ( 12 , 12 );
             this .btnDoSomething.Name = "btnDoSomething" ;
             this .btnDoSomething.Size = new System.Drawing.Size( 100 , 23 );
             this .btnDoSomething.TabIndex = 0 ;
             this .btnDoSomething.Text = "Do something" ;
             this .btnDoSomething.UseCompatibleTextRendering = true ;
             this .btnDoSomething.UseVisualStyleBackColor = true ;
             // 
             // textBox1
             // 
             this .textBox1.Location = new System.Drawing. Point ( 12 , 53 );
             this .textBox1.Name = "textBox1" ;
             this .textBox1.Size = new System.Drawing.Size( 100 , 20 );
             this .textBox1.TabIndex = 1 ;
             this .textBox1.Text = "Hello MQL5!" ;
             this .textBox1.TextChanged += new System.EventHandler( this .textBox1_TextChanged);
             // 
             // Form1
             // 
             this .AutoScaleDimensions = new System.Drawing.SizeF( 6 F, 13 F);
             this .AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this .ClientSize = new System.Drawing.Size( 133 , 98 );
             this .Controls.Add( this .textBox1);
             this .Controls.Add( this .btnDoSomething);
             this .Name = "Form1" ;
             this .Text = "Form1" ;
             this .ResumeLayout( false );
             this .PerformLayout();

        }

         protected System.Windows.Forms.Button btnDoSomething;
         private System.Windows.Forms.TextBox textBox1;

그렇다면 누가 이러한 코드를 구문 분석하고 그래픽용 코드가 이 사이트에 제공된 라이브러리를 기반으로 구축되는 프로젝트를 맡겠습니까?

결국 "MQL5에서 음식을 먹고 돈을 벌기"섹션에서 이미 1 년 동안 저자가없는 기사가있었습니다.

55 소스 코드의 파싱 및 자동 수정   MQL5   ~을 통해   정규식  
함수, 전역 변수, 정의, 클래스 등의 목록 가져오기

왜 아무도 안 받아요? 예, 아무도 이 구문 분석을 필요로 하지 않기 때문입니다. 10년 이상 동안 연마되고 개선된 훌륭한 Doxygen 프로그램이 있습니다. 그리고 아무도 그녀의 한심한 모습을 만드는 데 관심이 없습니다(비교하면 분명히 한심할 것입니다). 그리고 최근에 자동 문서 생성 이라는 주제에 대한 기사가 나왔습니다.

그래서,

  1. 이미 그러한 프로젝트가 있는 경우.
  2. 누가 그러한 그래픽 인터페이스 생성에 관심을 가질까요?
나는 특별히 별도의 분기를 만들었습니다. 분기 섹션에서 "MQL5에서 음식과 수입"은 빨리 길을 잃을 것이고 그것을 읽는 사람은 거의 없습니다.

 

METATRADER용 GUI는 그런 가능성이 매우 낮습니다. 패널을 만들려면 - 좋습니다. 그러나 더 이상 필요하지 않습니다.

나는 당신에게 동의하지만 - "Visual" MetaEditor -가 주제에 있을 것입니다.

 
Vladislav Andruschenko :

METATRADER용 GUI는 그런 가능성이 매우 낮습니다. 패널을 만들려면 - 좋습니다. 그러나 더 이상 필요하지 않습니다.

나는 당신에게 동의하지만 - "Visual" MetaEditor -가 주제에 있을 것입니다.

MT-MQL, 특히 일이 왜 그렇게 복잡합니까? MQL, IMHO는 이미 지나치게 복잡합니다. 역시 VS가 있어 패널을 만든다. 예를 들어 동일한 DLL을 통해 필요한 모든 것이 있습니다. MT-MQL로 몬스터를 만들 필요가 없습니다.))

 
Yuriy Asaulenko :

MT-MQL, 특히 일이 왜 그렇게 복잡합니까? MQL, IMHO는 이미 지나치게 복잡합니다. 역시 VS가 있어 패널을 만든다. 예를 들어 동일한 DLL을 통해 필요한 모든 것이 있습니다. MT-MQL로 몬스터를 만들 필요가 없습니다.))


글쎄요, 저는 꿈을 꾸고 있습니다 :-) (그래픽 및 거래 시스템 구축을 위한 VISUAL), 이미 많은 생성자가 있는 것이 분명합니다....

솔직히 말해서, 나는 Photoshop에서 첫 번째 패널을 그렸습니다. 그리고 그녀는 여전히...

지금은 터미널에서 직접 그리려고 하고 있지만 소수만이 사용하는 것으로 알고 있습니다.

그리고 맞춤형 패널은 개별적으로 만들기가 더 쉽습니다.

라이브러리 그리기에 대한 기사를 자세히 공부했지만. 하지만 이 라이브러리들을 사용하면 1%는 유용할 것 같아서 포기...

 
Yuriy Asaulenko :

MT-MQL, 특히 일이 왜 그렇게 복잡합니까? MQL, IMHO는 이미 지나치게 복잡합니다. 역시 VS가 있어 패널을 만든다. 예를 들어 동일한 DLL을 통해 필요한 모든 것이 있습니다. MT-MQL로 몬스터를 만들 필요가 없습니다.))

나는 전에 그것을 했다. 다음은 다중 전략(오, 젠장!) Expert Advisor를 위한 간단한 설정 패널의 예입니다. 그러나 그것은 시장을 차단합니다!

나는 MT가 그것과 무슨 관련이 있는지 이해하지 못합니까? MQL에서 스크립트 파서를 만드는 것이 좋습니다. C++/C#에서도 가능하지만 기사로 가져가지 않습니다.

아 사진을 깜빡했네 여기야 소박하다


 
Vladislav Andruschenko :


글쎄요, 저는 꿈을 꾸고 있습니다 :-) (그래픽 및 거래 시스템 구축을 위한 VISUAL), 이미 많은 생성자가 있는 것이 분명합니다....

솔직히 말해서, 나는 Photoshop에서 첫 번째 패널을 그렸습니다. 그리고 그녀는 여전히...

지금은 터미널에서 직접 그리려고 하고 있지만 소수만이 사용하는 것으로 알고 있습니다.

맞춤형 패널은 개별적으로 만들기가 더 쉽습니다.

라이브러리 그리기에 대한 기사를 자세히 공부했지만. 하지만 이 라이브러리들을 사용하면 1%는 유용할 것 같아서 포기...

즉, 라이브러리 없이 작업을 수행합니까? 여기에서 다소 복잡한 패널을 만들어야 하는 작업이 있고 여러 번 재정렬될 것 같습니다.

지금까지는 VS에서 시각적 개체를 만든 다음 핸들 이 있는 컨트롤 의 좌표와 크기를 가져와서 다시 핸들을 일부 라이브러리로 전송하기로 결정했습니다. 내가 Anatoly Kazrsky의 도서관에 기대고 있는 동안 그는 그곳에서 엄청난 일을 해냈습니다. 모든 것이 코드 편집 -> 실행 -> 종이에 결과 쓰기 -> 코드 편집 등으로 수정하는 것보다 빠릅니다.

 
Alexey Volchanskiy :

즉, 라이브러리 없이 작업을 수행합니까? 여기에서 다소 복잡한 패널을 만들어야 하는 작업이 있고 여러 번 재정렬될 것 같습니다.

지금까지는 VS에서 시각적 개체를 만든 다음 핸들이 있는 컨트롤의 좌표와 크기를 가져와서 다시 핸들을 일부 라이브러리로 전송하기로 결정했습니다. 내가 Anatoly Kazrsky의 도서관에 기대고 있는 동안 그는 그곳에서 엄청난 일을 해냈습니다. 모든 것이 코드 편집 -> 실행 -> 종이에 결과 쓰기 -> 코드 편집 등으로 수정하는 것보다 빠릅니다.

Kazarsky의 성경을 사용하는 것이 더 낫습니다.

하지만 예, 드로잉 라이브러리가 있습니다. 그들은 표준입니다. (물론 Kazarsky의 것과 같지는 않습니다 :-))

그림을 거의 사용하지 않기 때문에 시간을 낭비할 필요가 없습니다.


그래서 그렇습니다 - 저는 포토샵으로 그렸습니다 - 저는 델파이에서 코드를 그리고 우리는 좌표를 따라 갑니다 :-)

지금은 그런 식으로 하지 않겠지만 MQL에서 첫 번째 패널을 이런 방식으로 그렸습니다(Delphi에 있기 전)

아직 만지기가 두렵습니다 :-) 업데이트 중입니다. 물론 코드를 이미 10번 최적화했습니다. 하지만 일반 버튼으로 같은 패널을 그릴 생각입니다......

하지만 장단점이 있습니다. 일반 버튼은 아름답지 않습니다 : 테스터에서 캔버스가 작동하지 않습니다 ...........

 
Alexey Volchanskiy :

나는 전에 그것을 했다. 다음은 다중 전략(오, 젠장!) Expert Advisor를 위한 간단한 설정 패널의 예입니다. 그러나 그것은 시장을 차단합니다!

나는 MT가 그것과 무슨 관련이 있는지 이해하지 못합니까? MQL에서 스크립트 파서를 만드는 것이 좋습니다. C++/C#에서도 가능하지만 기사로 가져가지 않습니다.

아 사진을 깜빡했네 여기야 소박하다

시장을 위한 것이라면 예, 나쁜 것입니다. MQL 만. ((

그러나 나 자신에게는 필요하지 않으며 VS를 사용하면 모든 것이 쉽습니다.

 
Yuriy Asaulenko :

시장을 위한 것이라면 예, 나쁜 것입니다. MQL 만. ((

그러나 나 자신에게는 필요하지 않으며 VS를 사용하면 모든 것이 쉽습니다.

VS를 사용하면 모든 것이 매우 간단하고 빠르며 일반적으로 공유 파일을 통해 액세스하여 해당 패널을 수행했으며 모든 것이 빠르고 잘 작동했습니다.

나도 모르겠어. VS에 변종을 재빨리 휘젓고, 어린 시절 질병을 없애면 MQL로 옮길 수 있을까?

그러나 결국 C #의 패널 아래에서는 이 포럼에 분기를 만들 수 없습니다. 그렇다면 다시 빨간색으로 작업한 다음 유휴 대화에 참여하시겠습니까? 친애하는 중재자님, 무슨 말씀이십니까? 프로젝트 의 일부로 여기에 C# 패널을 게시할 수 있습니까?

물론 스레드에서 MQL5 부분을 공유하고 블로그에서 C# 패널을 공유할 수 있습니다. 그것은 내가 이끼처럼 블로그에 숨도록 강요받는 것처럼 어떻게 든 굴욕적입니다.

 
Alexey Volchanskiy :

VS를 사용하면 모든 것이 매우 간단하고 빠르며 일반적으로 공유 파일을 통해 액세스하여 해당 패널을 수행했으며 모든 것이 빠르고 잘 작동했습니다.

나도 모르겠어. VS에 변종을 재빨리 휘젓고, 어린 시절 질병을 없애면 MQL로 옮길 수 있을까?

그러나 결국 C #의 패널 아래에서는 이 포럼에 분기를 만들 수 없습니다. 그렇다면 다시 빨간색으로 작업한 다음 유휴 대화에 참여하시겠습니까? 친애하는 중재자님, 무슨 말씀이십니까? 프로젝트의 일부로 여기에 C#으로 패널을 게시할 수 있습니까?

물론 스레드에서 MQL5 부분을 공유하고 블로그에서 C# 패널을 공유할 수 있습니다. 그것은 내가 이끼처럼 블로그에 숨도록 강요받는 것처럼 어떻게 든 굴욕적입니다.

파일 교환 Pts가 마음에 들었습니다. 모든 것이 간단하고 빠릅니다. RAM-Disk를 통해 DLL 및 벨과 휘파람이 전혀 필요하지 않으며 속도는> 1.5GB/s입니다. 모든 것에 충분하고 남아 있습니다.))

그리고 필요한 경우 모든 종류의 DLL을 나중에 여가 시간에 엉망으로 만들 수 있습니다.

 
Alexey, C#에서 패널을 사용하여 차트 창 안에 표시되도록 할 수 있습니까?
사유: