ChartSetInteger

Legt den Wert der entsprechenden Eigenschaft des angegebenen Charts fest. Die Eigenschaft des Charts muss den Typ datetime, int, color, bool oder char haben. Der Befehl wird zur Warteschlange der Nachrichten des Charts hinzugefügt und erst nach der Verarbeitung aller vorherigen Befehle verarbeitet.

bool  ChartSetInteger(
   long                           chart_id,     // Identifikator des Charts
   ENUM_CHART_PROPERTY_INTEGER    prop_id,      // Identifikator der Eigenschaft
   long                           value         // Wert
   );

Legt den Wert der entsprechenden Eigenschaft des angegebenen Unterfensters fest

bool  ChartSetInteger(
   long                           chart_id,     // Identifikator des Charts
   ENUM_CHART_PROPERTY_INTEGER    prop_id,      // Identifikator der Eigenschaft
   int                            sub_window,   // Nummer des Unterfensters
   long                           value         // Wert
   );

Parameter

chart_id

[in]  Identifikator des Charts. 0 bedeutet den aktuellen Chart.

prop_id

[in]  Identifikator der Eigenschaften des Charts. Der Wert kann einer der Werte der Aufzählung ENUM_CHART_PROPERTY_INTEGER (außer read-only Eigenschaften) sein.

sub_window

[in]  Nummer des Unterfensters des Charts. Für die erste Variante ist der standardmäßige Wert gleich 0 (Hauptfenster des Charts). Die meisten Eigenschaften erfordern die Nummer des Unterfensters nicht.

value

[in]  Wert der Eigenschaft.

Rückgabewert

Gibt true zurück, wenn der Befehl zur Warteschlange des Charts hinzugefügt wurde, andernfalls false. Um zusätzliche Information über den Fehler zu bekommen, rufen Sie die Funktion GetLastError() auf.

Hinweis

Diese Funktion ist asynchron, das bedeutet, dass die Funktion nicht auf die Ausführung eines Befehls wartet, der zur Warteschlange des angegebenen Charts erfolgreich hinzugefügt wurde, sondern direkt die Kontrolle zurückgibt. Die Änderung der Eigenschaft wird erst nach der Verarbeitung des Befehls in der Warteschlange des Charts implementiert. Für eine sofortige Ausführung von Befehlen in der Warteschlange ist die Funktion ChartRedraw aufzurufen.

Wenn man gleich mehrere Eigenschaften des Charts ändern muss, muss man die entsprechenden Funktionen (ChartSetString, ChartSetDouble, ChartSetString) in einem Code-Block ausführen und dann ChartRedraw einmal aufrufen.

Für die Überprüfung des Ergebnisses der Ausführung kann man eine Funktion verwenden, die die angegebene Eigenschaft des Charts abruft ChartGetInteger, ChartGetDouble, ChartSetString). Dabei muss man beachten, dass diese Funktionen synchron sind und auf das Ergebnis der Ausführung warten.

Beispiel:

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
void OnInit()
 { 
//--- Aktivierung der Nachrichten über Bewegungen der Maus im Fensterchart
   ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,1);
//--- erzwungene Aktualisierung der Charteigenschaften garantiert die Bereitschaft zur Verarbeitung von Ereignissen
   ChartRedraw();
  }
//+------------------------------------------------------------------+
//| MouseState                                                       |
//+------------------------------------------------------------------+
string MouseState(uint state)
 { 
   string res;
   res+="\nML: "   +(((state& 1)== 1)?"DN":"UP");   // mouse left
   res+="\nMR: "   +(((state& 2)== 2)?"DN":"UP");   // mouse right 
   res+="\nMM: "   +(((state&16)==16)?"DN":"UP");   // mouse middle
   res+="\nMX: "   +(((state&32)==32)?"DN":"UP");   // mouse first X key
   res+="\nMY: "   +(((state&64)==64)?"DN":"UP");   // mouse second X key
   res+="\nSHIFT: "+(((state& 4)== 4)?"DN":"UP");   // shift key
   res+="\nStrg: " +(((state& 8)== 8)?"DN":"UP");   // control key
   return(res);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
 { 
   if(id==CHARTEVENT_MOUSE_MOVE)
      Comment("POINT: ",(int)lparam,",",(int)dparam,"\n",MouseState((uint)sparam));
  }