Вопрос по созданию графического ресурса.

 

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

Из справки:

bool  ResourceCreate( 
   const string      resource_name,       // имя ресурса 
   const uint&       data[],              // набор данных в виде массива  
   uint              img_width,           // ширина создаваемой картинки-ресурса 
   uint              img_height,          // высота создаваемой картинки-ресурса 
   uint              data_xoffset,        // смещение левого верхнего угла создаваемой картинки по горизонтали вправо 
   uint              data_yoffset,        // смещение левого верхнего угла создаваемой картинки по вертикали вниз 
   uint              data_width,          // общая ширина изображения на основе набора данных 
   ENUM_COLOR_FORMAT color_format         // способ обработки цвета 
   );
 

Динамически создаю графический ресурс с помощью ResourceCreate() , всё работает до определённого момента : как только задаю параметры сдвига изображения идёт ошибка , картинка создаётся , но сдвига картинки нет, хотя делаю вроде всё по документации. Поиграл с параметрами функции - тоже ничего не получается.

Прошу подсказать , в чём может быть проблема , или что не так делаю ???

Ниже код проверочного скрипта , которым создавал ресурс:

#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

#property script_show_inputs

input uint X_Size   = 300;
input uint Y_Size   = 300;
input uint X_Offset = 0;
input uint Y_Offset = 0;
input color Color   = clrRed;
input uchar Alpha   = 200;


string name = "test resource";
uint arr_resource[];   
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
   ObjectCreate(0, name, OBJ_BITMAP_LABEL, 0, 0, 0);
   ObjectSetString(0, name, OBJPROP_BMPFILE, "::" + name);
//---
   ArrayResize(arr_resource, X_Size * Y_Size);
   ArrayInitialize(arr_resource, ColorToARGB(Color, Alpha));
//--- обновляем ресурс и выводим его на экран
   if(!ResourceCreate("::" + name, arr_resource, X_Size, Y_Size, X_Offset, Y_Offset, 0, COLOR_FORMAT_ARGB_NORMALIZE))
   Print("Error  ", GetLastError());
   ChartRedraw();
   
   while(!IsStopped());
   ObjectDelete(0, name);
}
 

Если в ME нажать CTRL+SHIFT+F и поискать ResourceCreate, то в поставке будет попадаться только такое

ResourceCreate(m_rcname,m_pixels,width,height,0,0,0,clrfmt)

Т.е. примеров использования offset-параметров нет. Сам предпочитаю это.

Demo_BitmapOffset (OBJPROP_XOFFSET и OBJPROP_YOFFSET)
Demo_BitmapOffset (OBJPROP_XOFFSET и OBJPROP_YOFFSET)
  • голосов: 20
  • 2011.03.25
  • MetaQuotes Software Corp.
  • www.mql5.com
С появлением двух новых свойств стало возможным загружать одно изображение с набором из нескольких картинок. Такая технология давно используется в web-дизайне и получила название Спрайт: Важно: для использования свойств OBJPROP_XOFFSET и OBJPROP_YOFFSET обязательно указывайте размер области видимости с помощью свойств OBJPROP_XSIZE и...
 
fxsaber:

примеров использования offset-параметров нет.

теперь понятно - эти параметры не поддерживаются... тогда зачем они вообще там прописаны, только с толку сбивают?(этот вопрос конечно не Вам , а Метаквотам)

Сам предпочитаю это.

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

 
Sergey Kolemanov:

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

Баги регулярно обнаруживаются. Если желаете их исправления, напишите в СД.

 

fxsaber:

напишите в СД.

Создал заявку.
Причина обращения: