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

 
sanyooooook:

во какое дело:

...

Мой результат выше.

P.S. Хотя у тебя, как-то всё сложнее для воспроизведения. Чуть позже попробую.

 

а так:

1. открываю новый график

2. создаю объект

3. копирую имя объекта из кода

4. меняю имя объекта копипастом

5. запускаю скрипт:

void OnStart()
  {
//---
   Print(ObjectFind(0,"UP_Line"));
   if(ObjectFind(0,"UP_Line")==0)
   {
      Print(3);
      //Pos_Buy=ObjectGetValueByShift("UP_Line",0);
   }   
  }

6. получаю:

ЭВРИКА!!!

 

а раньше(в старых билдах) имена "UP_Line" и "UP_line" могли быть равны друг другу

 
sanyooooook:

оказывается раньше имена:

UP_Line и UP_line спокойно были равны друг другу.

Так в этом что ли проблема была?

Используй вот это в MQL4:

#property strict
 
tol64:

Так в этом что ли проблема была?

Используй вот это в MQL4:

код старый, не менял в нём ни чего.

всё работал хорошо, а вот сегодня вылезло

 
tol64:

Так в этом что ли проблема была?

Используй вот это в MQL4:

и это не выявило ошибок, т.к. ошибка не синтаксическая, а логическая, точнее причина была в разных именах объектов ("Line" и "line"), которые раньше почему-то были равны.
 
sanyooooook:
и это не выявило ошибок, т.к. ошибка не синтаксическая, а логическая, точнее причина была в разных именах объектов ("Line" и "line"), которые раньше почему-то были равны.
Значить имена объектов нужно хранить в переменных. )))
 
tol64:
Значить имена объектов нужно хранить в переменных. )))

это не спасает от такой ошибки )

ЗЫ: хотя нет, спасает,

но тогда, когда писался этот код, на это не обращалось внимание.

 

Ошибка в документации или реализации символьных констант

https://www.mql5.com/ru/docs/basis/types/integer/symbolconstants 

"Символьные константы
Любой одиночный символ, заключенный в одинарные кавычки, или шестнадцатеричный ASCII-код символа в виде '\x10' является символьной константой и имеет тип ushort."

template<typename T>
string typeof( T ) { return ( typename( T ) ); }

void OnStart()
{
        Print( typeof( '\x10' ) );
}

Результат: short

Указанное имеет значение, поскольку f( '\x10' ) при наличии перегрузки приводит к вызову f( short ) вместо f( ushort ) - фактически вызывается другой метод\функция

Кроме того как аргументом, так и результатом встроенных строковых функции является ushort

Документация по MQL5: Основы языка / Типы данных / Целые типы / Символьные константы
Документация по MQL5: Основы языка / Типы данных / Целые типы / Символьные константы
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Символьные константы - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Билд 986

На свёрнутых Инструментах (Ctrl-T) исчезла полоска, на которой написано Баланс/Средства/Маржа (двойной клик по которой открывал панель).

Теперь свёрнутые выглядят так


Растянуть вверх за край можно, развернуть даблкликом по вкладке нет, только свернуть.

Причина обращения: