
A mellékelt példaprogram megnyitása előtt a ZoomImage.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
A komponensbe betölthetünk egy BMP képet a Picture tulajdonságon keresztül, ugyanúgy, mint ha egy Image komponenst használnánk. A ZoomPercent tulajdonságban adhatjuk meg a nagyítás mértékét, százalékban. A 100-as érték a kép eredeti méretét, 50-es érték az eredeti méret felét, a 200-as érték pedig kétszeres nagyítást jelent.
A nagyítás csak akkor lép érvénybe, ha a ZoomEnabled értékét igazra állítjuk. Ha bármilyen nagyítás esetén a ZoomEnabled értékét hamisra állítjuk, a kép visszaáll eredeti méretére.
A komponens mérete mindig felveszi a megjelenítendő kép méretét.
A nagyítás és kicsinyítés használatához két metódus is a rendelkezésünkre áll.
procedure ZoomIn(Percent: Integer);
procedure ZoomOut(Percent: Integer);
A Percent paraméterben kell megadnunk a változás mértékét, százalékban.
Komponensünket a TGraphicControl osztályból származtatjuk.
A kép megjelenítéséhez a Paint metódust kell felülírnunk. Két eset lehetséges, az egyik a nagyításmentes, a másik, amikor nagyításra kerül sor.
Ha nagyításról van szó, akkor a ZoomPercent tulajdonság értékének megfelelően ki kell számolnunk a megjelenítendő kép, és a komponens új Width és Height tulajdonságait.
NewWidth:=Round(FPicture.Bitmap.Width*FZoomPercent/100);
NewHeight:=Round(FPicture.Bitmap.Height*FZoomPercent/100);
A megjelenítendő képet a Canvas osztály StretchDraw metódusa segítségével az új méretekre szoríthatjuk.
Canvas.StretchDraw(Rect(0,0,NewWidth,NewHeight),FPicture.Graphic);
Ha nincs nagyítás, akkor a képet eredeti méretében kell megjeleníteni. Ezt az FPicture objektum Bitmap tulajdonságából határozhatjuk meg.
Width:=FPicture.Bitmap.Width;
Height:=FPicture.Bitmap.Height;
A kirajzoláshoz itt is a Canvas osztály StretchDraw metódusát használjuk.