Cuando uso CTreeView para MQL5 con ShowItemContent(false), tiene un error de parada: array out of range en 'TreeView.mqh' (1725,22). Esto es en la función "void CTreeView::UpdateContentList(void)". Si ShowItemContent(false), el contenido del ítem no se crea durante la inicialización, sino que se utiliza m_content_items[li].Update(true) Update(true) se utiliza sin comprobar la bandera m_show_item_content. Entonces modifiqué el código de la función "void CTreeView::UpdateContentList(void)" como se indica a continuación.
//+------------------------------------------------------------------+//| Обновляет список содержания |Продукция//+------------------------------------------------------------------+void CTreeView::UpdateContentList(void)
{
//--- Salir si (1) no es necesario mostrar el contenido o (2) el modo Etiqueta está activado.if(!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);
}
}
Entonces he modificado el código de la función "void CTreeView::UpdateContentList(void)" como a continuación: ¿Estoy en lo cierto? y ¿puede usted por favor confirmarlo?
Cuando uso CTreeView para MQL5 con ShowItemContent(false), tiene un error de parada: array out of range en 'TreeView.mqh' (1725,22). Esto es en la función "void CTreeView::UpdateContentList(void)". Si ShowItemContent(false), el contenido del ítem no se crea durante la inicialización, sino que se utiliza m_content_items[li].Update(true) sin comprobar el flag m_show_item_content. Entonces he modificado el código de la función "void CTreeView::UpdateContentList(void)" como abajo:
//+------------------------------------------------------------------+//| Обновляет список содержания|//+------------------------------------------------------------------+void CTreeView::UpdateContentList(void)
{//--- Salir si (1) no es necesario mostrar el contenido o (2) el modo Etiqueta está activado.if(!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);
}
}
¿Estoy en lo cierto? ¿Pueden confirmarlo? Muchas gracias.
He descargado la biblioteca de https://www.mql5.com/zh/code/19703. Cuando uso CTextEdit para mostrar texto de sólo lectura, el scrollV y scollH no aparece cuando tiene muchas palabras más. ¿Alguien tiene este problema también? Gracias.
Después de octubre 4 actualización de la biblioteca está devolviendo las advertencias muchos lugares :
"Comportamiento obsoleto, las llamadas a métodos ocultos se desactivarán en una futura versión del compilador MQL Element.mqh 379 26
"Comportamiento obsoleto, la llamada a métodos ocultos se desactivará en una futura versión del compilador MQL Scrolls.mqh 625 15
"Comportamiento obsoleto, la llamada a métodos ocultos se desactivará en una futura versión del compilador MQL TextBox.mqh 1845 14
"Comportamiento obsoleto, la llamada a métodos ocultos se desactivará en una futura versión del compilador MQL WndEvents.mqh 298 36 "
aun asi todo funciona perfectamente pero esas advertencias dan mucho miedo :) ... ¿alguien puede ayudar a solucionar este problema, o es capaz de explicar que significa esta advertencia ..que es metodo oculto? :)
Después de 4 de octubre de actualización de la biblioteca está devolviendo las advertencias muchos lugares :
" comportamiento obsoleto, la llamada a métodos ocultos se desactivará en una futura versión del compilador MQL Element.mqh 379 26 "
"Comportamiento obsoleto, la llamada a métodos ocultos se desactivará en una futura versión del compilador MQL Scrolls.mqh 625 15
"Comportamiento obsoleto, la llamada a métodos ocultos se desactivará en una futura versión del compilador MQL TextBox.mqh 1845 14
"Comportamiento obsoleto, la llamada a métodos ocultos se deshabilitará en una futura versión del compilador MQL WndEvents.mqh 298 36 "
todavía todo funciona perfectamente, pero esas advertencias son muy aterrador :) ... ¿alguien puede ayudar a resolver este problema, o es capaz de explicar lo que significa esta advertencia .. ¿qué es el método oculto? :)
Hola ..gracias por la respuesta ...yo no me consideraría un principiante pero estoy lejos de ser un profesional :)
Con respecto a su respuesta ....ejemplo del archivo Element.mqh ...
del registro de errores :
comportamiento obsoleto, la llamada a métodos ocultos se desactivará en una futura versión del compilador MQL Element.mqh 379 26
y después de hacer doble clic, im dirigido al código de abajo, y la ubicación del cursor se comenta como [cursor]
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()) // <<<<< error está apuntando a esta línea, y todavía im no es capaz de averiguar lo que "método oculto es"// if(state != m_main.[cursor]IsLocked()) // ubicación del cursor
{
::EventChartCustom(m_chart_id,ON_SET_LOCKED,CElementBase::Id(),(int)state,"");
//--- Отправим сообщение об изменении в графическом интерфейсе
::EventChartCustom(m_chart_id,ON_CHANGE_GUI,CElementBase::Id(),0.0,"");
}
}
}
Si puedes explicarme como arreglar esto, podré hacer el resto :) (o indicarme cual es el "método oculto") ...Gracias de nuevo
Entonces he modificado el código de la función "void CTreeView::UpdateContentList(void)" como a continuación: ¿Estoy en lo cierto? y ¿puede usted por favor confirmarlo?
Después de octubre 4 actualización de la biblioteca está devolviendo las advertencias muchos lugares :
"Comportamiento obsoleto, las llamadas a métodos ocultos se desactivarán en una futura versión del compilador MQL Element.mqh 379 26
"Comportamiento obsoleto, la llamada a métodos ocultos se desactivará en una futura versión del compilador MQL Scrolls.mqh 625 15
"Comportamiento obsoleto, la llamada a métodos ocultos se desactivará en una futura versión del compilador MQL TextBox.mqh 1845 14
"Comportamiento obsoleto, la llamada a métodos ocultos se desactivará en una futura versión del compilador MQL WndEvents.mqh 298 36 "
aun asi todo funciona perfectamente pero esas advertencias dan mucho miedo :) ... ¿alguien puede ayudar a solucionar este problema, o es capaz de explicar que significa esta advertencia ..que es metodo oculto? :)
saludos
Después de 4 de octubre de actualización de la biblioteca está devolviendo las advertencias muchos lugares :
" comportamiento obsoleto, la llamada a métodos ocultos se desactivará en una futura versión del compilador MQL Element.mqh 379 26 "
"Comportamiento obsoleto, la llamada a métodos ocultos se desactivará en una futura versión del compilador MQL Scrolls.mqh 625 15
"Comportamiento obsoleto, la llamada a métodos ocultos se desactivará en una futura versión del compilador MQL TextBox.mqh 1845 14
"Comportamiento obsoleto, la llamada a métodos ocultos se deshabilitará en una futura versión del compilador MQL WndEvents.mqh 298 36 "
todavía todo funciona perfectamente, pero esas advertencias son muy aterrador :) ... ¿alguien puede ayudar a resolver este problema, o es capaz de explicar lo que significa esta advertencia .. ¿qué es el método oculto? :)
saludos
CElement::Update(true)
CElementBase::IsLocked()
CElementBase:: IsVisible()
CElementBase:: IsAvailable()
CElement::Actualizar(true)
CElementBase::IsLocked()
CElementBase:: EsVisible()
CElementBase:: IsAvailable()
Hola ..gracias por la respuesta ...yo no me consideraría un principiante pero estoy lejos de ser un profesional :)
Con respecto a su respuesta ....ejemplo del archivo Element.mqh ...
del registro de errores :
comportamiento obsoleto, la llamada a métodos ocultos se desactivará en una futura versión del compilador MQL Element.mqh 379 26
y después de hacer doble clic, im dirigido al código de abajo, y la ubicación del cursor se comenta como [cursor]
Si puedes explicarme como arreglar esto, podré hacer el resto :) (o indicarme cual es el "método oculto") ...Gracias de nuevo
CElement::Actualizar(true)
CElementBase::IsLocked()
CElementBase:: EsVisible()
CElementBase:: IsAvailable()
comportamiento obsoleto, la llamada a métodos ocultos se desactivará en una futura versión del compilador MQL WndEvents.mqh 1761 53
Finlay me ha hecho clic en la cabeza :) ... todo está bien ahora ... Gracias de nuevo y Saludos
No lo he entendido. ¿que hacer?