Culori în delphi
A se vedea, de asemenea, mouse-ul :. Delphi Battleship DivTimer
/ * TODO: Aflați de programare * /
Pentru a începe cu, culorile reprezentate în calculator în diverse modele de culoare, cum ar fi RGB. CMYK. LAB. HSV. HSL și altele. Aici mă va lua în considerare doar RGB. Acum vă spun de ce.
În Delphi, un tip built-in de date pentru stocarea culori: TColor (aka COLORREF DWORD și Longint.). Este un tip întreg cu gama - $ 7FFFFFFF-1 .. $ 7FFFFFFF (adică -2147483648..2147483647). Destul de mult, având în vedere că sistemul suporta 17 milioane de culori. De ce atât de mult? Presupune o reprezentare de culoare RGB sub forma a trei componente: Red (Rosu), verde (verde) și albastru (albastru). Fiecare dintre ele este dat un număr de la 0 la 255. Este ușor de calculat că culorile vor fi 256 ^ 3, și anume 16`777`216. În scopul de a „colecta“ TColor a trei componente RGB este o caracteristică standard. a declarat în modulul „Windows“:
În cazul în care nu este foarte clar, acesta poate fi rescrisă ca:
Observați cât de simplu? Cu toate acestea, există probleme minore. Dar mai târziu.
Firește, există funcții inverse care extrage componentele de culoare dorite - GetRValue. GetGValue și GetBValue.
Ele pot fi, de asemenea, mai ușor de a scrie, folosind diviziune număr întreg (div), iar restul împărțirii (mod), sugerează cum să se gândească.
Culori după nume
Culorile cele mai utilizate sunt declarate de la Delphi (de altfel, deja în modulul „Graphics“) numele constantei - nume de culori, cu prefixul „cl“. Ele nu sunt atât de mult, în condițiile prevăzute de HTML. dar încă ceva. Acestea pot fi împărțite în trei grupe.
standard
16 culori, familiare tuturor. Pe coloana #RRGGBB în tabel va mai târziu.
Da, am observat că culoarea negativă? Ei nu pot ieși din cele trei componente ale caracteristicii RGB (.), Este imposibil de a extrage componentele lor prin trecerea unui GetRValue de culoare (.) Și altele asemenea. Acest lucru vă permite să activați sistemul să selecteze valorile acestor culori pe baza setărilor. Pentru a le converti la normal și pozitiv, există o funcție specială de culoare ColorToRGB a modulului „Grafica“:
Acum este posibil să se lucreze la fel ca înainte.
Numele ca un șir de caractere
Apropo, Delphi are o idee despre ce să numim constantele sale de culoare, și vă permite să conversia unui șir de caractere cu numele culorii în culoarea în sine, folosind funcția StringToColor.
În schimb, încercați să aflați culoarea numelui său, folosind ColorToString.
Mai ales curios ar putea întreba: Ce s-ar întâmpla în cazul în care culoarea nu are un nume? R: Funcția returnează numărul convertit la un șir de caractere (nu uita, TColor - doar tip întreg).
Două puncte de vedere: #RRGGBB și #BbGgRr
Culorile sunt adesea scrise pe scurt, folosind sistemul de număr hexazecimal. Acest lucru face posibil pentru a satisface 7 #RRGGBB tipuri de caractere:
# - ca un semn distinctiv al unei înregistrări;
RR - două cifre hexazecimale, responsabil cu roșu;
GG - a verde;
BB - și albastru.
Această înregistrare este destul de comună și este utilizat, de exemplu, pentru HTML.
Îmi amintesc ordinea lor? Și acum aș spune că este foarte similar cu înregistrarea, tipul de #BBGGRR, în cazul în care au schimbat roșu și albastru. Aceasta este ordinea culorilor obținute folosind ColorToString în paragraful precedent. Plus formatarea și există un pic mai mult. În general, eu nu vă sfătuim fără a fi nevoie de a utiliza funcția de built-in, este cel mai bine pentru a scrie dumneavoastră:
Acesta va fi rezultatul de orice culoare (pozitiv!) Pentru a #RRGGBB minte, chiar dacă are un nume.
Materialul acestei pagini este licențiat sub CC BY-SA 4.0