GLUCK?! Manipulação de eventos com o clique do rato!!! - página 4

 
utilizar on_MouseDown em vez de on_Click
 
FAQ:
Utilizar on_MouseDown em vez de on_Click
Muito obrigado.
 

OBRIGADO OBRIGADO que o problema tenha sido resolvido de uma forma bastante rápida.

Gosto ainda mais desta língua!!!!

 
Vladon:

OBRIGADO OBRIGADO que o problema tenha sido resolvido de uma forma bastante rápida.

Gosto ainda mais desta língua!!!!

Iluminem

ZS. Analisou rapidamente os possíveis acontecimentos e teve imediatamente algumas ideias sobre o assunto. Confirmação interessante.

 

Também tenho um pequeno painel.

Funciona clicando num objecto e, além disso, é necessário premir CTRL como "childproofing".

Uma vez premidos, os botões são colocados em 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:

Também tenho um pequeno painel.

Funciona clicando num objecto e, além disso, é necessário premir CTRL como "childproofing".

Uma vez premidos, os botões são colocados em falso.

Estou a ver, foi assim que eu comecei: http://codebase.mql4.com/ru/6091

então assim: https://www.mql5.com/ru/code/223/

então assim: https://www.mql5.com/ru/market/product/332

ZS, não. isto não é um anúncio. não o atire a mim. Acabei de me divertir e passei de 2 ligações para 3 literalmente da noite para o dia. Opinião interessante.

Não é porque eu seja ganancioso. Preciso do dinheiro. As crianças são pequenas, as exigências são grandes. Quem sou eu para dizer. Todos estão nessa posição.

FAQ:

Iluminem

ZS. Analisou rapidamente os possíveis acontecimentos e teve imediatamente algumas ideias sobre o assunto. Confirmação interessante.

Não utilizei nenhuma biblioteca suplementar porque não gosto delas. !!!! Para ser honesto, não o escrevi para obter o código completo, apenas um pontapé nas calças, como sempre :-)

Eu usei o habitual

CHARTEVENT_MOUSE_MOVE

E tem um botão esquerdo pressionado, no parâmetro 3 dá 1, se o botão for pressionado.

Determinar a localização desta coordenada e compará-la com a coordenada do botão premido - 1 classe.

Só não pensei que a língua MKL5 fosse tão avançada.

 

Agora estou a trabalhar em arrastar o painel, e arrastar não é como a maioria dos painéis - pressiona-se o botão, depois um pequeno quadrado que nem sequer é visível - arrasta-se e depois solta-se o botão - e depois tudo é redesenhado.

Fiz todo o painel arrastar-se atrás do cursor até não ser espremido, mas como raio fazer com que já não se arraste quando se clica no botão? :-)

Acho que se pode dizer ::

Yup é fácil :-)

não é fácil :-) e todo o problema é que não consegue lidar com dois snappers ao mesmo tempo.

 
Vladon:

Agora estou a trabalhar em arrastar o painel, e arrastar não é como a maioria dos painéis - pressiona-se o botão e depois para um pequeno quadrado que nem sequer é visível - arrasta-se e depois solta-se o botão - e depois tudo é redesenhado.


não é fácil :-) mas o problema é que não consegue lidar com dois sobytes ao mesmo tempo.

Talvez seja mais fácil de usar a Biblioteca Standard? Vejam um exemplo - Controls.mq5 da MQ.
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 

Vladon:

Fiz todo o painel arrastar-se atrás do cursor até ser libertado, mas como raio faço para que pare de arrastar novamente quando carrego no botão? :-)

De que botão estamos a falar?
 
sergeev:
de que botão estamos a falar?

botão esquerdo do rato a que eu me referia.

Yurique:
Talvez seja mais fácil de usar a Biblioteca Standard? Vejam um exemplo - Controls.mq5 da MQ.

Todos o dizem, mas porque deveria eu, um programador, utilizar a biblioteca padrão? :-)

Por exemplo, o erro com um clique acidental do botão esquerdo do rato ao arrastar um gráfico, resolvi com 2 linhas de funções padrão, enquanto que a biblioteca contém 1000 linhas de código.

Não estou a discutir - as bibliotecas padrão podem ser mais rentáveis de utilizar. Mas prefiro uma forma facilmente acessível, e não me preocupar com a inclusão de bibliotecas adicionais.