Функция прямоугольной метки mql4

Чтобы нарисовать прямоугольник на графике, на фоне которого потом можно вывести какую-нибудь информацию уже в виде текста, предлагаю следующую функцию. Каждая строка комментирована и все предельно понятно.

Прямоугольная метка mql4

void DrawBox(string nm, color BackColor, color BorderColor, int x, int xsize, int y, int ysize)
{

if(!ObjectCreate(0, nm, OBJ_RECTANGLE_LABEL, 0, 1, 1, 1, 1))
{
Print(__FUNCTION__,
": не удалось создать прямоугольник! Код ошибки = ", GetLastError());
return;
}
ObjectCreate(0, nm, OBJ_RECTANGLE_LABEL, 0, 1, 1, 1, 1); // Создаем метку
ObjectSetInteger(0, nm, OBJPROP_XDISTANCE, x); // X-координата
ObjectSetInteger(0, nm, OBJPROP_YDISTANCE, y); // Y-координата
ObjectSetInteger(0, nm, OBJPROP_XSIZE, xsize); // ширина метки
ObjectSetInteger(0, nm, OBJPROP_YSIZE, ysize); // высота метки
ObjectSetInteger(0, nm, OBJPROP_BGCOLOR, BackColor); // цвет фона
ObjectSetInteger(0, nm, OBJPROP_BORDER_TYPE, BORDER_RAISED); // тип границы
ObjectSetInteger(0, nm, OBJPROP_CORNER, CORNER_LEFT_UPPER); // угол привязки
ObjectSetInteger(0, nm, OBJPROP_BORDER_COLOR, BorderColor); // цвет рамки
ObjectSetInteger(0, nm, OBJPROP_BACK, false); // на заднем плане - true
ObjectSetInteger(0, nm, OBJPROP_SELECTABLE, false); // перемещение метки мыщью, true - можно
ObjectSetInteger(0, nm, OBJPROP_SELECTED, false); // выделение метки мышью, true - можно
ObjectSetInteger(0, nm, OBJPROP_HIDDEN, true); // скрыть в списке объектов - true
}

Пример вызова:

DrawBox("trh_sq", clrBlue, clrWhite, 60, 300, 30, 230);

Поделись с друзьями: