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

 

컴파일 중 오류

template < typename T>
int f( const T& ) { return sizeof ( T ); }
class A {};
void OnStart ()
{
         const A * const a = new A; //Error: 'T' - unexpected token
        f( a );
}
 

Metatrader 4 iGator() 표시기 에 대한 도움말

mode

[in]  Источник данных, идентификатор одной из линий индикатора. Mожет быть любой из следующих величин:

MODE_GATORJAW  - синяя линия (линия челюсти аллигатора),
MODE_GATORTEETH  - красная линия (линия зубов аллигатора),
MODE_GATORLIPS  - зеленая линия (линия губ аллигатора).  


그리고 아래는 예시입니다

double  diff= iGator ( NULL , 0 , 13 , 8 , 8 , 5 , 5 , 3 , MODE_SMMA , PRICE_MEDIAN , MODE_UPPER , 1 );


데이터 소스 MODE_UPPER, 도움말의 오류를 이해합니다.

 

컴파일 오류(정확한 오류 메시지 없음)

class A {
        A() { :: ArrayResize ( i1, 1 ); }
         int i1[ ];
         int i2[ 1 ];
         void f1() const { i1[ 0 ] = 0 ; } //нет сообщения ошибки
         void f2() const { i2[ 0 ] = 0 ; } //Error: 'i2' - member of the constant object cannot be modified

};
 

마우스 클릭 이벤트를 처리 할 때 두 가지 버그를 발견했습니다.

1. OnChartEvent()에서 마우스 휠 누르기 처리. 요점은 함수가 왼쪽 마우스 버튼을 누를 때(누르고 있는 경우와 없는 경우), 오른쪽 마우스 버튼으로(누르고 있는 경우와 없는 경우) 이벤트(id == CHARTEVENT_MOUSE_MOVE)를 생성하고, 휠을 클릭하면 이벤트는 보류 시에만 생성됩니다. 저것들. 중간 키를 눌렀다가 바로 놓으면 이벤트가 생성되지 않습니다!

2. 왼쪽 마우스 버튼 누름(sparam == "1")을 처리한 후 이벤트 sparam == "0"이 생성됩니다. 마우스 오른쪽 버튼(sparam == "2")을 누른 후 어떤 이유로 sparam == "0" 이벤트가 생성되지 않습니다. 모든 마우스 버튼이 같은 방식으로 처리되어야 하지 않습니까? 나는 1절에서 말했듯이 휠을 눌렀을 때 이벤트가 발생하지 않기 때문에 휠을 누르는 것에 대해 침묵합니다.

확인 코드:

#property indicator_chart_window
#property indicator_plots 0
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
   ChartSetInteger ( 0 , CHART_EVENT_MOUSE_MOVE , true );
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {

   return (rates_total);
  }
//+------------------------------------------------------------------+
//| Обработка события графика                                                                                                           |
//+------------------------------------------------------------------+
void OnChartEvent ( const int id, const long &lparam, const double &dparam, const string &sparam)
  {
   switch (id)
     {
       case CHARTEVENT_MOUSE_MOVE :
         FuncMove(lparam,dparam,sparam);
         break ;
     }
  }
//+------------------------------------------------------------------+
//| Функция обработки события перемещения мыши                                                          |
//+------------------------------------------------------------------+
void FuncMove( const long lparam, // Х координата
               const double dparam, // Y координата
               const string sparam           // Строковое значение статуса кнопки
              )
  {
   Print ( __FUNCTION__ , ": sparam = " +sparam);
  }
//+------------------------------------------------------------------+
//| Функция деинициализации индикатора                                                                                  |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//--- Отписываемся от события передвижения мыши
   ChartSetInteger ( 0 , CHART_EVENT_MOUSE_MOVE , false );
  }
//+------------------------------------------------------------------+
 
A100 :

컴파일 오류(정확한 오류 메시지 없음)

class A {
        A() { :: ArrayResize ( i1, 1 ); }
         int i1[ ];
         int i2[ 1 ];
         void f1() const { i1[ 0 ] = 0 ; } //нет сообщения ошибки
         void f2() const { i2[ 0 ] = 0 ; } //Error: 'i2' - member of the constant object cannot be modified

};
함수 f1에서 개체 A의 상태는 변경되지 않고 동적 배열 A::i1의 요소 상태가 변경되고 A::i1의 요소는 개체 A에 포함되지 않습니다.
함수 f2에서 객체 A의 상태가 변경됩니다. 왜냐하면 배열 A::i2는 동적이 아닙니다. 모든 요소는 개체 A에 속합니다.
 
드라투티. 질문: mob 플랫폼(android, apple)의 브라우저에서 아직 서신이 없는 사용자에게 메시지를 보내는 방법은 무엇입니까? 여러 장치에서 시청했습니다. "메시지 보내기" 버튼과 "다른 사람에게 추가" 버튼이 어디에도 없습니다. 사용자 페이지는 다음과 같으며 버튼이 없습니다.
 

컴파일 중 오류

class A {};
class B {
         int A() { return 0 ; }
         void f( int ) {}
         void g() { f(A()); } //Error: 'A' - invalid cast operation
};
 
Andrey Sokolov :
드라투티. 질문: mob 플랫폼(android, apple)의 브라우저에서 아직 서신이 없는 사용자에게 메시지를 보내는 방법은 무엇입니까? 여러 장치에서 시청했습니다. "메시지 보내기" 버튼과 "다른 사람에게 추가" 버튼이 어디에도 없습니다. 사용자 페이지는 다음과 같으며 버튼이 없습니다.

예, 나는 이것에 대해 오랫동안 이야기해 왔습니다. 그들이 침묵하는 동안.

 
Alexey Kozitsyn :

마우스 클릭 이벤트를 처리 할 때 두 가지 버그를 찾았습니다.


점검 해보자.
 
Alexander :
점검 해보자.

감사합니다. 차트에 표시되는 첫 번째 막대의 번호도 확인하십시오. ChartGetInteger( 0, CHART_FIRST_VISIBLE_BAR );

결론은 차트 스크롤을 끄고 마지막으로 보이는 막대를 모니터링하면 새 양초가 형성되는 순간 차트가 움직이지 않더라도 어떤 이유로 숫자가 변경된다는 것입니다! 더 빨리 확인할 수 있도록 TF M1. 표시기에서 실행:

#property indicator_chart_window
#property indicator_plots 0
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
   {
     //--- Подписываемся на событие движения мыши
         ChartSetInteger ( 0 , CHART_EVENT_MOUSE_MOVE , true );
         //---
     return ( INIT_SUCCEEDED );
   }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
   {

     return (rates_total);
   }
//+------------------------------------------------------------------+
//| Обработка события графика                                        |
//+------------------------------------------------------------------+
void OnChartEvent ( const int id, const long & lparam, const double & dparam, const string & sparam)
   {
     switch ( id )        
        {
         case CHARTEVENT_MOUSE_MOVE :
                 Print ( __FUNCTION__ , " " + TimeToString ( TimeCurrent (), TIME_DATE | TIME_SECONDS )+ ": sparam = " +sparam+ ", " ,(int)ChartGetInteger( 0, CHART_FIRST_VISIBLE_BAR ));
                 break ;
        }
   }