尝试
//+------------------------------------------------------------------+ void Prn_Rect_Label(string Name, int X, int Y, int width, int height, color CLR, int Corner, bool back) { ObjectDelete(0,Name); ObjectCreate(0,Name,OBJ_RECTANGLE_LABEL,0,0,0); ObjectSetInteger(0,Name,OBJPROP_XDISTANCE,X); ObjectSetInteger(0,Name,OBJPROP_YDISTANCE,Y); ObjectSetInteger(0,Name,OBJPROP_XSIZE,width); ObjectSetInteger(0,Name,OBJPROP_YSIZE,height); ObjectSetInteger(0,Name,OBJPROP_BGCOLOR,CLR); ObjectSetInteger(0,Name,OBJPROP_CORNER,Corner); ObjectSetInteger(0,Name,OBJPROP_BACK,back); return; }
有什么诀窍?为什么对象不对填充物作出反应而不进一步操作?
Renat Akhtyamov:
你不需要删除它,你必须检查它是否存在。如果它不存在,那就创造它。然后设置参数。
尝试
那么,填料为什么不听呢?
Artyom Trishkin:
你不需要删除它,你必须检查它是否存在。如果它不存在,那就创造它。然后设置参数。
你不需要删除它,你必须检查它是否存在。如果它不存在,那就创造它。然后设置参数。
同意的
首先找到。
但是,如果该对象在每次打勾 时都被删除并以相同的名称重新创建,那么搜索一个已知存在的对象就没有必要了。5211845:
那么,为什么填补不听呢?
那么,为什么填补不听呢?
以及如果是的话(假-->真)。
ObjectSetInteger (current_chart_id, obj_name1, OBJPROP_FILL, true); // не задается сразу
它不起作用,我已经试过了以下函数
对象集(obj_name1, OBJPROP_FILL, true | false)。
这段代码是否一定要工作?也许这是我的终端机的一个小故障?
ObjectSetInteger(current_chart_id, obj_name1, OBJPROP_FILL, false)。
5211845:
一般来说,这段代码应该可以工作?也 许这是我的终端机的一个小故障?
一般来说,这段代码应该可以工作?也 许这是我的终端机的一个小故障?
ObjectSetInteger(current_chart_id, obj_name1, OBJPROP_FILL, false)。
当然了。
将这段代码与你自己的代码进行详细比较,并将其放在OnTimer()中,因为没有输出点,或者暂时在OnInit()中运行。
https://www.mql5.com/ru/docs/constants/objectconstants/enum_object/obj_rectangle
![Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_RECTANGLE Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_RECTANGLE](/i/community/logo_mql5_small.png)
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_RECTANGLE
- www.mql5.com
//| Cоздает прямоугольник по заданным координатам | time1=0, price1=0, time2=0, price2=0, width=1, //| Перемещает точку привязки прямоугольника |...
我的代码是基于这个例子。我只是搞不清楚有什么区别。只不过,有一个输入参数的窗口。
如果我不需要这个窗口呢? 如果我只想用我想要的参数来创建一个对象。这有可能吗?
亲爱的程序员们,你们好!
"对于MT4终端。
我想从你那里得到一些提示。我遇到了以下的细微差别......
1.我创建了一个矩形对象--它可以工作。
2.我设置了属性。
- 风格--这很有效。
- 线条宽度 - 工作。
- 颜色--起作用了。
-填充--不想听。
我乱七八糟地搞了半天,发现创建矩形对象时默认勾选了 "将对象作为背景绘制"。只要这个复选框被选中,矩形就不听从程序的命令,如果你从对象属性 中手动删除这个复选框,那么你就可以从程序中控制填充。
问题是,为什么对象没有立即被设置为 "填充 "属性?我做错了什么,我不知道什么?
请有能力的人提供帮助!
以下是使用的代码。
#property indicator_chart_window
int start()
{
long current_chart_id=ChartID()。
//
string obj_name1="Rectangle1"。
//
double Price_Level_1 = 1296; // 黄金价格
double Price_Level_2 = 1293;
//
datetime Left_Side_1 = Time[9];
// datetime Right_Side_1 = Time[0] + PeriodSeconds() * 7;
//
const color clr = clrBeige;
const ENUM_LINE_STYLE style = STYLE_DASH;
const int width = 1;
const bool fill = false;
//
ObjectCreate(current_chart_id, obj_name1, OBJ_RECTANGLE, 0, Left_Side_1, Price_Level_1, Right_Side_1, Price_Level_2)。
ObjectSetInteger (current_chart_id, obj_name1, OBJPROP_COLOR, clr)。
ObjectSetInteger(current_chart_id, obj_name1, OBJPROP_STYLE, style)。
ObjectSetInteger (current_chart_id, obj_name1, OBJPROP_WIDTH, width)。
ObjectSetInteger (current_chart_id, obj_name1, OBJPROP_FILL, false); // 不立即设置
return(0);