文章 "图形界面 X: 简单快速开发库的更新 (版本 2)"

 

新文章 图形界面 X: 简单快速开发库的更新 (版本 2)已发布:

自从之前的系列文章发布以后,简单快速开发库(Easy And Fast library)又增加了一些新的功能。库的结构和代码经过部分优化后部分减少了CPU的负载,很多控件类中的一些重复方法被转移到 CElement 基类中。

1. 改为默认颜色规划。现在,与任何图表的背景相比,它基本上是颜色最浅的。使用默认的颜色规划使得开发在自定义类中创建控件的方法可以指定最小数量的属性。 

以下的屏幕截图显示了MQL程序的图形界面中与浅色和深色背景比较的实例。

 图 1. 默认颜色规划的图形界面实例与浅色背景的比较

图 1. 默认颜色规划的图形界面实例与浅色背景的比较

作者:Anatoli Kazharski

 

感谢作者的高质量作品。

 

等待视频

以及更多窗口动态的实现。如果可能的话)。

在我看来,这将是整个工作的合理结论,并将使借助所提供的库编写的界面更加完整。

(本建议仅表达 "感兴趣的用户 "的愿望,仅此而已)。仅此而已)。

 

在 Tab 1 标签上有 3 个单选按钮,在这个示例中我应该在什么地方添加这些按钮,以便在切换按钮时弹出提示,显示按下按钮的名称?

附注:在本例中,MainWindow.mqh 文件的 bool CProgram::CreateTable 函数中有两个定义:COLUMNS2_TOTAL ROWS2_TOTAL,而在同一函数中使用的是COLUMNS1_TOTAL ROWS1_TOTAL 定义。这可能是一个错误。

 
Alexey Oreshkin:

在 Tab 1 标签上有 3 个单选按钮,在此示例中我应该在哪里添加什么内容,以便在切换按钮时弹出一个带有被按下按钮名称的警报?

在自定义类CProgram::OnEvent() 的事件处理程序中添加以下代码块:

//+------------------------------------------------------------------+
//| 图形事件处理程序|
//+------------------------------------------------------------------+
void CProgram::OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
  {
//...
//--- 文本标签上的点击事件
   if(id==CHARTEVENT_CUSTOM+ON_CLICK_LABEL)
     {
      //--- 如果您按下单选按钮
      if(lparam==m_radio_buttons1.Id())
        {
         ::Alert("element id (lparam): ",lparam,"; radio button index (dparam): ",(int)dparam,"; radio button description (sparam): ",sparam);
         return;
        }
      //---
      return;
     }
//...
  }

//---

结果


//---

p.s. 在本例中,MainWindow.mqh 文件中的 bool 函数 CProgram::CreateTable 有两个定义:COLUMNS2_TOTAL ROWS2_TOTAL,而在同一函数中又使用了COLUMNS1_TOTAL ROWS1_TOTAL 两个定义。这可能是一个错误。

是的,我从另一个文件转移代码时忘了修正。

 
Реter Konow:

等待视频

以及更多窗口动态的实现。如果可能的话)。

在我看来,这将是整个工作的合理结论,并将使借助所提供的库编写的界面更加完整。

(本建议仅表达 "感兴趣的用户 "的愿望,仅此而已)。仅此而已)。

除了窗口动态功能外,在实现完整的功能和整个工作的逻辑结论之前,还有很多工作要做。至少还有九个控件。此外,我们还需要做一些改进,以简化界面的创建,因为有些用户会遇到困难。此外,我们还需要制作帮助文档。更准确地说,这甚至是必要的,但只有在开发工作全部完成后我才会这样做。现在还很遥远。

 
Anatoli Kazharski:

在整个工作的状态和逻辑彻底完成之前,除了窗口动态之外,还有很多工作要做。至少还要增加九个控件。我们还需要做一些改进,以简化界面的创建,因为有些用户会遇到困难。此外,我们还需要制作帮助文档。更准确地说,这甚至是必要的,但只有在开发工作全部完成后我才会这样做。这不是一时半会儿的事。

我明白了。

窗口动态不是主要的。但这很方便。

非常有趣的是,你还打算添加哪些控件

你会制作一个演示界面功能的视频吗?

或者,例如,您可以为一位从事 MA 工作的小专家拍摄创建界面的过程。

我真的很想看看最终的效果。

我会亲自检查一切,但老实说,我完全没有时间,因为我的工作非常忙。

此外,这样的视频可能会吸引很多用户的关注。

 
Реter Konow:

我明白了。

窗口动态不是主要的。但它很方便。

非常有趣,你还打算添加哪些控件?

您会制作一个演示界面功能的视频吗?

或者,举个例子,您可以拍摄为一个研究 MA 的小专家创建界面的过程。

我真的很想看看最终的效果。

我会亲自检查一切,但老实说,我完全没有时间,因为我的工作非常忙。

此外,这样的视频会吸引很多用户的关注。

所有这些以及更多的内容都已经计划好了。将会有很多工作示例,帮助 MQL 开发人员在他们的项目中使用这个库。遗憾的是,我无法花太多时间逐一介绍。但我可以抽出时间写文章。

例如,从元素中将

  • 时间 "元素。
  • 文本字段 "元素,带有自动单词传输功能和滚动条
  • 带垂直滚动条的单选按钮和复选框列表。
  • 还有更多。

 
Anatoli Kazharski:

在自定义类CProgram::OnEvent() 的事件处理程序中添加此代码块:

谢谢。我也是这么做的,但我没有在Alert 前加上::,所以没有成功。
 
Alexey Oreshkin:
谢谢。我就是这么做的,但我没有在" Alert "前面加上"::", 所以不起作用。
没有:: 不应该有任何影响。错误出在别的地方。
 
Anatoli Kazharski:
没有:: 不应该有任何影响。错误出在别的地方。

也许我删除了我的代码,现在我也不能确定。

当我关闭指标创建的带十字的窗口时,错误就出现了。我对位于此处的示例中的 MainWindow.mqh 文件稍作修改:Indicators\Article 10\SeparateWindow.

我不知道如何在创建的表中删除一行?