MetaTrader 4 Build 529 beta publié avec un nouveau compilateur - page 114

 

Bild 557.

OBJ_LABEL se déplace vers le centre lorsqu'il est défini à partir de la fonction, une fois qu'il est mis en évidence, il se déplace vers le côté droit et recouvre partiellement la fenêtre du graphique. La reliure se trouve dans le coin supérieur droit. Fonction :

//+-------------------------------------------------------------------------------------------------+
//|  Параметры:                                                                            |
//|    nm - наименование объекта                                                 |
//|    tx - текст                                                                              |
//|    cl - цвет метки                                                                     |
//|    xd - координата X в пикселах                                              |
//|    yd - координата Y в пикселах                                              |
//|    cr - номер угла привязки (0 - левый верхний )                   |
//|                                               1 - правый верхний                   |
//|                                               2 - левый нижний                       |
//|                                               3 - правый нижний )                   |
//|    fs - размер шрифта             (9 - по умолчанию  )                   |
//+-------------------------------------------------------------------------------------------------+
void SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9) {
   if(ObjectFind(nm)<0) ObjectCreate(nm, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(nm, tx, fs, "Arial");
   ObjectSet(nm, OBJPROP_COLOR    , cl);
   ObjectSet(nm, OBJPROP_XDISTANCE, xd);
   ObjectSet(nm, OBJPROP_YDISTANCE, yd);
   ObjectSet(nm, OBJPROP_CORNER   , cr);
   ObjectSet(nm, OBJPROP_FONTSIZE , fs);
}

Cette fonction est appelée :

SetLabel("mf_metka",StringConcatenate("б/у Buy : ", DoubleToStr(urtpbuy,Digits)," Sell : ", DoubleToStr(urtpsell,Digits)), PaleGoldenrod, 30, 25, 1, 8);

Dans les versions précédentes (build 554 et antérieures), tout fonctionnait comme prévu, il n'y avait pas de sauts vers le centre puis vers la droite en dehors des limites de la fenêtre du graphique, tout était lié aux limites spécifiées.

 

Comportement incorrect des objets texte dans la sous-fenêtre reproduite. Nous allons le corriger.

Veuillez patienter.

 
artmedia70:

Maintenant, je vais juste cliquer sur eux et ils seront tous à leur place :


Merci. Reproduit et corrigé
 
Dans le 557ème build, toutes les coordonnées OBJ_EDIT ont été décalées de 1 pixel aux deux coordonnées. Les objets étaient exactement espacés, maintenant ils sont tous décalés un peu vers la droite et le bas.
De plus, il est impossible de déplacer OBJ_LABEL de manière programmatique. Cette fonction de la 5 fonctionne bien dans la 555, je n'ai pas changé mon code.

//+------------------------------------------------------------------+
//| Перемещает текстовую метку             |
//+------------------------------------------------------------------+
bool LabelMove(const long   chart_ID=0,   // ID графика
               const string name="Label", // имя метки
               const int    x=0,          // координата по оси X
               const int    y=0)          // координата по оси Y
  {
//--- сбросим значение ошибки
   ResetLastError();
//--- переместим текстовую метку 
   if(!ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x))
     {
      Print(__FUNCTION__,
            ": не удалось переместить X-координату метки! Код ошибки = ",GetLastError());
      return(false);
     }
   if(!ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y))
     {
      Print(__FUNCTION__,
            ": не удалось переместить Y-координату метки! Код ошибки = ",GetLastError());
      return(false);
     }
//--- успешное выполнение
   return(true);
  }
//+------------------------------------------------------------------+

Une fonction similaire fonctionne pour les boutons, pas pour OBJ_LABEL.

 

J'ai les mêmes problèmes avec les objets que Barbarian, en utilisant la même fonction pour OBJ_LABEL. J'en ai parlé ici hier matin. J'ai l'impression que l'origine est en dehors du graphique visible, pas sur le bord du graphique, mais sur le bord de la fenêtre. Si vous affichez OBJ_LABEL avec des coordonnées +1 à partir du coin inférieur droit, tout ira bien. Les objets situés dans la partie supérieure du graphique disparaissent également, ils doivent remonter. Si vous agrandissez le graphique en plein écran, la OBJ_LABEL ne se déplacera pas, mais restera au centre. Eh bien Barbarian l'a déjà décrit, mais on ne sait pas si vous l'avez réparé ou quoi.

 
pro_:

J'ai les mêmes problèmes avec les objets que Barbarian, en utilisant la même fonction pour OBJ_LABEL. J'en ai parlé ici hier matin. J'ai l'impression que l'origine est en dehors du graphique visible, pas sur le bord du graphique, mais sur le bord de la fenêtre. Si vous affichez OBJ_LABEL avec des coordonnées +1 à partir du coin inférieur droit, tout ira bien. Les objets situés dans la partie supérieure du graphique disparaissent également, ils doivent remonter. Si vous agrandissez le graphique en plein écran, la OBJ_LABEL ne se déplacera pas, mais restera au centre. Eh bien Barbarian l'a déjà décrit, mais ce n'est pas clair, l'avez-vous réparé ou quoi.


J'ai la même chose. Bild 557, je viens de le mettre à jour. J'ai un EA avec beaucoup d'informations affichées à l'écran, maintenant le graphique est juste un chaos.

Le texte entier(OBJ_LABEL) a une vie propre. Et il n'est pas clair comment les coordonnées sont sélectionnés, il se sent comme si aléatoirement.What est intéressant lors de la sélection de saut, mais absolument pas à leur place.

Tout allait bien dans la version 555.

 
Lorsque l'on travaille avec une clé USB, c'est-à-dire tout ce qui se trouve sur la clé USB, tous les comptes sont constamment réinitialisés .....
 

En plus de l'ancien contrôle des objets graphiques de style quatre, nous faisons un contrôle des objets de style cinq.

Malheureusement, il n'est pas exempt de défauts. Heureusement, de nombreux bogues ont été corrigés.

 
stringo:
En

plus de l'ancienne gestion d'objet graphique à quatre styles, nous faisons une gestion d'objet à cinq styles.

Malheureusement, ce n'est pas sans bogues

.

Heureusement, beaucoup de bugs ont déjà été corrigés.


Tout est clair. Personne, je pense, ne s'attend à ce que tout se passe totalement sans erreur. C'est juste que lorsque quelque chose qui fonctionne bien dans le 555 devient pire dans le 556 ou ne fonctionne pas du tout dans le 557, vous obtenez des voix indignées (la mienne y compris). Mais c'est bon. J'ai corrigé les boutons, merci. Cependant, le rendu des objets se fait toujours par nom, et non par ordre d'appel.
 

Hier, je me suis battu avec l'image bmp et je n'ai pas réussi à la charger sur la carte, et je ne sais pas encore si ce point fonctionne ou non ...

#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property  strict
string label_name="ted";
string euro ="\\Images\\button_grey_play.bmp";

//+------------------------------------------------------------------+
void OnTick()
  {
         //--- попробуем создать объект OBJ_BITMAP_LABEL
         ObjectCreate(label_name,OBJ_BITMAP_LABEL ,0,0,0);
         ObjectSet   (label_name,OBJPROP_CORNER   ,0    );
         ObjectSet   (label_name,OBJPROP_XDISTANCE,20  );
         ObjectSet   (label_name,OBJPROP_YDISTANCE,20   );
         ObjectSet   (label_name,OBJPROP_BMPFILE  ,euro );
  }