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

 

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

Картинка

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


MT4 1090, Windows XP.

 
vipermagi:

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

MT4 1090, Windows XP.

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

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

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

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

 
Mislaid:

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

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

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

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

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

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

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


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

 
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  - смена года.

 

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

//+------------------------------------------------------------------+
//|                                                     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 и говорить, что всё работает. Будьте внимательнее при чтении.

 
vipermagi:

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


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

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


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


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

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

 
на ХР не работает
 
Taras Slobodyanik:
на ХР не работает

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

 
Alekseu Fedotov:

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

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