Buon pomeriggio a tutti! Scusa per la domanda stupida. Ragazzi, potreste dirmi come fare in modo che la proprietà Pressed di un pulsante sia vera quando si clicca con il tasto sinistro e falsa quando si clicca con il tasto sinistro. Ora la situazione è tale, che non succede niente premendolo, e rilasciandolo Pressed cambia il suo valore al contrario.
Ho capito che ho bisogno di sovrascrivere i gestori di eventi CButton::OnMouseUp e CButton::OnMouseDown, ma non ho idea di dove farlo. Un suggerimento per favore. Grazie in anticipo!
Se qualcuno può aiutare con lo stesso argomento, sarebbe apprezzato.
Non stai confondendo le cose? C'è un eventoCHARTEVENT_CLICK- un clic del mouse su un grafico; ma non un clic...
C'è, è vero. È solo che la classe CButton ha due gestori di eventi interni: OnMouseDown() e OnMouseUp(). Così ho pensato, forse ci sono anche eventi corrispondenti?
Sì, proprio così. È solo che la classe CButton ha due gestori di eventi interni: OnMouseDown() e OnMouseUp(). Così ho pensato, forse ci sono anche eventi corrispondenti?
Non ho guardato il SB, ma apparentemente lì una stampa OBJPROP_STATE == true, l'altra OBJPROP_STATE == false. O forse mi sbaglio.
Entrambi gli editor MT4 e MT5 si bloccano quando si passa il mouse su "func" nella riga "int i = func( 0, 1 );" e si seleziona l'opzione "Go to definition" (o quando si preme Alt+G)
MQL4 build 1910
MQL5 build 1931
template<typename type>
type func( type a, type b = 1 ){ return ( 0 ); }
int i = func( 0, 1 );
voidOnStart(){ }
Non in MQL, non più comunque. In realtà è due volte più lento del riferimento nel debug, e abbastanza vicino allo stesso quando compilato normalmente che non ha davvero importanza. Provate voi stessi.
#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; }
Compagni sviluppatori!
In MT4, cliccando sull'oggetto grafico selezionato si attiva l'evento"CHARTEVENT_OBJECT_DRAG". Questo è un vero errore.
In mt5 non c'è questo problema.
Buon pomeriggio a tutti! Scusa per la domanda stupida. Ragazzi, potreste dirmi come fare in modo che la proprietà Pressed di un pulsante sia vera quando si clicca con il tasto sinistro e falsa quando si clicca con il tasto sinistro. Ora la situazione è tale, che non succede niente premendolo, e rilasciandolo Pressed cambia il suo valore al contrario.
Ho capito che ho bisogno di sovrascrivere i gestori di eventi CButton::OnMouseUp e CButton::OnMouseDown, ma non ho idea di dove farlo. Un suggerimento per favore. Grazie in anticipo!
Se qualcuno può aiutare con lo stesso argomento, sarebbe apprezzato.
Se qualcuno può aiutare con lo stesso argomento, sarebbe apprezzato.
L'evento viene generato solo quando il pulsante del mouse viene premuto, ma non quando
L'evento viene generato solo quando il pulsante del mouse viene premuto, non quando viene cliccato
Ma c'è un gestore di click, vero? Quindi ci deve essere un evento click.
Ma c'è un addetto stampa, vero? Quindi ci deve essere anche un evento per la stampa.
Non sei confuso? C'è l'evento CHARTEVENT_CLICK - clic del mouse sul grafico; ma non il clic...
Non stai confondendo le cose? C'è un evento CHARTEVENT_CLICK - un clic del mouse su un grafico; ma non un clic...
C'è, è vero. È solo che la classe CButton ha due gestori di eventi interni: OnMouseDown() e OnMouseUp(). Così ho pensato, forse ci sono anche eventi corrispondenti?
Sì, proprio così. È solo che la classe CButton ha due gestori di eventi interni: OnMouseDown() e OnMouseUp(). Così ho pensato, forse ci sono anche eventi corrispondenti?
Non ho guardato il SB, ma apparentemente lì una stampa OBJPROP_STATE == true, l'altra OBJPROP_STATE == false. O forse mi sbaglio.
Forum sul trading, sistemi di trading automatico e strategie di trading di prova
L'equivalente MQL del tipo None di Python?
nicholi shen, 2018.10.28 21:52
Non in MQL, non più comunque. In realtà è due volte più lento del riferimento nel debug, e abbastanza vicino allo stesso quando compilato normalmente che non ha davvero importanza. Provate voi stessi.
Perché by_ref è più lento di by_val?