Использование модулей из MQL4\Include\Controls - страница 2

 
Еще один вопрос, как получить ссылку на владельца объекта, то есть на сам объект в его методах? Например, в Делфи это Self, если кто программирует на Делфи.
 
Mihail Matkovskij:
Еще один вопрос, как получить ссылку на владельца объекта, то есть на сам объект в его методах? Например, в Делфи это Self, если кто программирует на Делфи.
this - ссылка на объект внутри метода

GetPointer(this) - указатель на объект внутри метода.
 

Ilyas, спасибо!


Ещё такая ситуация, CCustomFormationIndicator идёт, как базовый класс, от него унаследован класс CPinBarIndicator. Переменная Formation объявлена, как CCustomFormationIndicator.

CCustomFormationIndicator *Formation;

Далее, объект CPinBarIndicator (насследник CCustomFormationIndicator ) добавляется в список FormationList и достаётся с помощью GetNodeAtIndex

            pinbar_index = FormationList.Add(new CPinBarIndicator);
            if(pinbar_index >= 0)
              Formation = FormationList.GetNodeAtIndex(pinbar_index);

Объект Rect принадлежит классу CPinBarIndicator переменная Formation хоть и указывает на экземпляр CPinBarIndicator, но изначально объявлена, как CCustomFormationIndicator и поэтому получить доступ к Rect невозможно ('Rect' - member function not defined). Для получения доступа к Rect нужно указать компилятору, что переменная Formation теперь не CCustomFormationIndicator, а CPinBarIndicator. Как это сделать на MQL?

 
Mihail Matkovskij:

Ilyas, спасибо!


Ещё такая ситуация, CCustomFormationIndicator идёт, как базовый класс, от него унаследован класс CPinBarIndicator. Переменная Formation объявлена, как CCustomFormationIndicator.

Далее, объект CPinBarIndicator (насследник CCustomFormationIndicator ) добавляется в список FormationList и достаётся с помощью GetNodeAtIndex

Объект Rect принадлежит классу CPinBarIndicator переменная Formation хоть и указывает на экземпляр CPinBarIndicator, но изначально объявлена, как CCustomFormationIndicator и поэтому получить доступ к Rect невозможно ('Rect' - member function not defined). Для получения доступа к Rect нужно указать компилятору, что переменная Formation теперь не CCustomFormationIndicator, а CPinBarIndicator. Как это сделать на MQL?

По идее так:

(CPinBarIndicator)Formation

 Правда, в MQL такое не пробовал, в VS работает.

 
Как можно сделать элементы управления, такие, как, CChartObjectButton и CChartObjectRectLabel (кнопки и панели) видимыми поверх всех графических объектов, которые добавляются на график (трендовые линии, надписи, прямоугольники и т. п), чтобы ничего не мешало обзору окна настроек, созданного на CChartObjectRectLabel и CChartObjectButton?
Причина обращения: