Bibliotecas: EasyAndFastGUI - biblioteca para criar interfaces gráficas do usuário - página 19

 
Quando uso o CTreeView para MQL5 com ShowItemContent(false), ele apresenta um erro de parada: array out of range em 'TreeView.mqh' (1725,22). Isso ocorre na função "void CTreeView::UpdateContentList(void)". Se ShowItemContent(false), o conteúdo do item não é criado durante a inicialização, mas m_content_items[li].Update(true) é usado Update(true) é usado sem verificar o sinalizador m_show_item_content. Em seguida, modifiquei o código da função "void CTreeView::UpdateContentList(void)" conforme abaixo.
//+------------------------------------------------------------------+
//| Обновляет список содержания |Продукция
//+------------------------------------------------------------------+
void CTreeView::UpdateContentList(void)
  {
//--- Sair se (1) o conteúdo não precisar ser exibido ou (2) o modo Label estiver ativado.
   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);
     }
  }


Em seguida, modifiquei o código da função "void CTreeView::UpdateContentList(void)" conforme abaixo: Estou certo? E você pode confirmar isso?
 
Quando uso o CTreeView para MQL5 com ShowItemContent(false), ele apresenta um erro de parada: array out of range em 'TreeView.mqh' (1725,22). Isso ocorre na função "void CTreeView::UpdateContentList(void)". Se ShowItemContent(false), o conteúdo do item não é criado durante a inicialização, mas m_content_items[li].Update(true) é usado sem verificar o sinalizador m_show_item_content. Em seguida, modifiquei o código da função "void CTreeView::UpdateContentList(void)" conforme abaixo:
//+------------------------------------------------------------------+
//| Обновляет список содержания|
//+------------------------------------------------------------------+
void CTreeView::UpdateContentList(void)
  {
//--- Sair se (1) o conteúdo não precisar ser exibido ou (2) o modo Label estiver ativado
   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);
     }
  }
Estou certo? E você pode confirmar isso? Muito obrigado!
 
Fiz o download da biblioteca em https://www.mql5.com/zh/code/19703. Quando uso o CTextEdit para exibir texto somente para leitura, o scrollV e o scollH não aparecem quando há muitas palavras a mais. Alguém também tem esse problema? Obrigado.
用于创建图形界面的 EasyAndFastGUI 开发库
用于创建图形界面的 EasyAndFastGUI 开发库
  • www.mql5.com
EasyAndFastGUI 开发库可以为自定义 MQL 程序创建图形界面。
 

Após a atualização de 4 de outubro, a biblioteca está retornando os avisos em muitos lugares:

" comportamento obsoleto, a chamada de método oculto será desativada em uma versão futura do compilador MQL Element.mqh 379 26 "

" comportamento obsoleto, a chamada de método oculto será desativada em uma versão futura do compilador MQL Scrolls.mqh 625 15 "

" comportamento obsoleto, a chamada de método oculto será desativada em uma versão futura do compilador MQL TextBox.mqh 1845 14 " "

" comportamento obsoleto, a chamada de método oculto será desativada em uma versão futura do compilador MQL WndEvents.mqh 298 36 "


tudo ainda está funcionando perfeitamente, mas esses avisos são muito assustadores :) ... alguém pode ajudar a resolver esse problema ou pode explicar o que esse aviso significa ... o que é método oculto?)

Saudações

 
P: Existe alguma maneira de copiar o texto selecionado do campo STechtEdit?
 
Marcin Rutkowski:

Após a atualização de 4 de outubro, a biblioteca está devolvendo os avisos a muitos lugares:

" comportamento obsoleto, a chamada de método oculto será desativada em uma versão futura do compilador MQL Element.mqh 379 26 "

" comportamento obsoleto, a chamada de método oculto será desativada em uma versão futura do compilador MQL Scrolls.mqh 625 15 "

" comportamento obsoleto, a chamada de método oculto será desativada em uma versão futura do compilador MQL TextBox.mqh 1845 14 "

" comportamento obsoleto, a chamada de método oculto será desativada em uma versão futura do compilador MQL WndEvents.mqh 298 36 "


Ainda assim, tudo está funcionando perfeitamente, mas esses avisos são muito assustadores :) ... alguém pode ajudar a resolver esse problema ou pode explicar o que esse aviso significa ... o que é método oculto?)

Saudações



CElement::Update(true)

CElementBase::IsLocked()

CElementBase:: IsVisible()

CElementBase:: IsAvailable()

 
Mikhail Sergeev:



CElement::Update(true)

CElementBase::IsLocked()

CElementBase:: IsVisible()

CElementBase:: IsAvailable()

Olá... obrigado pela resposta... eu não me consideraria um iniciante, mas estou longe de ser um profissional :)

Com relação à sua resposta ....exemplo do arquivo Element.mqh ...

do registro de erros :

comportamento obsoleto, a chamada de método oculto será desativada em uma versão futura do compilador MQL Element.mqh 379 26


e depois de clicar duas vezes, sou direcionado para o código abaixo, e a localização do cursor é comentada 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())                                                        // <<<<< erro está apontando para essa linha, e ainda não consegui descobrir o que é o "método oculto"
// if(state != m_main.[cursor]IsLocked()) // localização do cursor 
       {
         ::EventChartCustom(m_chart_id,ON_SET_LOCKED,CElementBase::Id(),(int)state,"");
         //--- Отправим сообщение об изменении в графическом интерфейсе
         ::EventChartCustom(m_chart_id,ON_CHANGE_GUI,CElementBase::Id(),0.0,"");
        }
     }
  }

Se você puder explicar como corrigir esse problema, poderei fazer o resto :) (ou me indicar qual é o "método oculto")... Mais uma vez, obrigado

 
Mikhail Sergeev:



CElement::Update(true)

CElementBase::IsLocked()

CElementBase:: IsVisible()

CElementBase:: IsAvailable()

Finalmente, tudo se encaixou em minha cabeça :) ... tudo está bem agora ... Mais uma vez, obrigado e cumprimentos
 

Comportamento obsoleto, a chamada de método oculto será desativada em uma versão futura do compilador MQL WndEvents.mqh 1761 53

 
Marcin Rutkowski:
Finlay, isso fez um clique em minha cabeça :) ... tudo está bem agora ... Mais uma vez, obrigado e cumprimentos
Olá,
Não entendi. O que fazer?