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

 
Реter Konow:

相反,我对自己的工作持批评态度。这就是为什么我一直在改进。

阿纳托利是好样的。这一点毋庸置疑。图书馆很好。

但是,即使是我今天给你看的那扇窗户,也可以做得非常困难。更不用说更多了。

出于兴趣,你可以编写并在这里展示你需要写的代码来重复我的窗口,我们将把它与我的版本进行比较。

要问的问题:你能描述一下为什么需要这个窗口,它对半自动交易有什么帮助?

 
Реter Konow:

你为什么要写gui库?

在MT4中使用图形对象工作 也是最耗时的。你不仅要创建一个对象,而且还要设置一堆属性。为了简化图形对象的工作,我有几个函数,可以快速创建一些图形对象。当MT5出现时,它的所有图形对象都有更多的属性,函数中的参数数量增加了很多,以至于它们看起来很愚蠢。因此出现了一个问题--如何在新的条件下简化图形对象的工作。随着OOP的出现,它的应用也得到了考虑。因此,首先创建了一个用于快速处理一个图形对象的类。然后出现了创造几个复合元素的想法。我喜欢这个想法并写了第一篇文章--如何创建我自己的控件。一切都很顺利,在2-3周内,为了好玩而练习,我已经创建了几个与标准控件相似的控件,并创建了一个库,其描述在第二篇文章中提供。第三条是关于表格的,但更多的是为了完成图书馆的形式,为此,表格是可取的。但我在形式上失败了,我当时没有想到如何让它们变得更好。另外,那时还没有鼠标移动事件,所以滚动条很奇怪,表格的拖动方式也不正常。至于形式--非但没有提示,反而被人诟病。而且,对于图书馆来说,没有太多的工作是非常方便的。我甚至有想法去改进它,重新制作滚动条,拖放表格,用另一种方式制作表格本身,这样就不会复制一个空白的类,并创建一个对象,将控件连接到它上面。

 
Vitaly Muzichenko:

每个问题:你能描述一下为什么需要那个窗口,它对半自动交易有什么帮助吗?

半自动交易,与全自动或手动交易一样,都是不可理解的、破坏经济利益的 "垃圾"。

只是另一种可能引起交易者兴趣的交易类型。

 
Artyom Trishkin:

按你认为合适的方式考虑。你可以重读一下阿纳托利的文章的讨论--那里有你的竞争企图。但阿纳托利早就做了一切,谦虚地、有质量地、专业地、"没有噪音和灰尘 "地做了一切,而你还在赞美自己。

问题是--如何使用它?你必须要读50篇文章吗?而它却被称为 "快速和简单",多么自相矛盾。

 
Dmitry Fedoseev:

问题是--如何使用它?你必须阅读50篇文章吗?

我不知为何很快就想明白了--没有文章。当然读了--出来后,从我的手机上读了。要理解那里所描述的内容。但是,在那里创建和处理对象 比在彼得那里更简单。在OnInit()中创建所需数量的带有属性描述的对象,并在OnChartEvent()中使用其信息。通常的事件模式。

后来我为自己改编了他的库--使其跨平台,增加了所有创建的对象的保存值,以防止在重新初始化时重置为原始状态,为许多与对象的互动增加了声音(默认设置和单独设置,以及禁用--这样它就不会不断响起和叮当声),尝试并放弃了它--我有自己的想法。阿纳托利的库不允许在飞行中创建对象,通过新的程序,不允许使一个以上的窗口活跃......总的来说--它有很多东西需要发展。但这是一个针对他的问题。或者对自己说--做你需要的东西,并且有所有需要的对象和使用的可能性。

 
Artyom Trishkin:

我不知为何很快就想明白了--没有文章。当然读了--出来后,从我的手机上读了。要理解那里所描述的内容。但是,在那里创建和处理对象 比在彼得那里更简单。在OnInit()中创建所需数量的带有属性描述的对象,并在OnChartEvent()中使用其信息。这是通常的事件模式。

然后我为自己数字化了他的库--使其跨平台,增加了所有创建的对象的保存值,这样它们在重新初始化时就不会被重置为原始状态,为许多与对象的互动增加了声音(默认设置和单独设置,以及禁用--这样它就不会不断响起和狂欢),玩了一圈又放弃了--我有自己的想法。阿纳托利的库不允许在飞行中创建对象,通过新的程序,不允许使一个以上的窗口活跃......总的来说--它有很多东西需要发展。但这是一个针对他的问题。或者对自己说--做你需要的东西,并且有所有需要的对象和使用的可能性。

我认为可以通过new来创建对象。而创建表单是和我一样的哑巴,在标准库中也是一样的--你必须复制表单模板。有趣的是,我被批评得很厉害,几乎因为我的形式而被诅咒,但他们并没有从这一点上继续前进。

 

这就是节奏......这就是速度!

当我转移到60公里时,有15页被扔进了这个话题。4(!)公里共1页;-)

彼得没有时间去移动核心和内核引擎。

 
Dmitry Fedoseev:

物体可能可以用新的创造出来,这不可能是不可能的,或者说真的不可能吗?而表格的创建和我一样笨,在标准库中也是一样的--你必须复制表格模板。有趣的是,我被批评得很厉害,我几乎因为我的形式而被诅咒,但他们并没有从这一点上继续前进。

是的,我必须为一百个窗口重复同样的代码一百次,但要用不同的参数。我摆脱了这一点。 对于每个控件,我创建了一个通用的创建方法--我只需要为每个元素输入必要的参数。因此,对我来说,创建非常容易--我需要一个窗口--CreateWindow(initial, individual, parameters),等等。然后,如果该元素被创建,就可以给它添加饰品,或者让它默认为标准。

即,大约(结构上)像这样。

CreateWindow(0);

CreateButton(1,0,координаты);

CreateButton(2,0,координаты);

...

CreateNuclearBomb(1,0,координаты);

...

嗯,而且有一个带两个按钮和一个原子弹的窗口已经足够了:)

但我重新制作了阿纳托利的图书馆。在我看来,这更复杂。

至于新建时的创建--如果我的记忆没有改变的话--我已经很久没有研究过代码了--他在全局层面上有一个对象,它已经用于创建和控制所有元素。

当然,你可以尝试用几个库做一个列表,由新创建,然后在定时器和事件中查看这些列表和其中发生的事情。但我试过一次,每一个这样的对象都会对相邻对象的行动做出反应--你移动一个窗口,其余的也会乱动。所以我放弃了试图弄清楚它--没有时间了。

 
Artyom Trishkin:

是的,你必须为一百个窗口重复同样的代码一百次,但要有你自己的参数。我摆脱了这一点--对于每个控件,我做了一个通用的创建方法--只要为每个元素输入正确的参数。因此,对我来说,创建非常容易--我需要一个窗口--CreateWindow(initial, individual, parameters),等等。然后,如果该元素被创建,就可以给它添加饰品,或者让它默认为标准。

即,大约(结构上)像这样。

CreateWindow(0);

CreateButton(1,0,координаты);

CreateButton(2,0,координаты);

...

CreateNuclearBomb(1,0,координаты);

...

嗯,而且有一个带两个按钮和一个原子弹的窗口已经足够了:)

但我重新制作了阿纳托利的图书馆。在我看来,这更复杂。

至于新建时的创建--如果我的记忆没有改变的话--我已经很久没有研究过代码了--他在全局层面上有一个对象,它已经用于创建和控制所有元素。

当然,你可以尝试用几个库做一个列表,由新创建,然后在定时器和事件中查看这些列表和其中发生的事情。但我一试,每个这样的对象都会对邻近对象的行动做出反应--当你移动一个窗口时,其他的也会摇晃。我没有时间去搞清楚。

CreateWindow(0)和CreateButton()的参数0是什么?用CreateWindow(0),它是一个窗口标识符,而用CreateButton(),它意味着按钮将在表单0上。 或者根本就不是?只有一个表单是可能的,所有的控件 都会在上面?

 
Dmitry Fedoseev:

CreateWindow(0)和CreateButton()的参数0是什么?在CreateWindow(0)中,这是窗口的标识符,在CreateButton()中,这意味着按钮将在表单0上。 或者根本不在?只有一个表单是可能的,所有的控件都会在上面?

每个元素都可以连接到另一个元素上。你说对了,"0 "是元素的标识符。它是GUI设计原则的一个示意图。按钮有,所以它们将被附加到这个窗口。如果我没有给一个元素添加窗口绑定,它就会被附加到图表上。我想那里就是这样做的--我记不清楚了。