Libraries: EasyAndFastGUI library for creating graphical interfaces - page 3

Marco vd Heijden  
17334708:

 i was in effort to modify it, but failed. the complex MT5 .mqh files frustrated me, so many variables and objects! 

Yes it involves some work the best way is to rename the loop variables for example when you get a warning about variable i then you can rename i to i1 in that loop and in the next loop i2 and i3 and so on.

Also it's not needed to do the entire library you can just take the element you need and convert only that because the articles deal with a lot of items and objects.

17334708  
But quite a few elments are co-related. Modifying the loop or variables becomes a fantastic overloaded work. thanks for your kind help.
Marco vd Heijden  
Only if you want all of it not if you want just a single element.
Marcel Fitzner  

Hey guys,

Developing business code that makes use of graphical elements panels is one thing and this library is very helpful. However, when it comes to low performance or bugs that need to be reproduced,

there is nearly no way around the Strategy Tester.

That said, trying to fix things in a live chart is extremly tedious (e.g. waiting until certain conditions are met so I can click on graphical elements... gah)

It would be beyond helpful if we could properly test stuff within the ST!


1. Did the MetaTrader dev team talk somewhere on the forum about it why void OnChartEvent is not being triggered in the ST?

2. Is there any chance to establish a workaround?


Cheers,
Marcel

Amy Liu  
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 enabled
   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);
     }
  }
Am I right? And can you please confirm it? Thank you very much!
Amy Liu  
I downloaded the library from https://www.mql5.com/zh/code/19703 . When I use CTextEdit to display read only text, the scrollV and scollH doesn't appear when it have a lot of words more. Does anyone have this issue, either? Thanks.
用于创建图形界面的 EasyAndFastGUI 开发库
用于创建图形界面的 EasyAndFastGUI 开发库
  • www.mql5.com
EasyAndFastGUI 开发库可以为自定义 MQL 程序创建图形界面。
Marcin Rutkowski  

After October 4  update  the library is returning  the warnings many places :

" 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 "

" deprecated behavior, hidden method calling will be disabled in a future MQL compiler version    TextBox.mqh    1845    14 "

" deprecated behavior, hidden method calling will be disabled in a future MQL compiler version    WndEvents.mqh    298    36 "


still everything is working perfectly but those  warnings are very scary :)   ... is anybody  able to help how to solve this problem, or is able to  explain what this warning means    ..what is hidden method ?? :)

regards

Mikhail Sergeev  
Marcin Rutkowski:

After October 4  update  the library is returning  the warnings many places :

" 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 "

" deprecated behavior, hidden method calling will be disabled in a future MQL compiler version    TextBox.mqh    1845    14 "

" deprecated behavior, hidden method calling will be disabled in a future MQL compiler version    WndEvents.mqh    298    36 "


still everything is working perfectly but those  warnings are very scary :)   ... is anybody  able to help how to solve this problem, or is able to  explain what this warning means    ..what is hidden method ?? :)

regards



CElement::Update(true)

CElementBase::IsLocked()

CElementBase::IsVisible()

CElementBase::IsAvailable()

Marcin Rutkowski  
Mikhail Sergeev:



CElement::Update(true)

CElementBase::IsLocked()

CElementBase::IsVisible()

CElementBase::IsAvailable()

Hi  ..thank You for reply     ...I wouldn't call my self as a beginner but I'm far from pro :)

regarding You reply     ....example from  file Element.mqh   ...

from error log :

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


and after double click,  im directed to the code below, and the cursor location is  commented as [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 is pointing to this line, and still im not able to find out what "hidden method is"
//    if(state != m_main.[cursor]IsLocked())                                                // cursor location       
        {
         ::EventChartCustom(m_chart_id,ON_SET_LOCKED,CElementBase::Id(),(int)state,"");
         //--- Отправим сообщение об изменении в графическом интерфейсе
         ::EventChartCustom(m_chart_id,ON_CHANGE_GUI,CElementBase::Id(),0.0,"");
        }
     }
  }

If You can explain how to fix this one I will be able to do the rest :)  (or point me to what the "hidden method" is)    ...Thank You again

Marcin Rutkowski  
Mikhail Sergeev:



CElement::Update(true)

CElementBase::IsLocked()

CElementBase::IsVisible()

CElementBase::IsAvailable()

Finlay it clicked in my head :)  ..all is good now  ...Thank You again and Regards