Цветове в Делфи

Вижте също :. Mouse в Делфи Battleship DivTimer

/ * TODO: Научете програмиране * /

Да започнем с това, цветовете, представени в компютъра в различни цветови модели като RGB. CMYK. LAB. HSV. HSL и др. Тук ще разгледам само RGB. Сега аз ви кажа защо.

В Делфи, вграден тип данни за съхранение на цветове: TColor (известен още като COLORREF DWORD и Longint.). Това е тип число с диапазона - $ 7FFFFFFF-1 .. $ 7FFFFFFF (т.е. -2147483648..2147483647). Доста много, като се има предвид, че системата поддържа 17 милиона цвята. Защо толкова много? Предполага RGB цвят представителство във формата на три компонента: Red (червено), зелен (Green) и син (в синьо). Всеки от тях е дадено число от 0 до 255. Не е трудно да се изчисли, че цветовете ще са 256 ^ 3, т.е. 16`777`216. С цел да се "събере" TColor на компоненти RGB три е стандартна характеристика. обявен в модула "Windows":

Ако това не е много ясно, че може да бъде пренаписана, като:

Забележете, колко е лесно? Все пак, има дребни проблеми. Но по-късно.

Естествено, има и обратни функции, които извличат желания цвят компоненти - GetRValue. GetGValue и GetBValue.

Те могат също да бъде по-лесно да се напише, като се използва число дивизия (DIV), а останалата част от делението (мод), да предложи как да мислят.

Цветове по име

Най-често използваните цветове са обявени от Делфи (между другото, вече е в "Графика" на модула) име на константа - цветни имена с префикс "КТ". Те не са толкова много, както е предвидено от HTML. но все пак нещо. Те могат да бъдат разделени в три групи.

стандарт

16 цвята, познати на всеки. На #RRGGBB колона в таблицата по-късно ще.

Да, аз забелязах, че негативният цвят? Те не могат да се измъкнем от трите компонента на функцията за RGB (.): Не е възможно да се извлече техните компоненти, като мине цвят GetRValue (.) И други подобни. Това ви позволява да се даде възможност на системата да изберете стойностите на тези цветове, базирани на настройките. За да ги конвертирате в нормални и положителни, има специален цвят ColorToRGB функция на модул "Графика":

Сега е възможно да се работи както преди.

Името като низ

Между другото, Delphi има представа за това какво да се обадя цветови константи си, и ви позволява да конвертирате низ с името на цвета в самия цвят, като се използват StringToColor функция.

Обратно на това, опитайте се да разберете цвета на името си, като се използват ColorToString.

Особено любопитен би се чудите: Какво би се случило, ако цветът не разполага с името? A: Функцията връща броя превръща в низ (не забравяйте, TColor - само цяло число тип).

Две гледания: #RRGGBB и #BbGgRr

Цветовете често са написани на кратко, като се използва шестнадесетичен система номер. Това дава възможност да се отговори на 7 #RRGGBB видове герои:
# - като отличителен знак на запис;
RR - две шестнадесетични цифри, които отговарят за червено;
GG - на зелено;
BB - и синьо.
Този запис е често срещано явление и се използва, например, за HTML.

Спомням си, тяхната цел? И сега бих казала, че е много подобен на записа, типа на #BBGGRR, където червено и синьо разменени. Това е от порядъка на цветовете, получени с помощта на ColorToString в предходния параграф. Плюс форматиране и има малко повече. Като цяло, аз не те съветвам без да е необходимо да се използва вградената функция, най-добре е да напишете:

Тя ще бъде в резултат на който и да е (положителна!) Цвят на #RRGGBB ум, дори и да има име.

Материал на тази страница се разпространява под лиценз CC BY-SA 4.0