Fehler, Irrtümer, Fragen - Seite 2794
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
Mein Indikator hat aus irgendeinem Grund begonnen, grafische Objekte zu verlieren und löscht sie nicht. Ich verwende die automatische Löschung im Destruktor der Klasse. Ich nenne es:
Infolgedessen erhalte ich ein falsches Positiv. Ich rufe GetLastError() auf und erhalte den Fehler 4101 ("Errory chart identifier"). Angenommen. Ich vergleiche die ChartID des zu löschenden grafischen Objekts mit dem Ergebnis der Funktion ChartID(), und sie stimmen genau überein. Was kann der Grund dafür sein, dass ein Objekt nicht aus dem Diagramm entfernt wird, und wie kann ich das Problem umgehen?
Ich habe beschlossen, einen anderen Weg zu versuchen. Beim Erstellen eines Diagramms füge ich alle Objekte zur Liste hinzu und verwende die Schleife, um alle Objekte zu löschen, wenn ich den Indikator lösche. Jetztgibt die FunktionGetLastError() nach dem Aufruf der Funktion ObjectDelete denFehler 4001 aus und einige Diagrammobjekte bleiben im Diagramm.
Mein Indikator hat aus irgendeinem Grund angefangen, grafische Objekte zu verlieren und will sie nicht mehr löschen. Ich verwende die automatische Löschung im Destruktor der Klasse. Ich nenne es:
Infolgedessen erhalte ich ein falsches Positiv. Ich rufe GetLastError() auf und erhalte den Fehler 4101 ("Errory chart identifier"). Angenommen. Ich vergleiche die ChartID des zu löschenden grafischen Objekts mit dem Ergebnis der Funktion ChartID(), und sie stimmen genau überein. Was kann der Grund dafür sein, dass ein Objekt nicht aus dem Diagramm entfernt wird und wie kann dies vermieden werden?
Aktionen zur Demonstration des Fehlers.
1. Platzieren Sie den Indikator auf dem Chart.
2. Entfernen Sie den Indikator aus dem Diagramm.
3 Drücken Sie die Tastenkombination Strg+B und dann die Schaltfläche "Alles auflisten" im Fenster, um die nicht entfernten Objekte anzuzeigen.
Ich habe nur 294 von 100000.
Wenn Sie den Wert des Eingabeparameters nBars verringern, tritt der Fehler nicht auf.
Guten Tag.
Ich habe lange mit dem Upgrade von Windows 7 auf 10 gezögert, aber diese Woche habe ich neu installiert.
Jetzt habe ich ein Problem, ich kann keine Expert Advisor Demoversionen meiner Indikatoren und anderer EAs herunterladen,
Ich drücke den Download-Button und nichts passiert, ich habe es mit geöffnetem und geschlossenem Terminal versucht!
Ich versuche, es für das MT4-Terminal herunterzuladen, ich war noch nicht auf MT5.
Was zum Teufel ist hier los?
Ich habe einen Quellcode erstellt, in dem dieser Fehler auftritt:
Was passiert, wenn ein Zeiger gelöscht wird?
Gibt es einen Befehl für das Diagramm, um das grafische Objekt zu löschen? Siehe Hinweis zu ObjectDelete
Bei mir sind es 294 von 100000.
Wenn wir den Wert des Eingabeparameters nBars verringern, tritt der Fehler nicht auf.
Kann es passieren, dass die Schleife länger dauert, als die Ausführung von OnDeinit dauert?
In Ihrem Beispiel haben alle Objekte das Präfix "trend", warum verwenden Sie es nicht und verweigern es in der Schleife?
Was passiert, wenn ein Zeiger gelöscht wird?
Gibt es einen Befehl für das Diagramm, um das grafische Objekt zu löschen? Siehe den Hinweis zu ObjectDelete
Ich habe sicherlich schon einmal über diese Notiz nachgedacht. Aber dann habe ich aus irgendeinem Grund beschlossen, dass es ein Fehler des Terminals war. Dafür entschuldige ich mich. Es muss also meine Schuld sein.
Aber ich weiß nicht, was ich in diesem Fall tun soll. Rufe ich ObjectDelete und dann ObjectFind und warten, bis es fehlschlägt, um herauszufinden, ob das Objekt tatsächlich entfernt wurde? Nach der gleichen Notiz zu urteilen, ist es zu zeitaufwendig. Ich weiß nicht, ob ein zweites Löschen funktionieren wird (in meinem Indikator habe ich versucht, ObjectDelete zweimal hintereinander aufzurufen, aber es hat nicht funktioniert). Und die Sleep-Funktion in Indikatoren funktioniert nicht, um dem Diagramm etwas Zeit zu geben, jedes Objekt zu löschen. Vielleicht gibt es irgendwo Beispiele dafür, wie man dies umgehen kann?
Kann es nicht passieren, dass die Schleife länger dauert als die Zeit für die Ausführung von OnDeinit?
Schließlich haben alle Objekte in Ihrem Beispiel das Präfix "trend", warum also nicht verwenden und aus der Schleife verwerfen?
Dies gilt nur für das Beispiel. Der Indikator, mit dem ich arbeite, hat komplexe Namen. Und ich habe nur zur Veranschaulichung ein Beispiel genannt.
Ich habe sicherlich schon einmal über diese Notiz nachgedacht. Aber dann dachte ich aus irgendeinem Grund, es sei ein Terminalfehler. Dafür entschuldige ich mich. Es stellt sich heraus, dass es meine Schuld ist.
Aber ich weiß nicht, was ich in diesem Fall tun soll. Rufe ich ObjectDelete und dann ObjectFind und warten, bis es fehlschlägt, um herauszufinden, ob das Objekt tatsächlich entfernt wurde? Nach der gleichen Notiz zu urteilen, ist es zu zeitaufwendig. Ich weiß nicht, ob eine zweite Löschung funktionieren würde (in meinem Indikator habe ich versucht, ObjectDelete zweimal hintereinander aufzurufen, aber es hat nicht funktioniert). Und die Sleep-Funktion in Indikatoren funktioniert nicht, um dem Diagramm etwas Zeit zu geben, jedes Objekt zu löschen. Vielleicht gibt es irgendwo Beispiele dafür, wie man dies umgehen kann?
Ich denke, Sie sollten alle Hinweise in die Liste aufnehmen. Das Terminal-Subsystem selbst löscht solche Objekte, deren Zeiger in der Liste CArrayObj stehen
Nach dem Ausschalten des Terminals bleiben die Objekte nach dem Indikator auf der Karte. Und wenn ich das Terminal wieder starte, sind diese Objekte sichtbar und stören die gesamte Ansicht.
Nach dem Ausschalten des Terminals bleiben die Objekte nach dem Indikator auf der Karte. Und wenn ich das Terminal wieder starte, sind diese Objekte sichtbar und stören die gesamte Ansicht.