Boa tarde a todos! Desculpem a pergunta parva. Pessoal, poderiam por favor dizer-me como fazer com que um botão premido seja verdadeiro quando se clica com o botão esquerdo do rato e falso quando se clica com o botão esquerdo do rato. Agora a situação é tal, que nada acontece ao pressioná-lo, mas o Pressed muda o seu valor para o oposto ao libertá-lo.
Compreendo que preciso de anular o CButton::OnMouseUp e CButton::OnMouseDown manipuladores de eventos, mas não faço ideia de onde fazer isso. Uma dica, por favor. Obrigado de antemão!
Se alguém puder ajudar com o mesmo tópico, seria apreciado.
Não está a confundir as coisas? Há um eventoCHARTEVENT_CLICK- um clique do rato sobre um gráfico; mas não um clique...
Há, isso mesmo. É que a classe CButton tem dois manipuladores de eventos internos: OnMouseDown() e OnMouseUp(). Então pensei, talvez também haja eventos correspondentes?
Sim, é isso mesmo. É que a classe CButton tem dois manipuladores de eventos internos: OnMouseDown() e OnMouseUp(). Então pensei, talvez também haja eventos correspondentes?
Eu não olhei para o SB, mas aparentemente há uma imprensa OBJPROP_STATE == verdadeiro, a outra OBJPROP_STATE == falso. Ou talvez eu esteja errado.
Ambos os editores MT4 e MT5 colidem ao passar o rato sobre "func" na linha "int i = func( 0, 1 );" e seleccionar a opção "Go to definition" (ou ao premir Alt+G)
MQL4 build 1910
MQL5 construir 1931
template<typename type>
type func( type a, type b = 1 ){ return ( 0 ); }
int i = func( 0, 1 );
voidOnStart(){ }
Não em MQL, pelo menos já não. Na verdade, é duas vezes mais lento que a referência na depuração, e suficientemente próximo do mesmo quando compilado normalmente que realmente não importa. Tente por si próprio.
#define ITERATIONS 1000000voidOnStart()
{
{
ulong time = GetMicrosecondCount();
ulong sum = 0;
for(int i=0; i<ITERATIONS; i++){
string r = string(rand());
sum += by_ref(r);
}
time = GetMicrosecondCount() - time;
printf("%s took %.3f milliseconds: sum=%dll", "by_ref", time/1000.0, sum);
}{
ulong time = GetMicrosecondCount();
ulong sum = 0;
for(int i=0; i<ITERATIONS; i++)
sum += by_val(string(rand()));
time = GetMicrosecondCount() - time;
printf("%s took %.3f milliseconds: sum=%dll", "by_val", time/1000.0, sum);
}
}
//+------------------------------------------------------------------+int by_ref(string &var){ returnint(var) % 100; }
int by_val(string var){ returnint(var) % 100; }
Camaradas programadores!
No MT4, clicar no objecto gráfico seleccionado desencadeia o evento"CHARTEVENT_OBJECT_DRAG". Isto é um erro real.
No mt5 não existe tal problema.
Boa tarde a todos! Desculpem a pergunta parva. Pessoal, poderiam por favor dizer-me como fazer com que um botão premido seja verdadeiro quando se clica com o botão esquerdo do rato e falso quando se clica com o botão esquerdo do rato. Agora a situação é tal, que nada acontece ao pressioná-lo, mas o Pressed muda o seu valor para o oposto ao libertá-lo.
Compreendo que preciso de anular o CButton::OnMouseUp e CButton::OnMouseDown manipuladores de eventos, mas não faço ideia de onde fazer isso. Uma dica, por favor. Obrigado de antemão!
Se alguém puder ajudar com o mesmo tópico, seria apreciado.
Se alguém puder ajudar com o mesmo tópico, seria apreciado.
O evento só é gerado quando o botão do rato é premido, mas não quando
O evento é gerado apenas quando o botão do rato é premido, não quando é clicado
Mas há um manipulador de cliques, não há? Por isso, deve haver um evento com um clique.
Mas há um manipulador de imprensa, não há? Por isso, também deve haver um evento de imprensa.
Não estás confuso? Existe o evento CHARTEVENT_CLICK - um clique do rato sobre o gráfico; mas não um clique...
Não está a confundir as coisas? Há um evento CHARTEVENT_CLICK - um clique do rato sobre um gráfico; mas não um clique...
Há, isso mesmo. É que a classe CButton tem dois manipuladores de eventos internos: OnMouseDown() e OnMouseUp(). Então pensei, talvez também haja eventos correspondentes?
Sim, é isso mesmo. É que a classe CButton tem dois manipuladores de eventos internos: OnMouseDown() e OnMouseUp(). Então pensei, talvez também haja eventos correspondentes?
Eu não olhei para o SB, mas aparentemente há uma imprensa OBJPROP_STATE == verdadeiro, a outra OBJPROP_STATE == falso. Ou talvez eu esteja errado.
Fórum sobre comércio, sistemas comerciais automatizados e teste de estratégias comerciais
MQL equivalente a nenhum tipo de Python?
nicholi shen, 2018.10.28 21:52
Não em MQL, pelo menos já não. Na verdade, é duas vezes mais lento que a referência na depuração, e suficientemente próximo do mesmo quando compilado normalmente que realmente não importa. Tente por si próprio.
Porque é o by_ref mais lento que o by_val?