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

 
В файле Element.mqh в конструкторе CElement заменить значения  m_font и m_font_size.
А как сделать то же, не правя библиотеку?
 
o-dima:
В файле Element.mqh в конструкторе CElement заменить значения  m_font и m_font_size.
А как сделать то же, не правя библиотеку?

А в чем проблема каждому элементу указывать эти значения при создании?

 
Нерационально, если элементов сотня.
 

Привет всем,

Я попробовал этот исходник, он работает. Действительно отличная работа, спасибо!

Я попытался адаптировать его под свои нужды, но ничего не вышло. После нескольких часов отладки я нашел решение:

Когда имя файла ExampleEA.mq5 длиннее 14 символов, то при создании комбобокса функция ResourceCreate() внутри класса Canvas завершается с ошибкой 4016 (ресурс не найден).

Известно ли такое поведение? Поскольку я не знаю точных обстоятельств, приводящих к этой ошибке, я пытаюсь выяснить, как предотвратить подобные ошибки.



Обновление: я нашел соответствующее обсуждение с быстрым решением здесь.

Lib 'EasyAndFastGUI': Creating Canvas fails with error 4016 after update build 2265
Lib 'EasyAndFastGUI': Creating Canvas fails with error 4016 after update build 2265
  • 2019.12.14
  • www.mql5.com
Hi guys, the following error occurs (which did not before releasing build 2265) when I create GUI elements with the EasyAndFastGUI library (https...
 
OMG. Он сложный, но продвинутый, а дизайн пользовательского интерфейса выглядит красиво! ЗДОРОВО!
 
2021.01.18 17:57:52.598 MacdSampleCFrames (Si-3.21,M2)  CElement::CreateCanvas > Не удалось создать холст для рисования элемента (CButton): 4016
2021.01.18 17:57:52.598 MacdSampleCFrames (Si-3.21,M2)  CProgram::OnTesterInitEvent > Could not create the GUI!

После одного из обновлений сократили буфер для строки глобальной переменной терминала и уже некоторое время выдаёт критическую ошибку.

Можно вылечить лайф-хаком не зарываясь в код, просто переименовав запускной файл советника, сократив его имя

например с такого: MacdSampleCFrames.ex5 до просто  Macd.ex5

 

Как задать параметры текстовой метки Anchor(ANCHOR_RIGHT)?

Это ошибка! ?

 

Gustavo Enedir Hennemann:
Hello,
I didn't get it. What to do?

Замените из m_main на CElementBase::, где появляется предупреждение.

 
Почему бы классу CElement не написать методы для изменения свойств объекта (таких как шрифт, размер, цвет, цвет фона и т. д.) вместо того, чтобы использовать свойства по умолчанию. Это очень недружелюбно по отношению к программированию
 

Привет @Mikhail Sergeev, @Paulo Campello!

Ребята,

Я сократил количество предупреждений с 18 до 6.

И эти 6 сводятся к 4 следующим типам проблем. Не могли бы вы посоветовать, как правильно их исправить?

1. Как правильно заменить на "CElementBase::"?

//--- Определим цвет для линии
   color clr=m_back_color;
   if(m_tabs.GetButtonPointer(m_selected_tab).IsLocked()) // этот!
      clr=m_tabs.GetButtonPointer(m_selected_tab).BackColorLocked();
//--- Рисуем линию
   m_canvas.Line(x1,y1,x2,y2,::ColorToARGB(clr,m_alpha));
  }


2. И вот здесь - когда я заменяю "el." на "CElementBase::" - возникает новая ошибка компиляции "IsAvailable - access to non-staticmember of function" - как ее правильно решить?

      for(int e=0; e<elements_total; e++)
        {
         //--- Проверяем только доступные элементы
         CElement *el=m_wnd[m_active_window_index].m_elements[e];
         if(!el.IsVisible() || !el.IsAvailable() || el.IsLocked())
            continue;
         //--- Обработка событий в обработчике элементов
         el.OnEvent(m_id,m_lparam,m_dparam,m_sparam);
        }


3. В той же строке: когда я заменяю "el.IsLocked()" на "CElementBase::IsLocked" : ошибка "IsLocked - доступ к нестатическому члену функции".

4. Чем заменить "m_windows[0].IsLocked()"?

//--- Выйти, если интерфейс не создан
   if(windows_total<1)
      return;
//--- Изменить размер всех элементов заблокированной формы, если включен один из режимов.
   if(m_windows[0].IsLocked() && (m_windows[0].AutoXResizeMode() || m_windows[0].AutoXResizeMode()))
     {

Плз, помогите! Было бы здорово использовать эту библиотеку. Но сначала нужно решить эти несколько вопросов.

Спасибо!