文章 "如何创建任意复杂度的图形面板" - 页 6

 
MetaQuotes:

新文章《如何创建任何复杂程度的图形面板》已发布:

作者:Vladimir Karputov弗拉基米尔-卡尔普托夫

非常感谢你的分享。非常好!

我在你的示例中忽略了一点。您应该说明如何将数据信息包含为文本和数字。

例如

止损值:50.50

获利值:250.00

移动平均线 (200):110.5.


您知道有什么文章教如何做这种事情吗?

 
Guilherme Mendonca :

非常感谢你们的分享。非常棒

我在你的示例中忽略了一点。您应该说明如何将数据信息包含为文本和数字。

例如

止损值:50.50

获利值: 250.00

移动平均线 (200):110.5.


您知道有什么文章可以教大家如何做这种事情吗?

请查看 MetaEditor 中的标准面板示例。

 

您能帮我解决这个问题吗?

我在您的 "AppWindowTwoButtonsClass "文件中添加了面板移动函数 setShift()。 现在,如果我们将图表边框向右移动并靠近面板,面板就会随着图表边框开始向左移动。

void OnChartEvent(const int id,         // 事件 ID 
                  const long& lparam,   // 长类型的事件参数
                  const double& dparam, // 双类型事件参数
                  const string& sparam) // 字符串类型的事件参数
  {
   ExtDialog.ChartEvent(id,lparam,dparam,sparam);
   if(id == CHARTEVENT_CHART_CHANGE) ExtDialog.setShift();
  }

该函数的调用以黄色高亮显示。

问题是:有没有办法通过这个伪代码调用这个函数?

EVENT_MAP_BEGIN(cGPanel)            

EVENT_MAP_END(CAppDialog)

这样就可以从继承类而不是从全局OnChartEvent() 函数 中进行调用。

我尝试了几种定义:ON_NO_ID_EVENT(event,handler)、ON_OTHER_EVENTS(handler)。但我不明白它们是如何工作的。

我附上了一个文件,其中包含一个附加函数 setShift()。

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
В языке MQL5 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL5: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...
附加的文件:
 
非常有用,感谢发布。
快速提问、

你为什么使用下面的
//--- 创建应用程序对话框
   if(!AppWindow.Create(0,"AppWindow",0,20,20,360,324))
      return(INIT_FAILED);
//--- 运行应用程序
   AppWindow.Run();
//--- 成功
   return(INIT_SUCCEEDED);
  }
而不是
//--- 创建应用程序对话框
   AppWindow.Create(0,"AppWindow",0,20,20,360,324));
//--- 运行应用程序
   AppWindow.Run();
/
  }
我在 mql4 GUI 中使用过。

这是 mql5 的需要,还是它有其他好处?

谢谢
 
emargrie :
非常有用,感谢发布。
快速提问

你是如何使用以下内容的?
而不是;
我在 mql4 图形用户界面中使用了它。

这是 mql5 的必需品吗?

谢谢

如果你真的看不出区别,那么你急需扔掉旧终端。旧终端对你的影响很大,不幸的是,旧终端教会了你编写非常危险的代码--你习惯于编写没有错误返回检查 的代码。

 
Vladimir Karputov:

如果你真的看不出有什么不同,那么你急需扔掉旧终端。旧终端对你的影响很大,不幸的是,旧终端教会了你编写非常危险的代码--你习惯于编写没有错误返回检查的代码。

这绝不是在挖苦你的帖子,更多的是在问为什么要这样做,以便我学习--我的编程知识非常有限。

 
emargrie :

这绝不是在讽刺你的帖子,我更多的是想问为什么要这样做,这样我才能学到东西--我的编程知识非常有限。

我已经解释过:你不能编写不检查 错误返回的代码。

 
Vladimir Karputov:

我已经解释过:你不能编写不检查错误返回的代码。

谢谢
 

你好,弗拉基米尔

这篇文章写得很好,干得好

问候保罗

 
Paul Anscombe:

你好,弗拉基米尔

这篇文章写得很好,干得好

问候保罗

谢谢