Обсуждение статьи "Графические интерфейсы XI: Нарисованные элементы управления (build 14.2)" - страница 3

 
Artyom Trishkin:

Толь, в какой из статей этого цикла можно почитать о CKeys ?

...

Т.е,: запускаю программу и начинаю нажимать Backspace- все управляющие элементы с каждым нажатием Backspace удаляются, начиная с последнего добавленного. В конечном итоге удаляется и уже ставшее пустым окно-форма.

...


Графические интерфейсы X: Элемент "Многострочное текстовое поле ввода" (build 8)

Не смог воспроизвести ситуацию, когда при нажатии клавиши Backspace удаляются элементы графического интерфейса.

 
Artyom Trishkin:

Если в TestLibrary14 в Program.mqh вписать одну строчку - изменение цвета заголовка окна:

То сворачивание окна возвращает цвет к значению по умолчанию. А кнопки подсказок, сворачивания/разворачивания и закрытия окна перекрашиваются в цвет заголовка окна, который был программно установлен. А затем цвет этих кнопок изменяется на цвет по-умолчанию только при наведении курсора.

...

Забыл добавить изменение цвета заголовка формы по наведению курсора мыши. Будет в одном из следующих обновлений.

Сейчас цвет нужно установить для обоих состояний:

...
   m_window.CaptionColor(clrDimGray);
   m_window.CaptionColorHover(clrDimGray);
...

//---

Для кнопок цвет можно установить через их указатели и после создания формы.

...
   m_window.GetCollapseButtonPointer().BackColorHover(clrGray);
   m_window.GetTooltipButtonPointer().BackColorHover(clrGray);
//---
   m_window.GetCollapseButtonPointer().BackColorPressed(clrGray);
   m_window.GetTooltipButtonPointer().BackColorPressed(clrGray);
...

//---


 

По моему мнению, термин "ядро библиотеки", который употребляется в статье, не совсем корректен. Ранее употреблялся термин "движок" библиотеки, но и он не совсем подходит.

Под понятием "ядро" должен подразумеваться статический массив, объединяющий в себе всю необходимую информацию, а под понятием "движок" - механизм работающий с этой информацией и реализующий комплекс задач.

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

Если библиотека содержит ядро и движок, то это уже не совсем библиотека, а система работающая как единое целое.

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

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

имхо.