Алгоритм сглаживания класса CCanvas — основа всех построений, в которых используется сглаживание. В статье рассказано о том, как работает этот алгоритм, приведены примеры визуализации его работы. Кроме того, рассмотрено рисование теней графических объектов и разработан подробный алгоритм отрисовки тени на канвасе. Для расчетов применена библиотека численного анализа ALGLIB.
hini #: Как пользователи добавляют изображения, которые они ищут, и используют их при создании интерфейса? Это вопрос.
Изображения интерфейса (иконки или другие картинки) условно делятся на две категории:
1. Внутренние.
Внутренние изображения интегрированы в конструктор. Например рисунки на кнопках прокрутки, стрелки пунктов меню, крестики кнопок закрытия окна и прочие. Этот штатные рисунки и они записаны цифрами в массиве. Иконки из окна Label Menu тоже. Записаны цифрами в специальном массиве. Даже без внешних ресурсов (папок с картинками) эти изображения останутся и пользователь может использовать их точно также. В данном случае адрес иконки это имя по которому конструктор ее находит.
2. Внешние.
Все внешние изображения должны находится в папке Images. Конструктор загружает их как ресурсы и записывает в общий массив картинок. Далее алгоритм получает доступ этим картинкам как к своим внутренним изображениям. Когда пользователь сохраняет проект, алгоритм выбирает и записывает в файл UIDATA только те картинки, которые нужны пользовательскому интерфейсу.
В общем, все просто.
1. Пользователь кладет нужное изображение в папку Images.
2. В специальном файле прописывает строку (например) #resource "::Images\\32x32\\Index.bmp"
3. Потом в коде указывает:
//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, LABEL,A, N_LABEL,"::Images\\32x32\\Index.bmp",
//----------------------------------------------------------------------------------
END_GROUP,
//----------------------------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "T1", 5,
//----------------------------------------------//----------------------------------------------------------------------------------
Готово.
Пользователь просто использует обычную строку назначения картинки для элемента или окна. Больше ничего не нужно. Конструктор сам определит внешнее это изображение, или внутреннее. Если внешнее, вынет его из ресурса и запишет в массив к остальным изображениям.
разобравшись в теории цветов можно продолжать, например взять для подопытного макета это и преобразовать во что нибудь продвинутое:
https://www.mql5.com/ru/articles/1612
Как пользователи добавляют изображения, которые они ищут, и используют их при создании интерфейса? Это вопрос.
Изображения интерфейса (иконки или другие картинки) условно делятся на две категории:
1. Внутренние.
Внутренние изображения интегрированы в конструктор. Например рисунки на кнопках прокрутки, стрелки пунктов меню, крестики кнопок закрытия окна и прочие. Этот штатные рисунки и они записаны цифрами в массиве. Иконки из окна Label Menu тоже. Записаны цифрами в специальном массиве. Даже без внешних ресурсов (папок с картинками) эти изображения останутся и пользователь может использовать их точно также. В данном случае адрес иконки это имя по которому конструктор ее находит.
2. Внешние.
Все внешние изображения должны находится в папке Images. Конструктор загружает их как ресурсы и записывает в общий массив картинок. Далее алгоритм получает доступ этим картинкам как к своим внутренним изображениям. Когда пользователь сохраняет проект, алгоритм выбирает и записывает в файл UIDATA только те картинки, которые нужны пользовательскому интерфейсу.
В общем, все просто.
1. Пользователь кладет нужное изображение в папку Images.
2. В специальном файле прописывает строку (например) #resource "::Images\\32x32\\Index.bmp"
3. Потом в коде указывает:
Готово.
Пользователь просто использует обычную строку назначения картинки для элемента или окна. Больше ничего не нужно. Конструктор сам определит внешнее это изображение, или внутреннее. Если внешнее, вынет его из ресурса и запишет в массив к остальным изображениям.
Релиз в субботу (постараюсь пораньше).
Поставленные задачи:
1. Программное управление элементами и окнами со стороны пользовательского приложения.
2. Обеспечить базовые возможности работы с таблицами.
3. Исправить баги с вкладками и таскбаром.
4. Исправить мелкие баги.
Обратите внимание, выше использована таблица.
В принципе, таблицу уже можно применять для подобных окон. Базовые возможности у нее есть.
В качестве демонстрации включу в эту таблицу чекбоксы, выпадающие списки, и... слайдеры. Посмотрим что получится далее.