Чудеса терминала МТ4. - страница 3

 

Никакие true и false эта функция не возвращает.

 
Eugeni Neumoin:

Не понимаю, зачем Вы это пишите?

К сведению. Программа разрабатывается с 2005 года. В ней на текущий момент 53835 строк. Ее через маркет купили несколько десятков человек. Кстати, меня Рашид попросил разместить ее в маркете. Ранее она была просто в свободном доступе. И не было цели ее продавать. Программой пользуются несколько десятков тысяч человек по всему миру.

==

Прошу далее не раздражать  пустыми сообщениями.

====

Возвращает при нахождении объекта:

Все происходит в окне номер 0. Поэтому возврат значения любого номера окна будет означать true. И в случае ненахождения объекта будет возврат false.

Вариант написания if (ObjectFind(name_znak)==0) дает аналогичный результат с ошибкой.

Я хотел чтобы вы сами смогли прочесть, но вам уже ответили. Почитать об этом можно тут.

Что-то мне совсем не верится, чтобы Рашид просил разместить такое чудо в маркете.

Для особо одарённых: false это 0, всё остальное, -1 в том числе будет true. Вы получили -1 и считаете, что объект найден. Оттого и размер вашего кода 100500 строк…
ObjectFind - Графические объекты - Справочник MQL4
ObjectFind - Графические объекты - Справочник MQL4
  • docs.mql4.com
ObjectFind - Графические объекты - Справочник MQL4
 
Alexey Viktorov:

А может проще почитать документацию? Наверное я задал вопрос не совсем корректно, но я имел ввиду что должна возвращать функция ObjectFind()

Разве не зная что функция должна возвращать это не написание «как попало»?

Вы хотите на форуме получить готовое решение без попытки напрячь мозги?

Вариант   if (ObjectFind(...)==0)  используется во всем тексте программы.

Вариант    if (ObjectFind(name_znak)) был только в месте возникновении ошибки. Но ранее это работало на протяжении долгого времени. 

И ошибка стала возникать только когда включал флаг удаления объектов для ончартевент. И то не всегда. Хотя и в этом случае при нахождении объекта возвращалось true. В случае ненахождения объекта возвращалось false. 

Исправил на  if (ObjectFind(name_znak)==0). Пусть будет правильное написание. Программа огромная.  Ошибку допустить легко. Ранее с данным (   if (ObjectFind(name_znak))  ) написанием работала.

 
Eugeni Neumoin:

Вариант   if (ObjectFind(...)==0)  используется во всем тексте программы.

Вариант    if (ObjectFind(name_znak)) был только в месте возникновении ошибки. Но ранее это работало на протяжении долгого времени. 

И ошибка стала возникать только когда включал флаг удаления объектов для ончартевент. И то не всегда. Хотя и в этом случае при нахождении объекта возвращалось true. В случае ненахождения объекта возвращалось false. 

Исправил на  if (ObjectFind(name_znak)==0). Пусть будет правильное написание. Программа огромная.  Ошибку допустить легко. Ранее с данным (   if (ObjectFind(name_znak))  ) написанием работала.

Ну… если вам проще вывернуться наизнанку, чем признать ошибку……… пусть будет что работала…

 
Alexey Viktorov:

Ну… если вам проще вывернуться наизнанку, чем признать ошибку……… пусть будет что работала…

Ошибку признаю только после проверки. Посмотрю, как будет далее работать. Извиняюсь, если что-то неправильно понял.

Самое простое было просто сказать, что надо написать так  if (ObjectFind(name_znak)==0) и не отсылать к документации. Описки случаются у всех. 

Ранее все работало, долго работало. Ошибка выплыла, когда в OnChartEvent стал добавлять новое... 

====

Тему можно закрывать.

 
Alexey Viktorov:
Скажите, а что возвращает функция ObjectFind()? Или вы считаете что можно писать как попало и ждать положительного результата?

Выражение " можно писать как попало" вызвало ответную реакцию.

Не нравится, когда мне начинают хамить. Кто к нам с мечом - от меча и погибнет. Стандартная реакция после фильма "Александр Невский".

 Описки случаются у всех.