GLUCK?! Gestione degli eventi del clic del mouse!!! - pagina 4

 
usare on_MouseDown invece di on_Click
 
FAQ:
Usare on_MouseDown invece di on_Click
Grazie mille.
 

GRAZIE GRAZIE che il problema è stato risolto in modo abbastanza rapido.

Questa lingua mi piace ancora di più!!!!

 
Vladon:

GRAZIE GRAZIE che il problema è stato risolto in modo abbastanza rapido.

Questa lingua mi piace ancora di più!!!!

Illuminare

ZS. Ho dato un'occhiata veloce agli eventi possibili e ho avuto subito alcuni pensieri sulla questione. Una conferma interessante.

 

Anch'io ho un piccolo pannello.

Funziona cliccando su un oggetto ed è inoltre necessario premere CTRL come "protezione per i bambini".

Una volta premuto, i pulsanti sono impostati su 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:

Anch'io ho un piccolo pannello.

Funziona cliccando su un oggetto ed è inoltre necessario premere CTRL come "protezione per i bambini".

Una volta premuto, i pulsanti sono impostati su falso.

Capisco, è così che ho iniziato: http://codebase.mql4.com/ru/6091

poi così: https://www.mql5.com/ru/code/223/

poi così: https://www.mql5.com/ru/market/product/332

ZS, no. questa non è una pubblicità. non tirarmela. Mi sono appena divertito e sono passato da 2 link a 3 letteralmente durante la notte. Opinione interessante.

Non è perché sono avido. Ho bisogno di soldi. I bambini sono piccoli, le richieste sono grandi. Chi sono io per dire. Tutti sono in quella posizione.

FAQ:

Illuminare

ZS. Ho dato un'occhiata veloce ai possibili eventi e ho avuto subito alcuni pensieri sulla questione. Una conferma interessante.

Non ho usato nessuna libreria di add-on perché non mi piace. !!!! E per essere onesti non l'ho scritto per avere il codice completo, solo un calcio nei pantaloni, come sempre :-)

Ho usato il solito

CHARTEVENT_MOUSE_MOVE

E ha uno stato di pulsante sinistro premuto, nel parametro 3 dà 1, se il pulsante è premuto.

Determinare la posizione di questa coordinata e confrontarla con la coordinata della pressione di questo pulsante - 1 classe.

Non pensavo che il linguaggio MKL5 fosse così avanzato.

 

Ora sto lavorando sul trascinamento del pannello, e il trascinamento non è come la maggior parte dei pannelli - si preme il pulsante, poi un piccolo quadrato che non è nemmeno visibile - lo si trascina poi si rilascia il pulsante - e poi tutto viene ridisegnato.

Ho fatto in modo che l'intero pannello trascini dietro il cursore finché non è schiacciato, ma come diavolo fare per non farlo più trascinare quando si clicca sul pulsante? :-)

Credo che si possa dire ::

Sì, è facile :-)

non è facile :-) e l'intero problema è che non può gestire due snapper allo stesso tempo.

 
Vladon:

Ora sto lavorando sul trascinamento del pannello, e il trascinamento non è come la maggior parte dei pannelli - si preme il pulsante e poi per un piccolo quadrato che non è nemmeno visibile - lo si trascina e poi si rilascia il pulsante - e poi tutto viene ridisegnato.


non è facile :-) ma il problema è che non può gestire due sobyte allo stesso tempo.

Forse è più facile usare la Libreria Standard? Guardate un esempio - Controls.mq5 di MQ.
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 

Vladon:

Ho fatto in modo che l'intero pannello si trascini dietro il cursore finché non viene rilasciato, ma come diavolo faccio a farlo smettere di trascinare di nuovo quando premo il pulsante? :-)

Di quale pulsante stiamo parlando?
 
sergeev:
Di quale pulsante stiamo parlando?

pulsante sinistro del mouse a cui mi riferivo.

Yurich:
Forse è più facile usare la Libreria Standard? Guardate un esempio - Controls.mq5 di MQ.

Lo dicono tutti, ma perché io, un programmatore, dovrei usare la libreria standard? :-)

Per esempio, il bug con il clic accidentale del tasto sinistro del mouse quando si trascina un grafico, l'ho risolto con 2 righe di funzioni standard, mentre la libreria contiene 1000 righe di codice.

Non sto discutendo - le librerie standard potrebbero essere più vantaggiose da usare. Ma preferisco un modo facilmente accessibile, e non preoccuparmi di Includere librerie aggiuntive.

Motivazione: