Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Sergey Sartakov
1286
Sergey Sartakov  

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

     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

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

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


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

Ihor Herasko
14401
Ihor Herasko  

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

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

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

Sergey Sartakov
1286
Sergey Sartakov  
Scriptong:

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

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

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

Спасибо, понял.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий