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

 

кстати кто знает как сделать что бы при нажатии на кнопку она продавливалась, если ЛКМ нажата и отпускалась если ЛКМ отпущена?

а то что бы нажать кнопку нужно кликнуть и отпустить и что бы отжать кнопку нужно кликнуть и отпустить, бред ) 

ЗЫ: можно конечно менять свойство сразу после того как пустили ЛКМ, но неужто это так делается? )

 
sanyooooook:

кстати кто знает как сделать что бы при нажатии на кнопку она продавливалась, если ЛКМ нажата и отпускалась если ЛКМ отпущена?

а то что бы нажать кнопку нужно кликнуть и отпустить и что бы отжать кнопку нужно кликнуть и отпустить, бред ) 

ЗЫ: можно конечно менять свойство сразу после того как пустили ЛКМ, но неужто это так делается? )

Да. Придётся самому контролировать состояние объектов, если хочется как-то по своему. )
 
tol64:
Да. Придётся самому контролировать состояние объектов, если хочется как-то по своему. )

всё бы ни чего, но кнопка не нажимается, когда нажата ЛКМ, а нажимается лишь тогда когда ЛКМ отпускается, бред )

ЗЫ: хочешь нажать кнопку? отпусти её ) 

Но если сделать по другому, с учётом того что  OnChartEvent  не работает в тестере, то вообще ни как в тестере с копками не поработать.

 
sanyooooook:

всё бы ни чего, но кнопка не нажимается, когда нажата ЛКМ, а нажимается лишь тогда когда ЛКМ отпускается, бред )

ЗЫ: хочешь нажать кнопку? отпусти её ) 

Но если сделать по другому, с учётом того что  OnChartEvent  не работает в тестере, то вообще ни как в тестере с копками не поработать.

С тестером пока много чего не работает. Остаётся писать в сервисдеск и затем следить за обновлениями. )

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

 
sanyooooook:

всё бы ни чего, но кнопка не нажимается, когда нажата ЛКМ, а нажимается лишь тогда когда ЛКМ отпускается, бред )

ЗЫ: хочешь нажать кнопку? отпусти её ) 

Но если сделать по другому, с учётом того что  OnChartEvent  не работает в тестере, то вообще ни как в тестере с копками не поработать.

OnChartEvent() обрабатывает типичные события графика и пользовательские. В части пользовательских событий этот обработчик в Тестере работает!!! Посмотри мою статью Рецепты MQL5 - обработка пользовательских событий графика, там есть робот CustomEventProcessor. В Тестере он торгует.

Беда Тестера - это графика... писал раньше в Сервисдеск по поводу графики, пока только обещания...



Рецепты MQL5 - обработка пользовательских событий графика
Рецепты MQL5 - обработка пользовательских событий графика
  • 2014.10.10
  • Dennis Kirichenko
  • www.mql5.com
В данной статье рассматриваются аспекты проектирования и разработки системы пользовательских событий графика в среде MQL5. Предлагается пример подхода для классификации событий. Приводится программный код событийного класса и класса-обработчика пользовательских событий.
 
denkir:

OnChartEvent() обрабатывает типичные события графика и пользовательские. В части пользовательских событий этот обработчик в Тестере работает!!! Посмотри мою статью Рецепты MQL5 - обработка пользовательских событий графика, там есть робот CustomEventProcessor. В Тестере он торгует.

Беда Тестера - это графика... писал раньше в Сервисдеск по поводу графики, пока только обещания...



ок, спасибо, посмотрю, пока сделал через проверку свойства кнопки.
 

Ситуация такая: Создаю на графике объект OBJ_TEXT. Затем удаляю вручную этот OBJ_TEXT с графика. Затем пробую найти на графике удалённый объект - получаю ошибку (здесь всё логично: объект был удалён значит его нельзя найти). Дальше пытаюсь переместить точку привязки удалённого объекта OBJ_TEXT с помощью ObjectMove  - но не получаю ошибки.

Вопрос: должна ли ObjectMove выдавать ошибку при попытке переместить точку привязки удалённого OBJ_TEXT?

 

Прошу подсказать, кто знает: при попытке вывести индикатор в визуализаторе (тестере) появляется ошибка 4014, хотя при работе этого же кода в окне терминала такой ошибки не возникает.

Код такой:

            Indic_Handle[Indic_Total-1]=iMA(NULL,0,MA_Period,MA_Shift,MODE_LWMA,PRICE_CLOSE);

            if(Indic_Handle[Indic_Total-1]==INVALID_HANDLE)

              {Error_Message;return(false);}


            if(F_If_Indic_Exist(Indic_Handle[Indic_Total-1])==false) // Проверяем есть ли уже индикатор с таким хендлом. Если нет - добавлем новый индикатор

               if(ChartIndicatorAdd(0,0,Indic_Handle[Indic_Total-1])==false) 

                 {Error_Message;return(false);}


 

Команда "Error_Message" определена макросом:

 

#define Error_Message_Exp Alert(__FILE__+": "+__FUNCTION__+": Error at line "+(string)__LINE__+". Last Error code: "+(string)GetLastError())


При исполнении в терминале: Код работает стандартно, без ошибок. Индикатор выводится на график, переменной "Indic_Handle[Indic_Total-1]" присваивается значение хендла.

А при исполнении в тестере и/или в визуализаторе. В журнал выводится ошибка:

2014.12.15 21:16:10 Core 1 2014.01.01 00:00:00   Alert: GA_Incl.mqh: F_Offspr_Init: Error at line 149. Last Error code: 4014

 (строчка "149" - это строчка "{Error_Message;return(false);}" под строчкой "148":  "if(ChartIndicatorAdd(0,0,Indic_Handle[Indic_Total-1])==false)"

Очевидно, что ошибка возникает при выполнении функции "ChartIndicatorAdd", которая по разному выполняется в среде тестера и среде терминала.

Расшифровка кода ошибки ясности не добавляет:

ERR_FUNCTION_NOT_ALLOWED

4014

Системная функция не разрешена для вызова

 

На форуме я нашел упоминание о возникновении такой ошибки в такой же ситуации у еще одного пользователя, но его вопрос остался без ответа. (https://www.mql5.com/ru/forum/1111/page763#comment_208678)

Выяснил, что если продолжить выполнение программы в тестере, несмотря на ошибку, то нужный индикатор все-таки наносится на график. Но при этом, хендл появившегося индикатора не  соответствует значению хенлда в переменной Indic_Handle[Indic_Total-1]. (В дальнейшем, в ходе выполнения программы, реализовано обращение к индикатору по хендлу) А сам индикатор создается через несколько тиков, после вызова команды ChartIndicatorAdd.

Прошу помочь

Спасибо. 

Документация по MQL5: Операции с графиками / ChartIndicatorAdd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
  • www.mql5.com
Операции с графиками / ChartIndicatorAdd - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
метаквот айди уведомление не пришло, жду уже уже второй час... три часа назад работало...
 
valeryk:

Точно, не принтует. Но работает. Попробуй графикой событие отследить.

А у меня чё-то не работает. Щелчок по объекту в тестере не вызывает события. На демо/реале - работает. Что не так? (МТ4)