GLUCK?! Mausklick-Ereignisbehandlung!!! - Seite 4

 
on_MouseDown anstelle von on_Click verwenden
 
FAQ:
on_MouseDown anstelle von on_Click verwenden
Ich danke Ihnen vielmals.
 

DANKE DANKE DANKE DANKE, dass das Problem relativ schnell gelöst wurde.

Diese Sprache gefällt mir noch besser!!!!

 
Vladon:

DANKE DANKE DANKE DANKE, dass das Problem relativ schnell gelöst wurde.

Ich mag diese Sprache noch mehr!!!!

Aufklären

ZS: Ich habe einen kurzen Blick auf die möglichen Ereignisse geworfen und mir sofort ein paar Gedanken dazu gemacht. Interessante Bestätigung.

 

Ich habe auch ein kleines Panel.

Es funktioniert, indem man auf ein Objekt klickt und zusätzlich die STRG-Taste als "Kindersicherung" drücken muss.

Einmal gedrückt, werden die Tasten auf "false" gesetzt.

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:

Ich habe auch eine kleine Tafel.

Es funktioniert, indem man auf ein Objekt klickt und zusätzlich die STRG-Taste als "Kindersicherung" drücken muss.

Einmal gedrückt, werden die Tasten auf "false" gesetzt.

Verstehe, so habe ich auch angefangen: http://codebase.mql4.com/ru/6091

dann so: https://www.mql5.com/ru/code/223/

dann so: https://www.mql5.com/ru/market/product/332

ZS, nein. Dies ist keine Werbung. Werfen Sie sie nicht nach mir. Es hat mir einfach Spaß gemacht, und ich bin buchstäblich über Nacht von 2 auf 3 Links gestiegen. Interessante Meinung.

Das liegt nicht daran, dass ich gierig bin. Ich brauche das Geld. Die Kinder sind klein, die Ansprüche sind groß. Wer bin ich, dass ich das sagen kann? Jeder ist in dieser Lage.

FAQ:

Aufklären

ZS: Ich habe einen kurzen Blick auf die möglichen Entwicklungen geworfen und mir sofort ein paar Gedanken zu diesem Thema gemacht. Interessante Bestätigung.

Ich habe keine Add-on-Bibliotheken verwendet, weil ich sie nicht mag. !!!! Und um ehrlich zu sein, habe ich es nicht geschrieben, um den vollständigen Code zu erhalten, sondern nur um einen Tritt in den Hintern zu bekommen, wie immer :-)

Ich habe die üblichen

CHARTEVENT_MOUSE_MOVE

Und es hat einen Zustand der linken Taste gedrückt, in der 3 Parameter gibt 1, wenn die Taste gedrückt ist.

Bestimmen Sie die Position dieser Koordinate und vergleichen Sie sie mit der Koordinate der Klasse "Auslösen - 1" dieser Schaltfläche.

Ich hätte nur nicht gedacht, dass die MKL5-Sprache so fortschrittlich ist.

 

Jetzt arbeite ich daran, das Panel zu ziehen, und das Ziehen ist nicht wie bei den meisten Panels - man drückt die Taste, dann erscheint ein kleines Quadrat, das nicht einmal sichtbar ist - man zieht es und lässt die Taste los - und dann wird alles neu gezeichnet.

Ich habe das gesamte Panel zieht hinter dem Cursor, bis es nicht gequetscht wird, aber wie die Hölle zu machen, es nicht mehr zieht, wenn Sie auf die Schaltfläche klicken? :-)

Ich denke, man könnte sagen::

Ja, das ist ganz einfach :-)

nicht einfach :-) und das ganze Problem ist, dass es nicht mit zwei Schnappern gleichzeitig umgehen kann.

 
Vladon:

Jetzt arbeite ich daran, das Panel zu ziehen, und das Ziehen ist nicht wie bei den meisten Panels - man drückt die Taste und dann ein kleines Quadrat, das nicht einmal sichtbar ist - man zieht es und lässt dann die Taste los - und dann wird alles neu gezeichnet.


nicht einfach :-) aber das Problem ist, dass es nicht zwei Sobytes gleichzeitig verarbeiten kann.

Vielleicht ist es einfacher, die Standardbibliothek zu verwenden? Sehen Sie sich ein Beispiel an - Controls.mq5 von MQ.
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 

Vladon:

Ich habe das gesamte Panel hinter dem Cursor ziehen, bis es losgelassen wird, aber wie zum Teufel mache ich es stoppen ziehen wieder, wenn ich die Taste drücken? :-)

Von welcher Taste ist die Rede?
 
sergeev:
Von welcher Taste ist die Rede?

linke Maustaste, auf die ich mich bezog.

Yurich:
Vielleicht ist es einfacher, die Standardbibliothek zu verwenden? Sehen Sie sich ein Beispiel an - Controls.mq5 von MQ.

Alle sagen das, aber warum sollte ich als Programmierer die Standardbibliothek verwenden? :-)

Den Fehler mit dem versehentlichen Klick der linken Maustaste beim Ziehen eines Diagramms habe ich zum Beispiel mit 2 Zeilen Standardfunktionen gelöst, während die Bibliothek 1000 Zeilen Code enthält.

Ich behaupte nicht, dass die Verwendung von Standardbibliotheken rentabler sein könnte. Aber ich bevorzuge einen leicht zugänglichen Weg, und nicht mit Include zusätzliche Bibliotheken zu stören.