Обсуждение статьи "Использование ресурсов в MQL5" - страница 2

 
fyords:
Подскажите, пожалуйста, как можно в индикаторе, загруженном из ресурсов, создать графический объект типа OBJ_BITMAP_LABEL и наложить на него текст из TextOut?
Может только для TextOut сделать исключение - возможность работать со своими ресурсами программ загруженных из ресурсов?
А в каком месте именно проблема? Что именно не получается?
 
Renat:
А в каком месте именно проблема? Что именно не получается?

Есть индикатор, из него запускается дочерний, из ресурсов.
В дочернем используется TextOut, а результат загружается на OBJ_BITMAP_LABEL через ResourceCreate, но использование ресурсов в ресурсе нет возможности. 

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

 
fyords:

Есть индикатор, из него запускается дочерний, из ресурсов.
В дочернем используется TextOut, а результат загружается на OBJ_BITMAP_LABEL через ResourceCreate, но использование ресурсов в ресурсе нет возможности. 

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

Да, на текущий момент загрузить ресурсы из ресурсного объекта нельзя.

Фактически ситуация выглядит так, что "вытащенный" из стороннего ресурса индикатор начинает жить в рамках вызываемого модуля и все его обращения к ресурсам идут уже в тело вызываемого модуля, а не в родное тело. Мы сейчас думаем над этом проблемой и скорее всего решим ее.

 
Renat:

... Мы сейчас думаем над этом проблемой и скорее всего решим ее.

Спасибо, буду ждать.
 

Прошу помочь. Не могу разобраться вот в какой ситуации.

Есть простенький индикатор и советник, его вызывающий. Оба лежат в папке общих проектов "Shared Projects\Testing\Indicator\".

Подключаю в советник индикатор в виде ресурса. И хочу создать хэндл с помощью ресурса.

Вот блок кода:

//--- ресурс
#resource "Indicator.ex5";
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   string path=GetRelativeProgramPath();
   path=path+"::Indicator.ex5"; 
//--- индикатор
   int ha=iCustom(_Symbol,_Period,path);
   if(ha==INVALID_HANDLE)
      return INIT_FAILED;
//---
   return INIT_SUCCEEDED;
  }

Компиляция проходит успешно, значит индикатор в виде ресурса прицеплен.

В итоге путь к индикатору получается такой: Shared Projects\Testing\Indicator\TestingEA.ex5::Indicator.ex5. Вроде всё правильно. Скомпилированный файл индикатора там в папке есть.

Функция GetRelativeProgramPath() - это пример из статьи

Как ни крутил, хэндл не могу создать. Спасибо.

Файлы: