|
A mellékelt példaprogram megnyitása előtt a AnimImage.pas-ban lévő komponenst telepítenie kell a Delphi alá.
Amikor egy BitBtn vagy SpeedButton komponens Glyph property-jében egy képet megadunk, akkor azt függőlegesen több részre oszthatjuk a NumGlyphs property értékének változtatásával. Ilyenformán a Glyph property-ben megadott kép tulajdonképpen több képkockát tartalmaz. Az AnimImage komponensnél is így kell elkészíteni azt a képet, ami az animációt fogja tartalmazni, vagyis egyenlő részekre kell felosztani függőlegesen úgy, hogy az egyes részek a képkockákat tartalmazzák. A képkockák számát a Frames property-ben lehet megadni, az aktuális képkocka sorszámát pedig a CurrentFrame property-ben.
Az új komponenst a TImage osztályból származtatjuk, így megmarad annak minden tulajdonsága, tehát átlátszó lehet (Transparent property), átméretezhető, igazítható, stb.
Az időzítéshez felhasználjuk a TTimer osztályt, a képkockák között eltelt időt az Interval property-ben adhatjuk meg. Az animációt az Active property értékének beállításával, vagy a Start illetve Stop eljárásokkal indíthatjuk, illetve állíthatjuk le. A FrameWidth és FrameHeight property-kből a képkockák méretét lehet kiolvasni.
Létrehoztunk egy Picture property-t, amivel tulajdonképpen elrejtettük az eredeti Picture property-t. Ennek ugyanis a DisplayCurrentFrame eljárásban adunk értéket. Egy TBitmap objektumba kimásoljuk az aktuális képkockát, és ezt adjuk át az eredeti Picture property-nek.
|