Ошибки, баги, вопросы - страница 2314

 

Товарищи разработчики!

В мт4 при клике по выделенному граф.объекту, срабатывает событие "CHARTEVENT_OBJECT_DRAG". Это реальная ошибка.

В мт5 такой проблемы нет.

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

Всем доброго дня! Прошу прощения за глупый вопрос. Ребята, подскажите, пожалуйста, как сделать так, чтобы при нажатии левой кнопкой мыши на button его свойство 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(). Вот я и подумал, может, существуют и соответствующие события?

Я не смотрел СБ, но видимо там одно нажатие OBJPROP_STATE == true, другое OBJPROP_STATE == false. А может я не прав.

 
всем привет  помогите . почему график в низ идет .в конце оптимизации  вот такие графики это нормально или нет 
Файлы:
 
Крашатся оба редактора МТ4 и МТ5 при наведении мыши на слово "func" в строчке "int i = func( 0, 1 );" и выборе опции "Перейти к определению" (или при нажатии Alt+G)

MQL4 build 1910
MQL5 build 1931

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

int i = func( 0, 1 );

void OnStart(){ }  

Файлы:
altg.jpg  57 kb
 

Forum on trading, automated trading systems and testing trading strategies

MQL equivalent to Python's None type?

nicholi shen, 2018.10.28 21:52

Not in MQL, not anymore anyways. It's actually twice as slow passing as reference in debugging, and close enough to the same when compiled normally that it really doesn't matter. Try for yourself. 

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

Причина обращения: