Hatalar, hatalar, sorular - sayfa 2314

 

Geliştirici arkadaşlar!

MT4'te , seçilen bir grafik nesnesine tıklandığında " CHARTEVENT_OBJECT_DRAG " olayı tetiklenir. Bu gerçek bir hata.

MT5'te böyle bir sorun yok.

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

Herkese iyi günler! Aptal soru için özür dilerim. Beyler, lütfen bana bunu nasıl yapacağımı söyleyin, böylece düğmeye sol fare düğmesine basıldığında, Pressed özelliği true değerini ve serbest bırakıldığında - false değerini alır. Şimdi durum öyle ki, basıldığında hiçbir şey olmuyor, ancak basıldığında, Basıldığında tam tersi değişiyor.

CButton::OnMouseUp ve CButton::OnMouseDown olay işleyicilerini yeniden tanımlamanız gerektiğini anlıyorum, ancak bunu nerede yapacağımı hayal edemiyorum. İpucu, lütfen. Şimdiden teşekkürler!

Aynı konu hakkında yardımcı olabilecek biri varsa çok sevinirim.

 
Baruban :

Aynı konu hakkında yardımcı olabilecek biri varsa çok sevinirim.

Olay, yalnızca fare düğmesi bırakıldığında, ancak basılmadığında oluşturulur.

 
Vitaly Muzichenko :

Olay, yalnızca fare düğmesi bırakıldığında, ancak basılmadığında oluşturulur.

Ama sonuçta, bir tıklama işleyici var mı? Yani, bir tıklama olayı olmalıdır.

 
SuhanovDM94 :

Ama sonuçta, bir tıklama işleyici var mı? Yani, bir tıklama olayı olmalıdır.

Hiçbir şeyi karıştırmıyor musun? Bir CHARTEVENT_CLICK olayı var — grafik üzerinde fare tıklaması ; ama basmak yok...

 
Alexey Viktorov :

Hiçbir şeyi karıştırmıyor musun? Bir CHARTEVENT_CLICK olayı var — grafik üzerinde fare tıklaması ; ama basmak yok...

Var, doğru. Sadece CButton sınıfının iki dahili olay işleyicisi vardır: OnMouseDown() ve OnMouseUp(). Ben de düşündüm ki, belki karşılık gelen olaylar vardır?

 
SuhanovDM94 :

Var, doğru. Sadece CButton sınıfının iki dahili olay işleyicisi vardır: OnMouseDown() ve OnMouseUp(). Ben de düşündüm ki, belki karşılık gelen olaylar vardır?

SB'ye bakmadım, ama görünüşe göre bir tıklama OBJPROP_STATE == doğru, başka bir OBJPROP_STATE == yanlış. Ya da belki yanılıyorum.

 
merhaba herkese yardım edin. grafik neden düşüyor. optimizasyonun sonunda grafikler bunlar, normal mi değil mi
Dosyalar:
 
Hem MT4 hem de MT5 düzenleyicileri, fareyi "int i = func( 0, 1 );" satırındaki "func" kelimesinin üzerine getirdiğinizde çöküyor. ve "Tanıma git" seçeneğini seçerek (veya Alt+G tuşlarına basarak)

MQL4 yapı 1910
MQL5 yapı 1931

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

int i = func( 0 , 1 );

void OnStart (){ }  

Dosyalar:
altg.jpg  57 kb
 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Python'un Yok türüne eşdeğer MQL?

nicholi shen , 2018.10.28 21:52

MQL'de değil, artık değil. Aslında hata ayıklamada referans olarak iki kat daha yavaş geçiyor ve normal olarak derlendiğinde gerçekten önemli olmayacak kadar yakın. Kendiniz deneyin.

 #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 neden by_val'den daha yavaş?