Danke für Deine Tips, ich bin sie durchgegangen.
Zitat:
Zitat von RetepM
Man findet wenig zu dem Thema. In einem Thread wird der Programmierer gebeten, den Code an den Support zu schicken.
|
Den hab ich auch gelesen
Zitat:
Zitat von RetepM
Anscheinend durchläuft der EA vor der Fehlermeldung eine Zählschleife ??daher die Zahl vor dem Error??
|
Das ist kein EA, das sind 2 Indikatoren (2 EAs gehen nicht zusammen auf einen Chart) - nur nebenbei, tut aber glaube ich nix zur Sache.
Zitat:
Zitat von RetepM
guck doch mal ob Du im Code einen leeren String behandelst, durch 0 teilst oder ob, wenn im Code, bei StringTrimLeft etwas schief geht.
|
1."StringTrimLeft": neg., gibt's im ganzen Code nicht
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:
if( id==CHARTEVENT_OBJECT_CLICK //ObjectWasClicked
&& StringFind(sparam,PFX+"pName")>= 0 ) //sparam=FullButtonName
{
OpenChart( FindPairNameOfButton(sparam) );
ObjectSetInteger(0,sparam,OBJPROP_STATE,false);
return;
}//ButtonNameWasClicked
// in OnInit: Loop für alle Knöpfe
CreatePairButton("pName"+IntegerToString(i),xOffset,pOffset+i*LineHeight,Apairnames[i]); //Name
// Funktion, die in OnChartEvent verwendet wird:
string FindPairNameOfButton(string ButtonName="FullButtonName")
{
string Result="";
int Startposition=StringLen(PFX+"pName");
string PairNumber=StringSubstr(ButtonName,Startposition); //From"PFX_pName"ToEnd
int PairInteger=(int)StringToInteger(PairNumber);
Result=SSpairTable[PairInteger].SpairName;
return(Result);
}
// Zuweisung von Nummer zu Name über:
struct SSpair //StructSortedPair:
{
int SpairNo; //PairIDnumber
string SpairName; //PairName
}; SSpair SSpairTable[];
Ich sehe nicht, wo hier irgendwas falsch sein soll, zudem funktioniert diese Tabelle ja einwandfrei, wenn sie alleine auf einem Chart liegt.
AVT