Munka szín Delphi, Delphi, Delphi komponens Delphi forrás

Munka szín Delphi

A játékok és grafikai csomagok, hogy a bájt talált alkalmazást. Gyakran azt jelzi, az átláthatóság, hanem irodai alkalmazások egyszerűen figyelmen kívül hagyja.

Mint már tudjuk, egy bájt vehet értékek 0-255 (decimális formában), vagy 0 FF (hex). Tehát hexadecimális szín fog kinézni SOOFFFFFF. Csak akkor azonnal meg kell jegyezni, hogy az első két nullát - ez egy másik byte, akkor megy FF kék, majd zöld és FF az utolsó FF piros. Kiderül, hogy a memóriában tárolja a színét BGR (fordított sorrendben). Abszolút piros szín lesz egyenlő $ 000000FF. teljesen zöld - $ 0000FF00. és kék - S00FF0000.

Próbáljunk megtanulni, hogyan kell dolgozni színes gyakorlatban, ugyanakkor, és megismerkedhetnek a szükséges funkciókat. Hozzon létre egy új alkalmazást, és telepítse a komponensek rajta ábrán látható.

Tehát formájában három tSzerkesztés komponenst. A vörös összetevő neve RedEdit, zöld - GreenEdit, Ja, és SINvGO - BlueEdit. Szintén a forma van egy gomb a színváltozás (a neve nem fontos), és CoiorDialog eleme a színváltozás.

Ha létre saját példát, próbálja fel mindent, amint az a fenti ábrán (közelebb a jobb széle), mert a bal fog készíteni a téren.

Egy esemény gomb # 111; nKattints levelet látható kódot lista:

eljárás TFormi.ButtonlClick (Sender: TObj ECT);

A var bejelentett egy változó egész típusú Longint. Ez egész 4 byte, akkor tárolására használt szín értékeket.

Az első sor egy ablak mutatja ColorDialogl.Execute színe megváltozik. Ha a felhasználó nem választja a szín (azt mondja, ha nem design), a kivitelezés az eljárás megszakad útján kilép.

Ezután a kiválasztott szín ColorDialog1 .color a TCoior típusú alakítjuk egy egyszerű számot coiorToRGB funkciót. Ezt a funkciót kell át a színes formában TCoior (átadjuk ColorDialogl.color), és visszatér egy egész 4 byte-os számot írunk egy változóban. CoiorToRGB funkciót végez az egyik nagyon fontos, akció-tisztítja az első bájt, ami csak nem hordozza a szemantikai terhelés 24 bites RGB rendszer.

A következő sorban a feladat a beviteli sor RedEdit vörös színű komponens értékeket. Ehhez először használta GetRValue funkciót. Ő továbbított szín érték egy egész szám (változó). Az eredmény egy egybájtos szám, amely jelzi azt az értéket a piros komponens. Mivel result- számot, mielőtt rendelt bemeneti vonal, azt át kell alakítani egy string. Ehhez lefordítani szöveget ismerős funkciók is IntToStr.

Mi nem ugyanaz a dolog, hogy a zöld a következő kódsort. Csak a zöld komponenst használunk GetGValue funkciót.

A kék komponens használt GetBValue funkciót. Tehát, elvégre ez megtörtént, szakítottunk a színe a 4 bájtos változó egyedi bájt szín és fújt őket a megfelelő bemeneti vonal.

Akkor meg kell, hogy ablakhoz húzott egy hívást Újrarajzolja módszer.

Mert OnPaint esemény levelet az alábbi kódot:

eljárás TForml.FormPaint (Sender: TObj ECT); kezdődik

StrToIntDef (GreenEdit.Text, 0), StrToIntDef (BlueEdit.Text, 0));

Canvas.Rectangle (10,10, 250, 150);

Itt meg kell tennünk a fordított akció - viszont a három komponens a színe a beviteli mezők egyetlen szín értékét. Használunk erre a funkció RGB (R, G, B). Ez a funkció a három paraméter, melyek egész számok.

  • r - piros érték.
  • g - az értéke zöld.
  • in - az értéke a kék.

Mivel a paraméterek kerülnek továbbításra feltüntetett értékek a megfelelő bemeneti vonal, előzetes átalakítás a vonalak a számuk.

Az eredmény a színkonverziós színű rekord ecsettel. Ezután egy téglalapot rajzol, ahol a háttér színe az egyik, hogy mi választottuk.

És az utolsó - létrehoz egy eseménykezelő # 111; nA minden bemeneti sor.

  1. Jelölje ki a beviteli sorban a piros szín.
  2. Tartsa lenyomva a Shift, kattintson a fennmaradó sorokat.

Van minden a bemeneti vonalak szürke keretek kell emelni. Most megy a Object Inspector az Események lapon, és kattintson duplán egy eseményre # 111; nA, hogy hozzon létre egy kezelő azonnal az összes kiválasztott komponensek. Úgy írni a következő kódot:

eljárás TForm1.RedEditChange (Sender: TObject);

Próbáld futtatni ezt a példát. Most válassza bármilyen színben, és láthatjuk a komponensek a színt. Azt is megváltoztathatja az értékeket közvetlenül a beviteli húrok, és az eredmény azonnal tükröződik a színe a téglalap.

Munka szín Delphi, Delphi, Delphi komponens Delphi forrás

VIGYÁZAT. Ne feledje, hogy egyik összetevője színe nem lehet több, mint 255, különben az alkatrész mérete meghaladja az bájt.

És most nézd meg a konstans, ami már beszerzett a alapszín. Akkor ténylegesen használni őket a programokban és rendelni, mint korábban volt a helyzet a példa. Ez nem soroljuk fel az összes állandók, mert meg tudod csinálni őket bármikor találni, ha rákattint az objektum ellenőr a színes tulajdonságait az alkatrészeit. Minden, amit látsz a listán - ez egy állandó, amelyet fel lehet használni. Ez a módszer viszonylag egyszerű, mert ha egyszer is látható és állandó színt.

Segítség a projekt! Küld erről az oldalról:

Kapcsolódó cikkek