Не возможно изменить входные параметры типа datetime через выпадающий календарь.

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

Создаю свежий скрипт или советник, добавляю input или extern datetime aaa, компилирую и запускаю. Дальше в входных параметрах пытаюсь изменить дату, но остаётся всегда 1970.01.01 00:00 :( Стрелками клавиатуры если перематывать цифры, то выбор запоминает, а мышью по апплету календаря - ноль реакции.

Картинка

(В коде с картинки input datetime dateTime = D'2018.05.01 00:00:00'; в данном случае будет неизменяемо)


MT4 1090, Windows XP.

Dmitriy Gizlyk
22854
Dmitriy Gizlyk  
vipermagi:

Создаю свежий скрипт или советник, добавляю input или extern datetime aaa, компилирую и запускаю. Дальше в входных параметрах пытаюсь изменить дату, но остаётся всегда 1970.01.01 00:00 :( Стрелками клавиатуры если перематывать цифры, то выбор запоминает, а мышью по апплету календаря - ноль реакции.

MT4 1090, Windows XP.

1. Переменную заданную с input изменять в коде нельзя, при компилировании будет выдавать ошибку.
2. Для отслеживания событий мышки нужно для графика включить функцию отслеживания событий мыши и, соответственно, добавить обработку таких событий.
Mislaid
663
Mislaid  
Dmitriy Gizlyk:
1. Переменную заданную с input изменять в коде нельзя, при компилировании будет выдавать ошибку.
2. Для отслеживания событий мышки нужно для графика включить функцию отслеживания событий мыши и, соответственно, добавить обработку таких событий.

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

При изменении мышкой месяца или года падает также навигация стрелками.

У меня то же самое. 

Dmitriy Gizlyk
22854
Dmitriy Gizlyk  
Mislaid:

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

При изменении мышкой месяца или года падает также навигация стрелками.

У меня то же самое. 

Трудно говорить об ошибках не видя код. Посмотрите пример в этой статье https://www.mql5.com/ru/articles/4751, там работает указание даты мышкой.
LRA
702
LRA  

Вот пример кода

input datetime dat =D'22.05.17 15:22';
#property show_inputs

void start()
{
   Alert(TimeToString(dat |TIME_MINUTES));
}


Кликаем пару раз по значению, появляется кнопка календаря, в котором выбираем мышью нужную дату. Все работает...  Может быть Вы забыли задать исходное значение?

Mislaid
663
Mislaid  
LRA:

Вот пример кода


Кликаем пару раз по значению, появляется кнопка календаря, в котором выбираем мышью нужную дату. Все работает...  Может быть Вы забыли задать исходное значение?

Появляется окно календаря. Кликаем мышью по дате. Но, дата в параметре не изменяется. Вот пример моего кода. Input/Extern не влияет Индикатор/скрипт тоже

#property strict

#property indicator_separate_window
#property  indicator_buffers 2

// внешние переменные
   extern int ZeroPoint = 1100; // размер окна
   extern string PatternsFileName = "wsPatterns1100140915"; // имя файла паттернов
   extern datetime StartTime = D'2018.03.19 00:00'; // стартовая точка отсчета

А вот навигация стрелками в календаре меняет значение параметра. Кроме того PageUp, PageDown - это смена месяца, а, Ctrl+PageUp, Ctrl+PageDown  - смена года.

vipermagi
134
vipermagi  

Полный демо код индикатора:

//+------------------------------------------------------------------+
//|                                                     calendar.mq4 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window

input datetime dateTime = D'2018.05.01 00:00:00';
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+


Картинка

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

Раньше я мог ткнуть, например, в красный квадратик "Сегодня" и вставилась бы текущая дата. Теперь же ни чего из выбора мышью по этому календарю не работает, если ткнуть мышью в любое выбранное число даты, то календарь просто закрывается и значение переменной не меняет.


UPD: попробовал разных брокеров, результат - тот же.


UPD2: Господа, я напоминаю, это метатрейдер 4, как это было мной указано в 1-ом посте, не надо мне показывать примеры из MT5 и статьи для MT5 и говорить, что всё работает. Будьте внимательнее при чтении.

Alekseu Fedotov
1480
Alekseu Fedotov  
vipermagi:

Полный демо код индикатора:


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

Раньше я мог ткнуть, например, в красный квадратик "Сегодня" и вставилась бы текущая дата. Теперь же ни чего из выбора мышью по этому календарю не работает, если ткнуть мышью в любое выбранное число даты, то календарь просто закрывается и значение переменной не меняет.


UPD: попробовал разных брокеров, результат - тот же.


UPD2: Господа, я напоминаю, это метатрейдер 4, как это было мной указано в 1-ом посте, не надо мне показывать примеры из MT5 и статьи для MT5 и говорить, что всё работает. Будьте внимательнее при чтении.

Работает нормально  MT4 1090

Taras Slobodyanik
38233
Taras Slobodyanik  
на ХР не работает
Alekseu Fedotov
1480
Alekseu Fedotov  
Taras Slobodyanik:
на ХР не работает

Ах да, у меня 10ка

Mislaid
663
Mislaid  
Alekseu Fedotov:

Работает нормально  MT4 1090

Действительно. Работает на Win7 64 бит. Но не работает на XP. Только что проверил.

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