Функция Delphi, называемая GetLightColor, принимает в себя цвет и значение светимости как входные параметры, и возвращает соответствующий светлый цвет.
Вот разбивка кода:
Функция определена в классе TfmDW6Main, что указывает на то, что она является частью более крупной приложения.
Функция принимает два параметра: Color - тип TColor, представляющий цвет, и Light - байтовое значение, представляющее светимость (в процентах).
Функция использует вложенный рекордный тип TRGB для представления цветов в формате RGB. Каждый байтевой поле (R, G и B) соответствует красному, зелёному и синему компонентам цвета.
Функция GetRGB определена внутри GetLightColor. Она принимает TColor как входной параметр и возвращает рекорд TRGB, представляющий RGB-значения этого цвета. Функция использует функцию ColorToRGB для преобразования входного цвета в RGB, а затем извлекает индивидуальные компонентные значения с помощью функций GetRValue, GetGValue и GetBValue.
Внутри GetLightColor функция рассчитывает светлый цвет, добавляя пропорцию максимального возможного значения (255) к каждому компоненту оригинального цвета на основе предоставленного значения светимости. Рассчёт выполняется с помощью простой арифметики: (255 - FFrom.R) * (Light / 100) например.
Наконец, переменная Result устанавливается в рассчитанный светлый цвет, который возвращается функцией.
Альтернативное реализация, использующая встроенные функции для манипуляции цветами Delphi:
В этой версии функция ColorBlend используется для смешивания входного цвета с белым, что результатывает в светлом цвете. Пропорция светимости рассчитывается как (Light / 100).
Хотя обе реализации достигают одного и того же результата, вторая более компактна и использует встроенные функции для манипуляции цветами Delphi.
В статье описывается функция GetLightColor, которая позволяет изменить цвет на осветлённый с помощью параметра Light, умножая красную, зелёную и синюю компоненты цвета на соответствующие коэффициенты.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS