Русский

Справочник MQL4 Графические объекты ObjectsDeleteAll

ObjectsDeleteAll

Удаляет все объекты с указанным типом и в указанном подокне графика.

int  ObjectsDeleteAll(
   long   chart_id,           // идентификатор графика
   int    sub_window=EMPTY,   // индекс окна
   int    object_type=EMPTY   // тип объекта для удаления
   );

Удаляет все объекты с указанным типом:

int  ObjectsDeleteAll(
   int    sub_window=EMPTY,   // индекс окна
   int    object_type=EMPTY   // тип объекта для удаления
   );

Удаляет по префиксу имени в подокне графика все объекты указанного типа.

int  ObjectsDeleteAll(
   long           chart_id,   // идентификатор графика
   const string     prefix,   // префикс имени объекта
   int    sub_window=EMPTY,   // индекс окна
   int    object_type=EMPTY   // тип объекта для удаления
   );

Параметры

chart_id

[in]  Идентификатор графика.

prefix

[in]  Префикс, по которому будут удалены все объекты, чьи имена начинаются с данного набора символов. Префикс можно указывать как 'name' или 'name*' – оба варианта работают одинаково. Если в качестве префикса указана пустая строка, то будут удалены объекты с любым именем.

sub_window=EMPTY

[in]  Необязательный параметр. Индекс окна, на котором будут удалены объекты. Должен быть большим или равным -1 (EMPTY, значение по умолчанию) и меньшим, чем WindowsTotal().

object_type=EMPTY

[in]  Необязательный параметр. Тип объекта для удаления. Это может быть любое из значений списка идентификаторов типов объектов или EMPTY (-1) для удаления всех объектов.

Возвращаемое значение

Возвращает количество удаленных объектов. Для получения дополнительной информации об ошибке необходимо вызвать функцию функцию GetLastError().

Примечание

Замечания: нумерация подокон графика (если на графике есть подокна с индикаторами) начинается с 1. Главное окно графика есть всегда и имеет индекс 0. Если индекс окна отсутствует или имеет значение -1, то объекты удаляются со всего графика. Если значение параметра type равно -1 или этот параметр отсутствует, то удаляются все объекты из указанного подокна.

При использовании варианта функции без указания идентификатора графика подразумевается работа с собственным графиком и осуществляется прямой доступ к нему. В этом случае возвращаемое значение означает именно результат выполнения функции.

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

Для проверки результата выполнения на чужом графике можно использовать функцию, запрашивающую указанное свойство объекта. Но при этом следует иметь в виду, что такие функции ставятся в конец очереди команд чужого графика и дожидаются результата выполнения, то есть могут быть затратными по времени. Нужно иметь это обстоятельство в виду, если ведется работа с большим количеством объектов на графике.

Пример:

  ObjectsDeleteAll(2, OBJ_HLINE); // удаляются все горизонтальные линии из 2-го подокна.
  ObjectsDeleteAll(2);            // удаляются все объекты из 2-го подокна.
  ObjectsDeleteAll();             // удаляются все объекты с графика.