Le Coin du Graphique Auquel un Objet Est Attaché

Il y a un certain nombre d'objets graphiques pour lesquels vous pouvez définir un coin du graphique, relative auquel les coordonnées sont spécifiées en pixels. Ce sont les types d'objets suivants (les identificants des types d'objets sont spécifiés entre parenthèses) :

  • Etiquette (OBJ_LABEL) ;
  • Bouton (OBJ_BUTTON) ;
  • Etiquette Bitmap (OBJ_BITMAP_LABEL) ;
  • Champ d'Edition (OBJ_EDIT) ;
  • Etiquette Rectangle (OBJ_RECTANGLE_LABEL).

Objet

Identifiant

X/Y

Largeur/Hauteur

Date/Prix

OBJPROP_CORNER

OBJPROP_ANCHOR

OBJPROP_ANGLE

Texte

OBJ_TEXT

Oui

Oui

Oui

Etiquette

OBJ_LABEL

Oui

Oui (en lecture seule)

Oui

Oui

Oui

Bouton

OBJ_BUTTON

Oui

Oui

Oui

Bitmap

OBJ_BITMAP

Oui (en lecture seule)

Oui

Oui

Etiquete Bitmap

OBJ_BITMAP_LABEL

Oui

Oui (en lecture seule)

Oui

Oui

Champ d'Edition

OBJ_EDIT

Oui

Oui

Oui

Etiquette Rectangle

OBJ_RECTANGLE_LABEL

Oui

Oui

Oui

Les considérations suivantes sont utilisées dans le tableau :

  • X/Y — coordonnées des points d'ancrage spécifiés en pixels relativement à un coin du graphique ;
  • Largeur/Hauteur — les objets ont une largeur et une hauteur. Pour "lecture seule", la largeur et la hauteur ne sont calculées qu'une seule fois lorsque l'objet est dessiné sur le graphique ;
  • Date/Prix — les coordonnées du point d'ancrage sont spécifiées avec la date et le prix ;
  • OBJPROP_CORNER — définit le coin du graphique relativement auquel les coordonnées du point d'ancrage sont spécifiées. Peut être l'une des 4 valeurs de l'énumération ENUM_BASE_CORNER ;
  • OBJPROP_ANCHOR — définit le point d'ancrage dans l'objet lui-même et peut être l'une des 9 valeurs de l'énumération ENUM_ANCHOR_POINT. Les coordonnées en pixels sont spécifiées depuis ce point particulier vers le coin sélectionné du graphique ;
  • OBJPROP_ANGLE — définit l'angle de rotation de l'objet dans le sens horaire.

Pour spécifier un coin du graphique à partir duquel les coordonnées X et Y sont mesurées en pixels, utilisez ObjectSetInteger(chartID, name, OBJPROP_CORNER, chart_corner), où :

  • chartID - identifiant du graphique ;
  • name —  nom d'un objet graphique ;
  • OBJPROP_CORNER — identifiant de la propriété pour spécifier le coin d'accrochage ;
  • chart_corner — le coin du graphique désiré, peut être l'une des valeurs de l'énumération ENUM_BASE_CORNER.

ENUM_BASE_CORNER

Identifiant

Description

CORNER_LEFT_UPPER

Le centre des coordonnées est dans le coin supérieur gauche du graphique

CORNER_LEFT_LOWER

Le centre des coordonnées est dans le coin inférieur gauche du graphique

CORNER_RIGHT_LOWER

Le centre des coordonnées est dans le coin inférieur droit du graphique

CORNER_RIGHT_UPPER

Le centre des coordonnées est dans le coin supérieur droit du graphique

Exemple :

void CreateLabel(long   chart_id,
                 string name,
                 int    chart_corner,
                 int    anchor_point,
                 string text_label,
                 int    x_ord,
                 int    y_ord)
  {
//---
   if(ObjectCreate(chart_id,name,OBJ_LABEL,0,0,0))
     {
      ObjectSetInteger(chart_id,name,OBJPROP_CORNER,chart_corner);
      ObjectSetInteger(chart_id,name,OBJPROP_ANCHOR,anchor_point);
      ObjectSetInteger(chart_id,name,OBJPROP_XDISTANCE,x_ord);
      ObjectSetInteger(chart_id,name,OBJPROP_YDISTANCE,y_ord);
      ObjectSetString(chart_id,name,OBJPROP_TEXT,text_label);
     }
   else
      Print("Echec de la créationde l'objet OBJ_LABEL ",name,", Code d'erreur = "GetLastError());
  }
//+----------------------------------------------------------------------------------------------------+
//| Fonction de démarrage du script                                                                    |
//+----------------------------------------------------------------------------------------------------+
void OnStart()
  {
//---
   int height=(int)ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,0);
   int width=(int)ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0);
   string arrows[4]={"LEFT_UPPER","RIGHT_UPPER","RIGHT_LOWER","LEFT_LOWER"};
   CreateLabel(0,arrows[0],CORNER_LEFT_UPPER,ANCHOR_LEFT_UPPER,arrows[0],50,50);
   CreateLabel(0,arrows[1],CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,arrows[1],50,50);
   CreateLabel(0,arrows[2],CORNER_RIGHT_LOWER,ANCHOR_RIGHT_LOWER,arrows[2],50,50);
   CreateLabel(0,arrows[3],CORNER_LEFT_LOWER,ANCHOR_LEFT_LOWER,arrows[3],50,50);
  }