Назад  Вперед

Угол графика, к которому привязан объект

Существует ряд графических объектов, для которых можно задавать угол графика, относительно которого указываются координаты в пикселях. Это следующие типы объектов (в скобках указаны идентификаторы типа объекта):

·Label (OBJ_LABEL);

·Button (OBJ_BUTTON);

·Chart (OBJ_CHART);

·Bitmap Label (OBJ_BITMAP_LABEL);

·Rectangle Label (OBJ_RECTANGLE_LABEL);

·Edit (OBJ_EDIT).

Для того чтобы указать угол графика, от которого будут отсчитываться координаты X и Y в пикселях, необходимо воспользоваться функцией ObjectSetInteger(chartID, name, OBJPROP_CORNER, chart_corner), где:

· chartID - идентификатор графика;

·name – имя графического объекта;

·OBJPROP_CORNER – идентификатор свойства для задания угла привязки;

·chart_corner – требуемый угол графика, может принимать одно из значений перечисления ENUM_BASE_CORNER.

ENUM_BASE_CORNER

Идентификатор

Описание

CORNER_LEFT_UPPER

Центр координат в левом верхнем углу графика

CORNER_LEFT_LOWER

Центр координат в левом нижнем углу графика

CORNER_RIGHT_LOWER

Центр координат в правом нижнем углу графика

CORNER_RIGHT_UPPER

Центр координат в правом верхнем углу графика

Пример:

void CreateLabel(long   chart_id,
                 string name,
                 int    chart_corner,
                 string text_label,
                 int    x_ord,
                 int    y_ord)
  {
//---
   ObjectCreate(chart_id,name,OBJ_LABEL,0,0,0);
   ResetLastError();
   if(!ObjectSetInteger(chart_id,name,OBJPROP_CORNER,chart_corner))
      Print("Не удалось установить угол привязки для объекта ",
            name,", ошибка ",GetLastError());
   ObjectSetInteger(chart_id,name,OBJPROP_XDISTANCE,x_ord);
   ObjectSetInteger(chart_id,name,OBJPROP_YDISTANCE,y_ord);
   ObjectSetString(chart_id,name,OBJPROP_TEXT,text_label);
  }
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int height=ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,0);
   int width=ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0);
   string arrows[4]={"LEFT_UPPER","RIGHT_UPPER","RIGHT_LOWER","LEFT_LOWER"};
   CreateLabel(0,arrows[0],CORNER_LEFT_UPPER,"0",50,50);
   CreateLabel(0,arrows[1],CORNER_RIGHT_UPPER,"1",50,50);
   CreateLabel(0,arrows[2],CORNER_RIGHT_LOWER,"2",50,50);
   CreateLabel(0,arrows[3],CORNER_LEFT_LOWER,"3",50,50);
  }