When I use CTreeView for MQL5 with ShowItemContent(false), it has a stop error: array out of range in 'TreeView.mqh' (1725,22). This is in function "void CTreeView::UpdateContentList(void)". If ShowItemContent(false), the item content is not created during initialization, but m_content_items[li].Update(true) is used without checking m_show_item_content flag. Then I modified code of function "void CTreeView::UpdateContentList(void)" as below:
//+------------------------------------------------------------------+//| Обновляет список содержания |//+------------------------------------------------------------------+void CTreeView::UpdateContentList(void)
{
//--- Exit if (1) content does not need to be displayed or (2) Label mode is enabledif(!m_show_item_content || m_tab_items_mode)
return;//---int items_total=::ArraySize(m_cd_list_index);
for(int i=0; i<items_total; i++)
{
//--- Получим общий индекс пункта в спискеint li=m_cd_list_index[i];
//--- Обновим
m_content_items[li].Update(true);
}
}
Am I right? And can you please confirm it? Thank you very much!
void CElement::IsLocked(constbool state)
{
//--- Выйти, если уже установленоif(state==CElementBase::IsLocked())
return;
//--- Сохранить состояние
CElementBase::IsLocked(state);
//--- Остальные элементыint elements_total=ElementsTotal();
for(int i=0; i<elements_total; i++)
m_elements[i].IsLocked(state);
//--- Проверка указателяif(::CheckPointer(m_main)==POINTER_INVALID)
return;
//--- Событие отправляет только главный элемент составной группыif(this.Id()!=m_main.Id())
{
::EventChartCustom(m_chart_id,ON_SET_LOCKED,CElementBase::Id(),(int)state,"");
//--- Отправим сообщение об изменении в графическом интерфейсе
::EventChartCustom(m_chart_id,ON_CHANGE_GUI,CElementBase::Id(),0.0,"");
}
else
{
if(state != m_main.IsLocked()) // <<<<< 错误指向这一行,而我仍然无法找到 "隐藏方法是什么"。// if(state != m_main.[cursor]IsLocked()) // 游标位置
{
::EventChartCustom(m_chart_id,ON_SET_LOCKED,CElementBase::Id(),(int)state,"");
//--- Отправим сообщение об изменении в графическом интерфейсе
::EventChartCustom(m_chart_id,ON_CHANGE_GUI,CElementBase::Id(),0.0,"");
}
}
}
10 月 4 日更新后,该库在许多地方返回了警告:
"已废弃的行为,隐藏方法调用将在未来的 MQL 编译器版本中禁用 Element.mqh 379 26 "
"已废弃的行为,未来的 MQL 编译器版本将禁用隐藏方法调用 Scrolls.mqh 625 15 "
"已废弃的行为,在未来的 MQL 编译器版本中将禁用隐藏方法调用 TextBox.mqh 1845 14 "
"已废弃的行为,未来的 MQL 编译器版本将禁用隐藏方法调用 WndEvents.mqh 298 36 "
......有人能帮助解决这个问题吗,或者能解释一下这个警告是什么意思吗......什么是隐藏方法?)
问候
10 月 4 日更新后,图书馆正在多处退还警告:
"已过时的行为,隐藏方法调用将在未来的 MQL 编译器版本 Element.mqh 379 26 中禁用"。
"已废弃的行为,隐藏方法调用将在未来的 MQL 编译器版本中禁用 Scrolls.mqh 625 15 "
"已废弃的行为,在未来的 MQL 编译器版本中将禁用隐藏方法调用 TextBox.mqh 1845 14 "
已废弃的行为,在未来的 MQL 编译器版本中将禁用隐藏方法调用 WndEvents.mqh 298 36 " "
......有谁能帮助我们解决这个问题,或者解释一下这个警告是什么意思?什么是隐藏方法?)
问候
CElement::Update(true)
CElementBase::IsLocked()
CElementBase:: IsVisible()
CElementBase:: IsAvailable()
CElement::Update(true)
CElementBase::IsLocked()
CElementBase:: IsVisible()
CElementBase:: IsAvailable()
你好......感谢您的回复......我不认为自己是初学者,但我远不是专家:)
关于您的回复 ....example from file Element.mqh ...
来自错误日志 :
已废弃的行为,隐藏方法调用将在未来的 MQL 编译器版本中禁用 Element.mqh 379 26
双击后,我被引导到下面的代码,光标位置被注释为 [cursor] 。
如果您能解释如何解决这个问题,我就能解决其他问题 :) (或告诉我 "隐藏方法 "是什么)......再次感谢您
CElement::Update(true)
CElementBase::IsLocked()
CElementBase:: IsVisible()
CElementBase:: IsAvailable()
deprecated behavior, hidden method calling will be disabled in a future MQL compiler version WndEvents.mqh 1761 53
Finlay 它在我脑中一闪而过:)......现在一切都好了......再次感谢您并致以问候
,我还没明白。怎么办?