Новая версия платформы MetaTrader 5 build 4230: больше встроенных приложений и расширение поддержки ONNX - страница 5

 

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

Например вот такую функцию:

int  CalendarEventByCountry(
   string               country_code,     // кодовое имя страны по ISO 3166-1 alpha-2
   MqlCalendarEvent&    events[]          // переменная для получения массива описаний
   );

сделать такой:

int  CalendarEventByCountry(
   string               country_code,      // кодовое имя страны по ISO 3166-1 alpha-2
   MqlCalendarEvent&    events[],          // переменная для получения массива описаний
   string calendar_language="English"      // язык календаря
   );

Смысл такой. Чтобы была возможность в терминале на русском получить данные по календарю на английском.

Спасибо!

 
b4209, неправильное определение статуса Windows-клавиши.
void OnChartEvent( const int id, const long &lparam, const double&, const string& )
{
  if (id == CHARTEVENT_KEYDOWN)
    Print("TERMINAL_KEYSTATE_MENU = " + (string)TerminalInfoInteger(TERMINAL_KEYSTATE_MENU));
}


Результат.

TERMINAL_KEYSTATE_MENU = 0 // Нажал Windows-key.
TERMINAL_KEYSTATE_MENU = -32767 // Нажал CTRL+ALT

Строка для поискаOshibka 095.

 
fxsaber #:
b4209, неправильное определение статуса Windows-клавиши.

Возможно ошибка в справке: MENU - это Alt, а не Windows

Идентификатор клавиши

Описание

 

TERMINAL_KEYSTATE_MENU

Состояние клавиши "Windows"

int


 

Убедительная просьба к разработчику.
Добавьте пожалуйста кнопку отображения графика по ценам открытия.
В тестере тоже.

line close

 
A100 #:

Возможно ошибка в справке: MENU - это Alt, а не Windows

Идентификатор клавиши

Описание

 

TERMINAL_KEYSTATE_MENU

Состояние клавиши "Windows"

int


Возможно. Но сложно проверить из-за непредсказуемого бага.

 
fxsaber #:

Но сложно проверить из-за непредсказуемого бага.

В Windows 10 он не проявляется ведь.

 
fxsaber #:

Возможно. Но сложно проверить из-за непредсказуемого бага.

Попробовал проверить, но сразу наткнулся на следующее:

Из Документации: Вызов TerminalInfoInteger(TERMINAL_KEYSTATE_XXX) возвращает такой же код состояния клавиши, как и функция GetKeyState() из MSDN.

Проверка:

#import "User32.dll"
    short GetKeyState( int );
#import
void OnChartEvent( const int id, const long&, const double&, const string& )
{
    if (id == CHARTEVENT_KEYDOWN)
        Print(TerminalInfoInteger(TERMINAL_KEYSTATE_CONTROL)==GetKeyState(0x11));
}

Нажимаем Ctrl

Результат: false

Ожидалось: true

 

Далее:

void OnChartEvent( const int id, const long&, const double&, const string& )
{
    if (id == CHARTEVENT_KEYDOWN)
        Print(TerminalInfoInteger(TERMINAL_KEYSTATE_CONTROL),":",GetKeyState(0x11));
}

Нажимаем Ctrl

Результат: GetKeyState меняет значение, а TERMINAL_KEYSTATE_CONTROL - нет

Ожидалось: одинаковое поведение

 
Andrei Iakovlev #:

В Windows 10 он не проявляется ведь.

Везде проявляется.

 
A100 #:

Результат: GetKeyState меняет значение, а TERMINAL_KEYSTATE_CONTROL - нет

Так и есть, к сожалению.