Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 251

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
Hallo, ich möchte ein Handels-Panel für meine EA in zwei Versionen mql4 und mql5 zu schreiben. Da ich mit grafischen Objekten noch nicht vertraut bin, habe ich ein Beispiel aus der Klasse CLabel der Standardbibliothek verwendet, um ein bewegliches Menü zu erstellen. In mql5 funktioniert das Menü einwandfrei, aber nicht in mql4. Wenn eine Diagrammperiode geändert wird, werden die Menüobjekte dupliziert und ihre Position zueinander verändert. Vielleicht fehlen mql4 einige Methoden in der CLabel-Klasse, die mql5 hat? Könnten Sie vorschlagen, was in diese Klasse aufgenommen werden sollte, um solche Probleme zu vermeiden?
Auch im Beispielcode der Klasse CLabel ist mir nicht klar, was diese Zeilen bewirken:
Hallo, ich möchte ein Handels-Panel für meine EA in zwei Versionen mql4 und mql5 zu schreiben. Da ich mit grafischen Objekten noch nicht vertraut bin, habe ich ein Beispiel aus der Klasse CLabel der Standardbibliothek verwendet, um ein bewegliches Menü zu erstellen. In mql5 funktioniert das Menü einwandfrei, aber nicht in mql4. Wenn eine Diagrammperiode geändert wird, werden die Menüobjekte dupliziert und ihre Position zueinander verändert. Vielleicht fehlen mql4 einige Methoden in der CLabel-Klasse, die mql5 hat? Könnten Sie vorschlagen, was in diese Klasse aufgenommen werden sollte, um solche Probleme zu vermeiden?
Außerdem ist mir nicht klar, was diese Zeichenfolgen im Code des Beispiels der Klasse CLabel bewirken:
Die angegebenen Zeilen sind Makros, die in die Datei Defines.mqh geschrieben werden. Wörtlich: Die erste Zeile des Makros übergibt die Kontrolle an die Ereignisbehandlungsfunktion der KlasseCControlsDialog, dann werden Funktionen zwischen diesen Makros ausgeführt und das letzte Makro übergibt die Kontrolle an die KlasseCAppDialog
Die angegebenen Zeilen sind Makros, die in die Datei Defines.mqh geschrieben werden. Wörtlich genommen übergibt die erste Zeile des Makros die Kontrolle an die Ereignisbehandlungsfunktion der KlasseCControlsDialog, dann werden die Funktionen zwischen diesen Makros ausgeführt, und das letzte Makro übergibt die Kontrolle an die KlasseCAppDialog
Danke, so langsam wird mir etwas klar.) Und können Sie mir einen Link zu einer Dokumentation über das Thema Makros geben?
Können Sie mir einen Link zur Dokumentation zum Thema Makros geben?
https://www.mql5.com/ru/docs/basis/preprosessor/constant
int OnDeinit()
{
Alert("beg OnDeinit()");
// err=StringToInteger(err);
//------------------------
zurück(0);
Alert("end OnDeinit()");
}
//OnDeinit();-----------
Der gefangene Err wird als Ganzzahl beschrieben
Ich weiß nicht, wo das Problem liegt.
Ich habe die Nachricht erhalten
int OnDeinit()
{
Alert("beg OnDeinit()");
// err=StringToInteger(err);
//------------------------
zurück(0);
Alert("end OnDeinit()");
}
//OnDeinit();-----------
Der gefangene Err wird als Ganzzahl beschrieben
Ich weiß nicht, wo das Problem liegt.
Ich habe eine Nachricht erhalten
Mir ist nicht ganz klar, was das Problem ist und wo der Fehler auftritt. Wenn Sie eine err-Variable vom Typ int haben, warum versuchen Sie in der auskommentierten Zeile, sie von String in int zu konvertieren? Wo genau tritt der Fehler auf?
Es ist nicht klar, was das Problem ist und wo der Fehler herkommt. Wenn Sie eine Variable err vom Typ int haben, warum versuchen Sie dann, sie in der kommentierten Zeichenfolge vom Typ string in int zu konvertieren? An welcher Stelle tritt ein Fehler auf?
Die Compilermeldung gibt die Zeile und die Position des Fehlers an. Sie können auf die Beschreibungszeile (untere Zeile im Bild) klicken und der Cursor zeigt den Fehler im Programmtext an. Die DeInit-Funktion wird ausgeführt, bevor der Indikator oder Expert Advisor aus dem Chart entfernt wird. Hier können z.B. erstellte grafische Elemente gelöscht werden. Wenn keine Aktionen ausgeführt werden sollen (die Funktion ist leer) - kann die Funktion gelöscht werden... Wenn Sie etwas wie string x=125 haben, korrigieren Sie zu string x = (string)125
Anstelle von err=StringToInteger(err); err=StringToInteger((string)err); obwohl manche das lustig finden könnten
Die Compilermeldung gibt die Zeile und die Position des Fehlers an. Sie können auf die Beschreibungszeile (untere Zeile im Bild) klicken und der Cursor zeigt den Fehler im Programmtext an. Die DeInit-Funktion wird ausgeführt, bevor der Indikator oder Expert Advisor aus dem Chart entfernt wird. Hier können z.B. erstellte grafische Elemente gelöscht werden. Wenn keine Aktionen ausgeführt werden sollen (die Funktion ist leer) - kann die Funktion gelöscht werden... Wenn Sie etwas wie string x=125 haben, korrigieren Sie zu string x = (string)125
Anstelle von err=StringToInteger(err); err=StringToInteger((string)err); obwohl manche das lustig finden könnten
Frau...
Ich habe getan, was Sie empfehlen
Zeileerr=StringToInteger((string)err) in die FunktionOption einfügen; kein Fehler.
Aber die Warnung implizite Konvertierung von Zeichenkette zu Zahl bleibt bestehen, ich denke, das Terminal muss doch neu installiert werden.
aber die implizite Konvertierungswarnung von Zeichenkette zu Zahl bleibt bestehen, ich werde das Terminal wohl doch neu installieren müssen.
Bitte posten Sie Ihre Funktion OnDeinit - ich werde sie mir ansehen. Und sagen Sie mir, was Sie sich davon versprechen. MetaEditor erzeugt diesen Fehler. Erstellen Sie eine Kopie des Terminal-Ordners. Hier erklärt Alexey Viktorov, wie man schnell neu installieren kann