文章 "图形界面 XI: 重构函数库代码 (集成编译 14.1)"

 

新文章 图形界面 XI: 重构函数库代码 (集成编译 14.1)已发布:

随着函数库的增长, 其代码必须重新优化以便减少其大小。本文中描述的函数库版本已变得更加面向对象。这令代码更容易学习。最新变化的详细描述将令读者能够根据自己的需求独立开发函数库。

已实现了一款 MQL 应用程序用于测试目的。其图形界面包含函数库的所有控件, 以便您可以看到所有这些控件的工作原理。这是它看上去的样子: 

图例. 12. 测试 MQL 应用程序的图形界面。

图例. 12. 测试 MQL 应用程序的图形界面。

作者:Anatoli Kazharski

 

感谢 Anatoly!
我一直期待着这次更新。
令人难以置信的工作!
非常感谢你和 MetaQuotes Software Corp.


 

我知道图书馆的用户界面发生了变化?

 

出色的作品!

我等这样的更新已经等了很久了。

需要有人尽快翻译出来!

 
Konstantin:

我是否认为图书馆的用户界面发生了变化?

这次更新(14.2)将会有另一篇文章。敬请期待。所有更改和新增内容都会有详细说明。
 
Anatoli Kazharski:
本次更新(14.2)将会有另一篇文章。敬请期待。所有更改和新增内容都有详细说明。

非常期待 :)变化是巨大的,但不幸的是,并非所有的变化都是为了更好地....

嗯,或者说到目前为止整理得很糟糕。等待、阅读、理解:)

 
Oleksii Chepurnyi:

...

变化是巨大的,但遗憾的是,并不都是为了更好.....。

比如什么?
 
Anatoli Kazharski:
比如什么?

按重要程度排序)

1. SpinEdit,也就是现在的 CTextEdit。以前我们点击输入框,选择文本,输入新值,回车。而现在,我们点击时只是放光标,鼠标没有以任何方式突出显示,也不响应数字键盘。好吧,用 String 代替 Double,我都不知道这是好还是坏....。让我们重做一次吧--让我们拭目以待:)

2.组合框。我使用的是一个小的下拉列表,不需要滚动条。我只能通过增加列表的高度来移除滚动条。

3.重新初始化时的重绘增加了很多。改变 TF 时,一个小窗口(约 25 个项目)会消失约 200 毫秒。以前几乎感觉不到。

PS 凭直觉,我希望通过双击来最小化/取消窗口映射:)也许程序库中已经实现了这个功能,只是我没有找到而已?

 
Oleksii Chepurnyi:

...

1. SpinEdit,也就是现在的 CTextEdit。以前,我们点击输入框,选中文本,输入新值,然后回车。而现在我们点击后,光标只是被放置,并没有被鼠标选中,也不响应数字键盘。好吧,用 String 代替 Double,我都不知道是好还是坏....。让我们重做一次--让我们拭目以待:)

2.组合框。我使用的是一个小的下拉列表,不需要滚动条。我只能通过增加列表的高度来移除滚动条。

3.重新初始化时的重绘增加了很多。改变 TF 时,一个小窗口(约 25 个项目)会消失约 200 毫秒。这在以前几乎无法察觉。

...

好吧,我去看看。

Oleksii Chepurnyi:

...

PS 我直觉上希望通过双击来最小化/卸载窗口:)也许库中已经实现了,只是我还没找到?


还没有。

 

代码压缩、类的通用化和技术的质的飞跃。我终于明白了。很好。


现阶段,正如我从文章中了解到的那样,几乎所有基本元素对象都已获得位图类型,并且只绘制元素的组成部分,即图片、文本和矩形。


切换到完全绘制的第一个技术障碍是OnChartEvent() 无法捕获点击完全绘制对象的事件。

第二个障碍是无法为绘制对象设置 Zorder 属性(我想您已经找到了解决方案)。


还有更多困难......


问题:如果从结果来看,您的图形用户界面已经非常出色了,为什么还要克服这些困难呢?进一步改造有什么实际意义?

 
Реter Konow:

代码压缩、类的通用化和技术的质的飞跃。我终于明白了。很好。


现阶段,正如我从文章中了解到的那样,几乎所有基本元素对象都已获得位图类型,并且只绘制元素的组成部分,即图片、文本和矩形。


切换到完全绘制的第一个技术障碍是 OnChartEvent() 无法捕获点击完全绘制对象的事件。

第二个障碍是无法为绘制对象设置 Zorder 属性(我想您已经找到了解决方案)。


还有更多困难......


问题:如果从结果来看,您的图形用户界面已经非常出色了,为什么还要克服这些困难呢?进一步改造有什么实际意义?

彼得,这些 "问题 "可以在一天内解决。我曾经把基于图形对象的界面转换为完全由一张位图绘制的界面。