Errores, fallos, preguntas - página 2169

 
Sergey Dzyublik:

Si mi post con la promesa de encontrar código antiguo fue borrado, significa que no prometí nada...
Es una broma.


Fue escrito en aquellos oscuros días (hace más de 3 años) cuando la funcionalidad del teclado era todavía pequeña y, por decirlo suavemente, poco notable.
Sin embargo, hoy en día, si no me falla la memoria, existen funciones estándar para seguir el estado de una tecla concreta.
Por lo tanto, es poco probable que el fragmento de código siguiente sea útil:

donde:
lparam - código de la tecla pulsada en el evento actual;
last_key_code - código de la tecla pulsada en el evento anterior;
g_first_key - código de la primera tecla de la combinación;
g_second_key - código de la segunda tecla de la combinación;
tiempo - tiempo del evento actual de la pulsación de la tecla;
last_time_code - hora del evento anterior de pulsación de teclas;
g_time_limit - tiempo máximo entre la primera y la segunda pulsación de una tecla para ser considerada como una combinación de teclas;

mi manejador no responde a otras teclas cuando se pulsa Ctrl, ¿cómo se ha conseguido esto?

Es hora de ir aquí:https://www.mql5.com/ru/forum/231958

 
No sé a dónde ir con este problema, pero últimamente al abrir o crear un nuevo archivo el Metaeditor se cuelga fuertemente, tengo que quitar la tarea y volver a empezar, ¿alguien se puede cruzar y saber qué hacer?
Archivos adjuntos:
err.png  132 kb
 
Andrii Djola:
No sé a dónde ir con este problema, pero últimamente al abrir o crear un nuevo archivo el Metaeditor se cuelga fuertemente, tengo que quitar la tarea y volver a empezar, ¿alguien se puede cruzar y saber qué hacer?

¡Buenas tardes!

¿Qué versión del terminal y qué sistema operativo tienes instalado?

 
Evgeny Chernyshev:

¡Buenas tardes!

¿Qué versión del terminal y qué sistema operativo tienes instalado?

Win 10 x64

MT5 build 1755 del 29.01.2018

 
¿Hay alguna forma de compilar el archivo fuente seleccionado por separado (como antes) en lugar del proyecto?
 

¿Estoy haciendo ejercicio o se supone que es así ?????

   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:

¿Estoy trabajando demasiado o se supone que tiene que ser así? ?????

Esto es correcto (int divide por int, int resulta en doble):

 double t   = 280/60;
 
Sergey Dzyublik:

Así es (int dividido por int, resultado de int convertido a doble):

Gracias.

 
 

¿He entendido bien que este ejemplo de la ayuda no funciona?

//+------------------------------------------------------------------+ 
//| 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); 
     } 
  } 

Aparte de ctrl y shift y el desplazamiento ningún otro botón funciona .....