Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 188
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
La domanda è come si può avviare un metodo di classe non statico con un puntatore anche se l'oggetto di un'altra classe (in questo caso CTimer) è una proprietà (variabile) della classe.
no.... Naturalmente si può passare un puntatore a un altro oggetto e cambiare il puntatore lì per chiamare il metodo.... ma è necessario conoscere il nome del metodo.
ZS: ma ha scritto ieri, utilizzare un esempio@fxsaber ed ereditare, in ogni classe sarà chiamato da OnTimer , ci sarà solo una classe base nel ciclo per controllare quale timer ha quale intervallo di tempo, e il lancio del timer principale in metodo statico implementare
La domanda è come si può usare un puntatore per eseguire un metodo non statico di una classe anche se l'oggetto di un'altra classe (in questo caso CTimer) è una proprietà (variabile) di quella classe. È possibile? Temo di no.
- modelli
- interfacce
modelli:
Nessuna implementazione del timer stesso qui, solo un esempio di come chiamare una funzione non statica (scritto direttamente nel forum, non ho controllato)
Forum sul trading, sistemi di trading automatico e test di strategie di trading
MT5 e la velocità in azione
fxsaber, 2020.10.04 11:56
Determina se un programma è in esecuzione su una macchina frenata o meno.
La domanda è come eseguire un metodo di classe non statico tramite puntatore anche se l'oggetto di un'altra classe (in questo caso CTimer) è una proprietà (variabile) di questa classe. Ed è possibile? Temo di no.
In termini generali, si presenta così:
Potete scaricare la lib da qui: https://github.com/sva04091979/STD/tree/TimerEvent. Ramo TimerEvent, non ancora unito al master.
no.... Naturalmente si può passare un puntatore a un altro oggetto e cambiare il puntatore lì per chiamare il metodo.... ma è necessario conoscere il nome del metodo.
ZS: ma ha scritto ieri, utilizzare un esempio@fxsaber ed ereditare, in ogni classe sarà chiamato da OnTimer , ci sarà solo una classe base nel ciclo per controllare quale timer ha quale intervallo di tempo, e il lancio del timer principale in metodo statico implementare
Igor, non capisco di quale codice fxsaber stiamo parlando
modelli:
Non c'è un'implementazione del timer stesso, solo un esempio di come chiamare una funzione non statica (scritto direttamente sul forum, non ho controllato)
Grazie. Provato. Non esce niente.
In generale, si presenta così:
Si scarica la libreria da qui: https://github.com/sva04091979/STD/tree/TimerEvent. TimerEvent, non l'ho ancora unito al master.
Grazie. Ma non ho nemmeno trovato come eseguire un metodo di classe non statico tramite il puntatore.
Sembra che non ci sia una soluzione a questo problema nello stato attuale del linguaggio MQL5Grazie a tutti voi, ma forse non ho formulato correttamente il compito o non ho trovato una soluzione nel vostro articolo a causa della mia conoscenza limitata.
Di cosa avete bisogno?
Ecco un esempio di indicatore.
Il metodo Timer4(segnato in blu) della classe CTestTimer è lanciato dal puntatore della classe CTimer(nel ciclo del metodo CTimer:: OnTimer) passato alla classe CTimer::NewTimer al momento dell'esecuzione del costruttore quando viene creato l'oggetto della classe CTestTimer.
Ho provato di tutto. C'è una situazione di stallo. Non c'è modo di ottenere un puntatore a questo metodo. In C++ funziona attraverso: typedef void (CTestTimer::*TFun)();
E c'è uno strano errore: 'Timer4' - pointer to this function type is not supported yet ('Timer4' - pointer to this function type is not supported yet)
"For now" - come se MQ mettesse da parte questa domanda fino a tempi migliori.
Igor, non capisco di quale codice fxsaber stiamo parlando
https://www.mql5.com/ru/forum/325418/page4#comment_16116740
il valore di questo codice è.... beh, potete creare il vostro oggetto dinamico in qualsiasi punto del codice -.... e non preoccupatevi di aggiornarlo, e sarà inchiodato da solo quando uscirete dal programma
il numero di questi timer è limitato solo dalla vostra immaginazione... Volevo spostare uno sprite - ho creato un oggetto che strisciava dal bordo sinistro dello schermo verso destra e si uccideva - per così dire, completa autonomia
...troppo pigro per scrivere un esempio, non è un compito interessante
https://www.mql5.com/ru/forum/325418/page4#comment_16116740
il valore di questo codice.... beh, potete creare il vostro oggetto dinamico.... ovunque nel codice e non preoccuparti di aggiornarlo e quando esci dal programma, sarà inchiodato da solo
il numero di questi timer è limitato solo dalla vostra immaginazione... Volevo spostare uno sprite - ho creato un oggetto che strisciava dal bordo sinistro dello schermo verso destra e si uccideva - per così dire, completa autonomia
...troppo pigro per scrivere un esempio, non è un compito interessante
Sì, ho dato un'occhiata veloce.
non ha capito
Sì, ho dato un'occhiata veloce.
non ha capito questo punto.
Non so perché il codice sia così ora, ma dovrebbe esserlo:
ma non avete bisogno di questi metodi per il timer, imho.
ZS: l'oggetto può uccidersi in questo modo
Non so perché il codice sia così, ma dovrebbe esserlo:
ma non avete bisogno di questi metodi per il timer, imho.
ZS: L'oggetto può uccidersi in questo modo
Trovato, grazie a te e a @fxsaber. L'ho salvato nel mio salvadanaio.
Ma, ovviamente, non c'è nessuna risposta alla mia domanda in questo codice.