Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 187
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Hat jemand eine Lösung mit mehreren Timern gefunden, so dass ich das Rad nicht selbst neu erfinden muss?
Ich glaube nicht, dass die Implementierung durch die Verwendung von Zeigern auf die Funktion kompliziert ist. Es ist unwahrscheinlich, dass sie nicht schon vor mir umgesetzt worden wäre.
Das heißt, die ursprüngliche Aufgabe besteht darin, einen Zeitgeber mit beliebiger Periodizität zu erstellen und ihm eine Funktion zuzuweisen , die das Zeitgeberereignis verarbeitet. Und es kann eine beliebige Anzahl von Timern geben.
Zum Beispiel so:
Niemand hat eine Lösung mit mehreren Timern gefunden
Ich bin mir sicher, dass ich es schon vor langer Zeit im Buy More gesehen habe.
Ich kann es nicht finden. Seltsam.
OK, ich werde es selbst implementieren. Es sollte keine Fallstricke geben. Ich werde es im Buy More veröffentlichen.
D.h. die erste Aufgabe besteht darin, einen Timer mit beliebiger Periodizität zu erstellen und ihm seine Timer-Ereignisbehandlungsfunktion zuzuordnen. Und es kann eine beliebige Anzahl von Timern geben.
eine einfachere Variante nicht ausreicht?
UPD: Und so kann man den fxsaber-Code als Vorlage verwenden
So können Sie dafür sorgen, dass alle Objekte automatisch gelöscht werden https://www.mql5.com/ru/forum/325418/page4#comment_16116740
Ich kann es nicht finden. Seltsam.
OK, ich werde es selbst implementieren. Es sollte keine Fallstricke geben. Ich werde es in das Buy More stellen.
fertig
https://www.mql5.com/ru/code/31306
eine einfachere Version nicht funktionieren würde?
UPD: Ansonsten können Sie den Code von fxsaber als Vorlage verwenden
So können Sie dafür sorgen, dass alle Objekte automatisch gelöscht werden https://www.mql5.com/ru/forum/325418/page4#comment_16116740
Natürlich kann man das auch so machen. Aber weniger lesbar und schwieriger zu verwalten.
gemacht
https://www.mql5.com/ru/code/31306
Es war einmal (ungefähr) so.
Die Verwendung mit Klassen ist unpraktisch.
class CWithTimer {
public:
void CallMeByTimer();
};
Und ein externer (für die Klasse) Zeitgeber mit Zeigern auf die Funktion ist machtlos.
das war einmal (ungefähr) so.
Die Verwendung mit Klassen ist unpraktisch.
class CWithTimer {
public:
void CallMeByTimer();
};
Und ein externer (für die Klasse) Zeitgeber mit Zeigern auf die Funktion ist machtlos.
Wenn Sie eine Funktion als Klassenmethode meinen, dann stimme ich zu. Ich habe es gestern selbst herausgefunden und rätsele nun, wie ich da wieder herauskomme.
Das Objekt muss einen Zeiger auf eine Klasse mit einem Timer enthalten.