Новая версия платформы MetaTrader 4 build 1353 - страница 11

 
Vitaly Muzichenko #:

Менять значения на лету.

В вашем примере привязаны к одному буферу, в моём примере буферов может быть от 1 до N и каждому нужно менять цвет, ширину, иногда стиль.

На лету, в смысле, программно? 

Если программно, то это просто делается. И давно работает в МТ4. Для любого количества буферов и без задействования 

#property 
 

При копировании сложных типов данных не происходит уменьшение размера памяти для массивов:

struct Slave
{  
   int    arrnValue[];
};

struct Master
{
   Slave       stSlave;   
};

void OnStart()
{
   Master stInstance1, stInstance2;
   
   ArrayResize(stInstance1.stSlave.arrnValue, 2);
   stInstance1.stSlave.arrnValue[0] = 1;
   stInstance1.stSlave.arrnValue[1] = 2;

   ArrayResize(stInstance2.stSlave.arrnValue, 1);
   stInstance2.stSlave.arrnValue[0] = 3;
   
   
   stInstance1 = stInstance2;
   
   for (int i = ArraySize(stInstance1.stSlave.arrnValue) - 1; i >= 0; --i)
      Print("Index: ", i, ", value: ", stInstance1.stSlave.arrnValue[i]);
}

Ожидался результат как в МТ5:

Index: 0, value: 3

Но в МТ4 результат такой:

Index: 1, value: 2
Index: 0, value: 3

Выходом является перегрузка оператора присваивания в Slave, но раз в МТ4 и МТ5 поведение разное, то напрашивается вывод об ошибке именно в МТ4.

 
Ihor Herasko #:

При копировании сложных типов данных не происходит уменьшение размера памяти для массивов:

Спасибо, серьезное отличие. Можно влететь на кроссплатформенности.

 
Valeriy Yastremskiy #:
Жёстко с минимальной версией.
Сейчас запущена новая версия для андроидов 1357. Просьба к разработчикам, пожалуйста, верните кнопку с таймфреймами на панель сверху. Совершенно неудобно стало пользоваться платформой. Кликов стало в два раза больше, ещё и этот круг каждый поворачивается, пока сообразишь куда нажимать много времени уходит
Причина обращения: