Delphi World - Как да направите стандартните цветове в Delphi по-светли или по-тъмни
В тази статия бих искал да покажа принципа за получаване на по-тъмен или по-светъл цвят от обикновен цвят. И също така помислете как този принцип е внедрен в програмния код.
И така, малко теория
Всеки от трите основни цвята (червен, зелен, син) може да има стойност от 0 до 255, така че чрез комбинирането им можем да получим 16 777 216 възможни цвята. Визуално това може да бъде представено като три оси на куб, в които посоките x, y и z отговарят за цветовете червено, зелено и синьо. Комбинирани, тези посоки дават точка в куба, представляваща един цвят от 16 милиона. Точката на куба, където стойността е 0 (0,0,0), е черна, стойността (255,255,255) е бяла, (255,0,0) е чисто червена и т.н.
Ако визуално нарисувате линия между всеки цвят (r,g,b) и бяло (255,255,255), тогава се оказва, че всички стойности на този цвят (r,g,b) ще лежат на тази линия. Ако се движим по линията към бялото, тогава яркостта ще се увеличи, докато не получим чисто бяло.
Същото може да се направи, за да се намали яркостта на цвета. Достатъчно е да начертаете линия от цвят (r,g,b) до черно (0,0,0). Тоест, когато се движим по линията към черно, ще намалим яркостта, докато не стане черно.
Функцията "По-тъмен" връща нова стойност на цвета, която ще бъде с определен процент по-тъмна. Естествено при 100% получаваме черно. Функцията "По-светъл" връща цвят, който е по-светъл с определен процент от оригинала. 100% - бял цвят.
Функциите Darker и Lighter изискват 2 параметъра и се използват по следния начин:
Това ще доведе до панел от цветове, който е с 20% по-тъмен от обикновеното синьо.
Сега нека видим как изглежда вътрешността ни.Характеристика:
Добавих и някои функции, които вече имат добавени стандартни процентни стойности. Това е за тези, които нямат време да мислят за проценти :)