1) Нет. По крайней мере, ничего страшного.
2) При событии клика запоминать в статическую переменную GetTickCount() и сравнивать - если очередной клик сделан через короткий промежуток времени - значит это двойной клик.
3) Когда состояние кнопки меняется, реагировать на него в OnChartEvent() - сохранять ее положение в переменной, а когда меню создается, создавать кнопку с учетом ее положения.
Положение кнопки можно сохранить задав ей конкретные координаты по оси Икс и Игрик
Если речь идёт о состоянии кнопки то можно после нажатия вернуть её в исходное положение или удалить с графика с помощью команд.
В мт4 это выглядит вот так
CHWPX=-1; ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0,CHWPX); ObjectDelete(ShowTicketsbutton); ObjectCreate(0,ShowTicketsbutton,OBJ_BUTTON,0,BrTime,HIGHT+0.00015); ObjectSetInteger(0,ShowTicketsbutton,OBJPROP_XDISTANCE,CHWPX-100);//Здесь указывем отступы по икс ObjectSetInteger(0,ShowTicketsbutton,OBJPROP_YDISTANCE,135);/Здесь указывем отступы по игрик ObjectSetInteger(0,ShowTicketsbutton,OBJPROP_XSIZE,70); ObjectSetInteger(0,ShowTicketsbutton,OBJPROP_YSIZE,20); string textShowTicketsbutton="ADD Tickets"; ObjectSetString(0,ShowTicketsbutton,OBJPROP_TEXT,textShowTicketsbutton); ObjectSetInteger(0,ShowTicketsbutton,OBJPROP_COLOR,clrRed); ObjectSetInteger(0,ShowTicketsbutton,OBJPROP_FONTSIZE,8); ShowTicketsstate=false; ObjectSetInteger(0,ShowTicketsbutton,OBJPROP_STATE,ShowTicketsstate);//Установка кнопки на отжатое состояние //--------Далее просто------// long ShowTickebuttonpresed=ObjectGetInteger(0,ShowTicketsbutton,OBJPROP_STATE,0); if(ShowTickebuttonpresed==1) { //----Любые события которые могут приводится в действия после нажатия кнопки ObjectSetInteger(0,ShowTicketsbutton,OBJPROP_STATE,0);//Отжали кнопку в исходное состояние и можно нажимать опять. }
Положение кнопки можно сохранить задав ей конкретные координаты по оси Икс и Игрик
Если речь идёт о состоянии кнопки то можно после нажатия вернуть её в исходное положение или удалить с графика с помощью команд.
В мт4 это выглядит вот так
Спасибо,
немного не понятно, ведь это получается тоже самое что у меня сейчас есть, или же я не так понимаю
1) Нет. По крайней мере, ничего страшного.
2) При событии клика запоминать в статическую переменную GetTickCount() и сравнивать - если очередной клик сделан через короткий промежуток времени - значит это двойной клик.
3) Когда состояние кнопки меняется, реагировать на него в OnChartEvent() - сохранять ее положение в переменной, а когда меню создается, создавать кнопку с учетом ее положения.
Спасибо, можно по конкретнее по 3-му пункту? пожалуйста
Спасибо, можно по конкретнее по 3-му пункту? пожалуйста
А что не понятно? Объявит переменную на глобальном уровне. Почитать справку про функцию OnChartEvent(), посмотреть примеры. Если при событии клика на кнопке она нажата, а определяется это, как уже показано выше, так:
ObjectGetInteger(0,ShowTicketsbutton,OBJPROP_STATE,0);
Так вот, возвращаемое этой функцией значение присвоить той переменной. А когда будете создавать кнопку, установить ей соответствующее состояние в зависимости от значений той переменной.
Но может, у вас кнопка самодельная, тогда только вы знаете, когда она нажата, когда отжата.
А что не понятно? Объявит переменную на глобальном уровне. Почитать справку про функцию OnChartEvent(), посмотреть примеры. Если при событии клика на кнопке она нажата, а определяется это, как уже показано выше, так:
Так вот, возвращаемое этой функцией значение присвоить той переменной. А когда будете создавать кнопку, установить ей соответствующее состояние в зависимости от значений той переменной.
Но может, у вас кнопка самодельная, тогда только вы знаете, когда она нажата, когда отжата.
Пожалуйста посмотрите что не так? Нажатие кнопок сохраняется, но при смене ТФ снова в исходное положение
Пожалуйста
помогите
https://www.mql5.com/ru/forum/300554
- 2019.01.22
- www.mql5.com
Ребят уже была ветка, но так и не нашли решение проблемы
https://www.mql5.com/ru/forum/300554
Его не искали
Замените
void OnDeinit(const int reason) { if(reason==1) { DeleteMenu(); ObjectDelete(0,Prefix+"MM"); } }
Его не искали
Замените
Спасибо, подскажите как решить проблему с переходом на другой ТФ, ибо если перейти на другой ТФ кнопки примят исходное положение
Спасибо, подскажите как решить проблему с переходом на другой ТФ, ибо если перейти на другой ТФ кнопки примят исходное положение
С этим кодом так-же проблемы с кнопками?
P.S. Посмотрел в код, моё решение не подходит- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день, написал простенький код и прошу вас помочь разобраться кое в чем:
1) Не нагружаю ли я индикатор тем что каждый раз проверяю наличие курсора мышки в нужном положении
2) Может было бы проще и лучше сделать через 2-й клик (я не знаю как сделать через 2-й клик, только через 1 клик, кому не сложно прошу подсказать и это)
3) Самое главное: Как мне сохранить положении кнопки, я так думаю что если бы я сделал через 2-й клик, меню(можно так назвать) выводилось бы и сохраняло положение, но я не уверен прошу подсказать по этому поводу, но самое главное, это