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

 
Sergey Dzyublik :

예전 코드를 찾아주겠다는 약속이 담긴 내 메시지가 삭제되었기 때문에 나는 아무것도 약속하지 않은 것으로 밝혀졌습니다 ...
농담.


키보드 작업을 위한 기능이 아직 미미하고, 간단히 말해서 설명하기 어려운 암울한 시대(3년 이상 전)에 작성되었습니다.
이제 메모리가 아무리 많이 고장나더라도 필요한 특정 키의 상태를 추적하는 표준 기능이 있습니다.
따라서 아래 코드 스니펫은 아무 소용이 없을 것입니다.

어디:
lparam - 현재 이벤트에서 누른 키의 코드.
last_key_code - 이전 이벤트에서 눌린 키의 코드.
g_first_key - 조합의 첫 번째 키 코드.
g_second_key - 조합에서 두 번째 키의 코드.
time - 현재 키 누름 이벤트의 시간.
last_time_code - 이전 키 누르기 이벤트의 시간.
g_time_limit - 키 조합으로 간주되기 위해 첫 번째 키와 두 번째 키를 누르는 사이의 최대 시간.

Ctrl 키를 누르면 핸들러가 다른 키에 반응하지 않습니다. 어떻게 우회되었나요?

여기로 이동할 시간입니다: https://www.mql5.com/ru/forum/231958

 
이 문제가 어디에 있는지 모르겠는데 최근에 새 파일을 열거나 생성할 때 메타에디터가 빡빡하게 멈춰서 작업을 제거하고 다시 시작해야 하는데 누가 와서 어떻게 해야 하는지 알 수 있을까요?(다시 설치해 보았습니다. 터미널, 도움이되지 않았습니다)
파일:
err.png  132 kb
 
Andrii Djola :
이 문제가 어디에 있는지 모르겠는데 최근에 새 파일을 열거나 생성할 때 메타에디터가 빡빡하게 멈춰서 작업을 제거하고 다시 시작해야 하는데 누가 와서 어떻게 해야 하는지 알 수 있을까요?(다시 설치해 보았습니다. 터미널, 도움이되지 않았습니다)

안녕하세요!

어떤 버전의 터미널과 어떤 OS를 설치했습니까?

 
Evgeny Chernyshev :

안녕하세요!

어떤 버전의 터미널과 어떤 OS를 설치했습니까?

승리 10 x64 축

2018년 1월 29일부터 MT5 빌드 1755

 
말해봐, 어떻게든 프로젝트 가 아닌 별도로 선택한 소스 파일(이전과 같이)을 컴파일할 수 있습니까?
 

나 끝났어 아님 이래야 돼?????

   double t   = 280 / 60 ;
   string rez = DoubleToString (t, 16 );
   Print (rez); //  2018.03.18 01:20:57.117	Test (EURUSD_i,H1)	4.0000000000000000

그리고

   double t   = ( double ) 280 / 60 ;
   string rez = DoubleToString (t, 16 );
   Print (rez); // 2018.03.18 01:21:51.881	Test (EURUSD_i,H1)	4.6666666666666670
 
Vladimir Pastushak :

나 끝났어 아님 이래야 돼?????

맞습니다(int를 int로 나누면 int 결과는 double이 됩니다):

 double t   = 280 / 60 ;
 
Sergey Dzyublik :

맞습니다(int를 int로 나누면 int 결과는 double이 됩니다):

덕분에!

 
 

도움말의 이 예가 작동하지 않는다는 것을 올바르게 이해하고 있습니까 ???

 //+------------------------------------------------------------------+ 
//| Expert initialization function                                   | 
//+------------------------------------------------------------------+ 
int OnInit () 
  { 
//--- включение сообщений о прокрутке колесика мышки 
   ChartSetInteger ( 0 , CHART_EVENT_MOUSE_WHEEL , 1 ); 
   return ( INIT_SUCCEEDED ); 
  } 
//+------------------------------------------------------------------+ 
//| ChartEvent function                                              | 
//+------------------------------------------------------------------+ 
void OnChartEvent ( const int id, const long &lparam, const double &dparam, const string &sparam) 
  { 
   if (id== CHARTEVENT_MOUSE_WHEEL ) 
     { 
       //--- разберем состояние кнопок и колесика мышки для этого события  
       int flg_keys = ( int )(lparam>> 32 );           // флаг состояний клавиш Ctrl, Shift и кнопок мышки 
       int x_cursor = ( int )( short )lparam;         // X-координата, в которой произошло событие колесика мышки 
       int y_cursor = ( int )( short )(lparam>> 16 );   // Y-координата, в которой произошло событие колесика мышки 
       int delta    = ( int )dparam;                 // суммарное значение прокрутки колесика, срабатывает при достижении +120 или -120 
       //--- обработаем флаг  
       string str_keys= "" ; 
       if ((flg_keys& 0x0001 )!= 0 ) str_keys+= "LMOUSE " ; 
       if ((flg_keys& 0x0002 )!= 0 ) str_keys+= "RMOUSE " ; 
       if ((flg_keys& 0x0004 )!= 0 ) str_keys+= "SHIFT " ; 
       if ((flg_keys& 0x0008 )!= 0 ) str_keys+= "CTRL " ; 
       if ((flg_keys& 0x0010 )!= 0 ) str_keys+= "MMOUSE " ; 
       if ((flg_keys& 0x0020 )!= 0 ) str_keys+= "X1MOUSE " ; 
       if ((flg_keys& 0x0040 )!= 0 ) str_keys+= "X2MOUSE " ; 
       
       if (str_keys!= "" ) 
         str_keys= ", keys='" + StringSubstr (str_keys, 0 , StringLen (str_keys)- 1 ) + "'" ; 
       PrintFormat ( "%s: X=%d, Y=%d, delta=%d%s" , EnumToString ( CHARTEVENT_MOUSE_WHEEL ),x_cursor,y_cursor,delta,str_keys); 
     } 
  } 

ctrl과 shift, scroll 외에는 다른 버튼이 작동하지 않습니다.....