Saisissez le texte du sujet ici.ResourceCreate

Crée la ressource de l'image à la base de l'ensemble des données. Il y a 2 variantes de la fonction :
création d'une ressource à partir d'un fichier

bool  ResourceCreate(
   const string      resource_name,       // le nom de la ressource 
   const string      path                 // le chemin relatif du fichier
   );

Création d'une ressource à partir d'un tableau de pixels

bool  ResourceCreate(
   const string      resource_name,       // le nom de la ressource 
   const uint&       data[],              // un ensemble de données dans un tableau 
   uint              img_width,           // la largeur de l'image - la ressource créée 
   uint              img_height,          // la hauteur de l'image - la ressource créée
   uint              data_xoffset,        // le déplacement de l'angle gauche supérieur de l'image créée à l'horizontale à droite
   uint              data_yoffset,        // le déplacement de l'angle gauche supérieur de l'image créée selon la verticale en bas
   uint              data_width,          // la largeur totale de l'image basée sur un ensemble de données
   ENUM_COLOR_FORMAT color_format         //la largeur totale de l'image basée sur un ensemble de données
   );

Paramètres

resource_name

[in]  Nom de la ressource.

data[][]

[in]  Un tableau unidimensionnel ou bidimensionnel pour créer une image complète.

img_width

[in] La largeur de la zone rectangulaire de l'image en pixels pour la mise en forme de l'image. La valeur ne peut pas être supérieure data_width.

img_height

[in]  La hauteur de la zone rectangulaire de l'image en pixels pour la mise en forme de l'image.

data_xoffset

[in]  Le déplacement en pixels de la zone rectangulaire de l'image à l'horizontale sur la droite.

data_yoffset

[in]  Le déplacement en pixels de la zone rectangulaire de l'image à la verticale vers le bas.

data_width

[in]  Nécessaire seulement pour les tableaux unidimentionnels et signifie la largeur complète de l'image créée. Si data_width=0, il est supposé égal à img_width. Pour les tableaux bidimensionnels ce paramètre est ignoré et est accepté comme égal à la deuxième dimension du tableau data[].

color_format

[in]  Le format de la couleur issu de l'énumération ENUM_COLOR_FORMAT.

Valeur de Retour

true — en cas de succès, false sinon. Pour obtenir des informations sur l'erreur, il faut appeler la fonction GetLastError(). Les erreurs possibles sont :

  • 4015 — ERR_RESOURCE_NAME_DUPLICATED (les noms des ressourcesstatiqueet dynamique existent déjà),
  • 4016 — ERR_RESOURCE_NOT_FOUND (la ressource n'est pas trouvée),
  • 4017 — ERR_RESOURCE_UNSUPPORTED_TYPE (le type de la ressource n'est pas supporté),
  • 4018 — ERR_RESOURCE_NAME_IS_TOO_LONG (le nom de la ressource est trop long).

Note

Si la deuxième variante de la fonction est appelée pour créer la même ressource avec de différents paramètres de largeur, de hauteur et de décalage, une nouvelle ressource n'est pas créée de nouveau, mais la ressource existante est mise à jour.

La première variante de la fonction permet de charger les images et les sons des fichiers, la deuxième variante est destinée seulement à la création dynamique des images.

Les images doivent être au format BMP avec une profondeur de couleur de 24 ou 32 bits, le son peut être seulement au format WAV. La taille de fichier de la ressource ne peut pas être plus de 16 Mb.

ENUM_COLOR_FORMAT

Identificateur

Description

COLOR_FORMAT_XRGB_NOALPHA

La composante du canal alpha est ignorée

COLOR_FORMAT_ARGB_RAW

Les composants de la couleur ne sont pas traités par le terminal (ils doivent être correctement spécifiés par l'utilisateur)  

COLOR_FORMAT_ARGB_NORMALIZE

Les composants de la couleur sont traités par le terminal  

Exemple :

//+------------------------------------------------------------------+
//| Met à jour les données des ressources graphiques                 |
//+------------------------------------------------------------------+
void Update(const string res_name,const uint &pixel_data[],const uint width,const uint height,const bool redraw)
  {
//--- laisser si aucune dimension n'est passée
   if(width==0 || height==0)
      return;
//--- Met à jour les données des ressources et redessine le graphique
   if(ResourceCreate(res_name,pixel_data,width,height,0,0,0,COLOR_FORMAT_ARGB_NORMALIZE) && redraw)
      ChartRedraw();
  }
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- déclare les paramètres de la ressource graphique
   string rc_name="Resource";
   uint   rc_width=100;
   uint   rc_height=100;
   uint   rc_data[];
   uint   rc_size=rc_width*rc_height;
 
   ResetLastError();
//--- définit la taille du tableau de pixels
   if(ArrayResize(rc_data,rc_size)!=rc_size)
     {
      Print("ArrayResize() failed. Error code: ",GetLastError());
      return;
     }
//--- remplit le tableau de pixels avec une couleur transparente et crée une ressource graphique basée sur celle-ci
   ArrayInitialize(rc_data,0x00FFFFFF);
   if(!ResourceCreate(rc_name,rc_data,rc_width,rc_height,0,0,0,COLOR_FORMAT_ARGB_NORMALIZE))
     {
      Print("ResourceCreate() failed. Error code: ",GetLastError());
      return;
     }
   Print("Size of created recource array: ",rc_data.Size());
 
//--- vérifie la ressource graphique créée.
//--- récupère l'heure et le prix de la barre actuelle
   MqlTick tick={};
   if(!SymbolInfoTick(Symbol(),tick))
     {
      Print("SymbolInfoTick() failed. Error code: ",GetLastError());
      return;
     }
//--- crée l'objet Bitmap en utilisant les coordonnées du dernier prix et de l'heure du tick
   string obj_name="Bitmap";
   if(!ObjectCreate(0,obj_name,OBJ_BITMAP,0,tick.time,tick.bid))
     {
      Print("ObjectCreate() failed. Error code: ",GetLastError());
      return;
     }
//--- définit la largeur et la hauteur de l'objet bitmap créé égales à la largeur et à la hauteur de la ressource graphique.
//--- définit le point d'ancrage de l'objet en son centre.
   ObjectSetInteger(0,obj_name,OBJPROP_XSIZE,rc_width);
   ObjectSetInteger(0,obj_name,OBJPROP_YSIZE,rc_height);
   ObjectSetInteger(0,obj_name,OBJPROP_ANCHOR,ANCHOR_CENTER);
//--- spécifie la ressource graphique créée précédemment pour l'objet bitmap en tant que fichier image
//--- dans ce cas, afin d'indiquer le nom de la ressource graphique utilisée, il faut ajouter "::" avant son nom
   ObjectSetString(0,obj_name,OBJPROP_BMPFILE,"::"+rc_name);
   
//--- définit la couleur DodgerBlue avec une transparence de 200
   uint clr=ColorToARGB(clrDodgerBlue,200);
//--- remplit tout le tableau de pixels de la ressource graphique avec la couleur définie
   ArrayInitialize(rc_data,clr);
//--- met à jour les données de la ressource graphique
   Update(rc_name,rc_data,rc_width,rc_height,true);
  }

Voir aussi

Ressources, ObjectCreate(), ObjectSetString(), OBJPROP_BMPFILE