Библиотеки: EasyAndFastGUI - библиотека для создания графических интерфейсов - страница 19

 
Когда я использую CTreeView для MQL5 с функцией ShowItemContent(false), возникает ошибка остановки: array out of range в 'TreeView.mqh' (1725,22). Это происходит в функции "void CTreeView::UpdateContentList(void)". Если ShowItemContent(false), то содержимое элемента не создается при инициализации, а используется m_content_items[li].Update(true) Update(true) используется без проверки флага m_show_item_content. Тогда я изменил код функции "void CTreeView::UpdateContentList(void)" следующим образом.
//+------------------------------------------------------------------+
//| Обновляет список содержания |Продукция
//+------------------------------------------------------------------+
void CTreeView::UpdateContentList(void)
  {
//--- Выйдите, если (1) содержимое не нужно отображать или (2) включен режим ярлыков.
   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);
     }
  }


Затем я изменил код функции "void CTreeView::UpdateContentList(void)" следующим образом: я прав? И не могли бы вы подтвердить это?
 
Когда я использую CTreeView для MQL5 с функцией ShowItemContent(false), возникает ошибка остановки: array out of range в 'TreeView.mqh' (1725,22). Это происходит в функции "void CTreeView::UpdateContentList(void)". Если ShowItemContent(false), то содержимое элемента не создается при инициализации, а используется m_content_items[li].Update(true) без проверки флага m_show_item_content. Затем я изменил код функции "void CTreeView::UpdateContentList(void)" следующим образом:
//+------------------------------------------------------------------+
//| Обновляет список содержания|
//+------------------------------------------------------------------+
void CTreeView::UpdateContentList(void)
  {
//--- Выход, если (1) содержимое не нужно отображать или (2) включен режим ярлыков
   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);
     }
  }
Я прав? И не могли бы вы подтвердить это? Большое спасибо!
 
Я скачал библиотеку с сайта https://www.mql5.com/zh/code/19703. Когда я использую CTextEdit для отображения текста, предназначенного только для чтения, прокрутка V и scollH не появляется, когда в тексте много слов. Есть ли у кого-нибудь такая проблема? Спасибо.
用于创建图形界面的 EasyAndFastGUI 开发库
用于创建图形界面的 EasyAndFastGUI 开发库
  • www.mql5.com
EasyAndFastGUI 开发库可以为自定义 MQL 程序创建图形界面。
 

После обновления 4 октября библиотека во многих местах выдает предупреждение :

" deprecated behavior, hidden method calling will be disabled in a future MQL compiler version Element.mqh 379 26 "

" deprecated behavior, hidden method calling will be disabled in a future MQL compiler version Scrolls.mqh 625 15 "

" устаревшее поведение, скрытый вызов методов будет отключен в будущей версии компилятора MQL TextBox.mqh 1845 14 "

" устаревшее поведение, скрытый вызов методов будет отключен в будущей версии компилятора MQL WndEvents.mqh 298 36 "


все работает отлично, но эти предупреждения очень пугают :) ... кто-нибудь может помочь, как решить эту проблему, или может объяснить, что означает это предупреждение ... что такое скрытый метод ?? :)

с уважением

 
Вопрос: Можно ли как-то скопировать выделенный текст из поля СTextEdit ?
 
Marcin Rutkowski:

После обновления 4 октября библиотека возвращает предупреждения во многие места:

" устаревшее поведение, скрытый вызов метода будет отключен в будущей версии компилятора MQL Element.mqh 379 26 "

" deprecated behavior, hidden method calling will be disabled in a future MQL compiler version Scrolls.mqh 625 15 "

" устаревшее поведение, скрытый вызов методов будет отключен в будущей версии компилятора MQL TextBox.mqh 1845 14 "

" устаревшее поведение, скрытый вызов методов будет отключен в будущей версии компилятора MQL WndEvents.mqh 298 36 "


все работает отлично, но эти предупреждения очень пугают :) ... кто-нибудь может помочь, как решить эту проблему, или может объяснить, что означает это предупреждение ... что такое скрытый метод ?? :)

с уважением



CElement::Update(true)

CElementBase::IsLocked()

CElementBase:: IsVisible()

CElementBase:: IsAvailable()

 
Mikhail Sergeev:



CElement::Update(true)

CElementBase::IsLocked()

CElementBase:: IsVisible()

CElementBase:: IsAvailable()

Привет ... спасибо за ответ ... я бы не назвал себя новичком, но я далеко не профи :)

относительно Вашего ответа ....example из файла Element.mqh ...

из журнала ошибок :

устаревшее поведение, скрытый вызов метода будет отключен в будущей версии компилятора MQL Element.mqh 379 26


и после двойного щелчка я попадаю в код ниже, а местоположение курсора закомментировано как [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())                                                        // <<<<< ошибка указывает на эту строку, и все равно я не могу найти, что такое "скрытый метод".
// 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,"");
        }
     }
  }

Если вы сможете объяснить, как исправить эту проблему, я смогу сделать все остальное :) (или указать мне, что такое "скрытый метод") ... Спасибо еще раз

 
Mikhail Sergeev:



CElement::Update(true)

CElementBase::IsLocked()

CElementBase:: IsVisible()

CElementBase:: IsAvailable()

Finlay это щелкнуло в моей голове :) ... все хорошо теперь ... Спасибо еще раз и с уважением
 

Устаревшее поведение, скрытый вызов метода будет отключен в будущей версии компилятора MQL WndEvents.mqh 1761 53

 
Marcin Rutkowski:
Финлей, у меня в голове щелкнуло :) ...теперь все хорошо... Спасибо еще раз и с уважением.
Здравствуйте,
Я не понял. Что делать?