Русский

Справочник MQL4 Графические объекты ObjectSetInteger

ObjectSetInteger

Задает значение соответствующего свойства объекта. Свойство объекта должно быть типов datetime, int, color, bool или char. Существует 2 варианта функции.

Установка значения свойства, не имеющего модификатора

bool  ObjectSetInteger(
   long     chart_id,        // идентификатор графика
   string   object_name,     // имя
   int      prop_id,         // свойство
   long     prop_value       // значение
   );

Установка значения свойства с указанием модификатора

bool  ObjectSetInteger(
   long     chart_id,        // идентификатор графика
   string   object_name,     // имя
   int      prop_id,         // свойство
   int      prop_modifier,   // модификатор
   long     prop_value       // значение
   );

Параметры

chart_id

[in]  Идентификатор графика (0-текущий график).

object_name

[in]  Имя объекта.

prop_id

[in]  Идентификатор свойства объекта. Значение может быть одним из значений перечисления ENUM_OBJECT_PROPERTY_INTEGER.

prop_modifier

[in]  Модификатор указанного свойства. Означает номер уровня в инструментах Фибоначчи и в графическом объекте Вилы Эндрюса. Нумерация уровней начинается с нуля.

prop_value

[in]  Значение свойства.

Возвращаемое значение

Возвращает true только в том случае, если команда на изменение свойств графического объекта успешно отправлена графику, иначе возвращает false. Чтобы получить дополнительную информацию об ошибке, необходимо вызвать функцию GetLastError().

Примечание

При использовании функции на собственном графике осуществляется прямой доступ к графику и результат выполнения возвращается сразу же. В то время как для установки свойств объекта на чужом графике всегда используется асинхронный вызов. Асинхронный вызов означает, что функция не дожидается выполнения команды, успешно поставленной в очередь чужого графика, а сразу же возвращает управление.

Для проверки результата выполнения на чужом графике можно использовать функцию, запрашивающую указанное свойство объекта. Но при этом следует иметь в виду, что такие функции ставятся в конец очереди команд чужого графика и дожидаются результата выполнения, то есть могут быть затратными по времени. Нужно иметь это обстоятельство в виду, если ведется работа с большим количеством объектов на графике.

Пример создания таблицы Web-цветов

//+------------------------------------------------------------------+
//|                                               Table of Web Colors|
//|                         Copyright 2011, MetaQuotes Software Corp |
//|                                        https://www.metaquotes.net |
//+------------------------------------------------------------------+
#define X_SIZE 140      // ширина объекта OBJ_EDIT
#define Y_SIZE 33       // ширина объекта OBJ_EDIT
//+------------------------------------------------------------------+
//| Массив Web-цветов
//+------------------------------------------------------------------+
color ExtClr[140]=
  {
   clrAliceBlue,clrAntiqueWhite,clrAqua,clrAquamarine,clrAzure,clrBeige,clrBisque,clrBlack,clrBlanchedAlmond,
   clrBlue,clrBlueViolet,clrBrown,clrBurlyWood,clrCadetBlue,clrChartreuse,clrChocolate,clrCoral,clrCornflowerBlue,
   clrCornsilk,clrCrimson,clrCyan,clrDarkBlue,clrDarkCyan,clrDarkGoldenrod,clrDarkGray,clrDarkGreen,clrDarkKhaki,
   clrDarkMagenta,clrDarkOliveGreen,clrDarkOrange,clrDarkOrchid,clrDarkRed,clrDarkSalmon,clrDarkSeaGreen,
   clrDarkSlateBlue,clrDarkSlateGray,clrDarkTurquoise,clrDarkViolet,clrDeepPink,clrDeepSkyBlue,clrDimGray,
   clrDodgerBlue,clrFireBrick,clrFloralWhite,clrForestGreen,clrFuchsia,clrGainsboro,clrGhostWhite,clrGold,
   clrGoldenrod,clrGray,clrGreen,clrGreenYellow,clrHoneydew,clrHotPink,clrIndianRed,clrIndigo,clrIvory,clrKhaki,
   clrLavender,clrLavenderBlush,clrLawnGreen,clrLemonChiffon,clrLightBlue,clrLightCoral,clrLightCyan,
   clrLightGoldenrod,clrLightGreen,clrLightGray,clrLightPink,clrLightSalmon,clrLightSeaGreen,clrLightSkyBlue,
   clrLightSlateGray,clrLightSteelBlue,clrLightYellow,clrLime,clrLimeGreen,clrLinen,clrMagenta,clrMaroon,
   clrMediumAquamarine,clrMediumBlue,clrMediumOrchid,clrMediumPurple,clrMediumSeaGreen,clrMediumSlateBlue,
   clrMediumSpringGreen,clrMediumTurquoise,clrMediumVioletRed,clrMidnightBlue,clrMintCream,clrMistyRose,clrMoccasin,
   clrNavajoWhite,clrNavy,clrOldLace,clrOlive,clrOliveDrab,clrOrange,clrOrangeRed,clrOrchid,clrPaleGoldenrod,
   clrPaleGreen,clrPaleTurquoise,clrPaleVioletRed,clrPapayaWhip,clrPeachPuff,clrPeru,clrPink,clrPlum,clrPowderBlue,
   clrPurple,clrRed,clrRosyBrown,clrRoyalBlue,clrSaddleBrown,clrSalmon,clrSandyBrown,clrSeaGreen,clrSeashell,
   clrSienna,clrSilver,clrSkyBlue,clrSlateBlue,clrSlateGray,clrSnow,clrSpringGreen,clrSteelBlue,clrTan,clrTeal,
   clrThistle,clrTomato,clrTurquoise,clrViolet,clrWheat,clrWhite,clrWhiteSmoke,clrYellow,clrYellowGreen
  };
//+------------------------------------------------------------------+
//| Создание и инициализация объекта OBJ_EDIT                        |
//+------------------------------------------------------------------+
void CreateColorBox(int x,int y,color c)
  {
//--- сгенерируем по имени цвета имя для нового объекта 
      string name="ColorBox_"+(string)x+"_"+(string)y;
//--- создадим новый объект OBJ_EDIT
   if(!ObjectCreate(0,name,OBJ_EDIT,0,0,0))
     {
      Print("Не удалось создать объект: '",name,"'");
      return;
     }
//--- зададим координаты точки привязки, ширину и высоту в пикселях
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x*X_SIZE);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y*Y_SIZE);
   ObjectSetInteger(0,name,OBJPROP_XSIZE,X_SIZE);
   ObjectSetInteger(0,name,OBJPROP_YSIZE,Y_SIZE);
//--- установим цвет текста для объекта 
   if(clrBlack==c) ObjectSetInteger(0,name,OBJPROP_COLOR,clrWhite);
   else            ObjectSetInteger(0,name,OBJPROP_COLOR,clrBlack);
//--- установим цвет фона
   ObjectSetInteger(0,name,OBJPROP_BGCOLOR,c);
//--- установим текст объекта OBJ_EDIT соответствующим цвету фона
   ObjectSetString(0,name,OBJPROP_TEXT,(string)c);
  }
//+------------------------------------------------------------------+
//| Функция запуска скрипта на выполнение                            |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- создадим таблицу из цветовых блоков 7х20
   for(uint i=0;i<140;i++)
      CreateColorBox(i%7,i/7,ExtClr[i]);
  }

Смотри также

Типы объектов, Свойства объектов