|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
CHARTEVENT_OBJECT_CLICK Objekt nicht erkannt
Ich habe ein Problem in OnChartEvent mit dem CHARTEVENT_OBJECT_CLICK.
Es gibt (im Subwindow) insgesamt 13 Symbol Buttons, deren Namen setzt sich so zusammen: indName="xRSI"; PFX=indName+"_"+IntegerToString(SubWin); 1. Button z.B. PFX+"but.dax" 2. Button z.B. PFX+"but.ibx" Aufgelöst ergibt das xRSI_1but.dax xRSI_1but.ibx Alle Button Namen sind in einem Array gespeichert string sNamButt[13]; Diese kann ich mir in einem Loop auch alle korrekt anzeigen lassen. Im OnChartEvent sollen die Linien der Symbole auf Knopfdruck versteckt werden. Dummerweise erkennt der Indikator den Knopfdruck bei den Symbol Buttons nicht. Ich habe zuerst einen Loop versucht - negativ. Danach habe ich den 1. Button direkt benannt (also den Dax Knopf) - negativ. Jetzt bin ich ratlos, woran das liegen könnte. Wenn jemand mal drüber schauen könnte, wäre ich ich für Ideen dankbar. Als Beispiel die Show Funktion (Hide umgedreht): Code:
// ==================================== // === Indexnummern sind dieselben wie in den Arrays bool ShowIndexLine(int ArrNumber=-1) { bSymVis[ArrNumber]=true; SetIndexStyle(ArrNumber,DRAW_LINE,STYLEDIS,WIDTHDIS, cSymCol[ArrNumber]); return(true); } Code:
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam ) { // ============================== letter if(id==CHARTEVENT_KEYDOWN) { // ==> funktioniert if(lparam==StringGetCharacter(LETTERSHOW,0)) { DoHiding=-1; } //NoHiding if(lparam==StringGetCharacter(LETTERHIDE,0)) { DoHiding= 1; } //DoHide Print(__FUNCTION__," letter ",lparam," was pressed. DoHiding=",(int)DoHiding); } // ============================== buttons if(id==CHARTEVENT_OBJECT_CLICK) { // ==> funktioniert NICHT for(int n=0; n<iNoOfSym; n++) //iNoOfSym=13 { if( sparam==sNamButt[n] ) { Print(__FUNCTION__," Button ",sparam," was pressed"); //<== kein Print if(DoHiding==-1) //NoHiding { if(ShowIndexLine(n)) { ObjectSetInteger(0,sparam,OBJPROP_STATE,false); Print(__FUNCTION__," Sym vis=",(bool)bSymVis[n]); //SetIn ShowIndexLine break; } }//NoHiding else if(DoHiding== 1) //HideIndex { if(HideIndexLine(n)) { ObjectSetInteger(0,sparam,OBJPROP_STATE,true); Print(__FUNCTION__," Sym vis=",(bool)bSymVis[n]); //SetIn HideIndexLine break; } }//HideIndex }//AnIndexButton } // ==> funktioniert if(sparam==ButtonName) // Save button { Print(__FUNCTION__," Button ",sparam," was pressed"); if( SaveConfigToFile() ) { ChangeButton(0); //->ToUnpressed ReInit(); } else ChangeButton(1); //SomeError->ToPressed } // ====================================================================== // ==> funktioniert NICHT else if( sparam==PFX+"but.dax" ) { Print(__FUNCTION__," Button ",sparam," was pressed"); //<== kein Print if(DoHiding==-1) //NoHiding { if(ShowIndexLine(0)) { ChangeIndexButton(sparam,0); //Unpressed Print(__FUNCTION__," Sym vis=",(bool)bSymVis[0]); //SetIn ShowIndexLine } }//NoHiding else if(DoHiding== 1) //HideIndex { if(HideIndexLine(0)) { ChangeIndexButton(sparam,1); //Pressed Print(__FUNCTION__," Sym vis=",(bool)bSymVis[0]); //SetIn HideIndexLine } }//HideIndex }//AnIndexButton } |
Lesezeichen |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|