Fehlermeldung: 8 leaked strings left
Diese Fehlermeldung bekomme ich unter "Experten".
Situation: 2 Tabellen, eine mit einer PairListe und eine mit einer AnalyseListe. Beide Tabellen sind eigenständige Indikatoren. 1. Ich lade jede Indikator-Tabelle separat in einem eigenen Chart-Fenster. Ich kann in jeder Tabelle nun durch Klick auf den Symbolnamen einen neuen Chart für das Symbol (samt der vorher definierten Vorlage) laden. 2. Ich lade beide Indikator-Tabellen zusammen in einem Chart-Fenster, erst die AnalyseListe und danach die PairListe. A. Wenn ich aus der AnalyseListe durch Klick einen neuen Symbolchart aufmachen will, ist alles ok. B. Wenn ich aber aus der PairListe durch Klick einen neuen Chart aufmachen will, bekomme ich die Fehlermeldung über "leaked strings left". Es wird zwar der Symbolchart aufgemacht, aber ohne Vorlage und das Fenster mit den beiden Tabellen verschwindet mit besagtem Abschiedsgruß :eek: Frage: Was bedeutet diese Meldung? Ich habe zwar schon etliche Google Resultate durchgelesen, trotzdem verstehe ich nur Bahnhof - da helfen weder eine Übersetzung noch irgendwelche Lösungsvorschläge (klaro, daß man von Lösungen nix versteht, wenn man nicht weiß, was das Problem ist - wie können denn irgendwelche Strings übrigbleiben, und was zum Teufel sind undichte Strings :confused:). Wäre nett, wenn jemand mich aufklären könnte, damit ich versuchen kann eine Lösung zu finden. Danke. AVT |
Man findet wenig zu dem Thema. In einem Thread wird der Programmierer gebeten, den Code an den Support zu schicken.
Anscheinend durchläuft der EA vor der Fehlermeldung eine Zählschleife ??daher die Zahl vor dem Error?? guck doch mal ob Du im Code einen leeren String behandelst, durch 0 teilst oder ob, wenn im Code, bei StringTrimLeft etwas schief geht. Grüße |
Lad doch mal die Quellcodes hoch. ;)
|
Danke für Deine Tips, ich bin sie durchgegangen.
Zitat:
Zitat:
Zitat:
2. 0 Teilung: (neg.), nicht im Code für "neuen Chart"-Knopf -. außerdem würde das nicht "zero division" Error ergeben? 3. leerer String: (neg.), dann würde er keinen neuen Chart öffnen Beispiel: Code:
// in OnChartEvent: AVT |
Zitat:
|
Es war in den Google Ergebnisse ja die Rede von Arrays.
Zuerst habe ich sichergestellt, daß alle Arrays eindeutige Namen haben. Das half nicht. Dann habe ich mir die ErrorCodes vorgenommen. Da tauchte eine 7 = ERR_NOT_ENOUGH_RIGHTS auf, und zwar für den Chart, der geöffnet werden soll. Es liegt also irgendwo in dem Aufruf der Charts ein Fehler. Den suche ich jetzt. :rolleyes: AVT auf der Suche |
Zitat:
traderdoc |
die Buttons werden nicht erkannt
Logfile dazu (unwichtiges rausgenommen):
Code:
================ 1. Tabelle FX-PairStrength2, 4 verschiedene Button-Klicks: immer ok AVT |
Hmmm,
liegt vermutlich an den Buttons (Objecten). Werden die sauber gelöscht (DeInit) --> (ObjectDelete)? Mal prüfen. Gruß TraumExperte |
Zitat:
Sämtliche Sachen fangen bei mir an mit dem Festlegen eines PFX für Objekte: Code:
string PFX = "FXplist_"; //1. Indi: PairList Code:
void OnDeinit(const int reason) Der Klartext Fehler sagt, PairList "Chart not found" als LastError. In PairList wird aber der Name richtig aufgelöst (sagt ja auch das Logfile) - nur daß er zuerst die PairStrength Namensauflösung startet, was völlig falsch ist, weil ich auf einen PairList Button drücke. AVT |
erster Erfolg: die Listen bleiben im Chart
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hänge mal ein Bild an, damit man sich vorstellen kann, wie das ganze aussieht. Dieses Mal habe ich die Reihenfolge der beiden Indikatorlisten vertauscht, also erst die PairList und dann die StrengthList, um zu sehen, ob er jetzt zuerst versucht, alles über die PairList zu finden (tut er übrigens nicht).
Folgendes wurde geändert in PairList2, OnChartEvent (PairStrenth2 ist von Anfang an den Weg über die ObjectGetInteger gegangen): Code:
//if( id==CHARTEVENT_OBJECT_CLICK //ObjectWasClicked Trotzdem sucht er immer noch zuerst in der StrengthList. Und es wird immer dasselbe Template benutzt, obwohl auch die unterschiedlich sind. Nu brauche ich erst mal ne Pause. AVT |
Das Ende vom Lied
Alles mehr oder weniger ok jetzt.
Mehr weil die anfänglichen "leaked strings left" verschwunden sind. :D Wie allerdings die Anzahl der leaked strings zustande kommt, wird wohl ewig im Closed Code des MT versteckt bleiben, sie haben jedenfalls weder eine Verbindung zu irgendwelchen ArraySizes, noch zu den Namensstrings. Mehr weil jetzt auch das richtige Template für die entsprechende Tabelle benutzt wird. :D Weniger weil im Logfile immer noch Meldungen auftauchen, daß zuerst versucht wird, einen PairList Button in der StrengthList zu finden. Ich bin das ganze folgendermaßen umgangen: 1. In OnChartEvent wird nur ein Chart geöffnet, wenn der gefundene Paarname durch den im Array stehenden Name bestätigt wird. Code:
// ======================= PairStrength Die Namensfindung und Verifizierung passiert nun so (ja, ich weiß, daß KeepEmpty nicht erforderlich ist, aber sicher ist sicher): Code:
// ======================= PairStrength Ich hoffe, irgendwann hilft es mal jemandem. AVT |
Alle Zeitangaben in WEZ +2. Es ist jetzt 05:03 Uhr. |
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum