- Типы объектов и особенности указания их координат
- Объекты с привязкой ко времени и цене
- Объекты с привязкой к экранным координатам
- Создание объектов
- Удаление объектов
- Поиск объектов
- Обзор функций доступа к свойствам объектов
- Основные свойства объектов
- Координаты времени и цены
- Угол окна привязки и экранные координаты
- Определение точки привязки на объекте
- Управление состоянием объекта
- Приоритет объектов (Z-порядок)
- Настройка отображения объекта: цвет, стиль и рамка
- Настройки шрифта
- Поворот текста на произвольный угол
- Определение ширины и высоты объектов
- Видимость объектов в разрезе таймфреймов
- Назначение кода символа для метки
- Свойства лучей для объектов c прямыми линиями
- Управление нажатым состоянием объекта
- Настройка изображений в объектах-картинках
- Кадрирование (вывод части) изображения
- Свойства поля ввода: выравнивание и "только чтение"
- Ширина канала стандартного отклонения
- Настройка уровней в объектах с их поддержкой
- Дополнительные свойства Ганна, Фибоначчи и Эллиота
- Объект-график
- Перемещение объектов
- Получение времени или цены в заданных точках линий
Кадрирование (вывод части) изображения
Для графических объектов с рисунками (OBJ_BITMAP_LABEL и OBJ_BITMAP) MQL5 позволяет настроить показ лишь части изображения, заданного свойством OBJPROP_BMPFILE. Для этого необходимо установить размер объекта (OBJPROP_XSIZE и OBJPROP_YSIZE) меньше размера изображения, а координаты верхнего левого угла видимого прямоугольного фрагмента задать с помощью целочисленных свойств OBJPROP_XOFFSET и OBJPROP_YOFFSET. Данные два свойства задают, соответственно, отступ по X и по Y в пикселях от левой и верхней границы исходного изображения.
Вывод части изображения в объект
Обычно подобный прием с использованием части большого изображения применяется для иконок инструментальных панелей (наборов кнопок, меню и т.п.): единый файл со всеми иконками обеспечивает более эффективное ресурсопотребление, чем множество мелких файлов с отдельными иконками.
Тестовый скрипт ObjectBitmapOffset.mq5 создает несколько панелей с картинками (OBJ_BITMAP_LABEL), причем для всех них указан один и тот же графический файл в свойстве OBJPROP_BMPFILE. Однако за счет свойств OBJPROP_XOFFSET и OBJPROP_YOFFSET все объекты отображают разные участки изображения.
void SetupBitmap(const int i, const int x, const int y, const int size,
|
В исходном изображении находится несколько мелких значков размером 46 на 46 пикселей. Скрипт "вырезает" их по одному и располагает по вертикали у правого края окна.
Ниже показан общий файл (/Files/MQL5Book/icons-322-46.bmp), и что получилось на графике.
BMP-файл с иконками
Объекты-кнопки с иконками на графике