Проблема с ObjectDelete MQL5.

 

Господа, помогите плиз. Я наверное сегодня туплю, но вот уже час бьюсь о грабли и не могу пройти )).

Написал банальную функцию деинициализации индикатора:

//////////////////////////////////////////////////////////////////////////////// 
void OnDeinit(const int code){
//////////////////////////////////////////////////////////////////////////////// 
  Alert("deinit");
  ObjectDelete(0,"crossline");
  bool res;
  for(int i=1;i<=maxoffset;i++){
     string name="lineup_"+i;
     res=ObjectDelete(0,name);
    
     Alert(name+" res="+res+" lasterr="+GetLastError());
     ResetLastError();
     if(!res){
       Alert(" res="+res+" lasterr="+GetLastError());
     }
    
     ObjectDelete(0,"linedn_"+i);
     ObjectDelete(0,"textl_up_"+i);
     ObjectDelete(0,"textl_dn_"+i);
  }

}

функция вызывается, алерты идут, результат вызова ObjectDelete положительный, ошибок нет, но объекты с чарта не убиваются. Перерыл все хелпы - все банально, все должно работать - но не работает.

Чего я недопрочитал в хелпах. на MQL4 ни когда таких граблей не видел

Документация по MQL5: Графические объекты / ObjectDelete
Документация по MQL5: Графические объекты / ObjectDelete
  • www.mql5.com
Графические объекты / ObjectDelete - Документация по MQL5
 
vadimpl:


Наверно не хватает времени на исполнение вашего кода. Время выполнения OnDeinit() ограничено.
 
Yurich:
Наверно не хватает времени на исполнение вашего кода. Время выполнения OnDeinit() ограничено.
Тогда  по идее алерты должны были бы обрезаться в момент выгрузки. А алерты говорят что все ок - все объекты удалились. Да и вообще - самый первый ОbjectDelete не срабатывает ((
 
Сам победил - воткнул в конце ChartRedraw(0); - и все заработало )).
 
ChartRedraw(0); в конце OnDeinit добавьте. // как то долго я писал свое сообщение )))
 
Karlson:
ChartRedraw(0); в конце OnDeinit добавьте. // как то долго я писал свое сообщение )))
Все равно спасибо за ответ )))
Причина обращения: