Ошибки, баги, вопросы - страница 606

 
uncleVic:
Не сильно понятно зачем? Ведь если Ваша программа удалила объект, она об этом знает. А если объект удаляется и программа об этом "ни сном ни духом" - соответственно виноват Терминал.

не все так просто (жаль что из сервисдеска все исчезло, постараюсь вопроизвести проблему еще раз).

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

Значит в в коде OnChartEvent мне необходимо обработать данное событие и отрисовать контрол заново.

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

Итого получается, что обрабатывая это событие алгоритм попадает в глубокий зацикл. Скрипт будет удалять объекты и получать событие что объекты удалены и значит заново надо обработать данное событие - удалить и отрисовать... Короче алгоритмическая попа. 

Как разрулить данную ситуацию в рамках текущего набора CHARTEVENT я не знаю. Поэтому и предлагаю,  чтоб скрипт понимал - чье это было удаление - терминалом (хитрым юзером) или самим скриптом (таким же программистом). 

Вы бы с этим столкнулись сами рано или поздно, когда начали бы активно работать с контролами. 

 
sergeev:

не все так просто (жаль что из сервисдеска все исчезло, постараюсь вопроизвести проблему еще раз).

Как разрулить данную ситуацию в рамках текущего набора CHARTEVENT я не знаю. Поэтому и предлагаю,  чтоб скрипт понимал - чье это было удаление - терминалом (хитрым юзером) или самим скриптом (таким же программистом). 

Вы бы с этим столкнулись сами рано или поздно, когда начали бы активно работать с контролами. 

Я с этим сталкивался. В одной из первых версий ст.библиотеки (в части элементов управления) этот механизм был реализован, но, по определённым причинам его убрали (я таки планирую его восстановить позже).

Там нет ничего умного. Каждый контрол должен уметь восстанавливать себя. Подложка при удалении, удаляет всё что на ней лежит. Дальше восстановление идёт по событиям.

 
uncleVic:


Там нет ничего умного. Каждый контрол должен уметь восстанавливать себя. Подложка при удалении, удаляет всё что на ней лежит. Дальше восстановление идёт по событиям.

ну дык я ж про это и говорю, что при получении события удаления объекта контрол восстанавливает себя.

Но как только контрол начнет себя восстанавливать (удалять верхние объекты) то сразу вновь посыпятся события удаления.

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

Поверьте, это нужно! Я уже писал в сервисдеске, что стараемся не ради себя, а ради продвижения МТ5 и MQL5.

Мы честно проходим все пути для поиска быстрых и компактных решений своих задач на MQL. Если сталкиваемся с препятствием, то пишем в сервисдеск. Но там обычно понимания не встречаем.  

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

PS.
Виктор, извиняюсь, что так резко, просто на больную мозоль наступили.
Просто прошу, чтоб ваша компания прислушивались к просьбам программистов MQL. Ведь мы решаем намного разнообразнее задачи на MQL, чем можете себе представить. Иногда просто хочется чаще слышать ответ в сервисдеске: да, мы это сделаем в следующем билде.

Спасибо за понимание.

 

sergeev:

... когда  вашей компании понадобилось событие перемещения мышки ...

Если бы Вы знали сколько мне для этого пришлось разбить кулаков о "взрослых" программистов...
 
Боюсь показаться не оригинальным, но все же... Дамы и Господа - когда откроют маркет? Кто либо знает хотя бы примерные сроки?
 
uncleVic:
Если бы Вы знали сколько мне для этого пришлось разбить кулаков о "взрослых" программистов...
Виктор, значит мы с вами в одной лодке :))  давайте биыть вместе.
 

Пытаюсь на основе скрипта открыть длинную позицию по инструменту, где реализовано биржевое исполнение ( SYMBOL_TRADE_EXECUTION_EXCHANGE, Exchange execution). 

#include <Trade\Trade.mqh>                   
input double InpLots          =0.1;  
input int    InpTakeProfit    =500;
input int    InpSL            =300;
CTrade       myTrade;

void OnStart()
  {   
   double price=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   double tp=SymbolInfoDouble(_Symbol,SYMBOL_BID)+InpTakeProfit*_Point;
   double sl=SymbolInfoDouble(_Symbol,SYMBOL_BID)-InpSL*_Point;
   myTrade.SetTypeFilling(ORDER_FILLING_IOC);
   myTrade.PositionOpen(_Symbol,ORDER_TYPE_BUY,InpLots,price,0,0,"Test Buy");
   Sleep(500); // интервал задержки
   myTrade.PositionModify(_Symbol,sl,tp);
  }

Получаю ошибку:

  •  exchange buy 0.10 EURUSD.e at 0.00000;
  •  failed exchange buy 0.10 EURUSD.e at 0.00000 [Invalid stops]

Т.е. терминал на видит ту цену, по которой хочу купить. Пробовал разные цены, всё равно выдаёт 0.00000.

Причём пробовал аналогичный скрипт запустить в МТ4 при тех же биржевых условиях, там сработал... в МТ5 - нет...

Просьба ткнуть носом в ошибку.

 
denkir:
  •  failed exchange buy 0.10 EURUSD.e at 0.00000 [Invalid stops]

Это сообщение сервера, а не терминала. Больше по этому поводу сказать не могу.

Поставьте заявку в Сервисдеск.

Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
 
papaklass:

Почему возникает ошибка переполнения массива?

Ну вообще-то обычно перед тем как прочитать туда что-нибудь записывают...
 
papaklass:

Почему возникает ошибка переполнения массива?

 

А где у Вас вызов ArrayResize?
Документация по MQL5: Операции с массивами / ArrayResize
Документация по MQL5: Операции с массивами / ArrayResize
  • www.mql5.com
Операции с массивами / ArrayResize - Документация по MQL5
Причина обращения: