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

 
jdjahfkahjf:
你还没有意识到,交易的未来,以及它的高峰,是按钮。
而这些按钮,彼得,会卖给其他卖家。谁,反过来,卖什么?你猜对了,也是纽扣。
但为了把纽扣卖给其他纽扣卖家,他就必须从其他纽扣制造商那里购买纽扣。

妙趣横生:)))

 
Dmitry Fedoseev:

干得好,你*******,从架子上取下一个馅饼。

好吧,我试着辩解一下。

如果按照你的方案,用户仍然需要将静态类的源代码复制到项目 中,这将翻译事件,在一个单独的线程中运行表单嘛,等等。此外,你必须将表单静态地链接到这个类,即明确地输入表单类及其组件的名称。也就是说,当一个表格被改变或一些元素被添加时,明确地修改你的层代码。换句话说,一个简单明了的解决方案,将很好地展示与特定表格的互动,这就是你所展示的。在一般情况下,最好将控制逻辑与显示逻辑分开,这就是我所做的。此外,这种分离允许你确保控制器不被不合格的修改。

这里有一个评论,正好回答了为什么这样做而不是相反的问题。

Igor Makanu:

你可能是对的,对于一个用户来说,在VS2017中勾画表格中的图形元素是比较容易的,然后在VS中运行他的创作进行检查,在确保 "一切都在旋转 "之后,他可以继续在.Net和MT5中创建一个程序交互。

...

你的方法可能更实用。

 
Реter Konow:

正是如此。将会有一个巨大的带图片的Cyb代码数据库。进入,选择,得到代码,插入构造器,得到带有连接文件的核心。而且连接已经想好了,更容易了。

因此,每个表格都在一个单独的文件中。即使它更简单,可能性也是有限的。

 
Dmitry Fedoseev:

所以在那里,每个表格也是在一个单独的文件中。即使它更简单,可能性也是有限的。

说实话,我还没有完全掌握这项技术,所以我还不能对Vasiliy的解决方案的局限性说什么。

 
Реter Konow:

巴西尔,没有冒犯的意思,但像这样的小组。

我有关于这种代码。

这些代码可以简单地传递给对方,或者放在一个共同的基地里,没有必要专门为每个人画一个表格。

我把它粘贴到构造函数中,得到了另一个带有所有项目参数和连接的窗口。

彼得,为了画出和你一样的面板,我需要学习你的标记语言。用户不需要任何东西,只需要一个鼠标和基本技能就可以在Visual Studio 中绘制这个面板。你觉得有什么不同吗?

 
Реter Konow:

说实话,我还没有完全掌握这项技术,所以我还不能对Vasiliy的解决方案的局限性说什么。

而我并没有写出瓦西里的解决方案的局限性。

 
Vasiliy Sokolov:

彼得,为了画出和你一样的面板,我需要学习你的标记语言。在Visual Studio中,用户不需要任何东西来绘制这个面板,只需要一个鼠标和基本技能。你能感觉到区别吗?

瓦西里,一个人研究我的标记语言,并写出面板。还有一千人看到了面板的图片,并采取了现成的网络代码。他们把它粘贴到我的构造器中,并在他们的程序中得到那个面板。

 
Реter Konow:

预览了,但会继续重读以了解细节。

1.为什么文章中说每秒钟有5个请求?我有一个30ms的频率。

2.你能给我看看与一千多个单元格的表格的连接是什么样的吗?

3 就我的理解,通过它们的名字来调用表单中的元素发送到GuiController::SendEvent 函数 你必须 指定所有的参数吗?名称、事件、价值?还有一些零...并在定时器中对事件做一个循环?

换句话说,用户自己创建事件队列,然后将其发送到定时器中的控制器?


我必须感谢你,感谢你对我的课题的大力推广。

1)这没有什么区别。你可以把它设置成你想要的任何频率。

2)现在不支持表格(顺便说一下,你欢呼的伟大理由:)。

3)是的,按名称寻址,你必须指定所有参数。但是,这是最重要的一点,没有一个单一的事件模型。你想要自己的模型,欢迎你。做到这一点很简单。但你不能没有定时器。

事件队列是一种用于可靠处理事件的通用算法。用户不编写任何东西;由他产生的事件会自己进入队列。队列本身在99.9%的时间里只由一个事件组成。

 
Vasiliy Sokolov:

好吧,我试着辩解一下。

如果我们按照你的方案,用户仍然需要将静态类的源代码复制到项目中,这将翻译事件,在一个单独的线程中运行表单,等等。此外,你必须将表单静态地链接到这个类,即明确地输入表单类 及其组件的名称。也就是说,当一个表单被改变或一些元素被添加时,明确地修改你的层代码。换句话说,一个简单明了的解决方案,将很好地展示与特定表格的互动,这就是你所展示的。在一般情况下,最好将控制逻辑与显示逻辑分开,这就是我所做的。此外,这种分离允许你确保控制器不被不合格的修改。

这里有一个评论,正好回答了为什么这样做而不是相反的问题。

最大的问题是在一个单独的线程中启动表单,但这是由两行代码解决的,所以最终它不是一个问题。此外,在我的例子中,我故意做了第二个表单的打开,以显示它是多么容易和简单,以及你可以在独立的线程中打开任何数量的表单。

而引文中强调的--干草和稻草是一回事吗?是的!要吃香蕉,你必须剥掉香蕉皮。

 
Реter Konow:

说实话,我还没有完全理解这项技术,所以我还不能对Vasiliy的解决方案的局限性说什么。

那里没有容量限制,一切都不比Windows图形元素的 功能更多或更少,请阅读"GuiController的引擎盖下"一文,在表单设计器中添加必要的控件,并在MT5的<element - list of event handlers>中添加你认为需要接收的事件。

瓦西里-索科洛夫

2)现在不支持表格(顺便说一下,你欢喜的伟大理由:)。

我也要祝贺彼得,我在一个单独的表格中做了.dll对.Net的工作,右键事件,排序,和其他的魅力dataGridView都工作,做了部分实验表作为终端,但相当任性和缓慢的dataGridView ,我尝试了很多东西与它(和填充一个克隆datable,然后复制到datable这是链接到一个dataGridView和。我在网上搜索了一个星期并做了实验,而用dataGridView完全是一场灾难--你不能向它写入超过3-5秒)10x11的表格已经很关键了,虽然表格和运行在一个单独的线程中。

SZY: 5年前,我在Delphi中给MT4附加了一个StringGrid,我完全不担心它是如何工作的,但一切都在飞,然而与微软的dataGridView是一个问题,今天我将尝试用SourceGrid做实验,根据反馈,它比dataGridView快。