С помощью функции ObjectSetString можно изменить имя объекта, при этом объект со старым именем будет удален и будет создан объект с новым именем, установить текст для таких объектов, как текст, кнопка, метка, поле ввода, событие, установить текст всплывающей подсказки для объекта, описание уровня для объектов, имеющих уровни, шрифт, имя BMP-файла для объекта «Графическая метка» и «Рисунок», символ для объекта «График».
Функция TextSetFont позволяет установить тип шрифта текста, его размер, стиль и угол наклона для объектов, содержащих текст.
Как уже было сказано, функция TextOut позволяет скомбинировать текст и изображение.
Например, показанный на слайде код выводит текст в изображение, залитое одним цветом.
Здесь ExtImg это пиксельный массив, представляющий изображение 100х100 пикселей.
Функция ObjectCreate создает объект «Графическая метка» OBJ_BITMAP_LABEL, а функция ObjectSetString устанавливает для этого объекта файл изображения с именем::IMG. По поводу знака «::» справочник говорит следующее:
Для использования своего ресурса в коде нужно перед именем ресурса добавлять специальный признак"::».
Функция ArrayFill заполняет пиксельный массив пикселями белого цвета.
Функция TextOut выводит в пиксельный массив слово «Text».
Функция ResourceCreate создает из пиксельного массива ресурс с именем::IMG.
В итоге на белом фоне отображается надпись «Text».
Также можно вывести текст на готовое изображение.
Здесь функция ResourceReadImage считывает существующее изображение из папки Images окна Navigator редактора MQL5 в пиксельный массив::IMG, связанный с объектом «Графическая метка», а функция TextOut выводит в пиксельный массив слово «Text».
То же самое можно проделать и с объектом «Рисунок» OBJ_BITMAP.
Здесь мы в функции OnCalculate создаем объект «Рисунок» с помощью функции ObjectCreate, которая прикрепляет рисунок к цене закрытия последнего бара.
И далее мы заполняем связанный с этим объектом файл, текстом и изображением.
В качестве примера использования графических объектов, рассмотрим создание индикатора, который выводит в небольшое окно на графике символа тот же график, но с другим временным периодом.
Для этого используем графический объект OBJ_CHART.
В качестве входных параметров индикатора используем символ графика и его период.
В функции OnInit создадим графический объект График OBJ_CHART.
По умолчанию точка привязки этого объекта — левый верхний угол графика.
Определим отступ точки привязки объекта, его размеры, символ и период графика, отображение шкалы времени, размер точки привязки, с помощью которой можно перемещать объект, отображение ценовой шкалы, режим перемещения мышкой, цвет рамки графика.
С помощью свойства объектов OBJPROP_CHART_ID функции ObjectGetInteger получим идентификатор графика, используя который мы теперь можем применять функции работы с графиками и свойства графиков.
Откроем наш график символа, к которому мы хотим присоединить индикатор, и нажав правой кнопкой мышки, выберем пункт в контекстном меню Шаблоны и Сохранить шаблон.
Теперь мы можем перенести на наш графический объект все настройки и индикаторы графика символа.
Присоединив индикатор к графику символа, мы можем нажать на нем правой кнопкой мышки и изменить его свойства, включая его период, размеры и др.
Функция PlaySound
Функция PlaySound воспроизводит звуковой файл.
Например, это можно делать при появлении сигнала индикатора для напоминания.
В качестве примера добавим звуковой сигнал в наш индикатор Impulse keeper при появлении первого сигнала на покупку или продажу.
Скачаем какой-нибудь WAV-сигнал из Интернета и поместим его файл в папку Sounds терминала.
Добавим код в индикатор Impulse keeper.
Здесь добавлены счетчики сигналов на продажу и покупку countBuy, countSell, для того, чтобы сигнал звучал только при появлении первого сигнала.
И если появляется сигнал на покупку или продажу, соответствующий счетчик увеличивается и звучит оповещение.
При дублирующем сигнале оповещение не звучит.
При окончании серии сигналов, счетчик обнуляется.
Функция OnChartEvent
Функция OnChartEvent является функцией обратного вызова, которая вызывается при взаимодействии пользователя с графиком символа и событиях, связанных с графическими объектами графика символа.
В качестве примера использования функции OnChartEvent рассмотрим наш индикатор Impulse keeper и добавим в него функциональность, позволяющую посмотреть значения используемых индикаторов при клике на сигнале покупки или продажи индикатора.
Для этого добавим в код индикатора функцию OnChartEvent, обрабатывающую событие щелчка мыши на графическом объекте индикатора.
Но сначала, здесь мы в функции OnCalculate с помощью функции ArraySetAsSeries изменили порядок доступа ко всем используемым массивам и здесь нам не нужно использовать индекс i-1, так как в текущем тике мы начинаем цикл с индекса 1.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии