Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Löschen aller Objekte (http://www.expert-advisor.com/forum/showthread.php?t=4196)

Biatsch 04.04.15 19:58

Löschen aller Objekte
 
Hi, ich habe das Problem, dass die Objekte, die mein Indikator generiert nach dem Ändern des Zeitfensters und nach entfernen des Indikators nicht automatisch gelöscht werden.

Dies sind die Objekte, die mein Indikator erstellt:
Code:

ObjectCreate("BUY" + x,OBJ_ARROW,0,Time[i],Low[MinClose]);
Dies ist mein Code zum entfernen:
Code:

void OnDeinit(const int reason){
  ObjectsDeleteAll();            // delete all objects from chart.
}

Ich benutze übrigens die neue "Main-Funktion" "OnCalculate" mit "OnInit".

Wenn ich die "Deinit-Funktion" verwende, bekomme ich einen Fehler beim kompilieren.

Übrigens habe ich früher die folgende Funktion benutzt, die auch funktioniert hat (glaube ich zumindest):
Code:

int deinit(){
  for(int z=1;z<=x;z++){
      ObjectDelete("BUY"  + z);
  }
}


Biatsch 04.04.15 22:11

Ergänzende Angabe:
Mein Ziel ist es meinen alten Indikator vom "alten" MQL4 ind "neue" MQL4 zu transferieren.
In der "alten" Sprache hat mein deinit() noch funktioniert, aber das "neue" OnDeinit() funktioniert scheinbar nicht und gibt auch nichts aus, wenn ich eine printf-Anweisung darin einfüge.

traderdoc 04.04.15 23:20

Zitat:

Zitat von Biatsch (Beitrag 29474)
Ergänzende Angabe:
Mein Ziel ist es meinen alten Indikator vom "alten" MQL4 ind "neue" MQL4 zu transferieren.
In der "alten" Sprache hat mein deinit() noch funktioniert, aber das "neue" OnDeinit() funktioniert scheinbar nicht und gibt auch nichts aus, wenn ich eine printf-Anweisung darin einfüge.

Normalerweise sollte diese Funktion ObjectsDeleteAll() allle Objecte löschen.
Was versprichst Du Dir von der "Transferierung" in MQL4.5?
Ansonsten belassen es doch bei den alten Befehlen u.a. deinit()

traderdoc


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:11 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