ObjectGetString

Spécifie la valeur de la propriété correspondante de l'objet. La propriété de l'objet doit être du type string. Il y a 2 variantes de la fonction.

1.  Retourne immédiatement la valeur de la propriété.

string  ObjectGetString(
   long                            chart_id,          // identificateur du graphique
   string                          name,              // nom de l'objet
   ENUM_OBJECT_PROPERTY_STRING     prop_id,           // identificateur de la propriété
   int                             prop_modifier=0    // modificateur de la propriété
   );

2. Retourne true ou false en fonction du succès de l'exécution de la fonction. En cas de succès, la valeur de la propriété est placée dans la variable de réception transmise par référence (le dernier paramètre).

bool  ObjectGetString(
   long                            chart_id,          // identificateur du graphique
   string                          name,              // nom de l'objet
   ENUM_OBJECT_PROPERTY_STRING     prop_id,           // identificateur de la propriété
   int                             prop_modifier,     // modificateur de la propriété
   string&                         string_var         // prendra la valeur de la propriété
   );

Paramètres

chart_id

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

name

[in]  Le nom de l'objet.

prop_id

[in]  L'identificateur de la propriété de l'objet. La valeur peut être l'une des valeurs de l'énumération ENUM_OBJECT_PROPERTY_STRING.

prop_modifier

[in]  Le modificateur de la propriété indiquée. Pour la première variante, par défaut la valeur du modificateur est égal à 0. La plupart des propriétés ne nécessite pas de modificateur. Signifie le numéro du niveau pour les outils de Fibonacci et pour l'objet Fourchette d'Andrews. La numérotation des niveaux commence à 0.

string_var

[out]   La valeur du type string, prenant la valeur de la propriété demandée.

Valeur de Retour

La valeur du type string pour la première variante de l'appel.

Pour la deuxième variante de l'appel, retourne true si cette propriété est disponible et que la valeur a été copiée dans la variable double_var, sinon retourne false. Pour obtenir des informations supplémentaires sur l'erreur, il est nécessaire d'appeler la fonction GetLastError().

Note

La fonction utilise un appel synchrone, ce qui signifie que la fonction attend la fin de l'exécution de toutes les commandes présentes dans la queue de ce graphique avant cet appel. C'est pourquoi cette fonction peut être consommatrice en terme de temps. Cette caractéristique doit être prise en compte lors de l'utilisation d'un grand nombre d'objets sur un graphique.

Lors du changement de nom d'un objet graphique, deux événements sont générés, qui peuvent être traité dans les experts ou dans les indicateurs avec la fonction OnChartEvent() :

  • l'événement de la suppression de l'objet avec le nom précédent ;
  • l'événement de la création de l'objet graphique avec un nouveau nom.

 

Exemple :

#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
 
#define   OBJ_NAME   "TestObjectGetInteger"  // Nom de l'objet
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- Identifiant du graphique courant
   long chart_id=ChartID();
 
//--- crée un objet graphique "Ligne verticale" à l'heure connue du serveur
   if(!ObjectCreate(chart_idOBJ_NAMEOBJ_VLINE0TimeCurrent(), 0))
     {
      Print("ObjectCreate() failed. Error "GetLastError());
      return;
     }
//--- mets à jour le graphique pour refléter immédiatement les modifications
   ChartRedraw(chart_id);
   
//--- récupère l'heure de création de l'objet
   long long_var=0;
   if(!ObjectGetInteger(chart_idOBJ_NAMEOBJPROP_CREATETIME0long_var))
     {
      Print("ObjectGetInteger() failed. Error "GetLastError());
      return;
     }
//--- représentation textuelle de l'heure de création de l'objet
   string create_time=TimeToString((datetime)long_varTIME_DATE|TIME_MINUTES|TIME_SECONDS);
   
//--- récupère l'heure mise dans l'objet
   if(!ObjectGetInteger(chart_idOBJ_NAMEOBJPROP_TIME0long_var))
     {
      Print("ObjectGetInteger() failed. Error "GetLastError());
      return;
     }
//--- représentation textuelle de l'heure de localsation de l'objet
   string obj_time=TimeToString((datetime)long_varTIME_DATE|TIME_MINUTES|TIME_SECONDS);
   
//--- récupère le type de l'objet
   ENUM_OBJECT object_type=(ENUM_OBJECT)ObjectGetInteger(chart_idOBJ_NAMEOBJPROP_TYPE);
   
//--- affiche dans le journal le type d'objet, l'heure de sa création et l'heure sur le graphique où se trouve l'objet graphique.
   PrintFormat("%s object created at %s at chart point with time %s",EnumToString(object_type), create_timeobj_time);
   
//--- attend 2 secondes et supprime l'objet créé
   Sleep(2000);
   ObjectDelete(chart_idOBJ_NAME);
   ChartRedraw(chart_id);
   /*
   résultat :
   OBJ_VLINE object created at 2025.02.01 12:15:37 at chart point with time 2025.01.31 23:54:59
   */
  }