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

 
Anatoli Kazharski:

На самом деле? Значит снова произошли, какие-то изменения. Раньше точно, что-то не работало.

А после удаления GUI с графика объекты удаляются?

Вроде все чисто :)

Файлы:
35.png  11 kb
36.png  6 kb
 
Планируется ли визуальный дизайнер форм?
 
Stanislav Korotky:
Планируется ли визуальный дизайнер форм?

Ранее думал об этом, но к сожалению пока нет на это времени.

В ближайшее время будет выпущена новая версия библиотеки. Будет существенно проще и быстрее создавать GUI. После этого можно попробовать создать визуальный редактор. 

 

Добрый день, скомпилировал 15 билд библиотеки под мт4, создал панель с таблицами, но таблицы периодически мерцают, под Мт5 тоже такое заметил. Если не передаю в метод параметр, мерцание пропадает, но данные в таблице не меняются. тестовый код прикладываю в архиве.

   if(m_counter2.CheckTimeCounter())
     {
      SetValuesToTradeTable();
      UpdateTradeTable(true);

      //--- Получим символы открытых позиций
      string symbols_name[];
      int symbols_total=GetPositionsSymbols(symbols_name);
      //--- Обновить значения в таблице
      SetValuesToPositionsTable(symbols_name);
      //--- Отсортировать, если это уже было сделано пользователем до обновления
      //m_table_positions.SortData((uint)m_table_positions.IsSortedColumnIndex(),m_table_positions.IsSortDirection());
      //--- Обновить таблицу
      UpdatePositionsTable(true);
     }
Файлы:
 

Все с мерцанием таблицы разобрался, точнее проблема исчезла при записи данных в ячейку с параметром true

m_table_positions.SetValue(0,r,symbols_name[r],0,true);

и вызова метода обновления таблицы без параметра

m_table_positions.Update();
 

Перекомпилировал библиотеку, выдает что класс не найден

 

class 'CWindow' is undefined Element.mqh


 
Alexander Fedosov:

Перекомпилировал библиотеку, выдает что класс не найден

class 'CWindow' is undefined Element.mqh

Компилируйте проекты из главного файла программы (*.mq5).

 
Подскажите, plz, как можно сделать выравнивание по правому краю в поле ввода TextEdit? В более ранних версиях в SpinEdit была возможность выравнивания, а в TextEdit такой возможности нет.
 
lovaK:
Подскажите, plz, как можно сделать выравнивание по правому краю в поле ввода TextEdit? В более ранних версиях в SpinEdit была возможность выравнивания, а в TextEdit такой возможности нет.

Любой текст рисуется методом CElement::DrawText(void), в нем есть только или слева или по центру.

Нужно дописывать самому. Что-то на подобие такого:

   if(m_is_center_text)
     {
      x =m_x_size>>1;
      y =m_y_size>>1;
      m_canvas.TextOut(x,y,m_label_text,::ColorToARGB(clr),TA_CENTER|TA_VCENTER);
     }
   else
     {
      switch(m_text_align)
        {
         case 0: m_canvas.TextOut(x+m_hor_space,         y+m_ver_space,         m_label_text,::ColorToARGB(clr),TA_LEFT|TA_TOP);       break;  // AT_LEFT_TOP
         case 1: m_canvas.TextOut((int)round(m_x_size/2),y+m_ver_space,         m_label_text,::ColorToARGB(clr),TA_CENTER|TA_TOP);     break;  // AT_CENTER_TOP
         case 2: m_canvas.TextOut(m_x_size-m_hor_space,  y+m_ver_space,         m_label_text,::ColorToARGB(clr),TA_RIGHT|TA_TOP);      break;  // AT_RIGHT_TOP
         case 3: m_canvas.TextOut(x+m_hor_space,         (int)round(m_y_size/2),m_label_text,::ColorToARGB(clr),TA_LEFT|TA_VCENTER);   break;  // AT_LEFT_CENTER
         case 4: m_canvas.TextOut(m_x_size>>1,           m_y_size>>1,           m_label_text,::ColorToARGB(clr),TA_CENTER|TA_VCENTER); break;  // AT_CENTER_CENTER
         case 5: m_canvas.TextOut(m_x_size-m_hor_space,  (int)round(m_y_size/2),m_label_text,::ColorToARGB(clr),TA_RIGHT|TA_VCENTER);  break;  // AT_RIGHT_CENTER
         case 6: m_canvas.TextOut(x+m_hor_space,         m_y_size-m_ver_space,  m_label_text,::ColorToARGB(clr),TA_LEFT|TA_BOTTOM);    break;  // AT_LEFT_BOTTOM
         case 7: m_canvas.TextOut((int)round(m_x_size/2),m_y_size-m_ver_space,  m_label_text,::ColorToARGB(clr),TA_CENTER|TA_BOTTOM);  break;  // AT_CENTER_BOTTOM
         case 8: m_canvas.TextOut(m_x_size-m_hor_space,  m_y_size-m_ver_space,  m_label_text,::ColorToARGB(clr),TA_RIGHT|TA_BOTTOM);   break;  // AT_RIGHT_BOTTOM
         default: m_canvas.TextOut(x,y,m_label_text,::ColorToARGB(clr),TA_LEFT); break;
        }
     }
 
Oleksii Chepurnyi:

Нужно дописывать самому. Что-то на подобие такого:

Спасибо, я видел этот Ваш код на странице 7 и, в свое время, забрал его. Проблема в том, что с Вашим дополнением прекрасно  выравнивается текст, например, в поле комбо-бокса, но в поле ввода TextEdit текст таким методом не выравнивается, так и остается выравненным по левому краю.