奇怪的是,社区的反应如此冷淡。难道没有人需要图形界面了吗?曾几何时,围绕这一话题曾有过激烈的讨论。显然,讨论的队伍已经稀疏了许多。真遗憾。
直到现在,我才有时间更详细地阅读了这一系列的代码,并感到非常惊喜。这么多年过去了,终于有人成熟起来,决定开始新一轮的 MQL 图形界面开发进化,同时考虑到其他作者之前所有迭代的不足之处。
就在最近,在 MQL 开发暂停了很长时间之后,我开始开发EasyAndFastGUI 库的新版本,但现在我发现它很快就会与 MQL 开发者社区无关,因为这个版本已经有了一个基础,可以实现更有趣的解决方案。
我希望该项目能最终完成,甚至有可能取代标准库的图形部分。如果能实现EasyAndFastGUI 中的所有最低要求以及更多要求,我将非常乐意在我的项目中使用它。
当然,还有很多工作要做,但我相信作者会做到的。
祝你好运
EasyAndFastGUI - библиотека для создания графических интерфейсов
- www.mql5.com
Библиотека EasyAndFastGUI дает возможность создавать графические интерфейсы для своих MQL-программ.
Anatoli Kazharski #:
奇怪的是,社区的反应如此冷淡。难道没有人需要图形界面了吗?曾几何时,围绕这一话题曾有过激烈的讨论。显然,现在的队伍已经稀疏了许多。真遗憾。
直到现在,我才抽出时间详细阅读了这个系列的代码,并感到非常惊喜。经过这么多年,终于有人成熟起来,决定在 MQL 图形界面开发方面开始新一轮的进化,同时考虑到其他作者之前所有迭代的不足之处。
就在最近,在 MQL 开发暂停了很长时间之后,我开始开发EasyAndFastGUI 库的新版本,但现在我发现它很快就会与 MQL 开发者社区无关了,因为这个版本已经有了一个基础,可以实现更有趣的解决方案。
我希望该项目能最终完成,甚至有可能取代标准库的图形部分。如果能实现EasyAndFastGUI 以及更多对我来说最基本的要求,我将很乐意在我的项目中使用它。
虽然还有很多工作要做,但我相信作者会完成的。
成功了
我需要创建一个界面,但没有一个库具有完善的事件、正确的窗口管理(包括相互位置、重叠和范围限制)。如果说在某个地方有上述不同程度的详细说明,那么在任意时间点创建、删除窗口和更改属性则存在问题。
这些都应该是图形用户界面的支柱。至于为什么马上就开始 "绘图",我就不清楚了。
我对 Expert Advisor 中当前文章的源代码做了一些小改动:
//--- Создадим объект WinForms Panel for(int i1=0; i1<2; i1++) { CPanel *pnl=NULL; pnl=engine.CreateWFPanel("WFPanel"+string(i1),50,50,410,200,array_clr,200,true,true,false,-1,FRAME_STYLE_BEVEL,true,false); ... }
我对面板做了一些改动,结果如下:
将窗口切换到前台是在点击鼠标时发生的,尽管应该是在点击时发生。
通过指标接收事件,这可能是为测试器制作的,没有它,事件不起作用,在测试器中也是如此,即使通过模板.... 加载指标时也是如此。
Anatoli Kazharski #:
感谢您的反馈,阿纳托利。当然,一切都将最终确定。奇怪的是,社区的反应如此冷淡。难道没有人需要图形界面了吗?曾几何时,围绕这一话题曾有过激烈的讨论。显然,现在的队伍已经稀疏了许多。真遗憾。
直到现在,我才抽出时间详细阅读了这个系列的代码,并感到非常惊喜。经过这么多年,终于有人成熟起来,决定在 MQL 图形界面开发方面开始新一轮的进化,同时考虑到其他作者之前所有迭代的不足之处。
就在最近,在 MQL 开发暂停了很长时间之后,我开始开发EasyAndFastGUI 库的新版本,但现在我发现它很快就会与 MQL 开发者社区无关了,因为这个版本已经包含了一个基础,可以实现一个更有趣的解决方案。
我希望该项目能最终完成,甚至取代标准库的图形部分。如果能实现EasyAndFastGUI 以及更多对我来说最基本的要求,我将很乐意在我的项目中使用它。
虽然还有很多工作要做,但我相信作者会完成的。
成功了!
我想知道您希望在这里看到什么,有哪些功能?
我们非常缺乏反馈。
Aliaksandr Hryshyn #:
从另一个图表监听事件是通过指标-间谍实现的。我需要创建一个界面,但没有一个库具有完善的事件、正确的窗口管理(包括相互位置、重叠和范围限制)。如果说在某个地方有上述不同程度的详细说明,那么在任意时间点创建、删除窗口和更改属性则存在问题。
这些都应该是图形用户界面的支柱。为什么一上来就开始做 "绘图",这一点还不清楚。
我对 Expert Advisor 中当前文章的源代码做了一些小改动:
我对面板做了一些改动,结果如下:
按下鼠标时,窗口被切换到前台,尽管它应该是按下的。
接收事件是通过指示器完成的,可能是为了测试,没有指示器,事件就不起作用,在测试中也是如此,即使通过模板.... 加载指示器时也是如此。
如果您有其他更好的方法,请提出建议,我们将予以考虑。
事件在测试器中无法正常工作。
感谢您指出缺陷--我们会修复的,目前仍在开发阶段。您所说的主干。
其他图表中的事件有什么用?
我点击了我的可视化应用程序,您的智能交易系统正在并行运行,日志中也有记录:
2022.09.10 22:18:36.256 TestDoEasy117 (AUDUSD,M1) Графическая метка "1716653226_u_0": ID 10001, 2022.09.10 22:16:34 2022.09.10 22:18:36.256 TestDoEasy117 (AUDUSD,M1) OnChartEvent: Состояние кнопки: Отжата 2022.09.10 22:18:36.256 TestDoEasy117 (AUDUSD,M1) OnChartEvent: Изменено свойство графического объекта: 2022.09.10 22:18:36.256 TestDoEasy117 (AUDUSD,M1) Графическая метка "1716653226_u_0": ID 10001, 2022.09.10 22:16:34 2022.09.10 22:18:36.256 TestDoEasy117 (AUDUSD,M1) OnChartEvent: Имя BMP-файла: 2022.09.10 22:18:36.256 TestDoEasy117 (AUDUSD,M1) - Состояние "On" [0]: "\Experts\Greshnik\Strategy_viewer.ex5::1716653226_u_012896816886410156413404032" 2022.09.10 22:18:36.256 TestDoEasy117 (AUDUSD,M1) - Состояние "Off" [1]: Отсутствует 2022.09.10 22:18:38.291 TestDoEasy117 (AUDUSD,M1) CGStdGraphObj::PropertiesCheckChanged: Создан снимок истории изменений графического объекта #19: 2022.09.09 23:54:59.875 2022.09.10 22:18:38.291 TestDoEasy117 (AUDUSD,M1) OnChartEvent: Изменено свойство графического объекта: 2022.09.10 22:18:38.291 TestDoEasy117 (AUDUSD,M1) Графическая метка "1716653226_u_0": ID 10001, 2022.09.10 22:16:34 2022.09.10 22:18:38.291 TestDoEasy117 (AUDUSD,M1) OnChartEvent: Время создания: 2022.09.10 22:18:38 2022.09.10 22:18:38.291 TestDoEasy117 (AUDUSD,M1) OnChartEvent: Изменено свойство графического объекта: 2022.09.10 22:18:38.291 TestDoEasy117 (AUDUSD,M1) Графическая метка "1716653226_u_0": ID 10001, 2022.09.10 22:16:34 2022.09.10 22:18:38.291 TestDoEasy117 (AUDUSD,M1) OnChartEvent: Имя BMP-файла: 2022.09.10 22:18:38.291 TestDoEasy117 (AUDUSD,M1) - Состояние "On" [0]: "\Experts\Greshnik\Strategy_viewer.ex5::1716653226_u_012896816886410156413395097" 2022.09.10 22:18:38.291 TestDoEasy117 (AUDUSD,M1) - Состояние "Off" [1]: Отсутствует 2022.09.10 22:18:38.959 TestDoEasy117 (AUDUSD,M1) CGStdGraphObj::PropertiesCheckChanged: Создан снимок истории изменений графического объекта #20: 2022.09.09 23:54:59.875
我不明白这样做的目的。
计算速度非常慢。有大量单元格的表格会发生什么情况?
测量图形对象的更新速度:
//--- 处理图形项目集合的事件 ulong mcs=GetMicrosecondCount(); engine.GetGraphicObjCollection().OnChartEvent(id,lparam,dparam,sparam); Print((GetMicrosecondCount()-mcs)/1000.0);
鼠标左键点击面板中心:5 毫秒
点击活动选项卡的页眉:7 毫秒。
点击非活动选项卡的页眉:20 毫秒


新文章 DoEasy. 控件 (第 17 部分): 裁剪对象不可见部分、辅助箭头按钮 WinForms 对象已发布:
在本文中,我将创建一种功能,可隐藏超出其容器之外的对象部分。 此外,我亦将创建辅助箭头按钮对象,作为其它 WinForms 对象的一部分。
编译 EA,并在图表上启动它:
超出可视区域的裁剪区域可以正常工作,超出容器的标题会沿着其边缘被裁剪,如果我们设置 TabControl 的坐标,令元素超出左侧的容器,那么这里的所有内容也会被正确裁剪 — 元素本身沿着面板的边缘被裁剪, 控件上的按钮也按面板可视区域的边缘被裁剪,而不是按其容器。 这里一切正常。 水平左右按钮的宽度小于默认宽度(9 个像素)。 尽管如此,它们还是被正确显示。
还有什么需要修复? 阴影对象显示在投射它的面板之前。 我稍后会处理这个问题。
作者:Artyom Trishkin