Delphi - Színátmenet sáv

Színátmenet 1. rész

forráskód letöltése
Készítettünk egy olyan komponenst, amely vízszintes irányban képes két tetszőlegesen választott színből folyamatos színátmenetet készíteni figyelembe véve a komponens szélességét. Az így létrejövő sávban egy szintén tetszőleges feliratot helyezhetünk el, bármilyen betűtípussal.

Ezzel a komponenssel az átlagosnál jobban kiemelhetünk bizonyos részleteket a programunkból egy-egy ilyen színes fejléccel. Készítettünk egy olyan komponenst, amely vízszintes irányban képes két tetszőlegesen választott színből folyamatos színátmenetet készíteni figyelembe véve a komponens szélességét. Az így létrejövő sávban egy szintén tetszőleges feliratot helyezhetünk el, bármilyen betűtípussal.

Ezzel a komponenssel az átlagosnál jobban kiemelhetünk bizonyos részleteket a programunkból egy-egy ilyen színes fejléccel.

A példaprogram megnyitása előtt szükséges a GradientBar.pas-ban lévő komponenst telepíteni a Delphi-be.

Nézzük hát, hogyan is jön létre ez a komponens, mely a TGraphicControl osztályból származik. Ez az osztály a legideálisabb olyan objektumok készítésére, melyeknek valamilyen egyedi kinézetet szeretnénk adni.

Mindezt azért tudjuk könnyedén megtenni, mivel ennek a komponensnek van egy Canvas TCanvas típusú property-e, amelyen keresztül tudunk rajzolni, valamint van egy Paint nevű eljárása, melyet felülírva máris kapunk egy olyan funkciót, amely akkor kerül meghívásra, mikor a komponens képét kell kirajzolni.

A komponenshez négy új property-t hozunk létre. Lesz kettő, amely a két színt tárolja (StartColor, EndColor). Egy, amelyben a felirat szövegét tároljuk (Caption), valamint egy olyan ahol ennek a szövegnek a betűtípusát tudjuk elérni (Font).

A Paint eljárást felülírva már csak azt a kódot kell elhelyezni benne, amely a színátmenet kirajzolását elvégzi. Ezt úgy tesszük meg, hogy az adott színeket az összetevőikre bontjuk (piros, zöld, kék), majd kiszámítjuk a komponens adott szélességét figyelembe véve, hogy milyen távolság van a két szín összetevő között.

Ezután már csak egy ciklus kell, amely a komponens teljes szélességében végig megy pixelenként. Itt kiszámoljuk, hogy az adott pozícióban milyen színt kell alkalmaznunk, majd húzunk egy függőleges vonalat.

Ha megvan a színátmenet, akkor már csak a szöveg kiírása van vissza és kész is vagyunk.

Színátmenet cikksorozat

Színátmenet sáv - Színátmenet 1. rész

Színátmenet a Form hátterén - Színátmenet 2. rész