Ошибки, баги, вопросы - страница 1339

 
A100:
А зачем?
Для того, чтобы увидеть логику. 
 
Karputov Vladimir:
Для того, чтобы увидеть логику. 
Распечатал - результат описал выше
 
A100:
Распечатал - результат описал выше
Где распечатали? Где результат? Не вижу - вы забыли приложить распечатку до и после.
 
Karputov Vladimir:
Где распечатали? Где результат? Не вижу - вы забыли приложить распечатку до и после.

До перезагрузкиДо

После перезагрузки  После

 

Не отображается Заголовок при добавлении рисунка на форуме

 

Заполняю поле Заголовок. Рисунок отображается, а заголовок - нет

 
A100:

Разный порядок обхода графиков в профиле

Если в профиле к нескольким графикам добавить новый и переместить его допустим в середину

 

то при последующем перечислении графиков с помощью скрипта используя

он будет последним несмотря на то, что в середине

А если перезагрузить MT, то при новом перечислении он будет в середине как на рисунке

Получается разное поведение до и после перезагрузки. А где логика? 

Добавлен "EURAUD", "EURCAD", "EURUSD" и "NZDUSD" и активируем первый график - "EURAUD"

Шаг 1 

 

"NZDUSD" поставлен после "EURAUD"  и активируем первый график - "EURAUD"

Шаг 2 

 

После перезагрузки (активным остаётся первый график - "EURAUD")

Шаг 3 

 

Всё абсолютно логично. Только перед вызовом скрипта:

//+------------------------------------------------------------------+
//|                                                    ChartNext.mq5 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- переменные для идентификаторов графиков
   long currChart,prevChart=ChartFirst();
   int i=0,limit=100;
   Print("ChartFirst = ",ChartSymbol(prevChart)," ID = ",prevChart);
   while(i<limit)// у нас наверняка не больше 100 открытых графиков
     {
      currChart=ChartNext(prevChart); // на основании предыдущего получим новый график
      if(currChart<0) break;          // достигли конца списка графиков
      Print(i,ChartSymbol(currChart)," ID =",currChart);
      prevChart=currChart;// запомним идентификатор текущего графика для ChartNext()
      i++;// не забудем увеличить счетчик
     }
  }
//+------------------------------------------------------------------+

 

нужно внимательно выбирать активный график. Счёт следующего графика идёт от активного.
 
Karputov Vladimir:

Всё абсолютно логично.

А в чем заключается логика? Если до перезагрузки была одна последовательность 2-3-4-5, а после перезагрузки другая 2-5-3-4?
 
A100:
А в чем заключается логика? Если до перезагрузки была одна последовательность 2-3-4-5, а после перезагрузки другая 2-5-3-4?

До перезагрузки в профиль записываются графики в порядке их создания, то есть 1-2-3-4. Перед перезагрузкой профиль переписывается (в него заносится последняя редакция по перемещениям графиков, а именно 1-4-2-3). После перезагрузки графики заново рисуются (создаются) в соответствии с последней редакцией по перемещениям графиков, то есть 1-4-2-3. 

И вот после перезагрузки, раз графики были созданы в порядке 1-4-2-3, значит и ChartNext() будет возвращать именно такой порядок.

 
Karputov Vladimir:

До перезагрузки в профиль записываются графики в порядке их создания, то есть 1-2-3-4. Перед перезагрузкой профиль переписывается (в него заносится последняя редакция по перемещениям графиков, а именно 1-4-2-3). После перезагрузки графики заново рисуются (создаются) в соответствии с последней редакцией по перемещениям графиков, то есть 1-4-2-3.

Вопрос не в том как это на данный момент реализовано (можно реализовать и по-другому) а в том, что до и после перезагрузки (при прочих равных условиях) получается разный результат, а значит логика нарушена.
 
A100:
Вопрос не в том как это на данный момент реализовано (можно реализовать и по-другому) а в том, что до и после перезагрузки (при прочих равных условиях) получается разный результат, а значит логика нарушена.
Я считаю, что логика не нарушена, так как после загрузки терминала графики заново создаются и соответственно ChartNext() работает правильно. Но Вы можете создать заявку в сервисдеск - пожалуйста потом поделитесь ответом. 
Причина обращения: