Новая статья: MQL5 для начинающих: Антивандальная защита графических объектов

 

На mql5.com опубликована статья MQL5 для начинающих: Антивандальная защита графических объектов:

Что должна делать ваша программа, если графические панели управления были удалены или изменены кем-то еще? В этой статье мы покажем, как после удаления приложения не иметь на графике "бесхозные" объекты, и как не потерять над ними контроль в случае переименования или удаления созданных программно объектов.

Одним из достоинств языка программирования MQL5 является то, что из имеющихся стандартных функций MQL5 можно формировать коды, решающие различными способами различные задачи и цели при работе в торговом терминале MetaTrader 5.

В статье простым языком и на основе простых примеров рассматриваются два варианта реализации ответных действий программы на то, что какие-либо графические объекты ее панели управления были удалены или изменены. Мы покажем, как добиться того, чтобы после удаления программы на графике не оставались "бесхозные" объекты, над которыми программа могла потерять контроль из-за переименования их кем-либо или чем-либо.

Пример панели управления до изменения свойств ее объектов "вручную" и после

Рис. 1. Пример внешнего вида панели управления до изменения свойств ее объектов вручную и после

Описанные в статье варианты конструирования в коде ответных действий на вмешательство "со стороны" могут оказаться не лишними для таких случаев, когда, например, в сторонней программе, запущенной на графике и не предназначенной непосредственно для его очистки, может применяться функция для удаления объектов (ObjectsDeleteAll() или созданная самостоятельно), производящая по заданным в ней параметрам:

  • тотальное удаление всех типов графических объектов в том же окне/подокне, где расположены объекты, созданные вручную или с помощью иных программ;
  • или тотальное удаление объектов того типа, что присутствуют и в панели управления вашей программы;
  • или удаление по префиксу, совпадающему с префиксом объектов вашей программы.

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

Статья может быть полезна и тем, кто только начинает знакомиться с обработкой событий в функции OnChartEvent().

Автор: Dina Paches