¿GLUCK? ¡¡¡Manejo de eventos de clic del ratón!!! - página 4

 
utilizar on_MouseDown en lugar de on_Click
 
FAQ:
Utilizar on_MouseDown en lugar de on_Click
Muchas gracias.
 

GRACIAS GRACIAS porque el problema se solucionó de forma bastante rápida.

¡¡¡¡Me gusta más este lenguaje!!!!

 
Vladon:

GRACIAS GRACIAS porque el problema se solucionó de forma bastante rápida.

¡¡¡¡Me gusta aún más este lenguaje!!!!

Ilumina

ZS. Eché un vistazo rápido a los posibles eventos e inmediatamente tuve algunas ideas al respecto. Interesante confirmación.

 

Yo también tengo un pequeño panel.

Funciona haciendo clic en un objeto y, además, hay que pulsar CTRL como "seguro para niños".

Una vez pulsados, los botones se ponen en falso.

if(id==CHARTEVENT_OBJECT_CLICK && key==true)
     {
      if(sparam=="buy")  {Print("Нажата BUY");OpenBuy();} 
      if(sparam=="sell")  { Print("Нажата SELL");OpenSell(); }  
      if(sparam=="wl")  { Print("Нажата WL");ModifyWl();}
      if(sparam=="sellstop")  { Print("Нажата SELL STOP");SellStop();}  
      if(sparam=="buystop")  { Print("Нажата BUY STOP");BuyStop();}
      if(sparam=="delpend")  { Print("Нажата DELETE");DelPend();}
     
      ChartRedraw();
     }
  if(id==CHARTEVENT_KEYDOWN)
     {
       if(lparam==KEY_CTRL) {key=true;} else {key=false;}
     }
 // востановим кнопки
 graf_button("buy",270,5,clrBlue,"BUY",12,3,false);
 graf_button("sell",210,5,clrCrimson,"SELL",12,3,false);
 graf_button("wl",150,5,clrBlack,"WL",12,3,false);
 
 graf_button("buystop",270,30,clrDarkBlue,"B.STOP",12,3,false);
 graf_button("sellstop",150,30,clrCrimson,"S.STOP",12,3,false);
 graf_button("delpend",210,30,clrBlack,"DEL",12,3,false);
 
Karlson:

Yo también tengo un pequeño panel.

Funciona haciendo clic en un objeto y, además, hay que pulsar CTRL como "seguro para niños".

Una vez pulsados, los botones se ponen en falso.

Ya veo, así es como empecé: http://codebase.mql4.com/ru/6091

entonces así: https://www.mql5.com/ru/code/223/

entonces así: https://www.mql5.com/ru/market/product/332

ZS, no. Esto no es un anuncio, no me lo eches en cara. Me he puesto las pilas y he pasado de 2 enlaces a 3 literalmente de la noche a la mañana. Una opinión interesante.

No es porque sea codicioso. Necesito el dinero. Los niños son pequeños, las exigencias son grandes. ¿Quién soy yo para decirlo? Todo el mundo está en esa posición.

PREGUNTAS Y RESPUESTAS:

Ilumina

ZS. Eché un vistazo rápido a los posibles eventos e inmediatamente tuve algunas ideas al respecto. Interesante confirmación.

No he utilizado ninguna biblioteca de complementos porque no me gustan. !!!! Y para ser honesto no lo escribí para obtener el código completo, sólo una patada en los pantalones, como siempre :-)

Utilicé el habitual

CHARTEVENT_MOUSE_MOVE

Y tiene un estado de botón izquierdo pulsado, en el parámetro 3 da 1, si el botón está pulsado.

Determine la ubicación de esta coordenada y compárela con la coordenada de la pulsación de este botón - 1 clase.

No creía que el lenguaje MKL5 fuera tan avanzado.

 

Ahora estoy trabajando en el arrastre del panel, y el arrastre no es como la mayoría de los paneles - se presiona el botón, luego un pequeño cuadrado que ni siquiera es visible - se arrastra y luego se suelta el botón - y entonces todo se redibuja.

He hecho que todo el panel se arrastre detrás del cursor hasta que no se aprieta, pero ¿cómo demonios hacer que ya no se arrastre cuando se pulsa el botón? :-)

Supongo que se podría decir ::

Sí, es fácil :-)

no es fácil :-) y todo el problema es que no puede manejar dos paros al mismo tiempo.

 
Vladon:

Ahora estoy trabajando en el arrastre del panel, y el arrastre no es como la mayoría de los paneles - se presiona el botón y luego para un pequeño cuadrado que ni siquiera es visible - se arrastra y luego suelta el botón - y luego todo se vuelve a dibujar.


no es fácil :-) pero el problema es que no puede manejar dos sobytes al mismo tiempo.

¿Tal vez sea más fácil utilizar la biblioteca estándar? Mira un ejemplo - Controls.mq5 de MQ.
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 

Vladon:

He hecho que todo el panel se arrastre detrás del cursor hasta que se suelta, pero ¿cómo demonios hago para que deje de arrastrarse de nuevo cuando pulso el botón? :-)

¿De qué botón estamos hablando?
 
sergeev:
¿De qué botón estamos hablando?

botón izquierdo del ratón al que me refería.

Yurich:
¿Tal vez sea más fácil utilizar la biblioteca estándar? Mira un ejemplo - Controls.mq5 de MQ.

Todo el mundo lo dice, pero ¿por qué debería yo, un programador, utilizar la biblioteca estándar? :-)

Por ejemplo, el error del clic accidental del botón izquierdo del ratón al arrastrar un gráfico, lo he resuelto con 2 líneas de funciones estándar, mientras que la biblioteca contiene 1000 líneas de código.

No estoy discutiendo - las bibliotecas estándar podrían ser más rentables de usar. Pero prefiero una forma fácilmente accesible, y no molestarme en incluir bibliotecas adicionales.

Razón de la queja: