- Типы объектов и особенности указания их координат
- Объекты с привязкой ко времени и цене
- Объекты с привязкой к экранным координатам
- Создание объектов
- Удаление объектов
- Поиск объектов
- Обзор функций доступа к свойствам объектов
- Основные свойства объектов
- Координаты времени и цены
- Угол окна привязки и экранные координаты
- Определение точки привязки на объекте
- Управление состоянием объекта
- Приоритет объектов (Z-порядок)
- Настройка отображения объекта: цвет, стиль и рамка
- Настройки шрифта
- Поворот текста на произвольный угол
- Определение ширины и высоты объектов
- Видимость объектов в разрезе таймфреймов
- Назначение кода символа для метки
- Свойства лучей для объектов c прямыми линиями
- Управление нажатым состоянием объекта
- Настройка изображений в объектах-картинках
- Кадрирование (вывод части) изображения
- Свойства поля ввода: выравнивание и "только чтение"
- Ширина канала стандартного отклонения
- Настройка уровней в объектах с их поддержкой
- Дополнительные свойства Ганна, Фибоначчи и Эллиота
- Объект-график
- Перемещение объектов
- Получение времени или цены в заданных точках линий
Настройка изображений в объектах-картинках
Объекты типа OBJ_BITMAP_LABEL (панель с картинкой, позиционируемая в экранных координатах) позволяют отображать растровые картинки. Под растровыми картинками понимается графический формат BMP: хотя в принципе существует множество других растровых форматов (например, PNG или GIF), они в MQL5 на данный момент не поддерживаются, как и векторные.
Указать изображение для объекта позволяет строковое свойство OBJPROP_BMPFILE. Оно должно содержать имя BMP-файла или ресурса.
Поскольку данный объект поддерживает возможность двухпозиционного переключения состояния (см. OBJPROP_STATE), для него следует использовать параметр-модификатор: под индексом 0 задается картинка для состояния "включено"/"нажато", а под индексом 1 — для состояния "выключено"/"отжато". Если задать только одну картинку (без модификатора, что эквивалентно 0), она будет использоваться для обоих состояний. Напомним, что по умолчанию состояние объекта — "выключено".
Размер объекта становится равным размеру картинки, но его можно изменить, указав в свойствах OBJPROP_XSIZE и OBJPROP_YSIZE меньшие значения: при этом выводится лишь часть изображения (подробности см. в следующем разделе о кадрировании).
Длина строки OBJPROP_BMPFILE не должна превышать 63 символа. Она может содержать не только имя файла, но и путь к нему. Если строка начинается с символа-разделителя пути (прямая косая черта '/' или двойная обратная '\\'), то файл ищется относительно каталога_данных_терминала/MQL5/. В противном случае файл ищется относительно папки, в которой находится MQL-программа.
Например, строка "\\Images\\euro.bmp" (или "/Images/euro.bmp") ссылается на файл в каталоге MQL5/Images/euro.bmp. В стандартной поставке терминала в папке MQL5 действительно существует папка Images, а в ней — пара тестовых файлов euro.bmp и dollar.bmp, так что путь является рабочим. Если же задать строку "Images\\euro.bmp" или ("Images/euro.bmp"), то это будет предполагать, например, для скрипта, запущенного из MQL5/Scripts/MQL5Book/, что папка Images с файлом euro.bmp должна находиться непосредственно там, то есть общий путь получится MQL5/Scripts/MQL5Book/Images/euro.bmp. Такого файла в нашей книге нет, а это привело бы к ошибке загрузки изображения. Однако такая схема расположения графических файлов рядом с программой имеет и свои плюсы: проще контролировать сборку, и не возникает путаницы с перемешанными картинками разных программ.
Скрипт ObjectBitmap.mq5 создает на графике панель с картинкой и назначает ей два изображения: "\\Images\\dollar.bmp" и "\\Images\\euro.bmp".
#include "ObjectPrefix.mqh"
|
Как и в случае результата работы скрипта из предыдущего раздела, здесь вы тоже можете пощелкать мышью по объекту-картинке и убедиться, что она переключается с изображения доллара на евро и обратно.