Ошибки, баги, вопросы - страница 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

 
не знаю куда с этой проблемой, но в последнее время при открытии или создании нового файла Metaeditor виснет намертво, приходится снимать задачу и запускать сначала, может кто сталкивался и знает что делать?(терминал переустанавливать пробовал, не помогло)
Файлы:
err.png  132 kb
 
Andrii Djola:
не знаю куда с этой проблемой, но в последнее время при открытии или создании нового файла Metaeditor виснет намертво, приходится снимать задачу и запускать сначала, может кто сталкивался и знает что делать?(терминал переустанавливать пробовал, не помогло)

Добрый день!

Какая версия треминала и какая ОС у Вас установлены?

 
Evgeny Chernyshev:

Добрый день!

Какая версия треминала и какая ОС у Вас установлены?

ось Win 10 x64

MT5 build 1755 от 29.01.2018

 
Подскажите, можно ли как-то откомпилировать отдельно выбранный файл с исходником (как было раньше), а не проект?
 

Я уработался или так должно быть ?????

   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 и скрола больше никакие кнопки не работают .....

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