Ошибки МТ4, которые не исправляются разработчиками терминала

 

Анализирую событие графика CHARTEVENT_CHART_CHANGE .

В программе используется данное событие. При изменении размеров окна с графиком - ширины и высоты графика - изменяется положение графических элементов на графике.

Ниже приведен код для проверки  работы терминала.

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   if (id==CHARTEVENT_CHART_CHANGE) // id = 9
     {
      Print(__LINE__,"  id=",ChartID(),"  sym=",Symbol(),"  per=",Period(),"  width=",(int)ChartGetInteger(ChartID(),CHART_WIDTH_IN_PIXELS,0),"  height=",(int)ChartGetInteger(ChartID(),CHART_HEIGHT_IN_PIXELS,0));
     }
  }н

Вывожу в окно с графиком валютной пары GBPUSD программу с выше приведенным кодом.

Во вкладке эксперты выводится:

2024.09.06 13:59:37.978 spas GBPUSD,M5: 10127  id=133487796800104222  sym=GBPUSD  per=5  width=1436  height=523

Начинаю работать с окном другого графика. Во вкладку эксперта выводится:

2024.09.06 13:59:46.052 spas GBPUSD,M5: 10127  id=133487796800104222  sym=GBPUSD  per=5  width=1213  height=406


Видно, что изменяются размеры окна с графиком.

Соответственно, изменяется положение выведенных в окне графических объектов.

При переходе в окно с выше приведенным кодом графические объекты находятся в местах с другими координатами.

==========================

Предлагаю  в данную ветку выкладывать сообщения с ошибками МТ4, которые разработчики терминала не исправляют.

Пользовательские графические элементы управления. Часть 2. Библиотека элементов управления
Пользовательские графические элементы управления. Часть 2. Библиотека элементов управления
  • www.mql5.com
Во второй статье серии "Пользовательские графические элементы управления" представлена библиотека элементов управления для решения основных задач, возникающих при обеспечении взаимодействия между программой (советником, скриптом, индикатором) и ее пользователем. Библиотека содержит множество классов (CInputBox, CSpinInputBox, CCheckBox, CRadioGroup, CVSсrollBar, CHSсrollBar, CList, CListMS, CComBox, CHMenu, CVMenu, CHProgress, CDialer, CDialerInputBox, CTable) и примеров их использования.
 
Eugeni Neumoin:

Анализирую событие графика CHARTEVENT_CHART_CHANGE .

В программе используется данное событие. При изменении размеров окна с графиком - ширины и высоты графика - изменяется положение графических элементов на графике.

Ниже приведен код для проверки  работы терминала.

Вывожу в окно с графиком валютной пары GBPUSD программу с выше приведенным кодом.

Во вкладке эксперты выводится:

2024.09.06 13:59:37.978 spas GBPUSD,M5: 10127  id=133487796800104222  sym=GBPUSD  per=5  width=1436  height=523

Начинаю работать с окном другого графика. Во вкладку эксперта выводится:

2024.09.06 13:59:46.052 spas GBPUSD,M5: 10127  id=133487796800104222  sym=GBPUSD  per=5  width=1213  height=406


Видно, что изменяются размеры окна с графиком.

Соответственно, изменяется положение выведенных в окне графических объектов.

При переходе в окно с выше приведенным кодом графические объекты находятся в местах с другими координатами.

==========================

Предлагаю  в данную ветку выкладывать сообщения с ошибками МТ4, которые разработчики терминала не исправляют.

А проверить график какого символа и периода изменяется кто запрещает? Может сначала надо проанализировать свои косяки, а потом писать об ошибках терминала?

 
Alexey Viktorov #:

А проверить график какого символа и периода изменяется кто запрещает? Может сначала надо проанализировать свои косяки, а потом писать об ошибках терминала?

Может сначала проверите код, а потом будете говорить про чужие косяки.

Вы уже однажды напоролись на подобную ситуацию, когда у Вас SSD диск грохнулся..... Сейчас опять. Вам неймется.

 
Eugeni Neumoin #:

Может сначала проверите код, а потом будете говорить про чужие косяки.

Вы уже однажды напоролись на подобную ситуацию, когда у Вас SSD диск грохнулся..... Сейчас опять. Вам неймется.

Все верно же. Зачем обрабатывать координаты объектов на неактивном графике? 
 
Artyom Trishkin #:
Все верно же. Зачем обрабатывать координаты объектов на неактивном графике? 

Подскажите, как определить, что график неактивен.

Эту ветку создал потому, что про выше приведенную проблему где-то более полгода назад писал. Но несколько по-другому. 

 
Eugeni Neumoin #:

Подскажите, как определить, что график неактивен.

Эту ветку создал потому, что про выше приведенную проблему где-то более полгода назад писал. Но несколько по-другому. 

Почитайте целочисленные свойства графика. 
 
Artyom Trishkin #:
Почитайте целочисленные свойства графика. 

Ткните пальцем в то место, где почитать.

Перед тем как написать искал в документации. Не нашел.


Неявно сказано про 

Примеры работы с графиком
  • CHART_BRING_TO_TOP

Возможно, это...

Сейчас проверю

 
Похоже,  Примеры работы с графиком
  • CHART_BRING_TO_TOP

это то, что нужно. Но неявно написано. Искал именно про активность окна с графиком.

Напоминает некоторые законодательные акты. Читаешь их и не понимаешь, что авторы законопроекта хотели сказать.

Однако, ошибку терминала это не отменяет.

 
Eugeni Neumoin #:
Однако, ошибку терминала это не отменяет.

В чём ошибка? Такое же поведение наблюдается и у графиков в MetaTrader 5.

 
Artyom Trishkin #:

В чём ошибка? Такое же поведение наблюдается и у графиков в MetaTrader 5.

Размер окна меняется в фоновом режиме.

Ширина и высота меняются в значениях параметров. А физически окно не меняется.