bool Create_BMP_Label(long chart_id, // id графикаstring bmp_nm, // имя объектаstring bmp_path, // путь к обектуlong anchor, // точка привязкиlong corner, // угол привязкиint x_dist, // координата по шкале Xint y_dist) // координата по шкале Y
{
//----------------------------------------------------------------------------////Work variablesbool Result = true; //Returned importance//----------------------------------------------------------------------------//ResetLastError();
Result = ObjectCreate(chart_id,bmp_nm,OBJ_BITMAP_LABEL,0,0,0); // создание объектаif(Result)
{
ObjectSetString(chart_id,bmp_nm,OBJPROP_BMPFILE,0,bmp_path); // BMP файлObjectSetInteger(chart_id,bmp_nm,OBJPROP_ANCHOR,anchor); // установка точки привязкиObjectSetInteger(chart_id,bmp_nm,OBJPROP_CORNER,corner); // установка угола привязкиObjectSetInteger(chart_id,bmp_nm,OBJPROP_XDISTANCE,x_dist); // установка координаты XObjectSetInteger(chart_id,bmp_nm,OBJPROP_YDISTANCE,y_dist); // установка координаты YObjectSetInteger(chart_id,bmp_nm,OBJPROP_SELECTABLE,false); // нельзя выделить объект, если FALSEObjectSetString(chart_id,bmp_nm,OBJPROP_TOOLTIP,"\n"); // нет всплывающей подсказки, если "\n"
}
//The execution errors checkingif(GetLastError()!=0)
{
Result = false;
}
//----------------------------------------------------------------------------//return(Result);
//----------------------------------------------------------------------------//
}
// удаление по маске всех объектов индюкаfor (int i = ObjectsTotal() - 1; i >= 0; i--)
{
string name = ObjectName(i);
if (StringFind(name, "sig_nal") == 0)
{
ObjectDelete(name);
}
}
针对不同群体
// удаление по маске всех объектов индюкаfor (int i = ObjectsTotal() - 1; i >= 0; i--)
{
string name = ObjectName(i);
if (StringFind(name, "signal") == 0)
{
ObjectDelete(name);
}
elseif (StringFind(name, "Asignal") == 0)
{
ObjectDelete(name);
}
}
我明确地传递这些对象属性(ANCHOR_RIGHT_UPPER, CORNER_RIGHT_UPPER)。
我想我已经得到了。你是否展示了一个示例函数,而不是一段工作代码?
就这样吧,我周末要休息了。对不起,打扰了 :)
这个函数的一个更好的版本,但有些东西是可以调整的(一般来说,我会将所有这些作为一个对象,或几个对象来实现)。
虽然,你可以把这个函数放在一个库里,想怎么用就怎么用。
这个函数的一个更好的版本,但有些东西是可以调整的(一般来说,我会将所有这些作为一个对象,或几个对象来实现)。
虽然,你可以把这个函数放在一个库里,想怎么用就怎么用。
(这很好。))。把这个函数作为一个对象的好处是什么?目前,我已经以函数的形式实现了所有的功能。也许我走错了路,以后还得重做一切?
嗯,为什么是所有的人。一个功能可以变得更加普遍,并打包到,比如说,一个库中。
类也有优势,但这是与OOP有关的技巧(主要任务是在各种项目中使用代码而不考虑实现)。
例子
正如我从截图中看到的,你有一个类似信息面板 的东西(也许还有其他功能),所以你可以把这个面板看作是一些不相关的对象(图形、文本等),或者你可以把它们看作是由一个类连接的对象。因此,如果你改变一个 "输入 "参数 "角落",这个改变将影响所有与面板有关的内容。
通过为类指定一个图表,我们也为该类控制的所有对象指明了这个图表,这与与图表的绑定是一样的。
嗯,为什么是所有的人。一个功能可以变得更加普遍,并打包到,比如说,一个库中。
类也有优点,但这些都是OOP的技巧(主要任务是在各种项目中使用代码而不考虑实现)。
例子
正如我从截图中看到的,你有一个类似信息面板的东西(也许还有其他功能),所以你可以把这个面板看作是一些不相关的对象(图形、文本等),或者你可以把它们看作是由一个类连接的对象。因此,如果你改变一个 "输入 "参数 "角落",这个改变将影响所有与面板有关的内容。
我在与图表的绑定方面也有同样的问题。 一旦我们向类表明了一个图表,我们就表明了这个图表和这个类所控制的所有对象。
你有一种非常了不起的能力。用几句话就能很清楚地解释一切。谢谢你。))
在我熟悉了所有我需要的函数并练习使用它们之后,我将开始研究结构、类和OOP。遗憾的是,大自然有时迫使我去睡觉。我必须从电脑前爬走。))
我已经写了这个剧本。
任务:从图表中删除所有类型为OBJ_LABEL 的对象。但有些被跳过,仍然存在。一个错误被写在了日志中。
请告诉我如何正确操作。
我已经写了这样一个剧本。
任务:从一个图表中删除所有OBJ_LABEL 类型的对象。但其中一些被跳过,仍然存在。在日志中写了一个错误。
请告知如何正确操作。
在我看来,这个循环应该是降序的,而不是升序的,虽然我没有深入研究(但自从MQL4以来,订单的删除是在降序循环中进行的)。
诀窍在于,如果你开始从大的索引中删除,那么除了删除选定的项目(从列表的尾部),原始列表不会改变......
在我看来,这个周期应该是递减的,而不是递增的,尽管我还没有深入研究细节(自从MQL4以来,订单是以递减的方式删除的)。
诀窍在于,如果我们从一个大的索引开始删除,那么除了删除一个选定的项目(从列表的尾部),原始的列表不会改变...
我曾试图从终点开始循环。
现在,日志中没有错误,但没有一个对象被删除)。
试图从终点开始循环。
现在,日志中没有错误,但也没有对象被删除)。
在四元组中,我使用这种方法:所有对象都是组,名称部分在组中是通用的。
删除
针对不同群体
和这里的 函数IgorM
***
( 以防万一 )按对象名称排序(不确定是否与5有关)