Скрипты: Скрипт Demo_BitmapOffset (OBJPROP_XOFFSET и OBJPROP_YOFFSET)

 

Скрипт Demo_BitmapOffset (OBJPROP_XOFFSET и OBJPROP_YOFFSET):

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

Видео можно посмотреть здесь - https://www.mql5.com/ru/forum/3115/page2#comment_55119

Автор:  MetaQuotes

Demo_BitmapOffset (OBJPROP_XOFFSET и OBJPROP_YOFFSET)

 
//--- узнаем размеры загруженной картинки, чтобы правильно задать размеры области видимости
   long y_size=ObjectGetInteger(0,bitmap_label,OBJPROP_YSIZE);

   long visual_y_size=y_size/3;
//--- зададим ширину области видимости равной ширине загруженной картинки
   ObjectSetInteger(0,bitmap_label,OBJPROP_YSIZE,visual_y_size);

Такое изменение OBJPROP_YSIZE-свойства напрочь лишает нормальной возможности узнать высоту исходной картинки?

Сейчас, чтобы узнать размер (кастомного) ресурса в BITMAP-объекте, нужно создавать вспомогательный такой же графический объект на основе OBJPROP_BMPFILE-исходного и читать в нем свойства OBJPROP_XSIZE/OBJPROP_YSIZE, удаляя затем временный объект.

Не слишком ли костыльно?

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