MetaTrader 4 Build 529测试版发布,带有新的编译器 - 页 114

 

图片557。

OBJ_LABEL 从函数中插入时,会移动到中央,一旦被选中,就会移动到右侧,并部分离开图表窗口。装订的位置在右上角。职能。

//+-------------------------------------------------------------------------------------------------+
//|  Параметры:                                                                            |
//|    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);
}

这个函数被调用。

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

在以前的版本554和更早的版本中,一切都在正常工作,没有在图表窗口的边界外跳到中央然后跳到右边,一切都被绑定在指定的边界上。

 

重现子窗口中文本对象的不正确行为。我们将纠正它。

请等待。

 
artmedia70:

现在我只要点击它们,它们就都在自己的位置上了。


谢谢你。转载和更正
 
在第557次构建中,所有OBJ_EDIT坐标在两个坐标上都偏移了1个像素。这些物体原来是完全间隔的,现在它们都向右和下方移了一点。
另外,不可能以编程方式移动OBJ_LABEL。5中的这个函数在555中运行良好,我没有改变我的代码。

//+------------------------------------------------------------------+
//| Перемещает текстовую метку             |
//+------------------------------------------------------------------+
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);
  }
//+------------------------------------------------------------------+

类似函数对按钮有效,对OBJ_LABEL无效。

 

我和Barbarian有同样的问题,使用同样的函数来做OBJ_LABEL 的对象。我昨天早上在这里写了这篇文章。我感觉原点在可见图形之外,不是在图形的边缘,而是在窗口的边缘。如果你用右下角的坐标+1来显示OBJ_LABEL,一切都会好起来。图表上边缘的物体也消失了,它们必须往上走。如果你把图表放大到全屏,OBJ_LABEL不会移动,而是在中间。嗯,野蛮人已经描述过了,但不清楚你是否修复了它还是什么。

 
pro_:

我和Barbarian有同样的问题,使用同样的函数来做OBJ_LABEL的对象。我昨天早上在这里写了这篇文章。我感觉原点在可见图形之外,不是在图形的边缘,而是在窗口的边缘。如果你在显示OBJ_LABEL时,从右下角的坐标+1,一切都会好起来。图表上边缘的物体也消失了,它们必须往上走。如果你把图表放大到全屏,OBJ_LABEL就不会移动,而是在中心位置。好吧,野蛮人已经描述过了,但不清楚,你是修复了还是什么。


我也有同样的情况。图片557,刚刚更新。我有一个EA,屏幕上显示了很多信息,现在的图表只是一片混乱。

整个文本(OBJ_LABEL)有其自身的生命。而且不清楚坐标是如何选择的,感觉好像是随机的。选择跳跃时有什么有趣的,但绝对不是在他们的位置上。

在构建555中一切正常。

 
当使用闪存盘工作时,即闪存盘上的所有东西,所有的账户都不断被重置....。
 

伴随着老的、四风格的图形对象控制,我们正在做五风格的对象控制

不幸的是,它并非没有缺陷。幸运的是,很多bug已经被修复。

 
stringo:
伴随着

旧的四,我们正在做一个五式的对象管理。

不幸的是,它不是没有

错误的。

幸运的是,很多bug已经被修复。


,一切都很清楚。我想,没有人期望一切都能完全不出错。只是,当在555中运作良好的东西在556中变得更糟,或者在557中完全不起作用时,你会得到愤慨的声音(包括我的)。但这没关系。我已经修复了这些按钮,谢谢你。然而,对象的渲染仍然是按名称,而不是按调用顺序。
 

昨天我在bmp图片上挣扎,没能把它加载到图表上,我还不知道这一点是否有效 ...

#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 );
  }