2706/5000
函数设置相应对象属性的值。对象属性必须是datetime, int, color, bool或char类型。这个函数有两个变体。
设置属性值,不修改:
|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
以物体的名义。
prop_id
对象属性的ID。该值可以是[ENUM_OBJECT_PROPERTY_INTEGER](https://docs.mql4.com/cn/constants/objectconstants/enum_object_property# ENUM_OBJECT_PROPERTY_INTEGER)枚举的值之一。
prop_modifier
[in]指定属性的修饰符。它表示斐波纳契工具和图形对象Andrew的pitchfork中的级别数。能级的计算从0开始。
prop_value
财产的价值。
返回值
只有当更改图形对象属性的命令成功发送到图表时,函数才返回true。否则返回false。要了解更多关于error的信息,请调用GetLastError()。
请注意
当在当前图表上使用此函数时,将直接访问此图表,并立即返回结果。为了在不同的图表上设置对象属性,使用异步调用。异步调用意味着函数不等待已添加到另一个图表队列的命令的执行。相反,它立即返回控制权。
要检查当前图表之外的命令执行结果,可以使用检查指定对象属性的函数。但是,您应该记住,这些函数被添加到图表队列的末尾,并等待执行结果,因此会很耗时。在处理图表上的大量对象时,应该考虑到这个特性。
如何创建Web colors示例
//+--------------网络颜色表
define X距离 140 //定义编辑对象的宽度
define Y距离 33 //定义一个编辑对象的高度
//+------------网络颜色|数组---------------+
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
};
//+------------创建和初始化一个编辑对象---------------+
void 创建颜色盒子(int x,int y,color c)
{
//---为一个新的编辑物件生成一个名称
string 物件名="颜色盒子"+(string)x+""+(string)y;
//---创建一个新的编辑物件
if(!ObjectCreate(0,物件名,OBJ_EDIT,0,0,0)){
Print("不能创建: '",物件名,"'");
return;
}
//---设置坐标、宽度和高度
ObjectSetInteger(0,物件名,OBJPROP_XDISTANCE,xX距离);
ObjectSetInteger(0,物件名,OBJPROP_YDISTANCE,yY距离);
ObjectSetInteger(0,物件名,OBJPROP_XSIZE,X距离);
ObjectSetInteger(0,物件名,OBJPROP_YSIZE,Y距离);
//---设置文本颜色
if(clrBlack==c)
ObjectSetInteger(0,物件名,OBJPROP_COLOR,clrWhite);
else
ObjectSetInteger(0,物件名,OBJPROP_COLOR,clrBlack);
//---设置背景颜色
ObjectSetInteger(0,物件名,OBJPROP_BGCOLOR,c);
//---设置文本
ObjectSetString(0,物件名,OBJPROP_TEXT,(string)c);
}
//+------------------脚本程序启动函数---------------+
{
//---创建7x20的彩色编辑用物件表
for(uint i=0;i<140;i++)
创建颜色盒子(i%7,i/7,ExtClr[i]);
}