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

Artyom Trishkin #:

Можете предоставить минимальный код, воспроизводящий описанный баг? Чтобы можно было скомпилировать и запустить.

Проще всего из моего предыдущего поста - файлы Controls.mq5 и включаемый в него ControlsDialog.mqh 
уже находятся на вашем компе, в папке терминала
...\MQL5\Experts\Examples\Controls

Открыть ControlsDialog.mqh и в строке 355 в операторе for заменить 5 на 8, 
и после оператора for добавить 2 строки:

//--- fill out with strings
   for(int i=0;i<8;i++)         // строка 355
      if(!m_check_group.AddItem("Item "+IntegerToString(i),1<<i))
         return(false);
   m_check_group.Check(0,1<<0); // ставит галку в первом видимом чек-боксе
   m_check_group.Check(6,1<<6); // !!! вызывает out of range
//--- succeed

Скомпилировать Controls.mq5 и кинуть на график.

И еще, самое важное в исправлении этого бага - не просто избежать попадания на невидимый бокс,
а чтобы галки без проблем програмно ставились в невидимых боксах!

Только тогда панель будет работать функционально полно:

Запустил советник, открыл панель, руками выбрал настройки, закрыл панель, сет настроек сохранился.
При следующем запуске сет настроек вызвался програмно и должен быть автоматически отображен на панели при ее вызове.

То есть должна быть возможность програмно ставить галки в скролируемых списках на всю глубину. 

А иначе можно обойтись без панели, просто входными параметрами.

A100 #:

Действую не по стандартам чужого языка, а строго по Документации MQL: разбиваю длинный макрос обратным слешем на несколько строк - как это указано в Документации именно MQL: Если запись директивы получается слишком большой, то её можно разбить на несколько строк с помощью обратного слеша '\', в таком случае следующая строка будет считаться продолжением записи директивы.

Использую обратный слеш повсеместно (пример). Опыт есть, так сказать.


Сейчас можно взять любой чужой макрос, скопировать его и сдвинуть на любое количество пробелов. И его суть не изменится.

Вы же предлагаете ради "совместимости" с говно-практиками кодинга изменить это поведение. Когда скопировал макрос, разместил его, как удобно согласно своему стилю, а он перестал работать. И создал трудноуловимую ошибку, который найти крайне сложно.


В общем, вижу в этом больше вреда, чем пользы. Больше не вижу смысла говорить по этой теме.

fxsaber #:

Использую обратный слеш повсеместно (пример). Опыт есть, так сказать.


Сейчас можно взять любой чужой макрос, скопировать его и сдвинуть на любое количество пробелов. И его суть не изменится.

Вы же предлагаете ради "совместимости" с говно-практиками кодинга изменить это поведение. Когда скопировал макрос, разместил его, как удобно согласно своему стилю, а он перестал работать. И создал трудноуловимую ошибку, который найти крайне сложно.


В общем, вижу в этом больше вреда, чем пользы. Больше не вижу смысла говорить по этой теме.

А не нужно бездумно сдвигать. В Python например каждый сдвиг - смысловой и может кардинально изменить выполнение программы. Наверное не дураки это придумали, и с MQL его интегрировали

С поведением форматирования макросов вопрос закрыт. 
Какая то лютая ошибка появилась в последнем build 3808 (ненароком обновился), не разобрался пока где, но думаю Разработчики быстрее сами найдут, если вспомнят что там меняли
Почему после последнего обновления не отображаются открытые позиции на графике?
Yauhen Zhuk #:
Почему после последнего обновления не отображаются открытые позиции на графике?

Отображаются.
Билд 3802 -

Билд 3802

Sergey Golubev #:

Отображаются.
Билд 3802 -

У меня билд 3785  для андроид 
Yauhen Zhuk #:
Спасибо. Не могли бы вы уточнить, что это (билд) такое? И это вроде версия для ПК, а мне нужна для андроид. Спасибо.
Для ПК, билд 3802.
Для Андроид не смотрел.
Sergey Golubev #:
Для ПК, билд 3802.
Для Андроид не смотрел.

Для ПК вот уже почти неделю билд 3808.