Hatalar, hatalar, sorular - sayfa 1776

 

Derlerken hata

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() göstergesi hakkında yardım

mode

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

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


ve aşağıda bir örnek

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


Veri kaynağı MODE_UPPER, yardımdaki hatayı anlıyorum

 

Derleme hatası (tam olarak hata mesajı yok)

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

};
 

Mouse tıklama olayını işlerken iki hata bulundu.

1. Fare tekerleğini kullanma OnChartEvent()'te basın. Buradaki nokta, farenin sol tuşuna bastığınızda (basılı ve tutmadan), sağ fare tuşuyla (tutarak ve tutmadan) ve tekerleğe tıklarsanız, fonksiyonun bir olay (id == CHARTEVENT_MOUSE_MOVE) oluşturmasıdır. olay yalnızca tutulduğunda oluşturulacaktır. Onlar. sadece orta tuşa basar ve hemen bırakırsanız - etkinlik oluşturulmaz!

2. Sol fare tuşu (sparam == "1") işlendikten sonra, olay sparam == "0" oluşturulur. Sağ fare düğmesine bastıktan sonra (sparam == "2"), nedense sparam == "0" olayı oluşturulmaz. Tüm fare düğmelerine aynı şekilde davranılması gerekmez mi? Tekerleğe basmak konusunda sessizim çünkü 1. paragrafta söylediğim gibi tekerleğe basıldığında bir olay oluşturulmaz.

Doğrulama kodu:

#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 :

Derleme hatası (tam olarak hata mesajı yok)

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 işlevinde, A nesnesinin durumu değişmez, dinamik A::i1 dizisinin öğelerinin durumu değişir, A::i1 öğelerinin öğeleri A nesnesine dahil edilmez
f2 fonksiyonunda A nesnesinin durumu değişir, çünkü A::i2 dizisi dinamik değil - tüm öğeleri A nesnesine ait
 
Dratuti. Soru: Çete platformlarının (android, elma) tarayıcılarında henüz yazışma olmayan bir kullanıcıya nasıl mesaj gönderilir? Birkaç farklı cihazdan izledim - hiçbir yerde "mesaj gönder" düğmesi ve "diğerlerine ekle" düğmesi yok. Kullanıcı sayfası şuna benzer, düğme yok:
 

Derleme sırasında hata

class A {};
class B {
         int A() { return 0 ; }
         void f( int ) {}
         void g() { f(A()); } //Error: 'A' - invalid cast operation
};
 
Andrey Sokolov :
Dratuti. Soru: Çete platformlarının (android, elma) tarayıcılarında henüz yazışma olmayan bir kullanıcıya nasıl mesaj gönderilir? Birkaç farklı cihazdan izledim - hiçbir yerde "mesaj gönder" düğmesi ve "diğerlerine ekle" düğmesi yok. Kullanıcı sayfası şuna benzer, düğme yok:

Evet, uzun zamandır bundan bahsediyorum. onlar sessizken.

 
Alexey Kozitsyn :

Mouse tıklama olayını işlerken iki hata bulundu.


Hadi kontrol edelim.
 
Alexander :
Hadi kontrol edelim.

Teşekkürler, lütfen grafikteki ilk görünen çubuğun numarasını da kontrol edin: ChartGetInteger( 0, CHART_FIRST_VISIBLE_BAR );

Sonuç olarak, grafik kaydırmayı kapatır ve en son görünen çubuğu izlerseniz, o zaman yeni bir mum oluştuğu anda, grafik hareket etmese de numarası bir nedenden dolayı değişir! Daha hızlı kontrol edebilmek için TF M1. Göstergeden çalıştır:

#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 ;
        }
   }