GLUCK ? ! Gestion des événements liés au clic de la souris !!! - page 4

 
utiliser on_MouseDown au lieu de on_Click
 
FAQ:
Utiliser on_MouseDown au lieu de on_Click
Merci beaucoup.
 

MERCI MERCI QUE le problème ait été résolu de manière assez rapide.

J'aime encore plus cette langue !!!!

 
Vladon:

MERCI MERCI QUE le problème ait été résolu de manière assez rapide.

J'aime encore plus cette langue !!!!

Éclairer

ZS. J'ai jeté un coup d'œil rapide aux événements possibles et j'ai immédiatement eu quelques réflexions sur le sujet. Confirmation intéressante.

 

J'ai aussi un petit panneau.

Il fonctionne en cliquant sur un objet et vous devez en plus appuyer sur CTRL comme "sécurité enfant".

Une fois appuyés, les boutons sont mis sur faux.

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:

J'ai aussi un petit panneau.

Il fonctionne en cliquant sur un objet et vous devez en plus appuyer sur CTRL comme "sécurité enfant".

Une fois appuyés, les boutons sont mis sur faux.

Je vois, c'est comme ça que j'ai commencé : http://codebase.mql4.com/ru/6091

puis comme ceci : https://www.mql5.com/ru/code/223/

puis comme ceci : https://www.mql5.com/ru/market/product/332

ZS, non. Ce n'est pas une publicité. Ne me la lancez pas. J'en ai pris plein les yeux et je suis passé de 2 à 3 liens du jour au lendemain. Opinion intéressante.

Ce n'est pas parce que je suis avide. J'ai besoin d'argent. Les enfants sont petits, les demandes sont grandes. Qui suis-je pour dire. Tout le monde est dans cette situation.

FAQ:

Éclairer

ZS. J'ai jeté un coup d'œil rapide aux événements possibles et j'ai immédiatement eu quelques réflexions sur le sujet. Confirmation intéressante.

Je n'ai pas utilisé de bibliothèques complémentaires parce que je ne les aime pas. ! !!! Et pour être honnête, je ne l'ai pas écrit pour obtenir le code complet, juste un coup de pied dans le pantalon, comme toujours :-)

J'ai utilisé l'habituel

CHARTEVENT_MOUSE_MOVE

Et il a un état bouton gauche enfoncé, dans le paramètre 3 donne 1, si le bouton est enfoncé.

Déterminez la position de cette coordonnée et comparez-la à la coordonnée de la poussée de ce bouton - 1 classe.

Je ne pensais pas que le langage MKL5 était si avancé.

 

Maintenant je travaille sur le déplacement du panneau, et le déplacement n'est pas comme la plupart des panneaux - vous appuyez sur le bouton, puis un petit carré qui n'est même pas visible - vous le déplacez puis relâchez le bouton - et alors tout est redessiné.

J'ai fait en sorte que tout le panneau traîne derrière le curseur jusqu'à ce qu'il ne soit pas serré, mais comment faire pour qu'il ne traîne plus quand on clique sur le bouton ? :-)

Je suppose qu'on pourrait dire : :

Oui, c'est facile :-)

pas facile :-) et le problème est qu'il ne peut pas gérer deux snappers en même temps.

 
Vladon:

Maintenant je travaille sur le déplacement du panneau, et le déplacement n'est pas comme la plupart des panneaux - vous appuyez sur le bouton et ensuite pour un petit carré qui n'est même pas visible - vous le déplacez et ensuite relâchez le bouton - et alors tout est redessiné.


pas facile :-) mais le problème est qu'il ne peut pas gérer deux sobytes en même temps.

Peut-être est-il plus facile d'utiliser la bibliothèque standard? Regardez un exemple - Controls.mq5 de MQ.
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 

Vladon:

J'ai fait en sorte que le panneau entier glisse derrière le curseur jusqu'à ce qu'il soit relâché, mais comment faire pour qu'il cesse de glisser à nouveau lorsque j'appuie sur le bouton ? :-)

De quel bouton s'agit-il ?
 
sergeev:
De quel bouton s'agit-il ?

bouton gauche de la souris auquel je faisais référence.

Yurich:
Peut-être est-il plus facile d'utiliser la bibliothèque standard? Regardez un exemple - Controls.mq5 de MQ.

Tout le monde le dit, mais pourquoi devrais-je, en tant que programmeur, utiliser la bibliothèque standard ? :-)

Par exemple, le bogue avec le clic accidentel du bouton gauche de la souris lors du déplacement d'un graphique, je l'ai résolu avec 2 lignes de fonctions standard, alors que la bibliothèque contient 1000 lignes de code.

Je ne discute pas - les bibliothèques standard pourraient être plus rentables à utiliser. Mais je préfère un moyen facilement accessible, et ne pas m'embêter avec Include des bibliothèques supplémentaires.