文章 "MQL5 MVC 范式下表格的视图与控制器组件:容器"

 

新文章 MQL5 MVC 范式下表格的视图与控制器组件:容器已发布:

在本文中,我们将讨论如何创建一个支持内容滚动的“容器”控件。在此过程中,将对已实现的图形库控件类进行改进。

在 MVC(模型-视图-控制器)范式中开发 TableView 控件的过程中,我们已经创建了模型组件 —— 一个表格模型,并开始创建视图和控制器组件。在上一篇文章中,我们创建了一些简单但功能齐全的控件。复杂的控件将由这些元素组装而成。今天我们将编写如 Panel(面板)、GroupBox(分组框)和 Container(容器)这样的控件类 —— 这三个元素都是用于在其上放置各种控件的容器。

  • Panel 控件是一个可以放置任意数量其他控件的面板。当将面板移动到新坐标时,位于面板上的所有控件也会随之移动。因此,面板是位于其上的控件的容器。然而,如果容器内容超出面板边界,此元素没有提供滚动条以实现滚动浏览。此类内容会被简单地裁剪到容器边界内。
  • GroupBox 控件是一组组织成一个组的元素。它继承自面板,能够根据某些共同目的对元素进行分组,例如,一组单选按钮(RadioButton)元素,其中整个组中只有一个元素可以被选中,而组中的其他元素则被取消选中。
  • Container 控件。只允许附加一个控件。如果附加元素超出容器范围,则容器上会出现滚动条。它们可以滚动浏览容器中的内容。要在容器中放置任意数量的控件,需要在容器中放置一个面板,并将所需数量的控件附加到该面板上。因此,容器将在面板中滚动,而面板将在滚动后调整其内容的位置。

因此,除了前面提到的三个主要控件外,我们还需要为创建滚动条创建两个类 —— 滑块类(Thumb)和滚动条类(ScrollBar)。将会有两个这样的类 —— 分别用于垂直和水平滚动条。

编译指标并在图表上运行:


点击轨道时整屏滚动功能有效,点击按钮时切换模式有效,按住按钮时事件自动重复功能有效,滚轮滚动功能有效。


作者:Artyom Trishkin

 
我不知道发生了什么事,但当我创建并运行原始代码时,显示的内容与文章底部描述的不一样
附加的文件:
Pic_.jpg  571 kb
 
Nguyen Tuấn Anh #:
我不知道发生了什么,但当我创建原始代码并运行时,显示的结果与文章底部描述的不同。

从图表中删除指标。按 Ctrl+B,在打开的图形对象列表窗口中点击 "全部",删除所有对象。然后重新启动指标。

但最好能说明日志中的内容--很可能是在构建对象时出现了错误。