错误、漏洞、问题 - 页 2797

 
Roman:

图片2530

在结构的第三个附件上,没有出现IntelliSense。

IntelliSense智能继续提供))。


也就是说,你只能依靠一个提示

 
Nikolai Karetnikov:

IntelliSense智能继续提供))。

也就是说,你只能依靠一个提示

我的帖子是关于嵌套结构的,在第三个嵌套中没有出现IntelliSense选择。
这是非常恼人的,因为嵌套结构计划只用于intellisense中的选择。
,由于它没有出现,我不得不回到结构中去,看看有哪些字段。不太好。
,我希望他们能解决这个问题。

关于你的例子,对于标准的MQL函数,提示很清楚。
如果你不理解工具提示,把光标放在功能上,然后按F1。

 
Mihail Matkovskij:

在你的例子中首先替代了ObjectDeleteAll函数

然后进入指标。

事实证明,在我的 项目 使用ObjectDeleteAll 是很容易的。为了删除所有对象,我只需要改变3次前缀,并调用ObjectDeleteAll 3次。该图表因此而清晰。MQL5语言有很多微妙之处。但同时,它又是一种非常周密的语言。

感谢所有帮助我解决这个问题的人!

你又来了。

    trend = new CChartObjectTrend();
    if(trend.Create(0, "trend"+(string)i, 0, time[shift], low[shift], time[shift], high[shift]))
      listOfTrendLines.Add(trend);
    else
      delete trend;

一个潜在的漏水洞。看一下Add()方法 的返回结果

(我知道这是一个测试,我知道检查是没问题的,但如果你检查的是创建结果,为什么不检查加法结果呢?严于律己,面向未来)
 
Artyom Trishkin:

你这里又一次有了。

一个潜在的漏水洞。看一下Add()方法 的返回结果

(我明白这是一个测试,我明白用于检查没有问题,但如果我检查创造的结果,为什么不检查加法的结果呢?未来的纪律)

那么就这样做吧。

    trend = new CChartObjectTrend();
    if(trend.Create(0, "trend"+(string)i, 0, time[shift], low[shift], time[shift], high[shift])) {
      if(!listOfTrendLines.Add(trend))
        delete trend;
    }
    else
      delete trend;

就这样了。现在没有洞了?

这实际上是一个测试程序,它完成了它的工作。我不需要它的其他东西。如果它是有效的,它将有不同的方法和概念。错误信息从每个临界点开始,标明行(__LINE__)和函数名(__FUNCTION__)......。所以,有时我也不需要使用调试。我只是看看,模块名称,行数,函数名称...

 

大家好!问题如下...

更新后,MT5终端的快捷方式不见了,无论是在桌面上还是在根文件夹中。重新安装了它。重新启动我的电脑后,历史重演。问题是什么?有人遇到过这样的问题吗?

 
Artyom Trishkin:

你这里又一次有了。

一个潜在的漏水洞。看一下Add()方法 的返回结果

(我知道这是一个测试,我理解它足以用于检查,但如果你检查创造的结果,为什么不检查加法的结果呢?未来的纪律)

在什么情况下listOfTrendLines.Add会失败?我只是不认识他们。尽管我坚持这一原则,在这里 "没有不必要的检查"(c)。但假设我们可以假设,它可能会出现偏执狂。好的,一个图形对象类的创建方法可能会失败。但如果代码写得正确,而且程序给对象起了正常的名字,它总是能正常工作。但我们说,在其使用过程中可能存在缺陷......但在正常情况下,Add方法如何能返回一个假的对象。或者ArrayResize函数(顺便说一下,这个方法中使用了这个函数),它的返回结果怎么会与new_size不同呢?除非没有足够的内存...:)但你在哪里见过现代设备有这么大的内存赤字?:)

 
Mihail Matkovskij:

在什么情况下listOfTrendLines.Add可能失败?我只是不知道他们。尽管我坚持 "没有不必要的检查"(c)的原则。但假设我们可以假设,它可能会出现偏执狂。好的,一个图形对象类的创建方法可能会失败。但如果代码写得正确,而且程序给对象起了正常的名字,它总是能正常工作。但我们说,在其使用过程中可能存在缺陷......但在正常情况下,Add方法如何能返回一个假的对象。或者ArrayResize函数(顺便说一下,这个方法中使用了这个函数),它的返回结果怎么会与new_size不同呢?除非没有足够的内存...:)但你在哪里看到过内存不足的现代系统?:)

Vps通常。
P.s.我认为你对阿列克谢不公平,因为他是第一个给出正确建议的人,无论如何他帮助了你。
 
Mihail Matkovskij:

在你的例子中首先替代了ObjectDeleteAll函数

然后进入指标。

事实证明,在我的 项目 使用ObjectDeleteAll 是很容易的。为了删除所有对象,我只需要改变3次前缀,并调用ObjectDeleteAll 3次。该图表因此而清晰。MQL5语言有很多微妙之处。但同时,它又是一种非常周密的语言。

感谢所有协助我解决这个问题的人!

我不知道你是否查阅了文档,或者只是从我的帖子中提取了功能描述。

我如此怀疑,你只有图形对象是有趋势的。如果是这样,你为什么需要一个前缀?还有一个按对象类型进行的删除

int  ObjectsDeleteAll(
   long  chart_id,            // идентификатор графика
   int   sub_window=-1,       // индекс окна
   int   type=-1              // тип объекта для удаления
   );

因此,你不必改变项目中的任何东西,只需写上

ObjectsDeleteAll(0, 0, OBJ_TREND);
)))))))))))))
 
Aleksei Beliakov:
Vps通常。
在我看来,你对阿列克谢是不公平的,毕竟他是第一个给出正确建议的人,无论如何他都帮助了你。

我不好意思地问,这有什么不公平的呢...?我想我和阿列克谢在一起很好。你和他有关系吗?

 
Alexey Viktorov:

我不知道你是看了文档还是只是从我的帖子里拿了功能描述。

我怀疑你只有图形对象是有趋势的。如果是这样,你为什么需要一个前缀?还有一个按对象类型进行的删除

所以你不需要改变项目中的任何东西。

)))))))))))))

这只是一个特殊情况。前缀是一般和普遍的。此外,删除所有趋势线 也会影响不属于程序的对象。