我的方法。核心是引擎。 - 页 4

 
OOP不会干扰内核的实现,恰恰相反。
通常情况下,有代码和数据。在我们的例子中,内核是代码,与数据强烈分离。数据也可以是代码本身。内核通常有更完整的功能来处理特定的数据,或者至少有一些自给自足的最低限度。
这种方法允许你使用最方便的数据格式,它假定会有大量的数据。
下面是另一个可以应用这种方法的例子:专家顾问中有很多策略,数据只代表策略的逻辑,核心是管理策略的功能,即订单管理、风险管理、与交易环境的合作、指标、错误处理、显示部分或全部统计数据、追踪/网格/..... 功能
 

Реter Konow:

你创建一个数组,并将你想创建的按钮的属性值写入其中。

一个按钮由三个对象组成:底座、文本、图片

每个对象都存在于一个Button元素内,因此数组必须是二维的。

所以,当你可以(而且应该)使用一个结构来处理时,为什么还要为所有这些数组而烦恼呢?而且我们可以人性化地处理这些值--按字段名,而不是按索引(这可能会造成很多愚蠢的错误)。

结果,不是一个二维数组,而是一个结构数组。 声明是一样的简洁,但简单性和可靠性要高得多,再加上内存的合理使用,因为每个字段都有自己的类型。 而OOP与此完全没有关系。

这里有一个例子。

struct TObject { char type;  string name;  int x;  int y;  int width;  int height;  color clr; };

TObject Objects[]= { { OBJ_BITMAP, "Bitmap", 100, 100, 200, 200, clrRed },
                     { OBJ_BUTTON, "Button", 150, 150, 50, 10, clrWhite },
                   };
 
Alexey Navoykov:


结果是一个 结构数组,而不是一个二维数组。 声明是一样的,但便利性和可靠性要高得多,再加上内存的合理使用,因为每个字段都有自己的类型。 而且OOP与此完全无关。


这有点模棱两可......哪个更好--一个结构的数组还是一个数组的结构?

但MQL的设计是为了与Forthran数组一起工作,这是一个事实...

 
Maxim Kuznetsov:

这里有一个难题......哪个更好--结构的数组还是数组结构?

我们谈论的是什么样的数组结构? 作者只是有数组

 

我想Peter从未见过如何在Visual C++中创建一个DialogBox模板,将任何控件,如Button、CheckBox、EditBox、ComboBox等,在可视化模式下拖放到其中。

换句话说,你可以在Windows中看到的元素,包括用字段和字符串调整来显示DB字符串的不同选项。

而使用MFC,你可以在几分钟内做出相当复杂的对话框,而且非常简略。

 
Alexey Navoykov:

为什么要用数组来做这些变态的事情呢,因为你可以(而且应该)用结构来做这些事情。它以完全相同的方式被初始化--用值,用逗号隔开。 而且这些值可以被人性化地访问--通过字段名,而不是通过索引(这可能导致很多愚蠢的错误)。

结果,不是一个二维数组,而是一个结构数组。 声明是一样的简洁,但简单性和可靠性要高得多,再加上内存的合理使用,因为每个字段都有自己的类型。 而OOP与此完全没有关系。

下面是一个例子。

这是一个不错的解决方案。但这种结构不能被整合到内核中。如果按照我的技术构建内核时,你只需要在有原型元素的数组上做一个循环,然后把它们重写到内核中,在你的方案中,这个循环是不可能的。

虽然有可能,但每个元素都应该被包裹在一个单独的结构中。以及如何在全局范围内显示它?在哪里宣布这一切...这一点并不清楚。

我的很简单。一个元素原型的数组。对象的 所有属性 都在它里面。阵列本身是全局的。访问是最简单的,而且是在程序的任何地方。

 
你的肠胃不抵制使用双打吗?毕竟,它也是一个有自己方法的复合对象。在正统的内核阵列中,没有它们的位置!看,因为它令人印象深刻(尾数、指数、符号)。
_NEW_OBJECT, тра-та-та-та-та-та, 3, 10, 1, тра-та-та-та-та-та
 
pavlick_:
你的肠胃不抵制使用双打吗?毕竟,它也是一个有自己方法的复合对象。在正统的内核阵列中没有它们的位置!"。看,这令人印象深刻(尾数、指数、符号)。

我不明白。

 

我摆脱了不必要的语法和手鼓,我只是在一个全局原型数组中初始化元素属性。

它只被使用一次--当元素原型被改写成Kernel时。

重写是在一个简单的循环中完成的。

因此,在构建阶段,Kernel开始包含用户选择的元素的原型。

接下来,内核上的新周期开始了。在它们中,我写下了用户定义的元素属性的值。

最后,你会得到一个完成的内核,它包含了所有元素的完成的用户窗口。

 

我把上述的过程称为"建立核心的过程"

核心建成后,"引擎 "开始工作。

引擎是控制元素力学的代码。

该引擎只被训练为与Kernel一起工作。它的引擎是各种事件(主要来自OnChartEvent())