Delphi - TBlendImage komponens továbbfejlesztése

forráskód letöltése
Múlt héten bemutattunk egy TBlendImage komponenst, mely képes volt egy adott képet és egy adott háttérszínt úgy megjeleníteni, hogy a kettő között általunk megadott mértékben átlátszóság alakult ki.

Ezt a komponenst felhasználva, most készítünk egy TBlendImages nevű komponenst, mely már nem csak a háttérszín és egy kép között végzi el ezt a műveletet, hanem tetszőleges számú kép között. Minden kép esetén lehetőségünk van hogy annak átlátszóságát egyedileg szabályozzuk. A mellékelt példaprogram megnyitása előtt a BlendImages.pas-ban lévő komponenst telepítenie kell a Delphi alá.

A komponensnél a háttérszínt a BackgroundColor property-nél állíthatjuk be. Ez csupán az első képre van hatással, míg a további képek esetén az előző képhez viszonyítva jön létre az átlátszóság.

Az egyes képeket az Items tömb típusú property-n keresztül adhatjuk meg. Itt a képek megjelenítési sorrendje, vagyis hogy melyik legyen előbb, vagy hátrébb a másikhoz képest, az attól függ, hogy ebben a tömbben hol helyezkednek el.

Ennek a tömbnek minden egyes eleménél az alábbi property-k használhatók:

A Bitmap property-nél tölthetjük be a képet.

A Blend property-nél adhatjuk meg százalékos értékben, hogy az adott kép mennyire legyen átlátszó. Ennek értéke 0 és 100 közé kell hogy essen. 0 esetén a kép nem átlátszó, míg 100 esetén annyira átlátszó lesz, hogy az már nem is látszik.

A Visible property-vel szabályozhatjuk, hogy az adott kép látható legyen-e a végeredményben vagy sem. Ennek segítségével ki-be kapcsolhatjuk az egyes képek láthatóságát.

A képek helyzetét a komponens bal felső sarkához képest megadhatjuk az X és az Y property-k segítségével.

A komponens megvalósítása a múlt heti példára épül. Egyetlen eltérés benne, hogy most nem elegendő egy háttérszín és egy kép közötti átlátszóság kialakítására, hanem szükségünk lesz egy ciklusra, mely végigmegy az összes képen és szép sorban egymás után elvégzi ezt a szükséges műveletet, úgy hogy az adott képnél mindig az addig már létrejött képet használja fel a művelethez.