Как получить имя Trendline на низком уровне? - страница 2

 

Написал в СД.

Кстати обнаружил что там картинки нельзя вставлять (редко пишу в СД). Хотя картинки помогли бы в целом описывать проблемы.

Всем спасибо. 

 
elugovoy:

Написал в СД.

Кстати обнаружил что там картинки нельзя вставлять (редко пишу в СД). Хотя картинки помогли бы в целом описывать проблемы.

Всем спасибо. 

Прикрепите файлами.
 
Silent:
Прикрепите файлами.
так и сделал ))
 
elugovoy:

Приветствую всех.

В общем проблема следующая:

Есть график, пользователь рисует на ней трендовую линию, затем кликает на ней правой кнопкой мыши чтобы вывести Popup меню (см. скриншот)

 

В Popup встроена дополнительная менюшка (в самом низу), для задания доп. параметров Trendline сторонним приложением.

Дополнительные параметры задаются по имени трендовой линии. То есть при выборе пункта меню Dollar Difference Line уже вроде как нужно знать имя линии.

Пока выкрутился следующим образом: При выборе Dollar Difference Line вызываю сначала пункт Свойства Trendline..., затем выдираю оттуда имя линии, закрываю Popup и передаю имя в свое окно.

Однако при таком подходе окно со стандартными свойствами промаргивает на экране, то есть появляется и исчезает.

 

Хочется от этого избавиться. И, в связи с этим, вопрос - как узнать имя трендовой линии чтобы не вызывать окно стандартных свойств.

Может быть кто-то копал в эту сторону терминал? Полагаю, что при формировании Popup где-то в памяти хранится имя линии, так как Popup уже знает что это TrendLine.

Спасибо. 

Событие создания графического объекта (если для графика установлено свойство CHART_EVENT_OBJECT_CREATE=true)

CHARTEVENT_OBJECT_CREATE

Имя созданного графического объекта

Свойства графиков - Документация на MQL4
  • docs.mql4.com
Свойства графиков - Документация на MQL4
 
pako:

Событие создания графического объекта (если для графика установлено свойство CHART_EVENT_OBJECT_CREATE=true)

CHARTEVENT_OBJECT_CREATE

Имя созданного графического объекта

Объект уже создан пользователем вручную. Да даже если и программно, то ОН УЖЕ СОЗДАН. Речь идет о получении имени объекта при нажатии правой кнопки мыши.
 

elugovoy:

 И, в связи с этим, вопрос - как узнать имя трендовой линии чтобы не вызывать окно стандартных свойств. 

Объект уже создан пользователем вручную. Да даже если и программно, то ОН УЖЕ СОЗДАН. Речь идет о получении имени объекта при нажатии правой кнопки мыши.
при создании об'екта ему присваевается имя, зачем нажимать мышку если имя уже известно?
 
pako:
при создании об'екта ему присваевается имя, зачем нажимать мышку если имя уже известно?
Потому что так поставлена задача - по нажатию правой кнопки мышки нужно получить названия кликнутой линии. Напомню, что речь идёт о MQL4.
 
pako:
при создании об'екта ему присваевается имя, зачем нажимать мышку если имя уже известно?
Объект может создать пользователь, а имя объекта должна получать программа. Пользователь может создать объект до того, как программа будет помещена на график. 
 
elugovoy:

В Popup встроена дополнительная менюшка (в самом низу), для задания доп. параметров Trendline сторонним приложением.

Дополнительные параметры задаются по имени трендовой линии. То есть при выборе пункта меню Dollar Difference Line уже вроде как нужно знать имя линии.

tol64:
Объект может создать пользователь, а имя объекта должна получать программа. Пользователь может создать объект до того, как программа будет помещена на график. 

@  elugovoy:     при создании об'екта передаете имя в Dollar Difference Line, кликаете мышью на Dollar Difference Line приложение уже знает имя линии

tol64:           .где то написано что программа будет помещена после? даже в этом случае, после помещения программы, можно передать имя линии при инициализации программы 

 
pako:

tol64:           .где то написано что программа будет помещена после? 

Почему бы и нет. Допустим, что есть такое условие.

даже в этом случае, после помещения программы, можно передать имя линии при инициализации программы 

И далее что? Опишите подробнее, как Вы это видите. 

//--- 

В общем, самый простой вариант это кликнуть сначала по объекту левой кнопкой мыши, чтобы запомнить его имя:

void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
  {
   if(id==CHARTEVENT_OBJECT_CLICK)
      Print("sparam: ",sparam);
  }

//---

Но хочется кликнуть просто правой и тоже получить имя. Средствами MQL. ))

Причина обращения: