ChartSetInteger

Spécifie la valeur de la propriété correspondante du graphique indiqué. Lapropriété du graphique doit être du type datetime, int, color, bool ou char. La commande donnée entre dans la file d'attente des messages du graphique et n'est exécutée qu'après le traitement de toutes les commandes précédentes

bool  ChartSetInteger(
   long                           chart_id,     // identificateur du graphique
   ENUM_CHART_PROPERTY_INTEGER    prop_id,      // identificateur de la propriété
   long                           value         // valeur
   );

 

bool  ChartSetInteger(
   long                           chart_id,     // identificateur du graphique
   ENUM_CHART_PROPERTY_INTEGER    prop_id,      // identificateur de la propriété
   int                            sub_window,   // numéro de la sous-fenêtre
   long                           value         // valeur
   );

Paramètres

chart_id

[in]  L'identificateur du graphique. 0 signifie le graphique courant.

prop_id

[in]  L'identificateur de la propriété du graphique.  La valeur peut être une des valeurs de l'énumération ENUM_CHART_PROPERTY_INTEGER (sauf les propriétés read-only).

sub_window

[in]  Le numéro de la sous-fenêtre du graphique. Pour la première variante la valeur est égale à 0 par défaut (la fenêtre principale du graphique). La plupart des propriétés ne demandent pas l'indication du numéro de la sous-fenêtre.

value

[in]  La valeur de la propriété.

Valeur de Retour

Renvoie true si la commande est correctement placée dans la file d'attente graphique, sinon false. Pour obtenir plus d'informations sur l'erreur, il faut appeler la fonction GetLastError().

Note

La fonction est asynchrone, ce qui signifie que la fonction n'attends pas l'exécution de la commande qui a été ajoutée avec succès dans la queue d'évènements du graphique spécifié. Au lieu de cela, elle retourne le contrôle immédiatement. La propriété ne sera changée qu'après la gestion de la commande correspondante de la queue du graphique. Pour exécuter immédiatement les commandes de la file d'attente du graphique, appelez la fonction ChartRedraw.

Si vous souhaitez changer immédiatement plusieurs propriétés d'un graphique en une seule fois, les fonctions correspondantes (ChartSetString, ChartSetDouble, ChartSetString) doivent être exécutées en un seul bloc de code, après lequel vous devrez appeler ChartRedraw une seule fois.

Pour vérifier le résultat de l'exécution de la commande, vous pouvez utiliser une fonction qui retourne la propriété correspondante du graphique (ChartGetInteger, ChartGetDouble, ChartSetString). Notez cependant que ces fonctions sont synchrone et attendent le résultat de l'exécution.

Exemple :

//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'expert                            |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- Activation des évènements des mouvements de la souris sur la fenêtre du graphique
   ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,1);
//--- La mise à jour forcée des propriétés du graphique assure qu'elles seront prises en compte pour gérer les évènements
   ChartRedraw();
  }
//+------------------------------------------------------------------+
//| MouseState                                                       |
//+------------------------------------------------------------------+
string MouseState(uint state)
  {
   string res;
   res+="\nML: "   +(((state& 1)== 1)?"DN":"UP");   // Bouton gauche de la souris
   res+="\nMR: "   +(((state& 2)== 2)?"DN":"UP");   // Bouton droit de la souris
   res+="\nMM: "   +(((state&16)==16)?"DN":"UP");   // Bouton du milieu de la souris
   res+="\nMX: "   +(((state&32)==32)?"DN":"UP");   // Coordonnée X de la souris
   res+="\nMY: "   +(((state&64)==64)?"DN":"UP");   // Coordonnée Y de la souris
   res+="\nSHIFT: "+(((state& 4)== 4)?"DN":"UP");   // Touche shift
   res+="\nCTRL: " +(((state& 8)== 8)?"DN":"UP");   // Touche controle
   return(res);
  }
//+------------------------------------------------------------------+
//| Fonction ChartEvent                                              |
//+------------------------------------------------------------------+
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));
  }