Мой подход. Ядро - Движок. - страница 93

 

Короче, прочитать содержание ресурса на обычном графике не удалось.

Может что то сделал не верно...

Cначала создаем советник для тестера. В нем создаем объект и связываем его с файлом:

int OnInit()
  {
   //----------------------------------------------
   if(!ObjectCreate(0,"Resource",OBJ_BITMAP_LABEL,0,0,0))Print("Object is not created!");
   else Print("Object created!");
   //-------------------------------
   if(!ObjectSetString(0,"Resource",OBJPROP_BMPFILE,"::Resource"))Print("BMPFILE is not created!");
   else Print("BMPFILE created!");
   //----------------------------------------------
   return(INIT_SUCCEEDED);
  }

Потом, функции OnTick() пишем след. код:

void OnTick()
  {
   uchar Arr[];
   uint  Data[];
   //---------------------------
   string price = (string)Bid;
   //---------------------------
   int width = StringToCharArray(price,Arr);
   //---------------------------
   ArrayResize(Data,width);
   //---------------------------
   ArrayCopy(Arr,Data);
   //---------------------------
   if(!ResourceCreate("::Resource",Data,width,1,0,0,0,COLOR_FORMAT_XRGB_NOALPHA))Print("Resource is not created!");
   //---------------------------
  }


Далее, создаем индикатор c функцией таймера и в ней пишем:

void OnTimer()
  {
//---
   uint Data[],width,height;
   //-----------------------------
   if(!ResourceReadImage("::Resource",Data,width,height))Print("Failed to read resource!");
   else Print("Resource is readable!");
   //-----------------------------
   
  }

Запускаем советник в тестере, а после, индикатор на обычном графике.  

И... ничего не читает. Пишет, что не смог прочитать ресурс.

 

Ну, и что не так?

ошибка - 

ERR_RESOURCE_NOT_FOUND

 
fxsaber:

Вышел из обсуждения.

Не обижайтесь. Ничего личного. Просто статья не помогает ничего понять.  Слишком усложнено решение.

Лучше скажите, - почему не работает чтение ресурса созданного советником в тестере, индикатором на обычном графике?

Я допустил ошибку в коде, или это просто не работает?

 

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

Приму любую критику. Нужно только понять, ошибка моя, или не работает видиние ресурса созданного в тестере.

Тогда и станет ясно, может ли ресурс быть универсальным решением для передачи информации между программами.

Думаю, эта информация будет полезна для всех.

 

Опять непонятно. 

Установил индикатор и советник на одном графике. Индикатор по прежнему не видит ресурс.

Поместил чтение ресурса в сам советник, сразу после его заполнения. Ресурс виден.

Получается, что ресурс виден только для той программы, в которой он объявлен.

Либо, он не виден только из индикатора.

Сейчас проверю видит ли ресурс, советник на другом графике.

 
Реter Konow:

...

Сейчас проверю видит ли ресурс, советник на другом графике.

Нет, тоже не видит ресурс.

И куда все гуру исчезли....

Очевидно, я допускаю ошибку. Но в чем...

А может это вообще не работает?


ЗЫ. Кстати, а зачем fxsaber использует строку описания чарта для передачи сообщения другой программе, если ресурсы работают идеальным средством связи?

 
Попробую сохранить ресурс в файле, после его создания.
 
Реter Konow:
Попробую сохранить ресурс в файле, после его создания.

Прекрасный монолог)

 
Vitaly Muzichenko:

Прекрасный монолог)

А вы знаете в чем дело?

 
Я вот подумал. Есть способ пользоваться ресурсами других программ. Наверное, решение там. Щас поищу в документации.
Причина обращения: