Delphi - TImageList képeihez megjelenítő komponens készítése

forráskód letöltése
Jó dolog, hogy TImageList-ben tárolhatunk egységesen, egy helyen képeket.

Amikor szeretnénk ezeket viszontlátni, akkor egy olyan komponenst kell használnunk, amely képes megjelenítésükre. De mi van akkor, ha nincs szükségünk TTreeView, vagy TToolBar komponensekre, hogy láthassuk a képeket.

Ekkor jön jól a mellékelt komponens, mely képes arra, hogy egy általunk meghatározott sorszámú TImageList-ben tárolt képet megjelenítsen a Form-on. A mellékelt példaprogram megnyitása előtt az ImageView.pas-ban lévő komponenst telepítenie kell a Delphi alá.

A példaprogram a Delphi 3-as verziójával is használható, de célszerűbb magasabb verziót használni, ha van rá lehetőség, ugyanis a Delphi 3-ban a TImageList komponens nem rendelkezik minden olyan funkcióval, melyet komponensünk kihasznál.
Így például ennél a Delphi-nél nem használható komponensünk ImageEnabled property-e.

Miután feltettük a Form-ra a komponenst, első lépésként állítsuk be az ImageList property-nél, hogy mely TImageList komponens képeit szeretnénk használni. A komponens mérete ekkor felveszi a TImageList-ben tárolt képek méretét.

Ezután az ImageIndex property segítségével megadhatjuk, hogy a TImageList hányadik képe legyen látható.

Ha az ImageEnabled property-t hamisra állítjuk, akkor a kirajzolt kép úgy jelenik meg, mintha az például egy letiltott nyomógombon lenne látható. Ez a lehetőség a Delphi 3 alatt nem használható.

A komponenst egy TCustomControl osztályból származtatjuk. Itt a Paint eljárást felülírva, képesek vagyunk a kép kirajzolására. Ehhez a TImageList komponens Draw eljárását használjuk fel.