Бета-версия платформы MetaTrader 4 build 1145 - страница 3

 
Не знаю, как воспроизвести. Иногда metaeditor.exe постоянно полностью потребляет одно ядро. Хотя ничего не делается.
 

Форум по торговле, автоматизированные торговые системы и тестирование торговых стратегий

Объект всегда нажимает приоритет на прямоугольную метку?

honest_knave , 2014.11.10 16:52

Я заметил, что Rectangle Labels получают приоритет клика над ярлыками , независимо от назначения z-порядка. Это поведение преднамеренное?

Это можно увидеть, создав метку прямоугольника с z-порядком 0, которая частично перекрывает метку с z-порядком 100.

При нажатии на текст «So» не поверх метки прямоугольника:

При нажатии на текст «Текст» над меткой прямоугольника:

Таким образом, высший z-порядок метки игнорируется при перекрытии метки прямоугольника.

 #property  strict
#property  indicator_chart_window

int OnInit () {
   string name= "Rectangle Label" ;
   ObjectCreate ( 0 ,name, OBJ_RECTANGLE_LABEL , 0 , 0 , 0 );
   ObjectSetInteger ( 0 , name, OBJPROP_BGCOLOR ,   clrWhite );
   ObjectSetInteger ( 0 , name, OBJPROP_XDISTANCE , 100 );
   ObjectSetInteger ( 0 , name, OBJPROP_YDISTANCE , 100 );
   ObjectSetInteger ( 0 , name, OBJPROP_XSIZE ,     50 );
   ObjectSetInteger ( 0 , name, OBJPROP_YSIZE ,     50 );
   ObjectSetInteger ( 0 , name, OBJPROP_ZORDER ,   0 );   
   
   name= "Label" ;
   ObjectCreate ( 0 ,name, OBJ_LABEL , 0 , 0 , 0 );
   ObjectSetInteger ( 0 , name, OBJPROP_COLOR ,     clrMagenta );
   ObjectSetInteger ( 0 , name, OBJPROP_XDISTANCE , 80 );
   ObjectSetInteger ( 0 , name, OBJPROP_YDISTANCE , 110 );
   ObjectSetString ( 0 , name, OBJPROP_TEXT ,     "Some Text" );
   ObjectSetInteger ( 0 , name, OBJPROP_ZORDER ,   100 );
   return ( INIT_SUCCEEDED );}

void OnDeinit ( const int reason) {
   ObjectDelete ( 0 , "Rectangle Label" );
   ObjectDelete ( 0 , "Label" );}

int OnCalculate ( const int rates_total,     const int prev_calculated,     const datetime &time[],
                 const double &open[],     const double &high[],         const double &low[],
                 const double &close[],     const long &tick_volume[],     const long &volume[],
                 const int &spread[]) {
   return (rates_total);}

void OnChartEvent ( const int id, const long & lparam, const double & dparam, const string & sparam) {
   if (id== CHARTEVENT_OBJECT_CLICK ) {
       long z= ObjectGetInteger ( 0 ,sparam, OBJPROP_ZORDER );
       printf ( "I am %s, my z-order is %i" ,sparam,z);}}
Небольшая ошибка MT4 все еще присутствует в сборке 1146.
 
Горизонтальная линия всплывающая подсказка не дает правильную цену.
 
Alain Verleyen:
Горизонтальная линия всплывающая подсказка не дает правильную цену.

Подсказка там, на какой цене находиться мышь. Всё правильно)

 
Vitaly Muzichenko :

Подсказка там, на какой цене находиться мышь. Всё правильно)

Это не происходит на MT5. Это не большая вещь, но это все еще ошибка.
 
Alain Verleyen:
Это не происходит на MT5. Это не большая вещь, но это все еще ошибка.

Проверил, это ошибка.

 
Vitaly Muzichenko:

Проверил, это ошибка.

Которую уже вряд-ли будут исправлять. Некоторое время назад и в МТ5 тоже было так.

 
Обновление до 1146.      После компиляции перестают  рисовать индикаторы, где не указана функция SetIndexStyle.  3 часа убил. И штук 20 хламовых индюков,  пока дошло. А ведь наверняка вылезет что-то ещё.   Оочень матерюсь.
 
Alex969:
Обновление до 1146.      После компиляции перестают  рисовать индикаторы, где не указана функция SetIndexStyle.  3 часа убил. И штук 20 хламовых индюков,  пока дошло. А ведь наверняка вылезет что-то ещё.   Оочень матерюсь.

Проверим.

Можете привести пример кода?

 
Renat Fatkhullin:

Проверим.

Можете привести пример кода?

Раньше достаточно было через '#property' указать, а сейчас без 'SetIndexStyle' не отрисовывается.