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

 

После установки обновления платформы на 2132 появились ошибки при компиляции:

  • "WndEvents.mqh" - 'CWndContainer::~CWndContainer' - cannot access protected member function WndEvents.mqh 11 27
  • 'CWndEvents::~CWndEvents' - cannot access protected member function WndCreate.mqh 10 27


Как исправить:

  • в файле "WndContainer.mqh" у конструктора и деструктора "CWndContainer" заменить "protected" на "public"
  • в файле "WndEvents.mqh" у конструктора и деструктора "CWndCreate" заменить "protected" на "public"
  • в файле "WndCreate.mqh" у конструктора и деструктора "CWndCreate" заменить "protected" на "public"


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

Если пример ExampleEAF из библиотеки собрать как индикатор в MT4, то при попытке перетащить окно на графике индикатор падает с ошибкой

В MT5 работает нормально

array out of range in 'WndEvents.mqh' (288,72)

Если добавить проверку выхода за диапазон в первом цикле тогда перетаскивание работает

void CWndEvents::CheckElementsEvents(void)
  {
//--- Обработка события перемещения курсора мыши
   if(m_id==CHARTEVENT_MOUSE_MOVE)
     {
      //--- Выйти, если форма находится в другом подокне графика
      if(!m_windows[m_active_window_index].CheckSubwindowNumber())
         return;
      //--- Проверяем только доступные элементы
      int available_elements_total=CWndContainer::AvailableElementsTotal(m_active_window_index);
      for(int e=0; e<available_elements_total; e++)
        {
         // !!! Дополнительная проверка
         if (e >= ArraySize(m_wnd[m_active_window_index].m_available_elements)) continue;
         CElement *el=m_wnd[m_active_window_index].m_available_elements[e];
         //--- Проверка фокуса над элементами
         el.CheckMouseFocus();
         //--- Обработка события
         el.OnEvent(m_id,m_lparam,m_dparam,m_sparam);
        }
     }
//--- Все события, кроме перемещения курсора мыши
   else
     {
      int elements_total=CWndContainer::ElementsTotal(m_active_window_index);
      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);
        }
     }
//--- Направление события в файл приложения
   OnEvent(m_id,m_lparam,m_dparam,m_sparam);
  }

но перестает работать "расширение" окна на всю площадь графика и возврат обратно

Подскажите как пофиксить эту проблему чтобы и в МТ4 тоже нормально работало

В чем отличие? Никаких варнингов при компиляции в МТ4 нет, не знаю в какую сторону копать


Еще в MT4 при компиляции в виде индикатора не работает переключение фокуса в том плане, что если открыть выпадающий список и кликнуть где-то в стороне, то список не закрывается и не переходит фокус ввода к другому элементу, в режиме эксперта работает нормально

В МТ5 и эксперт и индикатор нормально работают

 
Добрый день, подскажите как-то возможно реализовать копирование и вставку текста из текстовых полей.
 

Еще один интересный глюк с таблицами. 

После нескольких вводов символы начинают двоиться а потом и троиться (см gif)

В чем может быть проблема?

Файлы:
ScreenFlow.gif  28 kb
 
Подскажите, пожалуйста, как, используя эту библиотеку, изменить шрифт по умолчанию программы (эксперта)? Это которым печатается всё, начиная с заголовка в шапке программы. Хотя бы размер изменить (увеличить).
 
В файле Element.mqh в конструкторе CElement заменить значения  m_font и m_font_size.
А как сделать то же, не правя библиотеку?
 
o-dima:
В файле Element.mqh в конструкторе CElement заменить значения  m_font и m_font_size.
А как сделать то же, не правя библиотеку?

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

 
Нерационально, если элементов сотня.
 
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

Причина обращения: