OBJ_BITMAP_LABEL

Objet étiquette Bitmap.

ObjBitmapLabel

Note

La position du point d'ancrage par rapport à l'étiquette peut être sélectionnée dans l'énumération ENUM_ANCHOR_POINT. Les coordonnées du point d'ancrage sont définies en pixels.

Vous pouvez également sélectionner le coin d'ancrage du bitmap dans l'énumération ENUM_BASE_CORNER.

Pour l'étiquette bitmap, vous pouvez sélectionner la zone visible d'une image.

Exemple

Le script suivant crée plusieurs bitmaps sur le graphique. Des fonctions spéciales ont été développées pour créer et modifier les propriétés de l'objet graphique. Vous pouvez utiliser ces fonctions "telles quelles" dans vos propres applications.

//--- description
#property description "Le script crée un objet \"Etiquette Bitmap\" objet."
//--- affichage de la fenêtre des paramètres d'entrée lors du lancement du script
#property script_show_inputs
//--- paramètres d'entrée du script
input string            InpName="BmpLabel";               // Nom de l'étiquette
input string            InpFileOn="\\Images\\dollar.bmp"// Nom du fichier en mode On
input string            InpFileOff="\\Images\\euro.bmp";  // Nom du fichier en mode Off
input bool              InpState=false;                   // Etiquette Appuyée/Relâchée
input ENUM_BASE_CORNER  InpCorner=CORNER_LEFT_UPPER;      // Coin d'ancrage dans le graphique
input ENUM_ANCHOR_POINT InpAnchor=ANCHOR_CENTER;          // Type d'ancrage
input color             InpColor=clrRed;                  // Couleur de la bordure en surbrillance
input ENUM_LINE_STYLE   InpStyle=STYLE_SOLID;             // Style de trait en surbrillance
input int               InpPointWidth=1;                  // Taille du point à déplacer
input bool              InpBack=false;                    // Objet en arrière-plan
input bool              InpSelection=false;               // Mise en surbrillance pour le déplacement
input bool              InpHidden=true;                   // Caché dans la liste des objets
input long              InpZOrder=0;                      // Priorité du clic de souris
//+----------------------------------------------------------------------------------------------------+
//| Crée l'objet de l'Etiquette Bitmap                                                                 |
//+----------------------------------------------------------------------------------------------------+
bool BitmapLabelCreate(const long              chart_ID=0,               // identifiant du graphique
                       const string            name="BmpLabel",          // nom de l'étiquette
                       const int               sub_window=0,             // indice de la sous-fenêtre
                       const int               x=0,                      // coordonnée X
                       const int               y=0,                      // coordonnée Y
                       const string            file_on="",               // image en mode On
                       const string            file_off="",              // image en mode Off
                       const int               width=0,                  // Coordonnée X de la zone visible
                       const int               height=0,                 // Coordonnée Y de la zone visible
                       const int               x_offset=10,              // Décalage de la zone visible sur l'axe X
                       const int               y_offset=10,              // Décalage de la zone visible sur l'axe Y
                       const bool              state=false,              // appuyé/relâché
                       const ENUM_BASE_CORNER  corner=CORNER_LEFT_UPPER// coin du graphique pour l'ancrage
                       const ENUM_ANCHOR_POINT anchor=ANCHOR_LEFT_UPPER// type d'ancrage 
                       const color             clr=clrRed,               // couleur de la bordure en surbrillance
                       const ENUM_LINE_STYLE   style=STYLE_SOLID,        // Style de trait en surbrillance
                       const int               point_width=1,            // déplace la taille du point
                       const bool              back=false,               // en arrière-plan
                       const bool              selection=false,          // mise en surbrillance pour déplacer
                       const bool              hidden=true,              // caché dans la liste des objets
                       const long              z_order=0)                // priorité du clic de souris
  {
//--- réinitialise la valeur d'erreur
   ResetLastError();
//--- crée une étiquette bitmap
   if(!ObjectCreate(chart_ID,name,OBJ_BITMAP_LABEL,sub_window,0,0))
     {
      Print(__FUNCTION__,
            " : n'a pas réussi à créer l'objet \"Etiquette Bitmap\" ! Code d'erreur = ",GetLastError());
      return(false);
     }
//--- définit les images en mode On et Off
   if(!ObjectSetString(chart_ID,name,OBJPROP_BMPFILE,0,file_on))
     {
      Print(__FUNCTION__,
            ": impossible de charger l'image en mode On ! Code d'erreur = ",GetLastError());
      return(false);
     }
   if(!ObjectSetString(chart_ID,name,OBJPROP_BMPFILE,1,file_off))
     {
      Print(__FUNCTION__,
            " : impossible de charger l'image en mode Off ! Code d'erreur = ",GetLastError());
      return(false);
     }
//--- définit les coordonnées de l'étiquette
   ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
//--- définit la zone visible de l'omage ; si la largeur et la hauteur
//--- excèdent la largeur et la hauteur (respectivement) d'une image source,
//--- elle n'est pas dessinée ; dans le cas opposé,
//--- seule la partie correspondant à ces valeurs sera dessinée
   ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
   ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
//--- définit la partie d'une image à afficher dans la zone visible
//--- la partie par défaut est la partie supérieure gauche de l'image ; les valeurs permettent
//--- d'effectuer un décalage de cette zone pour afficher une autre partie de l'image
   ObjectSetInteger(chart_ID,name,OBJPROP_XOFFSET,x_offset);
   ObjectSetInteger(chart_ID,name,OBJPROP_YOFFSET,y_offset);
//--- définit le statut de l'étiquette (appuyé ou relâché)
   ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state);
//--- définit le coin du graphique, relativement auquel les coordonnées du point sont définies
   ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
//--- définit le type d'ancrage
   ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
//--- définit la couleur de la bordure lorsque le mode de mise en surbrillance de l'objet est activé
   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- définit le style de ligne de la bordure lorsque le mode de mise en surbrillance de l'objet est activé
   ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
//--- définit la taille du point d'ancrage pour déplacer un objet
   ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,point_width);
//--- affiche en premier plan (false) ou en arrière-plan (true)
   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- active (true) ou désactive (false) le mode de déplacement de l'étiquette par la souris
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
//--- masque (true) ou affiche (false) le nom de l'objet graphique dans la liste des objets
   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
//--- définit la priorité pour recevoir l'événement d'un clic de souris dans le graphique
   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- exécution réussie
   return(true);
  }
//+----------------------------------------------------------------------------------------------------+
//| Définit une nouvelle image pour l'étiquette de l'objet Bitmap                                      |
//+----------------------------------------------------------------------------------------------------+
bool BitmapLabelSetImage(const long   chart_ID=0,      // identifiant du graphique
                         const string name="BmpLabel"// nom de l'étiquette
                         const int    on_off=0,        // modificateur (On ou Off)
                         const string file="")         // chemin vers le fichier
  {
//--- réinitialise la valeur d'erreur
   ResetLastError();
//--- définit le chemin d'accès au fichier image
   if(!ObjectSetString(chart_ID,name,OBJPROP_BMPFILE,on_off,file))
     {
      Print(__FUNCTION__,
            " : impossible de charger l'image ! Code d'erreur = ",GetLastError());
      return(false);
     }
//--- exécution réussie
   return(true);
  }
//+----------------------------------------------------------------------------------------------------+
//| Déplace l'objet de l'Etiquette Bitmap                                                              |
//+----------------------------------------------------------------------------------------------------+
bool BitmapLabelMove(const long   chart_ID=0,      // identifiant du graphique
                     const string name="BmpLabel"// nom de l'étiquette
                     const int    x=0,             // coordonnée X
                     const int    y=0)             // coordonnée y
  {
//--- réinitialise la valeur d'erreur
   ResetLastError();
//--- déplace l'objet
   if(!ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x))
     {
      Print(__FUNCTION__,
            " : impossible de déplacer la coordonnée X de l'objet ! Code d'erreur = ",GetLastError());
      return(false);
     }
   if(!ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y))
     {
      Print(__FUNCTION__,
            " : impossible de déplacer la coordonnée Y de l'objet ! Code d'erreur = ",GetLastError());
      return(false);
     }
//--- exécution réussie
   return(true);
  }
//+----------------------------------------------------------------------------------------------------+
//| Change la taille de la zone visible (objet)                                                        |
//+----------------------------------------------------------------------------------------------------+
bool BitmapLabelChangeSize(const long   chart_ID=0,      // identifiant du graphique
                           const string name="BmpLabel"// nom de l'étiquette
                           const int    width=0,         // largeur de l'étiquette
                           const int    height=0)        // hauteur de l'étiquette
  {
//--- réinitialise la valeur d'erreur
   ResetLastError();
//--- modifie la taille de l'objet
   if(!ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width))
     {
      Print(__FUNCTION__,
            " : impossible de modifier la largeur de l'objet ! Code d'erreur = ",GetLastError());
      return(false);
     }
   if(!ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height))
     {
      Print(__FUNCTION__,
            " : impossible de modifier la heuteur de l'objet ! Code d'erreur = ",GetLastError());
      return(false);
     }
//--- exécution réussie
   return(true);
  }
//+--------------------------------------------------------------------------------+
//| Change les coordonnées du coin supérieur gauche de la zone visible             |
//+--------------------------------------------------------------------------------+
bool BitmapLabelMoveVisibleArea(const long   chart_ID=0,      // identifiant du graphique
                                const string name="BmpLabel"// nom de l'étiquette
                                const int    x_offset=0,      // Coordonnée X de la zone visible
                                const int    y_offset=0)      // Coordonnée Y de la zone visible
  {
//--- réinitialise la valeur d'erreur
   ResetLastError();
//--- change les coordonnées de l'objet de la zone visible
   if(!ObjectSetInteger(chart_ID,name,OBJPROP_XOFFSET,x_offset))
     {
      Print(__FUNCTION__,
            " : échec du changement de la coordonnée X de la zone visible ! Code d'erreur = ",GetLastError());
      return(false);
     }
   if(!ObjectSetInteger(chart_ID,name,OBJPROP_YOFFSET,y_offset))
     {
      Print(__FUNCTION__,
            " : échec du changement de la coordonnée Y de la zone visible ! Code d'erreur = ",GetLastError());
      return(false);
     }
//--- exécution réussie
   return(true);
  }
//+----------------------------------------------------------------------------------------------------+
//| Supprime l'objet "Etiquette Bitmap"                                                                |
//+----------------------------------------------------------------------------------------------------+
bool BitmapLabelDelete(const long   chart_ID=0,      // identifiant du graphique
                       const string name="BmpLabel"// nom de l'étiquette
  {
//--- réinitialise la valeur d'erreur
   ResetLastError();
//--- supprime l'étiquette
   if(!ObjectDelete(chart_ID,name))
     {
      Print(__FUNCTION__,
            " : impossible de supprimer l'objet \"Etiquette Bitmap\" ! Code d'erreur = ",GetLastError());
      return(false);
     }
//--- exécution réussie
   return(true);
  }
//+----------------------------------------------------------------------------------------------------+
//| Fonction de démarrage du script                                                                    |
//+----------------------------------------------------------------------------------------------------+
void OnStart()
  {
//--- taille de la fenêtre du graphique
   long x_distance;
   long y_distance;
//--- définit la taille de la fenêtre
   if(!ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0,x_distance))
     {
      Print("Impossible d'obtenir la largeur du graphique ! Code d'erreur = ",GetLastError());
      return;
     }
   if(!ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,0,y_distance))
     {
      Print("Impossible d'obtenir la hauteur du graphique ! Code d'erreur = ",GetLastError());
      return;
     }
//--- définit les coordonnées de l'étiquette bitmap
   int x=(int)x_distance/2;
   int y=(int)y_distance/2;
//--- définit la taille de l'étiquette et les coordonnées de la zone visible
   int width=32;
   int height=32;
   int x_offset=0;
   int y_offset=0;
//--- place l'étiquette bitmap au centre de la fenêtre
   if(!BitmapLabelCreate(0,InpName,0,x,y,InpFileOn,InpFileOff,width,height,x_offset,y_offset,InpState,
      InpCorner,InpAnchor,InpColor,InpStyle,InpPointWidth,InpBack,InpSelection,InpHidden,InpZOrder))
     {
      return;
     }
//--- redéssine le graphique et attend 1 seconde
   ChartRedraw();
   Sleep(1000);
//--- change la taille de la zone visible de l'étiquette dans la boucle
   for(int i=0;i<6;i++)
     {
      //--- change la taille de la zone visible
      width--;
      height--;
      if(!BitmapLabelChangeSize(0,InpName,width,height))
         return;
      //--- vérifie si l'exécution du script a été stoppée
      if(IsStopped())
         return;
      //--- redessine le graphique
      ChartRedraw();
      // 0.3 seconde de délai
      Sleep(300);
     }
//--- délai de 1 seconde
   Sleep(1000);
//--- change les coordonnées de la zone visible de l'étiquette dans la boucle
   for(int i=0;i<2;i++)
     {
      //--- change les coordonnées de la zone visible
      x_offset++;
      y_offset++;
      if(!BitmapLabelMoveVisibleArea(0,InpName,x_offset,y_offset))
         return;
      //--- vérifie si l'exécution du script a été stoppée
      if(IsStopped())
         return;
      //--- redessine le graphique
      ChartRedraw();
      // 0.3 seconde de délai
      Sleep(300);
     }
//--- délai de 1 seconde
   Sleep(1000);
//--- supprime l'étiquette
   BitmapLabelDelete(0,InpName);
   ChartRedraw();
//--- délai de 1 seconde
   Sleep(1000);
//---
  }