文章 "图形界面 XI: 集成标准图形库 (统合构建 16)" - 页 7 12345678910 新评论 leonerd 2019.02.19 13:07 #61 我复制了它。当滑块位于面板顶部时,我必须调整面板的大小。之后,滑块和面板上的所有元素都会挂起。 [删除] 2019.08.12 16:55 #62 您好 有人找到上面帖子中的故障原因了吗? 我得到的错误信息是"'WndEvents.mqh' (287,72) 中的数组超出范围"。 Konstantin 2019.08.12 17:04 #63 Спартак Угланов:您好有人找到上面帖子中的故障原因了吗?我得到的错误信息是"'WndEvents.mqh' (287,72) 中的数组超出范围"。 在这里检查一下是否超出范围,就是这样。 [删除] 2019.08.12 19:01 #64 Konstantin:只需在其中加入超限检查就可以了。 这是个有趣的想法,但怎么做呢? int available_elements_total=CWndContainer::AvailableElementsTotal(m_active_window_index); int ass = ArraySize(m_wnd[m_active_window_index].m_available_elements); Print("ass = ",ass," available_elements_total = ",available_elements_total); for(int e=0; e<available_elements_total; e++) { CElement *el=m_wnd[m_active_window_index].m_available_elements[e]; 12 个元素,理论上不应该超出范围。 (系列文章中的 TradePanelTest 示例) Konstantin 2019.08.13 01:21 #65 Спартак Угланов: 这是一个有趣的想法,但怎么做呢?12 个元素,理论上不应该超出范围。(文章系列中的 TradePanelTest 示例) 如果出现错误,就意味着有错误,用调试器运行它,这是查看发生了什么的最可靠方法。 [删除] 2019.08.13 12:52 #66 Konstantin:如果出现错误,就说明它确实存在,用调试器运行它,这是最可靠的方法。 我把项目 移到了另一个文件夹,并重新命名了指标文件,结果运行时没有出错。 我是星期一出生的:O) Pavel Kolchin 2019.10.10 15:31 #67 Anatoli Kazharski: MetaQuotes 2019.10.11 11:21 #68 在最近的版本中,我们为编译器添加了一条信息,用于处理子代中重载 祖先方法的 情况: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version 示例 struct SFoo { static void func(int) { Print(__FUNCSIG__); } }; struct SBar : SFoo { static void func(double) { Print(__FUNCSIG__); } }; void OnStart() { SBar::func(_Digits); // !!! 将被调用为 SFoo::func(int) --这样更合适。 } 在本例中,SFoo 祖先类的 func(int) 函数在 SBar 子类中被调用,因为编译器没有在子类中找到该函数。 子类只有 func(double) 函数,编译器试图在继承树中找到具有合适参数的函数。 也就是说,MQL5 编译器执行的是重载,而不是覆盖子代中的方法。在语言开发之初,MQL5 编译器的这种放宽并不重要。但将来可能会发生变化,因此现在明确警告 MQL5 程序的开发人员注意并更正他们的代码。 严格来说,重载是一个更宽泛的概念,您可以在互联网 上搜索重载和重载之间的区别。 Pavel Kolchin 2019.10.11 17:36 #69 MetaQuotes Software Corp.: 我什么也不懂,但它非常有趣!编译器对几个函数说了脏话,这是其中之一,它在哪里不喜欢它? //+------------------------------------------------------------------+ //| 元素的可用性| //+------------------------------------------------------------------+ void CElement::IsAvailable(const bool state) { //--- 如果已经设置,则退出 if(state==CElementBase::IsAvailable()) return; //--- 设置 CElementBase::IsAvailable(state); //--- 其他元素 int elements_total=ElementsTotal(); for(int i=0; i<elements_total; i++) m_elements[i].IsAvailable(state); //--- 设置鼠标左键点击的优先级 if(state) SetZorders(); else ResetZorders(); } Oleksii Chepurnyi 2019.10.11 17:50 #70 Pavel Kolchin:我什么也不懂,但它非常有趣!编译器对几个函数说了脏话,这是其中之一,它在哪里不喜欢它? 因为还有 bool IsAvailable(void) const { return(m_is_available); } 我试着把它改成 virtual void Set Available(const bool state) { m_is_available=state; } bool IsAvailable(void) const { return(m_is_available); } 没关系 ) 其他的也要这么做 ) 12345678910 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我复制了它。当滑块位于面板顶部时,我必须调整面板的大小。之后,滑块和面板上的所有元素都会挂起。
您好
有人找到上面帖子中的故障原因了吗?
我得到的错误信息是"'WndEvents.mqh' (287,72) 中的数组超出范围"。
您好
有人找到上面帖子中的故障原因了吗?
我得到的错误信息是"'WndEvents.mqh' (287,72) 中的数组超出范围"。
在这里检查一下是否超出范围,就是这样。
只需在其中加入超限检查就可以了。
这是个有趣的想法,但怎么做呢?
12 个元素,理论上不应该超出范围。
(系列文章中的 TradePanelTest 示例)
这是一个有趣的想法,但怎么做呢?
12 个元素,理论上不应该超出范围。
(文章系列中的 TradePanelTest 示例)
如果出现错误,就意味着有错误,用调试器运行它,这是查看发生了什么的最可靠方法。
如果出现错误,就说明它确实存在,用调试器运行它,这是最可靠的方法。
我把项目 移到了另一个文件夹,并重新命名了指标文件,结果运行时没有出错。
我是星期一出生的:O)
在最近的版本中,我们为编译器添加了一条信息,用于处理子代中重载 祖先方法的 情况:
deprecated behavior, hidden method calling will be disabled in a future MQL compiler version示例
在本例中,SFoo 祖先类的 func(int) 函数在 SBar 子类中被调用,因为编译器没有在子类中找到该函数。 子类只有 func(double) 函数,编译器试图在继承树中找到具有合适参数的函数。
也就是说,MQL5 编译器执行的是重载,而不是覆盖子代中的方法。在语言开发之初,MQL5 编译器的这种放宽并不重要。但将来可能会发生变化,因此现在明确警告 MQL5 程序的开发人员注意并更正他们的代码。
严格来说,重载是一个更宽泛的概念,您可以在互联网
上搜索重载和重载之间的区别。
我什么也不懂,但它非常有趣!编译器对几个函数说了脏话,这是其中之一,它在哪里不喜欢它?
我什么也不懂,但它非常有趣!编译器对几个函数说了脏话,这是其中之一,它在哪里不喜欢它?
因为还有
我试着把它改成
没关系 )
其他的也要这么做 )