Delphi - Image komponens kiegészítése a mozaik megjelenítési tulajdonsággal

forráskód letöltése
Egy Image komponensben a megadott kép megjelenítési tulajdonságait többféleképpen befolyásolhatjuk. Igazíthatjuk középre, vagy nyújthatjuk a komponens méretére. Ebben a példában úgy módosítjuk az Image komponenst, hogy a megadott képet „tapétaszerűen” is meg tudja jeleníteni úgy, hogy közben az eredeti megjelenítési tulajdonságok is megmaradnak.
A mellékelt példaprogram megnyitása előtt a TiledImage.pas-ban lévő komponenst telepítenie kell a Delphi alá.
Az új komponenst a TImage osztályból fogjuk származtatni. A mozaik megjelenítési tulajdonságot egy logikai property-vel lehet beállítani, ennek neve Tiled. Ez a középre igazítás (Center) illetve nyújtás (Stretch) property-kkel együtt értelemszerűen nem alkalmazható. Ha a property értéke igaz, akkor az előbbi két property értékét figyelmen kívül hagyja, és a képet mozaikszerűen jeleníti meg.
Létrehozunk egy Picture property-t, amellyel egyben elrejtjük az eredeti Picture property-t is. Ha a Tiled property értéke hamis, akkor egyszerűen átadjuk a képet a TImage osztály Picture property-jének. Ha a property értéke igaz, akkor a TImage osztály Picture property-jének Bitmap objektumának méretét a komponens méretére állítjuk, és két egymásba ágyazott ciklusban kirajzoljuk rá az új Picture property-ben megadott képet. Mindezt a CreateImage eljárás végzi el.