用 MQL 编写的用户界面图库 - 页 24

 
hini #:
如何消除编译时生成的五千多条警告,其中许多都在标记语言文件中?
不可能。从技术上讲,这是不可避免的,因为我们在字符串数组中编写标记代码。这种数据类型通常适用于编写任何值和单词。

最终,这并不重要,因为构造函数完全能够区分关键字、名称和数值。

这种方法不会造成数据丢失。
 
理论上,你可以在每个数值前写入 (int) 或 (double),但我让用户自己决定。
 
我们不得不 "扼住编译器的咽喉",但最终我们赢了)。这没什么大不了的。


声明一下。我尊重编程规则和编译器的警告,但在这种情况下,我没有找到更好的解决方案。我知道有些人可能不喜欢这种方法,但事实证明这是最理想的。而且无害。
 
我真的希望明天就能发布更新,那些想最终开始创建自己界面的人也能看到。我会尽力的。
 
Реter Konow 编译器警告,但在这种情况下,我找不到更好的解决方案。我知道有些人可能不喜欢这种方法,但事实证明这是最理想的。而且无害。
一个小故事:

当遇到在哪里写标记代码的问题时,我面临两个主要选择--在字符串数组中或在文件中。权衡利弊之后,我认为数组更好,原因有很多。首先,构造函数代码可以即时初始化和处理数组内容。其次,从构造函数/引擎中快速访问控件的各个属性,以便在必要时进行读取/改写(如果是文件,这将是个大问题)。第三,通过自定义 OnChartEvent() 事件向资源发送数组要容易得多。这就是我们选择数组的原因。警告...你能做什么呢?为了达到目的,总要牺牲一些东西。

 
对上面文字的更正:不是按资源转发,而是按组成字符串的片段转发。
 
好吧,这也是让标记可以写入文本文件的想法 "棺材盖 "上钉上最后一颗钉子的全部原因:

.txt 文件无法通过编译来确保没有严重的错别字。这意味着,如果用户用逗号、引号、空格等把某些地方弄得一团糟,编译器是不会知道的。

只有在构建界面失败后,他才会意识到自己把代码打错了,然后进去搜索并找出每一个错字。如果漏掉了哪怕一个,就必须重新再做一遍。

这对于没有编译器警告来说是一个昂贵的代价。

这就是为什么在 MQL 中,标记代码的字符串数组变体没有其他选择,也不能使用。编译器警告 应该是必然的。
 
附注:即使关键字拼写错误,编译器也会发出警告。有时 intellisense 会有所帮助。而在 .txt 文件中,如果关键字拼写错误,你是不会知道的。因此,与数组相比,文件没有任何实际优势。

我希望我已经详细解释了为什么在这种特殊情况下不应该去除编译器警告

大家好。

 
Реter Konow #:
附注:即使关键字拼写错误,编译器也会发出警告。有时 intellisense 会有所帮助。而在 .txt 文件中,如果关键字拼写错误,你是不会知道的。因此,与数组相比,文件没有任何实际优势。

我希望我已经详细解释了为什么在这种特殊情况下不应该去除编译器警告

大家好。

好的,理解了
 
构造器的核心是这部分代码吗
附加的文件: