А в каких случаях listOfTrendLines.Add может не сработать? Просто мне они не известны. Хоть я и придерживаюсь того принципа, где "лишних проверок не бывает" (с). Но можно гипотетически предположить, что это может дойти до паранойи. Ладно еще метод Create класса графического объекта может не сработать. Но он всегда отрабатывает чётко, если код написан грамотно и программа дает объектам нормальные имена. Но допустим, в его использовании могут быть косяки... Но как метод Add может вернуть фальшь в нормальных условиях. Или функция ArrayResize (которая, к стати, используется в данном методе), как она может вернуть результат отличный от new_size. Разве что только памяти не хватит... :) Но где вы видели современную систему с дефицитом памяти?!... :)
Vps обычно.
P.s. мне кажется ты не справедливо с Алексеем обошолся все таки именно он дал первый и правильный совет и как бы то ни было именно он тебе помог
Оказалось использовать ObjectDeleteAll в моём проекте проще простого. Для удаления всех объектов достаточно было поменять префикс всего 3 раза и, соответственно, 3 раза вызвать ObjectDeleteAll. И, в результате, график чист. В языке MQL5 много тонкостей. Но вместе с тем он является очень продуманным.
Спасибо всем, кто оказывал мне помощь в решении данной проблемы!
Интересно, а вы посмотрели документацию или просто взяли описание функции из моего сообщения?
Я так подозреваю, что у вас графические объекты это только трендовые. Если это так, то зачем вам префикс? Там ведь есть ещё удаление по типу объекта
intObjectsDeleteAll(
long chart_id, // идентификатор графикаint sub_window=-1, // индекс окнаint type=-1// тип объекта для удаления
);
соответственно ничего не надо было менять в проекте, а просто написать
Это лишь частный случай. Префикс - общий и универсальный. При том, что удаление всех трендовых линий коснётся и не принадлежащих программе объектов.
Согласен. chart_id: 0 (текущий график). Значит только на этом графике. А если там будут другие программы, то можно добавить ID к каждому имени объекта и вызвать ObjectsDeleteAllс соответствующим префиксом и функция ничего путать не будет. Вот, почему я говорил в сообщениях выше, что именование объектов у меня сложное и мне нужно было подумать, прежде чем использовать данную функцию. Но Алексей на меня обиделся, еще и его друг... Зря!
Это почему? chart_id: 0 (текущий график). Значит только на этом графике. А если там будут другие программы, то есть еще такое понятие, как ID. Если его добавлять к каждому имени объекта, то функция ObjectsDeleteAll ничего путать не будет. Вот, почему я говорил в сообщениях выше, что именование объектов у меня сложное и мне нужно было подумать, прежде чем использовать данную функцию. Но Алексей на меня обиделся, еще и его друг... Зря!
Мозг-то включите перед тем как ответить :)
ID, вписанный в имя объекта - это и есть некий префикс, по идентификации которого и удаляются объекты программы.
А теперь поглядите на какой код я писал свой ответ Алексею, и как его код удалит только нужные вам объекты, в которых НЕ будет вписан идентификатор, и который оставит на графике "чужие" объекты, не принадлежащие программе?
Ответ мой был Алексею на этот код с таким сообщением Алексея:
соответственно ничего не надо было менять в проекте, а просто написать
ID, вписанный в имя объекта - это и есть некий префикс, по идентификации которого и удаляются объекты программы.
А теперь поглядите на какой код я писал свой ответ Алексею, и как его код удалит только нужные вам объекты, в которых НЕ будет вписан идентификатор, и который оставит на графике "чужие" объекты, не принадлежащие программе?
Ответ мой был Алексею на этот код с таким сообщением Алексея:
Отредактировал. Вы правильно ответили. Это я немного перепутал. Другое хотел сказать.
Не дождёшься… Я только за справедливость. Не надо выставлять свои огрехи, а они бывают у всех и у меня тоже, за баги терминала.
Есть один свежий пример: Некоторое время назад я с удовольствием пользовался такой примочкой, правый клик на переменной, «Перейти к определению» и чтобы вернуться на ту самую переменную я нажимал клавишь на крыске «Назад». Но вот сегодня заметил что это перестало работать. Причина??? Вчера обновился до 2530… Я даже высказался в адрес разработчиков нецензурной лексикой, но вдруг вспомнил что ещё и крыску пришлось поменять. Открыл МЕ 2474 и опа………………… и там не работает. А если-бы мне сразу пришла СМС'ка в голову написать всё что я подумал о разработчиках? Как-бы это выглядело.
Это я к тому, что не надо спешить, прежде чем писать о багах, поищите огрехи в своём коде.
А в каких случаях listOfTrendLines.Add может не сработать? Просто мне они не известны. Хоть я и придерживаюсь того принципа, где "лишних проверок не бывает" (с). Но можно гипотетически предположить , что это может дойти до паранойи. Ладно еще метод Create класса графического объекта может не сработать. Но он всегда отрабатывает чётко, если код написан грамотно и программа дает объектам нормальные имена. Но допустим, в его использовании могут быть косяки... Но как метод Add может вернуть фальшь в нормальных условиях. Или функция ArrayResize (которая, к стати, используется в данном методе), как она может вернуть результат отличный от new_size. Разве что только памяти не хватит... :) Но где вы видели современную систему с дефицитом памяти?!... :)
Подставил функцию ObjectDeleteAll сначала в свой пример:
Затем в индикатор.
Оказалось использовать ObjectDeleteAll в моём проекте проще простого. Для удаления всех объектов достаточно было поменять префикс всего 3 раза и, соответственно, 3 раза вызвать ObjectDeleteAll. И, в результате, график чист. В языке MQL5 много тонкостей. Но вместе с тем он является очень продуманным.
Спасибо всем, кто оказывал мне помощь в решении данной проблемы!
Интересно, а вы посмотрели документацию или просто взяли описание функции из моего сообщения?
Я так подозреваю, что у вас графические объекты это только трендовые. Если это так, то зачем вам префикс? Там ведь есть ещё удаление по типу объекта
соответственно ничего не надо было менять в проекте, а просто написать
)))))))))))))Vps обычно.
И в чём же несправедливость стесняюсь спросить?... По моему, я нормально отношусь к Алексею. А ты что его родственник?
Интересно, а вы посмотрели документацию или просто взяли описание функции из моего сообщения?
Я так подозреваю, что у вас графические объекты это только трендовые. Если это так, то зачем вам префикс? Там ведь есть ещё удаление по типу объекта
соответственно ничего не надо было менять в проекте, а просто написать
)))))))))))))Это лишь частный случай. Префикс - общий и универсальный. При том, что удаление всех трендовых линий коснётся и не принадлежащих программе объектов.
Интересно, а вы посмотрели документацию или просто взяли описание функции из моего сообщения?
Я так подозреваю, что у вас графические объекты это только трендовые. Если это так, то зачем вам префикс? Там ведь есть ещё удаление по типу объекта
соответственно ничего не надо было менять в проекте, а просто написать
)))))))))))))Конечно же, я смотрел документацию. И да, всё можно! Но я сделал так... И что, это не работает или каким-то образом мешает?...
А в проекте, там всё куда сложнее. Говорил выше об этом...Это лишь частный случай. Префикс - общий и универсальный. При том, что удаление всех трендовых линий коснётся и не принадлежащих программе объектов.
Согласен. chart_id: 0 (текущий график). Значит только на этом графике. А если там будут другие программы, то можно добавить ID к каждому имени объекта и вызвать ObjectsDeleteAll с соответствующим префиксом и функция ничего путать не будет. Вот, почему я говорил в сообщениях выше, что именование объектов у меня сложное и мне нужно было подумать, прежде чем использовать данную функцию. Но Алексей на меня обиделся, еще и его друг... Зря!
Это почему? chart_id: 0 (текущий график). Значит только на этом графике. А если там будут другие программы, то есть еще такое понятие, как ID. Если его добавлять к каждому имени объекта, то функция ObjectsDeleteAll ничего путать не будет. Вот, почему я говорил в сообщениях выше, что именование объектов у меня сложное и мне нужно было подумать, прежде чем использовать данную функцию. Но Алексей на меня обиделся, еще и его друг... Зря!
Мозг-то включите перед тем как ответить :)
ID, вписанный в имя объекта - это и есть некий префикс, по идентификации которого и удаляются объекты программы.
А теперь поглядите на какой код я писал свой ответ Алексею, и как его код удалит только нужные вам объекты, в которых НЕ будет вписан идентификатор, и который оставит на графике "чужие" объекты, не принадлежащие программе?
Ответ мой был Алексею на этот код с таким сообщением Алексея:
соответственно ничего не надо было менять в проекте, а просто написать
)))))))))))))Мозг-то включите перед тем как ответить :)
ID, вписанный в имя объекта - это и есть некий префикс, по идентификации которого и удаляются объекты программы.
А теперь поглядите на какой код я писал свой ответ Алексею, и как его код удалит только нужные вам объекты, в которых НЕ будет вписан идентификатор, и который оставит на графике "чужие" объекты, не принадлежащие программе?
Ответ мой был Алексею на этот код с таким сообщением Алексея:
Отредактировал. Вы правильно ответили. Это я немного перепутал. Другое хотел сказать.
Но Алексей на меня обиделся, …
Не дождёшься… Я только за справедливость. Не надо выставлять свои огрехи, а они бывают у всех и у меня тоже, за баги терминала.
Есть один свежий пример: Некоторое время назад я с удовольствием пользовался такой примочкой, правый клик на переменной, «Перейти к определению» и чтобы вернуться на ту самую переменную я нажимал клавишь на крыске «Назад». Но вот сегодня заметил что это перестало работать. Причина??? Вчера обновился до 2530… Я даже высказался в адрес разработчиков нецензурной лексикой, но вдруг вспомнил что ещё и крыску пришлось поменять. Открыл МЕ 2474 и опа………………… и там не работает. А если-бы мне сразу пришла СМС'ка в голову написать всё что я подумал о разработчиках? Как-бы это выглядело.
Это я к тому, что не надо спешить, прежде чем писать о багах, поищите огрехи в своём коде.
Не дождёшься… Я только за справедливость. Не надо выставлять свои огрехи, а они бывают у всех и у меня тоже, за баги терминала .
А кто выставляет? https://www.mql5.com/ru/forum/1111/page2795#comment_17290368 . Надеюсь, прочли на этот раз внимательно?... Сколько мне еще раз нужно повториться, чтобы до вас наконец дошло и вы не писали здесь ерунду?!