Librerías: EasyAndFastGUI - librería para crear interfaces gráficas - página 19

 
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.
用于创建图形界面的 EasyAndFastGUI 开发库
用于创建图形界面的 EasyAndFastGUI 开发库
  • www.mql5.com
EasyAndFastGUI 开发库可以为自定义 MQL 程序创建图形界面。
 

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

 
P: ¿Hay alguna forma de copiar el texto seleccionado del campo STechtEdit?
 
Marcin Rutkowski:

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()

 
Mikhail Sergeev:



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]


void CElement::IsLocked(const bool 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

 
Mikhail Sergeev:



CElement::Actualizar(true)

CElementBase::IsLocked()

CElementBase:: EsVisible()

CElementBase:: IsAvailable()

Finlay que hizo clic en mi cabeza :) ... todo está bien ahora ... Gracias de nuevo y Saludos
 

comportamiento obsoleto, la llamada a métodos ocultos se desactivará en una futura versión del compilador MQL WndEvents.mqh 1761 53

 
Marcin Rutkowski:
Finlay me ha hecho clic en la cabeza :) ... todo está bien ahora ... Gracias de nuevo y Saludos
Hola,
No lo he entendido. ¿que hacer?