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

 
Alexander Fedosov:

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

class 'CWindow' is undefined Element.mqh

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

 


Подскажите, пожалуйста, как исправить ситуацию, когда при высоком DPI все панели перепутаны?

 
Очень хорошая библиотека, с помощью которой можно создать таблицу, отображающую рыночные данные в событии ontick или ontime, используя логику, созданную пользователями на основе анализа данных. В моем примере единственное, чего не хватает, это возможности включить объект редактирования, чтобы позволить вам ввести количество ордеров, которые вы хотите исполнить на рынке.Отображение рыночных данных в таблице
 
Подскажите, 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 текст таким методом не выравнивается, так и остается выравненным по левому краю.
 
lovaK:
Спасибо, я видел этот Ваш код на странице 7 и, в свое время, забрал его. Проблема в том, что с Вашим дополнением прекрасно  выравнивается текст, например, в поле комбо-бокса, но в поле ввода TextEdit текст таким методом не выравнивается, так и остается выравненным по левому краю.

Да, TextEdit не приходилось выравнивать :)

Сам текст рисует TextBox (m_edit), его нужно крутить. Там свой метод рисования текста и, на сколько я понял, текст рисуется посимвольно.

Первое, что приходит в голову, менять х-координату в CTextBox::TextOut(void) :)

 

Все думаю, чего не хватает. А это шаблоны :) Супер!

Мельком глянул, есть вопрос: почему не можем избавиться от window_index в параметрах? У нас же есть указатель на главный элемент, пусть скажет индекс окна :)

 
Oleksii Chepurnyi:

...

Мельком глянул, есть вопрос: почему не можем избавиться от window_index в параметрах? У нас же есть указатель на главный элемент, пусть скажет индекс окна :)

Не помню почему. Надо ещё раз попробовать.