При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
//--- установим картинки для режимов On и OffObjectSetString(chart_ID,name,OBJPROP_BMPFILE,0,file_on)
ObjectSetString(chart_ID,name,OBJPROP_BMPFILE,1,file_off)
//--- установим, в каком сотоянии находится метка (нажатом или отжатом)ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state);
// задержка 500 милисекунд, годная для тестера
躲在貂皮里
我正在努力理解对象,在MQL4参考手册中有一个例子,按下一个按钮(按住/不按住)会改变图片。该按钮有两种状态。所以我的问题是,如何使一个按钮有,比如说,3个或更多的状态?我希望按钮的 每个状态 都有自己的图片。如果用这个函数不可能做到这一点,那么用什么函数才能达到预期的效果?
我正在努力理解对象,在MQL4手册中有一个例子,按下一个按钮(按住/不按住)会改变图片。该按钮有两种状态。所以我的问题是,如何使一个按钮有,比如说,3个或更多的状态?我希望按钮的 每个状态 都有自己的图片。如果用这个函数不能做到这一点,用什么函数才能达到预期的效果?
半压式:)
滑块在9个位置上)我意识到,当按下时它变成了浅黄色,当双击时它变成了黄色。但这不是一个标准的按钮。
真的吗?即使你进一步阅读预期的结果,也如此难以理解?
每当你点击一张图片,图片就会改变。例如,5张图片,每张图片在你点击时都会发生变化,以此类推。
只是OBJPROP_STATE刚刚好,如果你想在一圈内改变2张图片,但要超过2张以上。
真的吗?即使你进一步阅读预期的结果,也如此难以理解?
每当你点击一张图片,图片就会改变。例如5张图片,每次点击时每张图片都会改变,如此循环。
只是OBJPROP_STATE刚刚好,如果你想在一圈内改变2张图片,但要超过2张以上。
如果你需要在一圈内改变2张图片,只用OBJPROP_STATE就可以了,但超过2张,
。
可能的解决方案:逐一创建几个OBJ_BITMAP_LABEL对象。点击第一个对象会将其删除,并在同一位置创建第二个对象。在第二个对象之后,第三个对象被创建。对于这两种OBJPROP_BMPFILE 模式,你加载相同的图像,不跟踪点击的状态,而是跟踪现有对象的名称。这个名称将告诉你按钮的 当前状态。
可能的解决方案:逐一创建几个OBJ_BITMAP_LABEL对象。点击第一个对象会将其删除,并在同一位置创建第二个对象。在第二个对象之后,第三个对象被创建。对于这两种OBJPROP_BMPFILE 模式,你加载相同的图像,不跟踪点击的状态,而是跟踪现有对象的名称。这个名称将告诉你按钮的 当前状态。
谢谢你,我会试一试的。