用 MQL 编写的用户界面图库 - 页 45

 
我想补充一下为什么不能简单地通过与之前记录的图表尺寸 进行比较来检查图表尺寸

在切换图表时,图表尺寸的 ChartGetInteger() 函数会发送不正确的值,这就会使算法 "认为 "尺寸发生了变化,从而使任务栏从其位置 "跳转"。我费了九牛二虎之力才解决了这个问题。现在我将检查在这些事件中向 ChartGetInteger() 函数报告的图表尺寸值。
 
也就是说,在切换图表时,尺寸不会改变,但 ChartChange 事件会发生,但 ChartGetInteger() 函数不知为何总是报告尺寸为 480(宽)和 167(高)。在任何图表尺寸 下都是如此。(版本 2470,我还没有检查新版本)。
 
在新版本(4435)中,当切换图表时,ChartGetInteger() 函数会返回宽度为 490、高度为 103 的值。实际图表尺寸为 宽 1068、高 438。

请注意,切换图表时尺寸不会改变。
 
基于这些条件,我将继续研究传入事件的特殊性,以区分图表尺寸 的真实变化和错误变化。当开发人员修复该功能时,我将简化代码。:)
 
测试了不同的图表大小调整 事件。问题似乎只出现在图表切换时,在这种情况下不会发生实际的大小调整。但是 ChartGetInteger() 函数持续报告 490 到 103。

其他事件一切正常。


任务栏问题将在下一版本中修复。
 
Реter Konow #:
测试了不同的图表大小调整 事件。问题似乎只出现在图表切换时,在这种情况下不会发生实际的大小调整。但是 ChartGetInteger() 函数持续报告 490 到 103。

其他事件一切正常。


任务栏问题将在下一版本中修复。
辛苦了!期待您的工作。
 
hini #:
感谢您所做的工作!期待看到你们的作品。
谢谢你们
 

清理、重新编译、重新安装。

我将列出我注意到的问题,排名不分先后:

1.打开窗口后,任务栏上 没有任何 显示。最小化窗口后,按钮出现。展开后也不会消失。如果有 "像在 Windows 中一样 "的行为概念,它应该立即出现。

2.2. 在动态窗口中,当光标移动到最小化和最大化按钮上时,只要光标还在窗口内,它们就会保持突出显示。

3.在动态窗口 中, 标题在展开 变为灰色,返回后保持灰色,只有在最小化和返回后才恢复颜色。

4.4. 展开后的窗口不会隐藏图表上的时间和价格刻度。

5.通过 "i, AT, _X2X, "MF", 5, _Y2H, "Report", 5 "命令放置在"H_TAB, "Report "下的表格会忽略左边缘设置。与"i,AT,_X2X,"MF",5,_Y2Y,"MF",20,"相同。

6.最重要的是动态窗口不允许使用V_BOX,这彻底改变了我的设计。为了便于定位和滚动,两个表格被放在各自的框中。现在我不得不直接在 "MF "上绘制它们,因此无法将下层表格紧靠在上层表格的下方。绑定"i,AT,_X2X,"MF",5,_Y2H,"Table1",5、"不起作用,因为组名 Table1 不是元素。我设法绑定到表的最后一行,但对于动态表来说,这不是一个选项。我还不知道如何引用表而不是组。如果要以编程方式向表中添加行,那么就必须使用表格的寻址方式。

7.还有一件事。您的动态窗口是一个可以展开和折叠的对等窗口。我想要的不是窗口,而是桌面。就像你的构造函数一样。这样它

a) 一次性展开,覆盖整个图表

b) 没有页眉和框架(只有任务栏)

c) 不能折叠

d) 可以像普通窗口一样放置项目。

也就是说,将 DINAMIC 替换为 FULLSCREEN 或 DESKTOP。您已经有了这样做的基础。

 
Edgar Akhmadeev #:

...

感谢您的详细意见。

我会尝试用动态窗口解决您的问题--表格排列的复杂性。

让我这样说吧--动态全屏窗口在用户图形用户界面中具有特殊用途,因此有其特定的局限性。它不像 "设置 "窗口那样具有通用性。这也是合乎逻辑的。毕竟,所有专门 "定制 "的东西都会受到某种限制。

不过,动态表格或无限列表可以与动态窗口中的其他元素组组合在一起,它们不需要单独的 "唯一 "空间,尽管我认为这样更方便。如何实现表格与其他组的兼容性?- 这是一个技术问题。

为了实验起见,我将使用您的表格,并尝试将它们插入全屏窗口。当然,我需要修改代码...

结果

(点击图片)


我先不公布代码,因为老实说,一切都很 "原始"。我不得不使用一些技巧和 "拐杖"。但是,正如您所看到的,一切都可以正常工作。

 
Edgar Akhmadeev #:
...

7.还有一件事。您的动态窗口是一个可以展开和最小化的对等窗口。我想要的不是窗口,而是桌面。就像你的构造函数一样。这样它

a) 打开后立即展开,覆盖整个图表

b) 没有页眉和框架(只有任务栏)

c) 不能折叠

d) 可以像普通窗口一样放置元素

也就是说,将 DINAMIC 替换为 FULLSCREEN 或 DESKTOP。您已经有了这样做的基础。


在动态窗口发布后,我会考虑这个选项,因为我认为在笔记本电脑屏幕较小的情况下,这个选项是合理的。