Странная фишка с удалением графического объекта...

 

Вынужден так вот удалять графический объект:

     if ( ObjectGet("BUY", OBJPROP_XDISTANCE) != i_Xdistance ||
          (ObjectGet("BUY", OBJPROP_YDISTANCE) != i_Ydistance)
         )
      {
         while (ObjectFind("BUY") == 0)
         {
            bool b_DeleteRes = ObjectDelete("BUY");
            int i_LastError = GetLastError();
//          Print ("b_DeleteRes = ",b_DeleteRes," i_LastError = ",i_LastError );
            WindowRedraw(); 
         }
      }

Объект удаляется так это с 500 и более попыток...

Причем в каждой попытке ObjectDelete("BUY") возвращает true и GetLastError() = 0

Может кто с такой фишкой сталкивался ?

 
Попробовал, удаляется с первой попытки. Попробуйте перегрузить компьютер.
 
Roger:
Попробовал, удаляется с первой попытки. Попробуйте перегрузить компьютер.


Да, на демо счете все нормально, а вот в тестере не нормально....

 

Дело в том, что ObjectDelete возвращает false только в том случае, если объект не найден. Успешное завершение функции вовсе не означает реальное удаление объекта. Подтвердить удаление объекта можно лишь повторным вызовом ObjectFind, которое вернет значение меньше нуля.

Если ObjectDelete возвращает true, но при этом объект в действительности не удален, то это означает, что объект в данный момент перемещается мышью.

Этот такая недокументированная фича МТ4, которая позволяет отследить перемещение графических объектов мышью. В противном случае с графическим управлением ничего невозможно было бы сделать.

 
Scriptong:

Дело в том, что ObjectDelete возвращает false только в том случае, если объект не найден. Успешное завершение функции вовсе не означает реальное удаление объекта. Подтвердить удаление объекта можно лишь повторным вызовом ObjectFind, которое вернет значение меньше нуля.

Если ObjectDelete возвращает true, но при этом объект в действительности не удален, то это означает, что объект в данный момент перемещается мышью.

Этот такая недокументированная фича МТ4, которая позволяет отследить перемещение графических объектов мышью. В противном случае с графическим управлением ничего невозможно было бы сделать.

Спасибо, понял.
Причина обращения: