오류, 버그, 질문 - 페이지 2314

 

개발자 여러분!

MT4에서 선택한 그래픽 개체를 클릭하면 " CHARTEVENT_OBJECT_DRAG " 이벤트가 트리거 됩니다. 이것은 진짜 실수입니다.

MT5에서는 그런 문제가 없습니다.

 void OnChartEvent ( const int id,
                   const long &lparam,
                   const double &dparam,
                   const string &sparam)
 {
   if (id== CHARTEVENT_OBJECT_DRAG )
     Print (id); // 2
 }
 
SuhanovDM94 :

모두 좋은 하루! 어리석은 질문에 대해 사과드립니다. 얘들 아, 왼쪽 마우스 버튼이 버튼을 눌렀을 때 Pressed 속성이 true 값을 가져오고 놓을 때 false 값을 갖도록 만드는 방법을 알려주십시오. 지금 상황은 눌렀을 때 아무 일도 일어나지 않지만 눌렀을 때 Pressed가 반대로 바뀌는 상황입니다.

이벤트 핸들러 CButton::OnMouseUp 및 CButton::OnMouseDown을 재정의해야 한다는 것은 이해하지만 어디서 해야할지 상상이 되지 않습니다. 힌트를 주세요. 미리 감사드립니다!

누구든지 같은 주제로 도움을 줄 수 있다면 감사하겠습니다.

 
Baruban :

누구든지 같은 주제로 도움을 줄 수 있다면 감사하겠습니다.

이벤트는 마우스 버튼을 놓았을 때만 발생하지만 눌리지는 않습니다.

 
Vitaly Muzichenko :

이벤트는 마우스 버튼을 놓았을 때만 발생하지만 눌리지는 않습니다.

그러나 결국 클릭 핸들러가 있습니까? 따라서 클릭 이벤트가 있어야 합니다.

 
SuhanovDM94 :

그러나 결국 클릭 핸들러가 있습니까? 따라서 클릭 이벤트가 있어야 합니다.

아무것도 혼동하지 않습니까? CHARTEVENT_CLICK 이벤트가 있습니다. 차트를 마우스로 클릭하십시오 . 하지만 누르지 않고...

 
Alexey Viktorov :

아무것도 혼동하지 않습니까? CHARTEVENT_CLICK 이벤트가 있습니다. 차트를 마우스로 클릭하십시오 . 하지만 누르지 않고...

있습니다, 맞습니다. CButton 클래스에는 OnMouseDown() 및 OnMouseUp()의 두 가지 내부 이벤트 처리기가 있습니다. 그래서 그에 상응하는 이벤트가 있지 않을까 하는 생각이 들었습니다.

 
SuhanovDM94 :

있습니다, 맞습니다. CButton 클래스에는 OnMouseDown() 및 OnMouseUp()의 두 가지 내부 이벤트 처리기가 있습니다. 그래서 그에 상응하는 이벤트가 있지 않을까 하는 생각이 들었습니다.

나는 SB를 보지 않았지만 분명히 한 번의 클릭 OBJPROP_STATE == true, 다른 OBJPROP_STATE == false가 있습니다. 아니면 내가 틀렸을 수도 있습니다.

 
안녕하세요 모두 도와주세요. 그래프가 다운되는 이유 최적화가 끝나면 그래프가 정상인지 아닌지
파일:
 
"int i = func( 0, 1 );" 줄의 "func" 단어 위로 마우스를 가져가면 MT4 및 MT5 편집기가 모두 충돌합니다. "정의로 이동" 옵션 선택(또는 Alt+G 누름)

MQL4 빌드 1910
MQL5 빌드 1931

 template < typename type>  
type func( type a, type b = 1 ){ return ( 0 ); }

int i = func( 0 , 1 );

void OnStart (){ }  

파일:
altg.jpg  57 kb
 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

MQL은 Python의 None 유형과 동일합니까?

니콜리 셴 , 2018.10.28 21:52

MQL에는 없고, 어쨌든 더 이상은 아닙니다. 실제로 디버깅에서 참조로 전달하는 것보다 두 배 느리고 일반적으로 컴파일할 때 거의 동일하므로 실제로 문제가 되지 않습니다. 스스로 시도하십시오.

 #define ITERATIONS 1000000

void OnStart ()
{
   {
       ulong time = GetMicrosecondCount ();
       ulong sum = 0 ;
       for ( int i= 0 ; i<ITERATIONS; i++){
         string r = string ( rand ());
         sum += by_ref (r);
      }
      time = GetMicrosecondCount () - time;
       printf ( "%s took %.3f milliseconds: sum=%dll" , "by_ref" , time/ 1000.0 , sum);
   }{
       ulong time = GetMicrosecondCount ();
       ulong sum = 0 ;
       for ( int i= 0 ; i<ITERATIONS; i++)
         sum += by_val ( string ( rand ()));
      time = GetMicrosecondCount () - time;
       printf ( "%s took %.3f milliseconds: sum=%dll" , "by_val" , time/ 1000.0 , sum);
   }
}
//+------------------------------------------------------------------+

int by_ref( string &var){ return int (var) % 100 ; }
int by_val( string   var){ return int (var) % 100 ; }

by_ref가 by_val보다 느린 이유는 무엇입니까?