찻주전자의 질문 - 페이지 138

 
joo :
스크립트가 아닌 경우 OnChartEvent()로/에서 모든 논리를 수행/호출하시겠습니까?

글쎄, 당신이 할 수있는 곳이면 어디든지. 타이머도 있습니다.

순환 논리가 필요한 경우 타이머를 사용할 수 있습니다.

논리가 이벤트 기반이면 chartevent에서.

 
sergeev :

글쎄, 당신이 할 수있는 곳이면 어디든지. 타이머도 있습니다.

순환 논리가 필요한 경우 타이머를 사용할 수 있습니다.

논리가 이벤트 기반이면 chartevent에서.

그러한 논리:

1. 프로그램 실행(차트에 던짐).

2. 대화 상자(파일 목록)에서 파일 이름을 가져옵니다.

3. 파일명으로 파일을 열어 데이터를 받아 처리한다.

4. 프로그램을 종료했습니다.

사실 모든 것. 이 사업이 어떻게 조직될 수 있는지 최소한 개략적으로 보여주십시오.

Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - Документация по MQL5
 
joo :

그러한 논리:

1. 프로그램 실행(차트에 던짐).

초기화 디스크 검색, 파일 찾기, 목록 상자 생성(컨트롤)

2. 대화 상자(파일 목록)에서 파일 이름을 가져옵니다.

차트 이벤트. 우리는 목록의 특정 줄에 각각 클릭이 있었던 마우스 클릭을 처리했으며 파일을 알고 있습니다.

3. 파일명으로 파일을 열어 데이터를 받아 처리한다.

차트 이벤트. 처리된 마우스는 "GO" 버튼을 클릭합니다. 목록에서 기억된 파일 이름을 얻었습니다. 이 파일의 데이터를 더욱 순수하게 처리합니다.

4. 프로그램을 종료했습니다.

ExpertRemove()

 
sergeev :
...

이제 더 명확해졌습니다. 감사합니다.

하지만 여기 샘플이 있습니다. zabatsal 전문가입니다. 차트에 아무 일도 일어나지 않는 경우에도 인쇄되며 다음과 같아선 안 됩니다.

 #include <Controls\ControlsDialog.mqh>
CControlsDialog ExtDialog;

int OnInit ()
{
//--- create application dialog
   if (!ExtDialog.Create( 0 , "Controls" , 0 , 20 , 20 , 360 , 324 ))
     return (- 1 );
//--- run application
  ExtDialog.Run();
   return ( 0 );
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
{
//--- destroy dialog
  ExtDialog.Destroy();
}
//+------------------------------------------------------------------+
//| Expert chart event function                                      |
//+------------------------------------------------------------------+
void OnChartEvent ( const int id,         // event ID  
                   const long & lparam,   // event parameter of the long type
                   const double & dparam, // event parameter of the double type
                   const string & sparam) // event parameter of the string type
{
  ExtDialog.ChartEvent(id,lparam,dparam,sparam);
   Print ( "dsfsdfsdfsdf" );
}
//+------------------------------------------------------------------+
 
Yedelkin :

글쎄, 모든 클래스 메서드 는 일반 코드입니다. 이 코드를 구문 분석해 보십시오.

고맙습니다! 작동합니다.
 
joo :

이제 더 명확해졌습니다. 감사합니다.

하지만 여기 샘플이 있습니다. zabatsal 전문가입니다. 차트에 아무 일도 일어나지 않는 경우에도 인쇄되며 다음과 같아선 안 됩니다.

아니오 아니오, 마우스로 차트를 구동하기 때문에 인쇄가 진행됩니다.

 
sergeev :

아니오 아니오, 마우스로 차트를 구동하기 때문에 인쇄가 진행됩니다.

실제로 그는 죄인입니다. 그는 차트에서 마우스를 움직여서 인쇄합니다.
[삭제]  

안녕하세요.

호기심에 질문합니다. 다음과 같은 코드:

 class cl2;

class cl1
{
public :
         int q;
         void fn2(cl2 &t){t.i = 87 ;}
};


class cl2
{
public :
         int i;
         void fn(cl1 &w){w.q = 9 ;}
};

아이디어는 다음과 같습니다.

  • 두 개의 클래스(#1 및 #2)가 있습니다.
  • 클래스 #1과 클래스 #2의 땜질
  • 클래스 #2 팅커링 클래스 #1

MQL에서는 오류 없이 컴파일되지만 VS에서는 원하지 않습니다(정의 없이 클래스를 사용할 수 없다고 말함). 왜요?

 
220Volt :

MQL에서는 오류 없이 컴파일되지만 VS에서는 원하지 않습니다(정의 없이 클래스를 사용할 수 없다고 말함). 왜요?

Patamushta mql5 - 더 좋습니다!

;)

[삭제]  
MetaDriver :

Patamushta mql5 - 더 좋습니다!

;)

예, 플러스를 넣어야 할 것 같습니다))