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

 
Anatoli Kazharski:

Да, сейчас такое ограничение есть (только по левому краю). 

Спасибо , так бы я ещё день потратил )) .

 

В версии MT4 в SimpleButton отсутствует функция изменения текста/надписи кнопки.


SimpleButton.mqh

   string            Text(void)                        const { return(m_button.Description()); }
   void             Text(string text)                         { m_button.Description(text); return; } 

Добавьте вторую строку, чтобы получить эту функциональность. Опубликовал здесь, надеюсь поможет кому-нибудь, кто нуждается.

 

Вопрос по передвижению элементов.

m_label.CanvasPointer().YGap(newgap);
m_label.YGap(newgap);
m_label.Moving();

В каких случаях может понадобиться двигать отдельно холст, отдельно сам элемент?

 
Oleksii Chepurnyi:

Вопрос по передвижению элементов.

В каких случаях может понадобиться двигать отдельно холст, отдельно сам элемент?

Не понял вопрос.

 
Anatoli Kazharski:

Не понял вопрос.

Мы указываем новое расстояние отдельно холсту и отдельно самому элементу. Логично было бы просто указать расстояние элементу и вмесле с холстом передвинуть.

Вот и спрашиваю, какой смысл разделять? :)

 
Oleksii Chepurnyi:

Мы указываем новое расстояние отдельно холсту и отдельно самому элементу. Логично было бы просто указать расстояние элементу и вмесле с холстом передвинуть.

Вот и спрашиваю, какой смысл разделять? :)

Что Вы пытаетесь сделать? Какая задача? Программно переместить форму с элементами на графике?

 
Нет, элемент в форме. Допустим, сдинуть лейбл ниже.
 
Oleksii Chepurnyi:
Нет, элемент в форме. Допустим, сдинуть лейбл ниже.

Это два разных объекта. Один является частью другого. Есть более сложные составные элементы и каждой части нужно указывать относительные координаты. Относительно главного элемента, частью которого они являются.

Можно в базовый класс элемента добавить виртуальный метод, который упростит перемещение элементов во время выполнения программы

Попробуйте.

 
Anatoli Kazharski:

Это два разных объекта. Один является частью другого. Есть более сложные составные элементы и каждой части нужно указывать относительные координаты. Относительно главного элемента, частью которого они являются.

Можно в базовый класс элемента добавить виртуальный метод, который упростит перемещение элементов во время выполнения программы

Попробуйте.

Составные части сложных элементов привязываются к основному, и двигаются вместе сним. На сколько я понял... А холст как-то выпал из этой концепции :)

Целью данного вопроса было узнать, бывают ли случаи, когда нужно двигать элемент без холста или холст без элемента?

Есть идея добавить в CElement::Moving что-то такое

   m_canvas.XGap(m_x_gap);
   m_canvas.YGap(m_y_gap);

Чтобы холст всегда двигался за элементом.

Ничего не сломается в таком случае? :)

 
Oleksii Chepurnyi:

Составные части сложных элементов привязываются к основному, и двигаются вместе сним. На сколько я понял... А холст как-то выпал из этой концепции :)

Целью данного вопроса было узнать, бывают ли случаи, когда нужно двигать элемент без холста или холст без элемента?

Есть идея добавить в CElement::Moving что-то такое

Чтобы холст всегда двигался за элементом.

Ничего не сломается в таком случае? :)

Изначально просто не было такой задачи, чтобы уже после создания GUI нужно было перемещать элементы. Всё закладывалось на идею, когда в каждом элементе было уже всё необходимое поведение реализовано.

Встречные вопросы: Зачем нужно перемещать элементы? Что Вы хотите сделать? Какое поведение при взаимодействии с GUI нужно получить?

Чтобы понять сломается ли что-то, нужно тестировать все элементы после каждого изменения в базовых классах. Так сразу уже сложно сказать. Давно глубоко не заглядывал.

Создайте тестовый GUI, в котором будут все элементы библиотеки и тестируйте после внесённых изменений.