- Типы объектов и особенности указания их координат
- Объекты с привязкой ко времени и цене
- Объекты с привязкой к экранным координатам
- Создание объектов
- Удаление объектов
- Поиск объектов
- Обзор функций доступа к свойствам объектов
- Основные свойства объектов
- Координаты времени и цены
- Угол окна привязки и экранные координаты
- Определение точки привязки на объекте
- Управление состоянием объекта
- Приоритет объектов (Z-порядок)
- Настройка отображения объекта: цвет, стиль и рамка
- Настройки шрифта
- Поворот текста на произвольный угол
- Определение ширины и высоты объектов
- Видимость объектов в разрезе таймфреймов
- Назначение кода символа для метки
- Свойства лучей для объектов c прямыми линиями
- Управление нажатым состоянием объекта
- Настройка изображений в объектах-картинках
- Кадрирование (вывод части) изображения
- Свойства поля ввода: выравнивание и "только чтение"
- Ширина канала стандартного отклонения
- Настройка уровней в объектах с их поддержкой
- Дополнительные свойства Ганна, Фибоначчи и Эллиота
- Объект-график
- Перемещение объектов
- Получение времени или цены в заданных точках линий
Настройки шрифта
Во всех типах объектов поддерживается возможность задать для них текст (OBJPROP_TEXT). Многие из них выводят указанный текст непосредственно на графике, для остальных он становится информативной частью всплывающей подсказки.
Когда текст отображается внутри объекта (т.е. для типов OBJ_TEXT, OBJ_LABEL, OBJ_BUTTON, OBJ_EDIT), допустимо выбрать название и размер шрифта. Для объектов остальных типов применение настроек шрифта не имеет силы: их описания всегда выводятся стандартным шрифтом графика.
Идентификатор |
Описание |
Тип |
---|---|---|
OBJPROP_FONTSIZE |
Размер шрифта в пикселях |
int |
OBJPROP_FONT |
Шрифт |
string |
Задать размер шрифта в типографских пунктах здесь нельзя.
Тестовый скрипт ObjectFont.mq5 создает объекты с текстом и изменяет название и размер шрифта. Воспользуемся в нем классом ObjectBuilder из предыдущего скрипта.
В начале OnStart вычисляется середина окна, как в экранных координатах, так в осях время/цена — это требуется, потому что объекты разных типов, участвующие в тесте, используют разные системы координат.
void OnStart()
|
Перечень тестируемых типов объектов указан в массиве types. Для некоторых из них, в частности, OBJ_HLINE и OBJ_VLINE настройки шрифта не будут иметь эффекта, хотя текст описаний появится на экране (чтобы это гарантировать мы включаем режим CHART_SHOW_OBJECT_DESCR).
ChartSetInteger(0, CHART_SHOW_OBJECT_DESCR, true);
|
Переменная t будет использоваться для последовательного переключения с одного типа на другой.
В массиве fonts собраны наиболее популярные стандартные шрифты Windows.
string fonts[] =
|
Их мы будем перебирать с помощью переменной f.
Внутри демонстрационного цикла поручаем ObjectBuilder создать объект текущего типа types[t] в середине окна (для унификации координаты задаются в обеих системах координат, чтобы не делать различия в коде в зависимости от типа: неподдерживаемые объектом координаты просто не будут иметь эффекта).
while(!IsStopped())
|
Далее настраиваем текст и шрифт (размер выбирается случайно).
const int size = rand() * 15 / 32767 + 8;
|
Для следующего прохода передвигаем курсоры в массивах типов объектов и названий шрифтов.
t = ++t % ArraySize(types);
|
Наконец, обновляем график, ждем 1 секунду и удаляем объект, чтобы создать очередной.
ChartRedraw();
|
На изображении ниже показан момент работы скрипта.
Кнопка с нестандартными настройками шрифта